Народ, извините, если надоел. Мой мод почти готов. Осталось немногое: интерфейс для сканирования местности спутником-шпионом. Я думал добавить кнопку под кнопку шпионажа, только добавив тип кнопки CONTROL_SCAN. Добавил в два места, где встречались эти "контролы" в функции canDoControl и doControl в классе cvGameInterface. Проверил: у меня уже на этапе генерации карты вылетает в ошибку.
Я в верном направлении двигаюсь? Мб где есть тема, посвящённая созданию функциональных кнопок?

Код (функции в отдельности работают - проверено туповызовом при doTurn):
CvMainInterface.py --------------------------------------
...
ePlayer = gc.getGame().getActivePlayer()
if gc.getTeam(gc.getPlayer(ePlayer).getTeam()).IsSateliteScanValid():
iBtnY += iBtnAdvance
screen.setImageButton( "EspionageAdvisorButton", "", iBtnX, iBtnY, iBtnWidth, iBtnWidth, WidgetTypes.WIDGET_ACTION, gc.getControlInfo(ControlTypes.CONTROL_SCAN).getActionInfoIndex(), -1 )
screen.setStyle( "EspionageAdvisorButton", "Button_HUDAdvisorEspionage_Style" )
screen.hide( "EspionageAdvisorButton" )
....
------------------------------
void CvGame::doControl(ControlTypes eControl) {
...
case CONTROL_SCAN:
// Igor ACTION
eTeam = getActiveTeam();
if (eTeam == NO_TEAM) {
pPlot = GC.getMapINLINE().plotSorenINLINE(10, 10);
GET_TEAM(eTeam).SateliteScan(pPlot);
}
break;
...
----------------------------------------
bool CvGame::canDoControl(ControlTypes eControl) const {
....
case CONTROL_SCAN:
return true; // временно, вставить IsSateliteScanValid...
break;
....