Hooks
static bool BeforeCvDiplomacyAI_DoPlayerKilledSomeone(CvDiplomacyAI* self, PlayerTypes ePlayer, PlayerTypes eDeadPlayer);static void AfterCvDiplomacyAI_DoPlayerKilledSomeone(CvDiplomacyAI* self, PlayerTypes ePlayer, PlayerTypes eDeadPlayer);static void ReplaceCvDiplomacyAI_DoPlayerKilledSomeone(void (*original)(CvDiplomacyAI*, PlayerTypes, PlayerTypes), CvDiplomacyAI* self, PlayerTypes ePlayer, PlayerTypes eDeadPlayer);CivRegisterBefore<CivHooks::CvDiplomacyAI_DoPlayerKilledSomeone>(host, &BeforeCvDiplomacyAI_DoPlayerKilledSomeone);CivRegisterAfter<CivHooks::CvDiplomacyAI_DoPlayerKilledSomeone>(host, &AfterCvDiplomacyAI_DoPlayerKilledSomeone);CivRegisterReplace<CivHooks::CvDiplomacyAI_DoPlayerKilledSomeone>(host, &ReplaceCvDiplomacyAI_DoPlayerKilledSomeone);
Code
9820/// ePlayer killed eDeadPlayer, so figure out what that means9821void CvDiplomacyAI::DoPlayerKilledSomeone(PlayerTypes ePlayer, PlayerTypes eDeadPlayer)9822{9823 CvAssertMsg(ePlayer >= 0, "DIPLOMACY_AI: Invalid Player Index. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");9824 CvAssertMsg(ePlayer < MAX_CIV_PLAYERS, "DIPLOMACY_AI: Invalid Player Index. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");9825 CvAssertMsg(eDeadPlayer >= 0, "DIPLOMACY_AI: Invalid Player Index. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");9826 CvAssertMsg(eDeadPlayer < MAX_CIV_PLAYERS, "DIPLOMACY_AI: Invalid Player Index. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");98279828 if(IsPlayerValid(ePlayer))9829 {9830 // Minor Civ9831 if(GET_PLAYER(eDeadPlayer).isMinorCiv())9832 {9833 ChangeOtherPlayerNumMinorsConquered(ePlayer, 1);98349835 // Did they kill a Minor we're protecting?9836 if(GET_PLAYER(eDeadPlayer).GetMinorCivAI()->IsProtectedByMajor(GetPlayer()->GetID()))9837 {9838 SetOtherPlayerTurnsSinceKilledProtectedMinor(ePlayer, 0);9839 SetOtherPlayerProtectedMinorKilled(ePlayer, eDeadPlayer);9840 ChangeOtherPlayerNumProtectedMinorsKilled(ePlayer, 1);98419842 // Player broke a promise that he wasn't going to kill the Minor9843 if(IsPlayerMadeAttackCityStatePromise(ePlayer))9844 SetPlayerBrokenAttackCityStatePromise(ePlayer, true);9845 }9846 }9847 // Major Civ9848 else9849 ChangeOtherPlayerNumMajorsConquered(ePlayer, 1);9850 }9851}