Bazaar developer reference

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

Called by