Bazaar developer reference

CvDllNetMessageHandler::ResponseDoCommand(PlayerTypes, int, CommandTypes, int, int, bool)

Defined in
CvDllNetMessageHandler.cpp, line 250
Class
CvDllNetMessageHandler
Hook name
CivHooks::CvDllNetMessageHandler_ResponseDoCommand

Hooks

static bool BeforeCvDllNetMessageHandler_ResponseDoCommand(CvDllNetMessageHandler* self, PlayerTypes ePlayer, int iUnitID, CommandTypes eCommand, int iData1, int iData2, bool bAlt);static void AfterCvDllNetMessageHandler_ResponseDoCommand(CvDllNetMessageHandler* self, PlayerTypes ePlayer, int iUnitID, CommandTypes eCommand, int iData1, int iData2, bool bAlt);static void ReplaceCvDllNetMessageHandler_ResponseDoCommand(void (*original)(CvDllNetMessageHandler*, PlayerTypes, int, CommandTypes, int, int, bool), CvDllNetMessageHandler* self, PlayerTypes ePlayer, int iUnitID, CommandTypes eCommand, int iData1, int iData2, bool bAlt);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseDoCommand::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllNetMessageHandler_ResponseDoCommand);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseDoCommand::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllNetMessageHandler_ResponseDoCommand);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseDoCommand::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllNetMessageHandler_ResponseDoCommand);

Code

250void CvDllNetMessageHandler::ResponseDoCommand(PlayerTypes ePlayer, int iUnitID, CommandTypes eCommand, int iData1, int iData2, bool bAlt)251{252	CvPlayerAI& kPlayer = GET_PLAYER(ePlayer);253	CvUnit* pkUnit = kPlayer.getUnit(iUnitID);254255	if(pkUnit != NULL)256	{257		if(bAlt && GC.getCommandInfo(eCommand)->getAll())258		{259			const UnitTypes eUnitType = pkUnit->getUnitType();260261			CvUnit* pkLoopUnit = NULL;262			int iLoop = 0;263264			for(pkLoopUnit = kPlayer.firstUnit(&iLoop); pkLoopUnit != NULL; pkLoopUnit = kPlayer.nextUnit(&iLoop))265			{266				if(pkLoopUnit->getUnitType() == eUnitType)267				{268					pkLoopUnit->doCommand(eCommand, iData1, iData2);269				}270			}271		}272		else273		{274			pkUnit->doCommand(eCommand, iData1, iData2);275		}276	}277}

Calls