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
- CustomMods::eventHook(const char *, const char *, ...)
- CustomMods::isEVENTS_TILE_IMPROVEMENTS()
- CvGlobals::getImprovementInfo(ImprovementTypes)
- CvGlobals::getResourceInfo(ResourceTypes)
- CvImprovementEntry::IsImprovementResourceTrade(int) const
- CvPlayer::changeNumResourceTotal(ResourceTypes, int, bool)
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlot::calculateAdditionalUnitsFromImprovement()
- CvPlot::getImprovementType() const
- CvPlot::getNumResourceForPlayer(PlayerTypes) const
- CvPlot::getOwner() const
- CvPlot::GetResourceLinkedCity() const
- CvPlot::getResourceType(TeamTypes) const
- CvPlot::getTeam() const
- CvPlot::getX() const
- CvPlot::getY() const
- CvPlot::IsImprovementPillaged() const
- CvPlot::setLayoutDirty(bool)
- CvPlot::SetResourceLinkedCityActive(bool)
- CvPlot::updateYield()
- CvResourceInfo::getTechCityTrade() const
- CvTeam::getTeam(TeamTypes)
- CvTeam::GetTeamTechs() const
- CvTeamTechs::HasTech(TechTypes) const
Called by
- CvCity::init(int, PlayerTypes, int, int, bool, bool, ReligionTypes, const char *)
- CvPlayerCulture::DoArchaeologyChoice(ArchaeologyChoiceType)
- CvMinorCivAI::DoTileImprovementGiftFromMajor(PlayerTypes, int, int)
- CvPlot::changeBuildProgress(BuildTypes, int, PlayerTypes)
- CvPlot::setImprovementType(ImprovementTypes, PlayerTypes)
- CvUnit::pillage()
- CvUnitCombat::ApplyNuclearExplosionDamage(const CvCombatMemberEntry *, int, CvUnit *, CvPlot *, int)
- CvLuaPlot::lSetImprovementPillaged(lua_State *)