Несколько снимков из рабочей версии мода, включающего в себя как минимум 4 части:

- "Новые колонисты", где рождение новых колонистов больше не связано с запасами еды на городском складе,
- "1492: Золотая лихорадка", где введены исчерпаемые минеральные ресурсы (в том числе россыпное золото),
- "1492: Закон и порядок" ("1492: Codex") - где разделены функции губернатора, представляющего в городе своего короля и обеспечивающего в нем порядок и рост производства, и "мятежного жителя", сеющего анархию и создающего предреволюционную ситуацию.
- "Радиус города на 2 клетки", где, как ясно из названия, доступная для обработки территория вокруг города увеличена с 8 до 20 клеток.
Плюс еще несколько мелких добавлений.

Обычный CvGameCoreDLL.dll работает без сбоев, но я все же дополнительно скомпилировал debug CvGameCoreDLL.dll и начал проверку рабочей версии на наличие ошибок с помощью этого самого debug CvGameCoreDLL.dll. Несколько багов поймать не только удалось, но и, выяснив причину, устранить. Как несложно догадаться все они были "рукотворными" и связаны с некритичными ошибками в xml файлах. Насколько это нужно было делать - сказать трудно, поскольку обычный CvGameCoreDLL.dll их не видит, но то, что теперь этих ошибок нет, явно пойдет на пользу стабильности мода.

Кроме того в результате теста удалось заметить и устранить несколько графических багов на экране. Они были связаны с неправильным изображением иконок "молотка" и "рождаемости". Если так называемый "hammer bug" хорошо известен тем, кто увеличивает количество yields в игре, то с иконкой рождаемости пришлось изрядно повозиться. По логике она должна была работать без проблем. Я несколько раз пропахал все дорожку, начиная от исходных кодов и заканчивая GameFont_75.tga, но безуспешно. Единственным объяснением на сей момент является то, что иконки,

Код:
	BIRTHPOINT_CHAR,
	WAREHOUSE_CHAR,
совершенно правильно прописанные в CvEnums.h, превышают MAX_NUM_SYMBOLS, следы которого теряются в ехе файле игры.

Для решения проблемы пришлось дополнительно прописать появление иконки рождаемости в CvGameTextMgr.cpp

Код:
		szString.append(gDLL->getText("TXT_KEY_MISC_BIRTHPOINTS_INFO", pCity->getBirthPoints(), pCity->growthThreshold()));
		szString.append(gDLL->getSymbolID(BIRTHPOINT_CHAR));
Только это полностью убрало графический баг с иконкой рождаемости.

В итоге информации о городе выглядит сейчас так:



Если заглянуть сейчас в город, то там можно также увидеть кое-что новое. Работающий губернатор повышает производительность труда всех работников. Если же в городе появляется "мятежный житель", то он будет понижать производительность труда. На данном снимке показан только первый вариант, поскольку в данном случае я проверял совсем другое. Если кого-то заинтересуют, то можете пройти посмотреть по ссылке на их-фанатики, гдя я выкладывал всю механику появления и работы "губернатора" и "мятежного жителя". Сейчас все это уже включено в данную версию и работает штатно.



Итак, перейдем к следующему этапу.

Обычная работающая шахта. Запас железной руды практически исчерпан.



На следующем ходу руда заканчивается. Обычно после этого шло автоматичесое разрушение уже пустой и соответственно бесполезной шахты. Напомню, теперь все минеральные ресурсы распределяются только в качестве бонусов. Если вся руда добыта, бонус удаляется с карты. Добывать на холме без бонуса что-либо (железную руду, серебро, и т.д.) невозможно. Их там попросту нет! Поэтому шахта без бонуса бесполезна. На следующем снимке это и происходит:



Одним из "мнимых" недостатков исчерпаемых ресурсов является то, что игрок что-то теряет. Когда на их-фанатиках я предлагал введение исчерпаемых ресурсов, мне прежде всего указывали на этот момент. Игрок видите ли понастроил инфрастуктуру для производства, к примеру, оружия (руда -> железо -> инструменты -> оружие), а тут, бац! и исходный материал для всей цепочки (железная руда) закончился. Все производство останавливается. Мол, такое не годится!

Но так ли это плохо? Ведь в реальности происходит именно так. Кроме того мы же заранее знаем сколько руды мы сможем добыть из данного месторождения, поэтому можем планировать объемы производства и скорости добычи. Более того, зная об ограниченности наших запасов руды, можем заранее начать поиск новых месторождений на пока закрытых участках карты. А найдя там новое месторождение, просто застолбить его, основав рядом свою колонию.

Но такие открытия месторождений возможны только на уже сгенерированной на первом ходу карте. Старателя (или говоря современным языком "геолога"), который мог бы открывать месторождения руд в ходе игры, пока нет.

Можно ли его ввести? Сложно сказать. Геология как поиск и открытие новых месторождений в ходе игры пока реализована только в моде "Эволюция войны" NeseryozniyVET. Но там, если мне не изменяет память, генерация очков геологии идет через город, а не через юнит, перемещающийся по карте и тем самым производящий геологоразведку. Впрочем, я могу ошибаться, так как смотрел как работает геология в "Эволюция войны" несколько месяцев назад.

Поэтому на данном этапе я начал поиск более простых и менее трудоемких способов открытия новых месторождений в ходе игры. Два из них я представляю в данном сообщении. Оба реализованы через генератор случайных событий.

Первый способ связан с уже опустевшей шахтой. Когда вся руда добыта, то на следующем ходу появляется такое сообщение:



Шахтеров понять можно. Что им делать в пустой шахте, где нечего добывать? Шахту можно разрушить, но "среди местных жителей ходит легенда о больших запасах руды где-то поблизости". Игроку я оставил только один выбор. "Ладно, пусть шахта пока стоит и разрушать ее не надо. Стоит проверить эту легенду". Так на карте вместо обычной работающей шахты появляется "depleted mine", которая ничего не производит и на которой никто не работает.



Насколько данная клетка нужна для иного производства? Пока вокруг города было 8 клеток, то вероятность этого была 1/8. Сейчас, когда вокруг города 20 свободных клеток, то это уже лишь 1/20. Таким образом, бесполезную пока шахту можно какое-то время не трогать.

Тем более, что есть шанс (он уже работает, но я его пока не прописал в виде сообщений на экране), что на неработающей шатхе старатель или местные мальчишки ))) смогут найти новую, неизвестную пока рудную жилу. Другими словами, здесь "depleted mine" используестся для открытия нового месторождения, что и показано на снимке:



После этого на клетку с вновь открытым бонусом можно послать работника, который снова построит действующую шахту. Возможно (?), имеет смысл сделать эту шахту иной по виду, более дорогой по стоимости и трудозатратам на ее строительство, назвав к примеру "шахтой глубокого заложения".



Лежащие буквально на поверхности месторожения россыпного золота могут быть открыты иным способом. Наш скаут (я его авансом называю тут "старатель" или "prospector"), путешествуя по карте, имеет небольшой шанс найти необнаруженное пока месторождение россыпного золота. Выглядит это так:

Обнаружение россыпи



и ее появление на карте.



Все это происходит в процессе игры.

Я прекрасно понимаю, что это очень грубое приближении к реальной геологии, но пока есть и реально работает только оно.