Hooks
static bool BeforeCvMinorCivAI_DoMajorCivEraChange(CvMinorCivAI* self, PlayerTypes ePlayer, EraTypes eNewEra, bool& result);static void AfterCvMinorCivAI_DoMajorCivEraChange(CvMinorCivAI* self, PlayerTypes ePlayer, EraTypes eNewEra, bool& result);static bool ReplaceCvMinorCivAI_DoMajorCivEraChange(bool (*original)(CvMinorCivAI*, PlayerTypes, EraTypes), CvMinorCivAI* self, PlayerTypes ePlayer, EraTypes eNewEra);CivRegisterBefore<CivHooks::CvMinorCivAI_DoMajorCivEraChange>(host, &BeforeCvMinorCivAI_DoMajorCivEraChange);CivRegisterAfter<CivHooks::CvMinorCivAI_DoMajorCivEraChange>(host, &AfterCvMinorCivAI_DoMajorCivEraChange);CivRegisterReplace<CivHooks::CvMinorCivAI_DoMajorCivEraChange>(host, &ReplaceCvMinorCivAI_DoMajorCivEraChange);
Code
7538/// Someone changed eras - does this affect their bonuses?7539bool CvMinorCivAI::DoMajorCivEraChange(PlayerTypes ePlayer, EraTypes eNewEra)7540{7541 bool bSomethingChanged = false;75427543 MinorCivTraitTypes eTrait = GetTrait();75447545 // MARITIME7546 if(eTrait == MINOR_CIV_TRAIT_MARITIME)7547 {7548 // Friends7549 if(IsFriends(ePlayer))7550 {7551 int iOldFood, iNewFood;75527553 // Capital7554 iOldFood = GetFriendsCapitalFoodBonus(ePlayer);7555 iNewFood = GetFriendsCapitalFoodBonus(ePlayer, eNewEra);75567557 if(iOldFood != iNewFood)7558 {7559 bSomethingChanged = true;7560#if defined(MOD_BUGFIX_MINOR)7561 GET_PLAYER(ePlayer).ChangeCapitalYieldChangeTimes100(YIELD_FOOD, iNewFood - iOldFood);7562#else7563 GET_PLAYER(ePlayer).ChangeCapitalYieldChange(YIELD_FOOD, iNewFood - iOldFood);7564#endif7565 }75667567 // Other Cities7568 iOldFood = GetFriendsOtherCityFoodBonus(ePlayer);7569 iNewFood = GetFriendsOtherCityFoodBonus(ePlayer, eNewEra);75707571 if(iOldFood != iNewFood)7572 {7573 bSomethingChanged = true;7574#if defined(MOD_BUGFIX_MINOR)7575 GET_PLAYER(ePlayer).ChangeCityYieldChangeTimes100(YIELD_FOOD, iNewFood - iOldFood);7576#else7577 GET_PLAYER(ePlayer).ChangeCityYieldChange(YIELD_FOOD, iNewFood - iOldFood);7578#endif7579 }7580 }75817582 // Allies7583 if(IsAllies(ePlayer))7584 {7585 int iOldFood, iNewFood;75867587 // Capital7588 iOldFood = GetAlliesCapitalFoodBonus(ePlayer);7589 iNewFood = GetAlliesCapitalFoodBonus(ePlayer);75907591 if(iOldFood != iNewFood)7592 {7593 bSomethingChanged = true;7594#if defined(MOD_BUGFIX_MINOR)7595 GET_PLAYER(ePlayer).ChangeCapitalYieldChangeTimes100(YIELD_FOOD, iNewFood - iOldFood);7596#else7597 GET_PLAYER(ePlayer).ChangeCapitalYieldChange(YIELD_FOOD, iNewFood - iOldFood);7598#endif7599 }76007601 // Other Cities7602 iOldFood = GetAlliesOtherCityFoodBonus(ePlayer);7603 iNewFood = GetAlliesOtherCityFoodBonus(ePlayer);76047605 if(iOldFood != iNewFood)7606 {7607 bSomethingChanged = true;7608#if defined(MOD_BUGFIX_MINOR)7609 GET_PLAYER(ePlayer).ChangeCityYieldChangeTimes100(YIELD_FOOD, iNewFood - iOldFood);7610#else7611 GET_PLAYER(ePlayer).ChangeCityYieldChange(YIELD_FOOD, iNewFood - iOldFood);7612#endif7613 }7614 }7615 }76167617 // CULTURED7618 else if(eTrait == MINOR_CIV_TRAIT_CULTURED)7619 {7620 // Friends7621 if(IsFriends(ePlayer))7622 {7623 int iOldCulture = GetCultureFlatFriendshipBonus(ePlayer) + GetCulturePerBuildingFriendshipBonus(ePlayer);7624 int iNewCulture = GetCultureFlatFriendshipBonus(ePlayer, eNewEra) + GetCulturePerBuildingFriendshipBonus(ePlayer, eNewEra);76257626 if(iOldCulture != iNewCulture)7627 {7628 bSomethingChanged = true;7629 }7630 }76317632 // Allies7633 if(IsAllies(ePlayer))7634 {7635 int iOldCulture = GetCultureFlatAlliesBonus(ePlayer) + GetCulturePerBuildingAlliesBonus(ePlayer);7636 int iNewCulture = GetCultureFlatAlliesBonus(ePlayer, eNewEra) + GetCulturePerBuildingAlliesBonus(ePlayer, eNewEra);76377638 if(iOldCulture != iNewCulture)7639 {7640 bSomethingChanged = true;7641 }7642 }7643 }76447645 // MERCANTILE7646 else if(eTrait == MINOR_CIV_TRAIT_MERCANTILE)7647 {7648 // Friends7649 if(IsFriends(ePlayer))7650 {7651 int iOldHappiness, iNewHappiness;76527653 iOldHappiness = GetHappinessFlatFriendshipBonus(ePlayer) + GetHappinessPerLuxuryFriendshipBonus(ePlayer);7654 iNewHappiness = GetHappinessFlatFriendshipBonus(ePlayer, eNewEra) + GetHappinessPerLuxuryFriendshipBonus(ePlayer, eNewEra);76557656 if(iOldHappiness != iNewHappiness)7657 {7658 bSomethingChanged = true;7659 GET_PLAYER(ePlayer).DoUpdateHappiness();7660 }7661 }76627663 // Allies7664 if(IsAllies(ePlayer))7665 {7666 int iOldHappiness, iNewHappiness;76677668 iOldHappiness = GetHappinessFlatAlliesBonus(ePlayer) + GetHappinessPerLuxuryAlliesBonus(ePlayer);7669 iNewHappiness = GetHappinessFlatAlliesBonus(ePlayer, eNewEra) + GetHappinessPerLuxuryAlliesBonus(ePlayer, eNewEra);76707671 if(iOldHappiness != iNewHappiness)7672 {7673 bSomethingChanged = true;7674 GET_PLAYER(ePlayer).DoUpdateHappiness();7675 }7676 }7677 }76787679 // RELIGIOUS7680 else if(eTrait == MINOR_CIV_TRAIT_RELIGIOUS)7681 {7682 // Friends7683 if(IsFriends(ePlayer))7684 {7685 int iOldFaith = GetFaithFlatFriendshipBonus(ePlayer);7686 int iNewFaith = GetFaithFlatFriendshipBonus(ePlayer, eNewEra);76877688 if(iOldFaith != iNewFaith)7689 {7690 bSomethingChanged = true;7691 }7692 }76937694 // Allies7695 if(IsAllies(ePlayer))7696 {7697 int iOldFaith = GetFaithFlatAlliesBonus(ePlayer);7698 int iNewFaith = GetFaithFlatAlliesBonus(ePlayer, eNewEra);76997700 if(iOldFaith != iNewFaith)7701 {7702 bSomethingChanged = true;7703 }7704 }7705 }77067707 return bSomethingChanged;7708}