Bazaar developer reference

CvPlot::SetImprovementPillaged(bool, bool)

Defined in
CvPlot.cpp, line 7035
Class
CvPlot
Hook name
CivHooks::CvPlot_SetImprovementPillaged
Lua events
GameEvents.TileImprovementChanged

Hooks

static bool BeforeCvPlot_SetImprovementPillaged(CvPlot* self, bool bPillaged, bool bEvents);static void AfterCvPlot_SetImprovementPillaged(CvPlot* self, bool bPillaged, bool bEvents);static void ReplaceCvPlot_SetImprovementPillaged(void (*original)(CvPlot*, bool, bool), CvPlot* self, bool bPillaged, bool bEvents);CivRegisterBefore<CivHooks::CvPlot_SetImprovementPillaged>(host, &BeforeCvPlot_SetImprovementPillaged);CivRegisterAfter<CivHooks::CvPlot_SetImprovementPillaged>(host, &AfterCvPlot_SetImprovementPillaged);CivRegisterReplace<CivHooks::CvPlot_SetImprovementPillaged>(host, &ReplaceCvPlot_SetImprovementPillaged);

Code

7034#if defined(MOD_EVENTS_TILE_IMPROVEMENTS)7035void CvPlot::SetImprovementPillaged(bool bPillaged, bool bEvents)7036#else7037void CvPlot::SetImprovementPillaged(bool bPillaged)7038#endif7039{7040	bool bWasPillaged = m_bImprovementPillaged;70417042	if(bPillaged != bWasPillaged)7043	{7044		m_bImprovementPillaged = bPillaged;7045#if defined(MOD_GLOBAL_STACKING_RULES)7046		calculateAdditionalUnitsFromImprovement();7047#endif7048		updateYield();70497050		// Quantified Resource changes7051		if(getResourceType() != NO_RESOURCE && getImprovementType() != NO_IMPROVEMENT)7052		{7053			if(getTeam() != NO_TEAM)7054			{7055				if(GET_TEAM(getTeam()).GetTeamTechs()->HasTech((TechTypes) GC.getResourceInfo(getResourceType())->getTechCityTrade()))7056				{7057					if(GC.getImprovementInfo(getImprovementType())->IsImprovementResourceTrade(getResourceType()))7058					{7059						if(bPillaged)7060						{7061							GET_PLAYER(getOwner()).changeNumResourceTotal(getResourceType(), -getNumResourceForPlayer(getOwner()));70627063							// Disconnect resource link7064							if(GetResourceLinkedCity() != NULL)7065								SetResourceLinkedCityActive(false);7066						}7067						else7068						{7069							GET_PLAYER(getOwner()).changeNumResourceTotal(getResourceType(), getNumResourceForPlayer(getOwner()));70707071							// Reconnect resource link7072							if(GetResourceLinkedCity() != NULL)7073								SetResourceLinkedCityActive(true);7074						}7075					}7076				}7077			}7078		}7079		7080#if defined(MOD_EVENTS_TILE_IMPROVEMENTS)7081		if (bEvents && MOD_EVENTS_TILE_IMPROVEMENTS) {7082			GAMEEVENTINVOKE_HOOK(GAMEEVENT_TileImprovementChanged, getX(), getY(), getOwner(), getImprovementType(), getImprovementType(), IsImprovementPillaged());7083		}7084#endif7085	}70867087	if(bWasPillaged != m_bImprovementPillaged)7088	{7089		setLayoutDirty(true);7090	}7091}

Calls

Called by