<div align="center"> Разбираем СДК
</div>
<div align="right">Пашок
тема в форуме</div>
Вот мануальчик от меня по созданию новых пунктов в меню.
Допустим, мы хотим создать опцию, увеличивающую время исследований. Для начала откроем файл CIV4GameOptionInfos.xml. По образу и подобию других опций создаём ниже(!) свою опцию, назовём её, к примеру, GAMEOPTION_TECHCOST. Соответственно пропишем текстовые ссылки, заранее прописанные в соответствующем файле.
Сохраним файл и пойдём редактировать SDK. Открываем CyEnumsInterface.cpp. Там находим строку python::enum <Game Option Types>. Ниже мы видим список всех игровых опций, указанных в точно таком же порядке(!),как и в xml-файле. Ниже всех опций,перед строкой value("NUM_GAMEOPTION_TYPES", NUM_GAMEOPTION_TYPES) пропишем свою:
.value("GAMEOPTION_TECHCOST", GAMEOPTION_TECHCOST)
Затем откроем CvEnums.h. Найдём строку enum DllExport GameOptionTypes. Здесь мы видим тот же список опций. Точно также после всех перечисленных опций прописываем свою:
GAMEOPTION_TECHCOST,
Компилируем проект. Теперь, если мы запустим игру, мы увидим в списке опций свою. Осталось только написать код,который будет выполняться при активации этой опции.
Выглядит это так:
If (CG.getGameINLINE().isOption(GAMEOPTION_TECHCOST))
{
…Ваш код…
};
P.S. Если вы хотите, чтобы ваша опция отображалась не в конце списка, просто поменяйте порядок опций во всех трёх списках на нужный.
<div align="center">*********************************************************</div>