CvCity::PostKill(bool, CvPlot *, PlayerTypes)
- Defined in
- CvCity.cpp, line 1566
- Class
- CvCity
- Hook name
CivHooks::CvCity_PostKill
Hooks
static bool BeforeCvCity_PostKill(CvCity* self, bool bCapital, CvPlot* pPlot, PlayerTypes eOwner);static void AfterCvCity_PostKill(CvCity* self, bool bCapital, CvPlot* pPlot, PlayerTypes eOwner);static void ReplaceCvCity_PostKill(void (*original)(CvCity*, bool, CvPlot*, PlayerTypes), CvCity* self, bool bCapital, CvPlot* pPlot, PlayerTypes eOwner);CivRegisterBefore<CivHooks::CvCity_PostKill>(host, &BeforeCvCity_PostKill);CivRegisterAfter<CivHooks::CvCity_PostKill>(host, &AfterCvCity_PostKill);CivRegisterReplace<CivHooks::CvCity_PostKill>(host, &ReplaceCvCity_PostKill);
Code
1566void CvCity::PostKill(bool bCapital, CvPlot* pPlot, PlayerTypes eOwner)1567{1568 VALIDATE_OBJECT15691570 CvPlayer& owningPlayer = GET_PLAYER(eOwner);15711572 // Recompute Happiness1573 owningPlayer.DoUpdateHappiness();15741575 // Update Unit Maintenance for the player1576 owningPlayer.UpdateUnitProductionMaintenanceMod();15771578 // Update Proximity between this Player and all others1579 PlayerTypes ePlayer;1580 for(int iPlayerLoop = 0; iPlayerLoop < MAX_CIV_PLAYERS; iPlayerLoop++)1581 {1582 ePlayer = (PlayerTypes) iPlayerLoop;15831584 if(ePlayer != eOwner)1585 {1586 if(GET_PLAYER(ePlayer).isAlive())1587 {1588 owningPlayer.DoUpdateProximityToPlayer(ePlayer);1589 GET_PLAYER(ePlayer).DoUpdateProximityToPlayer(eOwner);1590 }1591 }1592 }15931594#if defined(MOD_GLOBAL_CITY_WORKING)1595 GC.getMap().updateWorkingCity(pPlot,getWorkPlotDistance()*2);1596#else 1597 GC.getMap().updateWorkingCity(pPlot,NUM_CITY_RINGS*2);1598#endif15991600 if(bCapital)1601 {1602#if defined(MOD_GLOBAL_NO_CONQUERED_SPACESHIPS)1603 owningPlayer.disassembleSpaceship(pPlot);1604#endif1605 owningPlayer.findNewCapital();1606 owningPlayer.SetHasLostCapital(true, getOwner());1607 GET_TEAM(owningPlayer.getTeam()).resetVictoryProgress();1608 }16091610 pPlot->setImprovementType((ImprovementTypes)(GC.getRUINS_IMPROVEMENT()));16111612 if(eOwner == GC.getGame().getActivePlayer())1613 {1614 DLLUI->setDirty(SelectionButtons_DIRTY_BIT, true);1615 }16161617 DLLUI->setDirty(NationalBorders_DIRTY_BIT, true);16181619 if(GC.getGame().getActivePlayer() == eOwner)1620 {1621 CvMap& theMap = GC.getMap();1622 theMap.updateDeferredFog();1623 }16241625}
Calls
- CvCity::getOwner() const
- CvCity::getWorkPlotDistance(int) const
- CvGame::getActivePlayer() const
- CvGlobals::GetEngineUserInterface()
- CvGlobals::getGame()
- CvGlobals::getMap()
- CvGlobals::getRUINS_IMPROVEMENT()
- CvMap::updateDeferredFog()
- CvMap::updateWorkingCity(CvPlot *, int)
- CvPlayer::disassembleSpaceship(CvPlot *)
- CvPlayer::DoUpdateHappiness()
- CvPlayer::DoUpdateProximityToPlayer(PlayerTypes)
- CvPlayer::findNewCapital()
- CvPlayer::getTeam() const
- CvPlayer::isAlive() const
- CvPlayer::SetHasLostCapital(bool, PlayerTypes)
- CvPlayer::UpdateUnitProductionMaintenanceMod()
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlot::setImprovementType(ImprovementTypes, PlayerTypes)
- CvTeam::getTeam(TeamTypes)
- CvTeam::resetVictoryProgress()
ICvUserInterface1::setDirty