<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>