Hooks
static bool BeforeCvGame_selectedCitiesGameNetMessage(CvGame* self, int eMessage, int iData2, int iData3, int iData4, bool bOption, bool bAlt, bool bShift, bool bCtrl);static void AfterCvGame_selectedCitiesGameNetMessage(CvGame* self, int eMessage, int iData2, int iData3, int iData4, bool bOption, bool bAlt, bool bShift, bool bCtrl);static void ReplaceCvGame_selectedCitiesGameNetMessage(void (*original)(CvGame*, int, int, int, int, bool, bool, bool, bool), CvGame* self, int eMessage, int iData2, int iData3, int iData4, bool bOption, bool bAlt, bool bShift, bool bCtrl);CivRegisterBefore<CivHooks::CvGame_selectedCitiesGameNetMessage>(host, &BeforeCvGame_selectedCitiesGameNetMessage);CivRegisterAfter<CivHooks::CvGame_selectedCitiesGameNetMessage>(host, &AfterCvGame_selectedCitiesGameNetMessage);CivRegisterReplace<CivHooks::CvGame_selectedCitiesGameNetMessage>(host, &ReplaceCvGame_selectedCitiesGameNetMessage);
Code
2623void CvGame::selectedCitiesGameNetMessage(int eMessage, int iData2, int iData3, int iData4, bool bOption, bool bAlt, bool bShift, bool bCtrl)2624{2625 const IDInfo* pSelectedCityNode;2626 CvCity* pSelectedCity;26272628 pSelectedCityNode = GC.GetEngineUserInterface()->headSelectedCitiesNode();26292630 while(pSelectedCityNode != NULL)2631 {2632 pSelectedCity = ::getCity(*pSelectedCityNode);2633 pSelectedCityNode = GC.GetEngineUserInterface()->nextSelectedCitiesNode(pSelectedCityNode);2634 CvAssert(pSelectedCity);26352636 if(pSelectedCity != NULL)2637 {2638 if(pSelectedCity->getOwner() == getActivePlayer())2639 {2640 switch(eMessage)2641 {2642 case GAMEMESSAGE_PUSH_ORDER:2643 cityPushOrder(pSelectedCity, ((OrderTypes)iData2), iData3, bAlt, bShift, bCtrl);2644 break;26452646 case GAMEMESSAGE_POP_ORDER:2647 if(pSelectedCity->getOrderQueueLength() >= 1)2648 {2649 gDLL->sendPopOrder(pSelectedCity->GetID(), iData2);2650 }2651 break;26522653 case GAMEMESSAGE_SWAP_ORDER:2654 if(pSelectedCity->getOrderQueueLength() >= 2)2655 {2656 gDLL->sendSwapOrder(pSelectedCity->GetID(), iData2);2657 }2658 break;26592660 case GAMEMESSAGE_DO_TASK:2661 gDLL->sendDoTask(pSelectedCity->GetID(), ((TaskTypes)iData2), iData3, iData4, bOption, bAlt, bShift, bCtrl);2662 break;26632664 default:2665 CvAssert(false);2666 break;2667 }2668 }2669 }2670 }2671}