Bazaar developer reference

CvDllNetMessageHandler::ResponseCityBuyPlot(PlayerTypes, int, int, int)

Defined in
CvDllNetMessageHandler.cpp, line 133
Class
CvDllNetMessageHandler
Hook name
CivHooks::CvDllNetMessageHandler_ResponseCityBuyPlot

Hooks

static bool BeforeCvDllNetMessageHandler_ResponseCityBuyPlot(CvDllNetMessageHandler* self, PlayerTypes ePlayer, int iCityID, int iX, int iY);static void AfterCvDllNetMessageHandler_ResponseCityBuyPlot(CvDllNetMessageHandler* self, PlayerTypes ePlayer, int iCityID, int iX, int iY);static void ReplaceCvDllNetMessageHandler_ResponseCityBuyPlot(void (*original)(CvDllNetMessageHandler*, PlayerTypes, int, int, int), CvDllNetMessageHandler* self, PlayerTypes ePlayer, int iCityID, int iX, int iY);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseCityBuyPlot::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllNetMessageHandler_ResponseCityBuyPlot);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseCityBuyPlot::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllNetMessageHandler_ResponseCityBuyPlot);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseCityBuyPlot::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllNetMessageHandler_ResponseCityBuyPlot);

Code

133void CvDllNetMessageHandler::ResponseCityBuyPlot(PlayerTypes ePlayer, int iCityID, int iX, int iY)134{135	CvPlayerAI& kPlayer = GET_PLAYER(ePlayer);136	CvCity* pkCity = kPlayer.getCity(iCityID);137	if(pkCity != NULL)138	{139		CvPlot* pkPlot = NULL;140141		// (-1,-1) means pick a random plot to buy142		if(iX == -1 && iY == -1)143		{144			pkPlot = pkCity->GetNextBuyablePlot();145		}146		else147		{148			pkPlot = GC.getMap().plot(iX, iY);149		}150151		if(pkPlot != NULL)152		{153			if(pkCity->CanBuyPlot(pkPlot->getX(), pkPlot->getY()))154			{155				pkCity->BuyPlot(pkPlot->getX(), pkPlot->getY());156				if(ePlayer == GC.getGame().getActivePlayer() && GC.GetEngineUserInterface()->isCityScreenUp())157				{158					GC.GetEngineUserInterface()->setDirty(CityScreen_DIRTY_BIT, true);159				}160			}161		}162	}163}

Calls