Hooks
static bool BeforeCvDiplomacyAI_DoKilledByPlayer(CvDiplomacyAI* self, PlayerTypes ePlayer);static void AfterCvDiplomacyAI_DoKilledByPlayer(CvDiplomacyAI* self, PlayerTypes ePlayer);static void ReplaceCvDiplomacyAI_DoKilledByPlayer(void (*original)(CvDiplomacyAI*, PlayerTypes), CvDiplomacyAI* self, PlayerTypes ePlayer);CivRegisterBefore<CivHooks::CvDiplomacyAI_DoKilledByPlayer>(host, &BeforeCvDiplomacyAI_DoKilledByPlayer);CivRegisterAfter<CivHooks::CvDiplomacyAI_DoKilledByPlayer>(host, &AfterCvDiplomacyAI_DoKilledByPlayer);CivRegisterReplace<CivHooks::CvDiplomacyAI_DoKilledByPlayer>(host, &ReplaceCvDiplomacyAI_DoKilledByPlayer);
Code
10520/// Player killed us10521void CvDiplomacyAI::DoKilledByPlayer(PlayerTypes ePlayer)10522{10523#if defined(MOD_AI_MP_DIPLOMACY)10524 bool bActivePlayer = (ePlayer == GC.getGame().getActivePlayer() && !GC.getGame().isNetworkMultiPlayer());10525 if (MOD_AI_MP_DIPLOMACY) bActivePlayer = CvPreGame::isHuman(ePlayer);10526 if(bActivePlayer) // JdH: just queue a request for humans10527#else10528 if(ePlayer == GC.getGame().getActivePlayer() && !GC.getGame().isNetworkMultiPlayer())10529#endif10530 {10531#if defined(MOD_DIPLOMACY_STFU)10532 DisplayAILeaderMessage(GetPlayer()->GetID(), DIPLO_UI_STATE_BLANK_DISCUSSION, DIPLO_MESSAGE_DEFEATED, LEADERHEAD_ANIM_DEFEATED);10533#else10534 const char* szText = GetDiploStringForMessage(DIPLO_MESSAGE_DEFEATED);10535#if defined(MOD_AI_MP_DIPLOMACY)10536 if (MOD_AI_MP_DIPLOMACY) {10537 CvDiplomacyRequests::SendRequest(GetPlayer()->GetID(), ePlayer, DIPLO_UI_STATE_BLANK_DISCUSSION, szText, LEADERHEAD_ANIM_DEFEATED);10538 } else {10539#endif10540 gDLL->GameplayDiplomacyAILeaderMessage(GetPlayer()->GetID(), DIPLO_UI_STATE_BLANK_DISCUSSION, szText, LEADERHEAD_ANIM_DEFEATED);10541#if defined(MOD_AI_MP_DIPLOMACY)10542 }10543#endif10544#endif1054510546#if !defined(NO_ACHIEVEMENTS)10547 if(!GC.getGame().isGameMultiPlayer())10548 {10549 gDLL->UnlockAchievement(ACHIEVEMENT_DESTROY_CIV);1055010551 CvAchievementUnlocker::AlexanderConquest(ePlayer);10552 }10553#endif10554 }10555}