Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 2 из 2
  1. #1
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±

    Global new in include

    Этот вопрос снова связан с построением архитектуры мода. Какой вариант объявления переменных в енуменаторе будет более правильным?

    Вариант 1: Хранить все переменные в главном файле.

    Вариант 2: Использовать static enum в инклудах (допустим если речь идет о переменных, которые хранят в себе ID диалога). Понятное дело что будет более правильным использовать переменные для игрока непосредственно в моде (PlayerInfo, где хранится информация об игроке, VehicleInfo... и т.д.).

    Вариант 3:
    Создавать в каждом файле енум, в котором записывать переменные относящиеся к теме данного файла? Но тут будет проблема в том, если допустим переменная StateJob из енума PlayerInfo хранит ID одной из работ и если создавать каждую работу в отдельном файле то придется в любом случае выносить ее в мод, или же создать файл обьединяющий все работы и подключать его.

    Наверное не очень сформулировал, но надеюсь суть вопроса ясна)

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Для решения вопроса с диалогами гораздо лучше использовать библиотеки, позволяющие создавать каждый диалог как отдельную функцию. Например: TDW Dialog Library или же mdialog.

    Касаемо вопроса в целом - есть смысл разделять системы на заголовочные файлы, в которых будут подключаться все инклуды/макросы и т.п., и файлы с реализацией, в которых уже будет прописываться код функций. Это решит проблему с "видимостью" переменных/макросов для других систем, так как можно будет подключить сначала все заголовочные файлы, а уже потом подключать файлы с реализацией систем.

    Ну а если рассматривать ситуацию с диалогами именно так, как её предлагаешь рассмотреть ты, и представить, что вышеперечисленных библиотек не существует, то enum с диалогами стоит просто вынести в отдельный (заголовочный) файл и подключать его в начале мода. И уже там прописывать все ID для диалогов.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. Пользователь сказал cпасибо:
    punkochel (19.06.2019)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •