CvDiplomacyAI::DoMinorCivCompetitionStatement(PlayerTypes, DiploStatementTypes &, int &, bool)
- Defined in
- CvDiplomacyAI.cpp, line 15194
- Class
- CvDiplomacyAI
- Hook name
CivHooks::CvDiplomacyAI_DoMinorCivCompetitionStatement
Hooks
static bool BeforeCvDiplomacyAI_DoMinorCivCompetitionStatement(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement, int& iData1, bool bIgnoreTurnsBetweenLimit);static void AfterCvDiplomacyAI_DoMinorCivCompetitionStatement(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement, int& iData1, bool bIgnoreTurnsBetweenLimit);static void ReplaceCvDiplomacyAI_DoMinorCivCompetitionStatement(void (*original)(CvDiplomacyAI*, PlayerTypes, DiploStatementTypes&, int&, bool), CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement, int& iData1, bool bIgnoreTurnsBetweenLimit);CivRegisterBefore<CivHooks::CvDiplomacyAI_DoMinorCivCompetitionStatement>(host, &BeforeCvDiplomacyAI_DoMinorCivCompetitionStatement);CivRegisterAfter<CivHooks::CvDiplomacyAI_DoMinorCivCompetitionStatement>(host, &AfterCvDiplomacyAI_DoMinorCivCompetitionStatement);CivRegisterReplace<CivHooks::CvDiplomacyAI_DoMinorCivCompetitionStatement>(host, &ReplaceCvDiplomacyAI_DoMinorCivCompetitionStatement);
Code
15193/// Possible Contact Statement15194void CvDiplomacyAI::DoMinorCivCompetitionStatement(PlayerTypes ePlayer, DiploStatementTypes& eStatement, int& iData1, bool bIgnoreTurnsBetweenLimit)15195{15196 CvAssertMsg(ePlayer >= 0, "DIPLOMACY_AI: Invalid Player Index. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");15197 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.");1519815199 if(eStatement == NO_DIPLO_STATEMENT_TYPE)15200 {15201 if(GetMinorCivDisputeLevel(ePlayer) >= DISPUTE_LEVEL_STRONG)15202 {15203 DiploStatementTypes eTempStatement = DIPLO_STATEMENT_MINOR_CIV_COMPETITION;15204 int iTurnsBetweenStatements = MAX_TURNS_SAFE_ESTIMATE;1520515206 if(GetNumTurnsSinceStatementSent(ePlayer, eTempStatement) >= iTurnsBetweenStatements || bIgnoreTurnsBetweenLimit)15207 {15208 // Find a city state we're upset over15209 PlayerTypes eMinor;15210 for(int iMinorLoop = MAX_MAJOR_CIVS; iMinorLoop < MAX_CIV_PLAYERS; iMinorLoop++)15211 {15212 eMinor = (PlayerTypes) iMinorLoop;1521315214 // We have a PtP with this minor15215 if(GET_PLAYER(eMinor).GetMinorCivAI()->IsProtectedByMajor(GetPlayer()->GetID()))15216 {15217 if(GET_PLAYER(eMinor).GetMinorCivAI()->IsAllies(ePlayer))15218 {15219 iData1 = eMinor;15220 break;15221 }15222 else if(GET_PLAYER(eMinor).GetMinorCivAI()->IsFriends(ePlayer))15223 {15224 iData1 = eMinor;15225 break;15226 }15227 }15228 }1522915230 // Don't change the statement unless we found a minor to complain about15231 if(iData1 != NO_PLAYER)15232 {15233 eStatement = eTempStatement;15234 }15235 }15236 }15237 }15238}
Calls
- CvDiplomacyAI::GetMinorCivDisputeLevel(PlayerTypes) const
- CvDiplomacyAI::GetNumTurnsSinceStatementSent(PlayerTypes, DiploStatementTypes)
- CvDiplomacyAI::GetPlayer()
- CvMinorCivAI::IsAllies(PlayerTypes) const
- CvMinorCivAI::IsFriends(PlayerTypes)
- CvMinorCivAI::IsProtectedByMajor(PlayerTypes) const
- CvPlayer::GetID() const
- CvPlayer::GetMinorCivAI() const
- CvPlayerAI::getPlayer(PlayerTypes)