Hooks
static bool BeforeCvPlayer_changeGoldenAgeTurns(CvPlayer* self, int iChange);static void AfterCvPlayer_changeGoldenAgeTurns(CvPlayer* self, int iChange);static void ReplaceCvPlayer_changeGoldenAgeTurns(void (*original)(CvPlayer*, int), CvPlayer* self, int iChange);CivRegisterBefore<CivHooks::CvPlayer_changeGoldenAgeTurns>(host, &BeforeCvPlayer_changeGoldenAgeTurns);CivRegisterAfter<CivHooks::CvPlayer_changeGoldenAgeTurns>(host, &AfterCvPlayer_changeGoldenAgeTurns);CivRegisterReplace<CivHooks::CvPlayer_changeGoldenAgeTurns>(host, &ReplaceCvPlayer_changeGoldenAgeTurns);
Code
13764void CvPlayer::changeGoldenAgeTurns(int iChange)13765{13766 Localization::String locString;13767 Localization::String locSummaryString;1376813769 bool bOldGoldenAge;1377013771 if(iChange != 0)13772 {13773 bOldGoldenAge = isGoldenAge();1377413775 m_iGoldenAgeTurns = (m_iGoldenAgeTurns + iChange);13776 CvAssert(getGoldenAgeTurns() >= 0);1377713778 if(bOldGoldenAge != isGoldenAge())13779 {13780 GC.getMap().updateYield(); // Do the entire map, so that any potential golden age bonus is reflected in the yield icons.1378113782 if(isGoldenAge())13783 {13784 ChangeNumGoldenAges(1);1378513786 locString = Localization::Lookup("TXT_KEY_NOTIFICATION_GOLDEN_AGE_BEGUN");13787 locString << getCivilizationAdjectiveKey();13788 GC.getGame().addReplayMessage(REPLAY_MESSAGE_MAJOR_EVENT, GetID(), locString.toUTF8(), -1, -1);1378913790 gDLL->GameplayGoldenAgeStarted();1379113792#if defined(MOD_EVENTS_GOLDEN_AGE)13793 if (MOD_EVENTS_GOLDEN_AGE) {13794 GAMEEVENTINVOKE_HOOK(GAMEEVENT_PlayerGoldenAge, GetID(), true, iChange);13795 }13796#endif13797 }13798 else13799 {13800 gDLL->GameplayGoldenAgeEnded();1380113802#if defined(MOD_EVENTS_GOLDEN_AGE)13803 if (MOD_EVENTS_GOLDEN_AGE) {13804 GAMEEVENTINVOKE_HOOK(GAMEEVENT_PlayerGoldenAge, GetID(), false, 0);13805 }13806#endif13807 }1380813809 CvNotifications* pNotifications = GetNotifications();13810 if(pNotifications)13811 {13812 NotificationTypes eNotification = NO_NOTIFICATION_TYPE;1381313814 if(isGoldenAge())13815 {13816 eNotification = NOTIFICATION_GOLDEN_AGE_BEGUN_ACTIVE_PLAYER;13817 locString = Localization::Lookup("TXT_KEY_NOTIFICATION_GOLDEN_AGE_BEGUN_ACTIVE_PLAYER");13818 locSummaryString = Localization::Lookup("TXT_KEY_NOTIFICATION_SUMMARY_GOLDEN_AGE_BEGUN_ACTIVE_PLAYER");13819 }13820 else13821 {13822 eNotification = NOTIFICATION_GOLDEN_AGE_ENDED_ACTIVE_PLAYER;13823 locString = Localization::Lookup("TXT_KEY_NOTIFICATION_GOLDEN_AGE_ENDED_ACTIVE_PLAYER");13824 locSummaryString = Localization::Lookup("TXT_KEY_NOTIFICATION_SUMMARY_GOLDEN_AGE_ENDED_ACTIVE_PLAYER");13825 }1382613827 pNotifications->Add(eNotification, locString.toUTF8(), locSummaryString.toUTF8(), -1, -1, -1);13828 }13829 }1383013831 if(GetID() == GC.getGame().getActivePlayer())13832 {13833 GC.GetEngineUserInterface()->setDirty(GameData_DIRTY_BIT, true);13834 }13835 }13836}