Hooks
static bool BeforeCvDllNetMessageHandler_ResponseCityDoTask(CvDllNetMessageHandler* self, PlayerTypes ePlayer, int iCityID, TaskTypes eTask, int iData1, int iData2, bool bOption, bool bAlt, bool bShift, bool bCtrl);static void AfterCvDllNetMessageHandler_ResponseCityDoTask(CvDllNetMessageHandler* self, PlayerTypes ePlayer, int iCityID, TaskTypes eTask, int iData1, int iData2, bool bOption, bool bAlt, bool bShift, bool bCtrl);static void ReplaceCvDllNetMessageHandler_ResponseCityDoTask(void (*original)(CvDllNetMessageHandler*, PlayerTypes, int, TaskTypes, int, int, bool, bool, bool, bool), CvDllNetMessageHandler* self, PlayerTypes ePlayer, int iCityID, TaskTypes eTask, int iData1, int iData2, bool bOption, bool bAlt, bool bShift, bool bCtrl);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseCityDoTask::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllNetMessageHandler_ResponseCityDoTask);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseCityDoTask::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllNetMessageHandler_ResponseCityDoTask);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseCityDoTask::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllNetMessageHandler_ResponseCityDoTask);
Code
165void CvDllNetMessageHandler::ResponseCityDoTask(PlayerTypes ePlayer, int iCityID, TaskTypes eTask, int iData1, int iData2, bool bOption, bool bAlt, bool bShift, bool bCtrl)166{167 CvPlayerAI& kPlayer = GET_PLAYER(ePlayer);168 CvCity* pkCity = kPlayer.getCity(iCityID);169170 if(pkCity != NULL)171 {172 pkCity->doTask(eTask, iData1, iData2, bOption, bAlt, bShift, bCtrl);173 }174}