Тема 5:

«Внедрение» в SDK.


Шофер объясняет бабке про устройство машины:
«Вот здесь бабушка зажигание, здесь карбюратор, здесь вентилятор,
Для того чтобы машина поехала – надо включить зажигание…»
И так часа полтора. Потом спрашивает ее «Ну, все ясно бабуля?»
Она отвечает: «Все ясно…, только непонятно, а куды оглобли вставлять?»…

Для того, чтобы научиться писать свои коды в СДК – необходимо четко себе представлять, куда их надо вставить. И еще надо знать, а что вы хотите получить на выходе. Дальше вам придется посмотреть, (или предположить), - какие объекты участвуют в тех местах, где вы хотите внести изменения. Давайте рассмотрим это на примере посадки леса и преобразования местности.
1. Объект Build (постройки). Так как, это описывается в СДК, то это будет класс CvBuild.
2. Объект Unit (класс CvUnit). Так как он непосредственно делает все эти действия (Конкретно – это рабочий (Worker)). Надо только не забыть, что их два – рабочий и быстрый рабочий (Индия).
3. Объект Plot (класс CvPlot) – это непосредственно тот участок местности, который обрабатывается. (в дальнейшем мы его так и будем называть – Плот).

Это основные объекты, есть еще и дополнительные, такие, как Button (кнопка), CvHotKeyInfo (горячие клавиши). Есть и другие классы и объекты. Но если смотреть на алгоритм работ, то он, обычно, всегда одинаков. (Когда рабочий встает на плоту – у него открываются возможности для построек. Затем – если нажимается кнопка (или клавиши), он начинает выполнять работу, затем, когда работа выполнена результат появляется на плоту (на местности)). Каждый, кто играл в Цивилизацию – видел все это неоднократно.

А с чего начать ? спросите вы, а начинать надо с XML файлов (которые достаточно хорошо описаны NeverMind-ом).
Первое что мы делаем – это ищем рабочих в файле CvUnitInfos.XML и добавляем им два новых Build-а:
BUILD_FEATURE_FOREST и BUILD_TERAFORM:

[code]<Build>