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
- CvCity::BuyPlot(int, int)
- CvCity::CanBuyPlot(int, int, bool)
- CvCity::GetNextBuyablePlot()
- CvGame::getActivePlayer() const
- CvGlobals::GetEngineUserInterface()
- CvGlobals::getGame()
- CvGlobals::getMap()
- CvMap::plot(int, int) const
- CvPlayer::getCity(int)
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlot::getX() const
- CvPlot::getY() const
ICvUserInterface1::isCityScreenUpICvUserInterface1::setDirty