CvTreasury::DoGold()
- Defined in
- CvTreasury.cpp, line 70
- Class
- CvTreasury
- Hook name
CivHooks::CvTreasury_DoGold
Hooks
static bool BeforeCvTreasury_DoGold(CvTreasury* self);static void AfterCvTreasury_DoGold(CvTreasury* self);static void ReplaceCvTreasury_DoGold(void (*original)(CvTreasury*), CvTreasury* self);CivRegisterBefore<CivHooks::CvTreasury_DoGold>(host, &BeforeCvTreasury_DoGold);CivRegisterAfter<CivHooks::CvTreasury_DoGold>(host, &AfterCvTreasury_DoGold);CivRegisterReplace<CivHooks::CvTreasury_DoGold>(host, &ReplaceCvTreasury_DoGold);
Code
69/// Update treasury for a turn70void CvTreasury::DoGold()71{72 int iGoldChange;7374 iGoldChange = m_pPlayer->calculateGoldRateTimes100();7576 int iGoldAfterThisTurn = iGoldChange + GetGoldTimes100();77 if(iGoldAfterThisTurn < 0)78 {79 SetGold(0);8081 if(iGoldAfterThisTurn <= /*-5*/ GC.getDEFICIT_UNIT_DISBANDING_THRESHOLD() * 100)82 m_pPlayer->DoDeficit();83 }84 else85 {86 ChangeGoldTimes100(iGoldChange);87 }8889 // Update the amount of gold grossed across lifetime of game90 int iGrossGoldChange = CalculateGrossGold();91 if(iGrossGoldChange > 0)92 {93 m_iLifetimeGrossGoldIncome += iGrossGoldChange;94 }9596 FAssertMsg(m_GoldBalanceForTurnTimes100.size() <= (unsigned int) GC.getGame().getGameTurn(), "History of Gold Balances corrupted");97 if(m_GoldBalanceForTurnTimes100.size() < (unsigned int) GC.getGame().getGameTurn())98 {99 m_GoldBalanceForTurnTimes100.push_back(GetGoldTimes100());100 }101102 FAssertMsg(m_GoldChangeForTurnTimes100.size() <= (unsigned int) GC.getGame().getGameTurn(), "History of Gold Changes corrupted");103 if(m_GoldChangeForTurnTimes100.size() < (unsigned int) GC.getGame().getGameTurn())104 {105 m_GoldChangeForTurnTimes100.push_back(iGoldChange);106 }107108#if !defined(NO_ACHIEVEMENTS)109 if (m_pPlayer->isHuman() && !GC.getGame().isGameMultiPlayer())110 {111 int iGoldDelta = (GetGoldFromCitiesTimes100(false) - GetGoldFromCitiesTimes100(true)) / 100;112 if (iGoldDelta >= 200)113 {114 gDLL->UnlockAchievement(ACHIEVEMENT_XP2_32);115 }116 }117#endif118}
Calls
- CvGame::getGameTurn()
- CvGlobals::getDEFICIT_UNIT_DISBANDING_THRESHOLD()
- CvGlobals::getGame()
- CvPlayer::calculateGoldRateTimes100() const
- CvPlayer::DoDeficit()
- CvTreasury::CalculateGrossGold()
- CvTreasury::ChangeGoldTimes100(int)
- CvTreasury::GetGoldTimes100() const
- CvTreasury::SetGold(int)
std::vector::push_backstd::vector::size