Bazaar developer reference

CvPlayer::raze(CvCity *)

Defined in
CvPlayer.cpp, line 6155
Class
CvPlayer
Hook name
CivHooks::CvPlayer_raze

Hooks

static bool BeforeCvPlayer_raze(CvPlayer* self, CvCity* pCity);static void AfterCvPlayer_raze(CvPlayer* self, CvCity* pCity);static void ReplaceCvPlayer_raze(void (*original)(CvPlayer*, CvCity*), CvPlayer* self, CvCity* pCity);CivRegisterBefore<CivHooks::CvPlayer_raze>(host, &BeforeCvPlayer_raze);CivRegisterAfter<CivHooks::CvPlayer_raze>(host, &AfterCvPlayer_raze);CivRegisterReplace<CivHooks::CvPlayer_raze>(host, &ReplaceCvPlayer_raze);

Code

6155void CvPlayer::raze(CvCity* pCity)6156{6157	char szBuffer[1024];6158	const size_t lenBuffer = 1024;6159	int iI;61606161	if(!canRaze(pCity))6162	{6163		return;6164	}61656166	CvAssert(pCity->getOwner() == GetID());61676168	if(GetID() == GC.getGame().getActivePlayer())6169	{6170		sprintf_s(szBuffer, lenBuffer, GetLocalizedText("TXT_KEY_MISC_DESTROYED_CITY", pCity->getNameKey()).GetCString());6171		GC.GetEngineUserInterface()->AddCityMessage(0, pCity->GetIDInfo(), GetID(), true, GC.getEVENT_MESSAGE_TIME(), szBuffer/*, "AS2D_CITYRAZE", MESSAGE_TYPE_MAJOR_EVENT, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), pCity->getX(), pCity->getY(), true, true*/);61726173	}61746175	for(iI = 0; iI < MAX_PLAYERS; iI++)6176	{6177		if(GET_PLAYER((PlayerTypes)iI).isAlive())6178		{6179			if(iI != GetID() && iI == GC.getGame().getActivePlayer())6180			{6181				if(pCity->isRevealed(GET_PLAYER((PlayerTypes)iI).getTeam(), false))6182				{6183					sprintf_s(szBuffer, lenBuffer, GetLocalizedText("TXT_KEY_MISC_CITY_HAS_BEEN_RAZED_BY", pCity->getNameKey(), getCivilizationDescriptionKey()).GetCString());6184					GC.GetEngineUserInterface()->AddCityMessage(0, pCity->GetIDInfo(), ((PlayerTypes)iI), false, GC.getEVENT_MESSAGE_TIME(), szBuffer/*, "AS2D_CITYRAZED", MESSAGE_TYPE_MAJOR_EVENT, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_RED"), pCity->getX(), pCity->getY(), true, true*/);6185				}6186			}6187		}6188	}61896190	sprintf_s(szBuffer, lenBuffer, GetLocalizedText("TXT_KEY_MISC_CITY_RAZED_BY", pCity->getNameKey(), getCivilizationShortDescriptionKey()).GetCString());6191	GC.getGame().addReplayMessage(REPLAY_MESSAGE_MAJOR_EVENT, GetID(), szBuffer, pCity->getX(), pCity->getY());61926193	pCity->SetIgnoreCityForHappiness(false);6194	DoUpdateHappiness();61956196	int iPopulationDrop = 1;6197	iPopulationDrop *= (100 + GetPlayerTraits()->GetRazeSpeedModifier());6198	iPopulationDrop /= 100;6199	int iTurnsToRaze = pCity->getPopulation();6200	if(iPopulationDrop > 0)6201	{6202		iTurnsToRaze = (iTurnsToRaze + iPopulationDrop - 1) / iPopulationDrop;6203	}62046205	pCity->ChangeRazingTurns(iTurnsToRaze);62066207	DoUpdateNextPolicyCost();62086209	// Update City UI6210	if(GetID() == GC.getGame().getActivePlayer())6211	{6212		GC.GetEngineUserInterface()->setDirty(CityInfo_DIRTY_BIT, true);6213	}6214}

Calls

Called by