CvDiplomacyAI::DoAttackedCityStateStatement(PlayerTypes, DiploStatementTypes &, int &)
- Defined in
- CvDiplomacyAI.cpp, line 13879
- Class
- CvDiplomacyAI
- Hook name
CivHooks::CvDiplomacyAI_DoAttackedCityStateStatement
Hooks
static bool BeforeCvDiplomacyAI_DoAttackedCityStateStatement(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement, int& iData1);static void AfterCvDiplomacyAI_DoAttackedCityStateStatement(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement, int& iData1);static void ReplaceCvDiplomacyAI_DoAttackedCityStateStatement(void (*original)(CvDiplomacyAI*, PlayerTypes, DiploStatementTypes&, int&), CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement, int& iData1);CivRegisterBefore<CivHooks::CvDiplomacyAI_DoAttackedCityStateStatement>(host, &BeforeCvDiplomacyAI_DoAttackedCityStateStatement);CivRegisterAfter<CivHooks::CvDiplomacyAI_DoAttackedCityStateStatement>(host, &AfterCvDiplomacyAI_DoAttackedCityStateStatement);CivRegisterReplace<CivHooks::CvDiplomacyAI_DoAttackedCityStateStatement>(host, &ReplaceCvDiplomacyAI_DoAttackedCityStateStatement);
Code
13878/// Possible Contact Statement13879void CvDiplomacyAI::DoAttackedCityStateStatement(PlayerTypes ePlayer, DiploStatementTypes& eStatement, int& iData1)13880{13881 CvAssertMsg(ePlayer >= 0, "DIPLOMACY_AI: Invalid Player Index. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");13882 CvAssertMsg(ePlayer < MAX_MAJOR_CIVS, "DIPLOMACY_AI: Invalid Player Index. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");1388313884 // Attacked a City State we're protective towards13885 if(eStatement == NO_DIPLO_STATEMENT_TYPE)13886 {13887 if(GetTurnsSincePlayerAttackedProtectedMinor(ePlayer) == 0)13888 {13889 DiploStatementTypes eTempStatement = DIPLO_STATEMENT_ATTACKED_PROTECTED_CITY_STATE;13890 int iTurnsBetweenStatements = 1;1389113892 if(GetNumTurnsSinceStatementSent(ePlayer, eTempStatement) >= iTurnsBetweenStatements)13893 {13894 PlayerTypes eMinorCiv = GetOtherPlayerProtectedMinorAttacked(ePlayer);13895 if(eMinorCiv != NO_PLAYER)13896 {13897 CvAssert(eMinorCiv >= MAX_MAJOR_CIVS);13898 CvAssert(eMinorCiv < MAX_CIV_PLAYERS);13899 // Minor civ must still be alive!13900 if(GET_PLAYER(eMinorCiv).isAlive())13901 { 13902 eStatement = eTempStatement;13903 iData1 = eMinorCiv;13904 }13905 }13906 }13907 }13908 }13909}