Bazaar developer reference

CvDiplomacyAI::Init(CvPlayer *)

Defined in
CvDiplomacyAI.cpp, line 373
Class
CvDiplomacyAI
Hook name
CivHooks::CvDiplomacyAI_Init

Hooks

static bool BeforeCvDiplomacyAI_Init(CvDiplomacyAI* self, CvPlayer* pPlayer);static void AfterCvDiplomacyAI_Init(CvDiplomacyAI* self, CvPlayer* pPlayer);static void ReplaceCvDiplomacyAI_Init(void (*original)(CvDiplomacyAI*, CvPlayer*), CvDiplomacyAI* self, CvPlayer* pPlayer);CivRegisterBefore<CivHooks::CvDiplomacyAI_Init>(host, &BeforeCvDiplomacyAI_Init);CivRegisterAfter<CivHooks::CvDiplomacyAI_Init>(host, &AfterCvDiplomacyAI_Init);CivRegisterReplace<CivHooks::CvDiplomacyAI_Init>(host, &ReplaceCvDiplomacyAI_Init);

Code

372/// Initialize373void CvDiplomacyAI::Init(CvPlayer* pPlayer)374{375	// Store off the pointer to the Player active for this game376	m_pPlayer = pPlayer;377378	CvAssertMsg(!m_pDiploData, "MEMORY LEAK, CvDiplomacyAI::m_pDiploData");379	m_pDiploData = FNEW(DiplomacyAIData, c_eCiv5GameplayDLL, 0);380381	//Init array pointers382	m_paDiploLogStatementTurnCountScratchPad = &m_pDiploData->m_aDiploLogStatementTurnCountScratchPad[0];383	m_paeMajorCivOpinion = &m_pDiploData->m_aiMajorCivOpinion[0];384	m_paeMajorCivApproach = &m_pDiploData->m_aeMajorCivApproach[0];385	m_paeApproachScratchPad = &m_pDiploData->m_aeApproachScratchPad[0];386	m_paeMinorCivApproach = &m_pDiploData->m_aeMinorCivApproach[0];387	m_paeApproachTowardsUsGuess = &m_pDiploData->m_aeApproachTowardsUsGuess[0];388	m_paeApproachTowardsUsGuessCounter = &m_pDiploData->m_aeApproachTowardsUsGuessCounter[0];389	m_paeWantPeaceCounter = &m_pDiploData->m_aeWantPeaceCounter[0];390	m_paePeaceTreatyWillingToOffer = &m_pDiploData->m_aePeaceTreatyWillingToOffer[0];391	m_paePeaceTreatyWillingToAccept = &m_pDiploData->m_aePeaceTreatyWillingToAccept[0];392	m_paiNumWondersBeatenTo = &m_pDiploData->m_aiNumWondersBeatenTo[0];393	m_pabMusteringForAttack = &m_pDiploData->m_abMusteringForAttack[0];394	m_pabWantsResearchAgreementWithPlayer = &m_pDiploData->m_abWantsResearchAgreementWithPlayer[0];395	m_pabWantToRouteToMinor = &m_pDiploData->m_abWantToRouteToMinor[0];396	m_paeWarFace = &m_pDiploData->m_aeWarFace[0];397	m_paeWarState = &m_pDiploData->m_aeWarState[0];398	m_paeWarProjection = &m_pDiploData->m_aeWarProjection[0];399	m_paeLastWarProjection = &m_pDiploData->m_aeLastWarProjection[0];400	m_paeWarGoal = &m_pDiploData->m_aeWarGoal[0];401	m_paiPlayerNumTurnsAtWar = &m_pDiploData->m_aiPlayerNumTurnsAtWar[0];402	m_paiNumWarsFought = &m_pDiploData->m_aiNumWarsFought[0];403	m_paePlayerMilitaryStrengthComparedToUs = &m_pDiploData->m_aePlayerMilitaryStrengthComparedToUs[0];404	m_paePlayerEconomicStrengthComparedToUs = &m_pDiploData->m_aePlayerEconomicStrengthComparedToUs[0];405	m_paePlayerTargetValue = &m_pDiploData->m_aePlayerTargetValue[0];406	m_paePlayerLandDisputeLevel = &m_pDiploData->m_aePlayerLandDisputeLevel[0];407	m_paePlayerLastTurnLandDisputeLevel = &m_pDiploData->m_aePlayerLastTurnLandDisputeLevel[0];408	m_paePlayerVictoryDisputeLevel = &m_pDiploData->m_aePlayerVictoryDisputeLevel[0];409	m_paePlayerWonderDisputeLevel = &m_pDiploData->m_aePlayerWonderDisputeLevel[0];410	m_paePlayerMinorCivDisputeLevel = &m_pDiploData->m_aePlayerMinorCivDisputeLevel[0];411	m_paeMilitaryAggressivePosture = &m_pDiploData->m_aeMilitaryAggressivePosture[0];412	m_paeLastTurnMilitaryAggressivePosture = &m_pDiploData->m_aeLastTurnMilitaryAggressivePosture[0];413	m_paeExpansionAggressivePosture = &m_pDiploData->m_aeExpansionAggressivePosture[0];414	m_paePlotBuyingAggressivePosture = &m_pDiploData->m_aePlotBuyingAggressivePosture[0];415	m_paeMilitaryThreat = &m_pDiploData->m_aeMilitaryThreat[0];416	m_paeWarDamageLevel = &m_pDiploData->m_aeWarDamageLevel[0];417	m_paiWarValueLost = &m_pDiploData->m_aiWarValueLost[0];418	m_paeWarmongerThreat = &m_pDiploData->m_aeWarmongerThreat[0];419	m_paiPersonalityMajorCivApproachBiases = &m_pDiploData->m_aiPersonalityMajorCivApproachBiases[0];420	m_paiPersonalityMinorCivApproachBiases = &m_pDiploData->m_aiPersonalityMinorCivApproachBiases[0];421	m_paDeclarationsLog = &m_pDiploData->m_aDeclarationsLog[0];422423	// Things a player has told the AI424425	m_pabPlayerNoSettleRequestAccepted = &m_pDiploData->m_abPlayerNoSettleRequest[0];426	m_paiPlayerNoSettleRequestCounter = &m_pDiploData->m_aiPlayerNoSettleRequestCounter[0];427428	m_pabPlayerStopSpyingRequestAccepted = &m_pDiploData->m_abPlayerStopSpyingRequest[0];429	m_paiPlayerStopSpyingRequestCounter = &m_pDiploData->m_aiPlayerStopSpyingRequestCounter[0];430431	m_paiDemandCounter = &m_pDiploData->m_aiDemandCounter[0];432	m_paiDemandTooSoonNumTurns = &m_pDiploData->m_aiDemandTooSoonNumTurns[0];433434	m_pabDoFAccepted = &m_pDiploData->m_abDoFAccepted[0];435	m_paiDoFCounter = &m_pDiploData->m_aiDoFCounter[0];436437	m_pabDenouncedPlayer = &m_pDiploData->m_abDenouncedPlayer[0];438	m_pabFriendDenouncedUs = &m_pDiploData->m_abFriendDenouncedUs[0];439	m_pabFriendDeclaredWarOnUs = &m_pDiploData->m_abFriendDeclaredWarOnUs[0];440	m_paiDenouncedPlayerCounter = &m_pDiploData->m_aiDenouncedPlayerCounter[0];441442	m_paiNumRequestsRefused = &m_pDiploData->m_aiNumRequestsRefused[0];443444	m_paiNumCiviliansReturnedToMe = &m_pDiploData->m_aiNumCiviliansReturnedToMe[0];445	m_paiNumLandmarksBuiltForMe = &m_pDiploData->m_aiNumLandmarksBuiltForMe[0];446	m_paiResurrectedOnTurn = &m_pDiploData->m_aiResurrectedOnTurn[0];447	m_paiNumTimesCultureBombed = &m_pDiploData->m_aiNumTimesCultureBombed[0];448449	m_paiNegativeReligiousConversionPoints = &m_pDiploData->m_paiNegativeReligiousConversionPoints[0];450451	m_paiNegativeArchaeologyPoints = &m_pDiploData->m_paiNegativeArchaeologyPoints[0];452453	m_paiNumTimesNuked = &m_pDiploData->m_aiNumTimesNuked[0];454	m_paiNumTimesRobbedBy = &m_pDiploData->m_aiNumTimesRobbedBy[0];455	m_paiNumTimesIntrigueSharedBy = &m_pDiploData->m_aiNumTimesIntrigueSharedBy[0];456457	m_paiBrokenExpansionPromiseValue = &m_pDiploData->m_aiBrokenExpansionPromiseValue[0];458	m_paiIgnoredExpansionPromiseValue = &m_pDiploData->m_aiIgnoredExpansionPromiseValue[0];459	m_paiBrokenBorderPromiseValue = &m_pDiploData->m_aiBrokenBorderPromiseValue[0];460	m_paiIgnoredBorderPromiseValue = &m_pDiploData->m_aiIgnoredBorderPromiseValue[0];461	m_paiDeclaredWarOnFriendValue = &m_pDiploData->m_aiDeclaredWarOnFriendValue[0];462	m_paiNumCitiesLiberated = &m_pDiploData->m_aiNumCitiesLiberated[0];463	m_paiTradeValue = &m_pDiploData->m_aiTradeValue[0];464	m_paiCommonFoeValue = &m_pDiploData->m_aiCommonFoeValue[0];465	m_paiAssistValue = &m_pDiploData->m_aiAssistValue[0];466467	// Player's response to AI statements468469	m_pabPlayerMadeMilitaryPromise = &m_pDiploData->m_abPlayerMadeMilitaryPromise[0];470	m_pabPlayerBrokenMilitaryPromise = &m_pDiploData->m_abPlayerBrokenMilitaryPromise[0];471	m_pabPlayerIgnoredMilitaryPromise = &m_pDiploData->m_abPlayerIgnoredMilitaryPromise[0];472	m_paiPlayerMilitaryPromiseCounter = &m_pDiploData->m_aiPlayerMilitaryPromiseCounter[0];473474	m_paiPlayerMadeExpansionPromiseTurn = &m_pDiploData->m_aiPlayerMadeExpansionPromiseTurn[0];475	m_pabPlayerBrokenExpansionPromise = &m_pDiploData->m_abPlayerBrokenExpansionPromise[0];476	m_pabPlayerIgnoredExpansionPromise = &m_pDiploData->m_abPlayerIgnoredExpansionPromise[0];477	m_paePlayerExpansionPromiseData = &m_pDiploData->m_aePlayerExpansionPromiseData[0];478479	m_paiPlayerMadeBorderPromiseTurn = &m_pDiploData->m_aiPlayerMadeBorderPromiseTurn[0];480	m_pabPlayerBrokenBorderPromise = &m_pDiploData->m_abPlayerBrokenBorderPromise[0];481	m_pabPlayerIgnoredBorderPromise = &m_pDiploData->m_abPlayerIgnoredBorderPromise[0];482	m_paePlayerBorderPromiseData = &m_pDiploData->m_aePlayerBorderPromiseData[0];483484	m_pabPlayerMadeAttackCityStatePromise = &m_pDiploData->m_abPlayerMadeAttackCityStatePromise[0];485	m_pabPlayerBrokenAttackCityStatePromise = &m_pDiploData->m_abPlayerBrokenAttackCityStatePromise[0];486	m_pabPlayerIgnoredAttackCityStatePromise = &m_pDiploData->m_abPlayerIgnoredAttackCityStatePromise[0];487488	m_pabPlayerMadeBullyCityStatePromise = &m_pDiploData->m_abPlayerMadeBullyCityStatePromise[0];489	m_pabPlayerBrokenBullyCityStatePromise = &m_pDiploData->m_abPlayerBrokenBullyCityStatePromise[0];490	m_pabPlayerIgnoredBullyCityStatePromise = &m_pDiploData->m_abPlayerIgnoredBullyCityStatePromise[0];491492	m_pabPlayerMadeSpyPromise = &m_pDiploData->m_abPlayerMadeSpyPromise[0];493	m_pabPlayerBrokenSpyPromise = &m_pDiploData->m_abPlayerBrokenSpyPromise[0];494	m_pabPlayerIgnoredSpyPromise = &m_pDiploData->m_abPlayerIgnoredSpyPromise[0];495496	m_pabPlayerForgaveForSpying = &m_pDiploData->m_abPlayerForgaveForSpying[0];497498	m_pabPlayerMadeNoConvertPromise = &m_pDiploData->m_abPlayerMadeNoConvertPromise[0];499	m_pabPlayerBrokenNoConvertPromise = &m_pDiploData->m_abPlayerBrokenNoConvertPromise[0];500	m_pabPlayerIgnoredNoConvertPromise = &m_pDiploData->m_abPlayerIgnoredNoConvertPromise[0];501502	m_pabPlayerAskedNotToConvert = &m_pDiploData->m_abPlayerAskedNotToConvert[0];503	m_pabPlayerAgreedNotToConvert = &m_pDiploData->m_abPlayerAgreedNotToConvert[0];504505	m_pabPlayerMadeNoDiggingPromise = &m_pDiploData->m_abPlayerMadeNoDiggingPromise[0];506	m_pabPlayerBrokenNoDiggingPromise = &m_pDiploData->m_abPlayerBrokenNoDiggingPromise[0];507	m_pabPlayerIgnoredNoDiggingPromise = &m_pDiploData->m_abPlayerIgnoredNoDiggingPromise[0];508509	m_pabPlayerAskedNotToDig = &m_pDiploData->m_abPlayerAskedNotToDig[0];510	m_pabPlayerAgreedNotToDig = &m_pDiploData->m_abPlayerAgreedNotToDig[0];511512	m_pabPlayerBrokenCoopWarPromise = &m_pDiploData->m_abPlayerBrokenCoopWarPromise[0];513514	// Evaluation of Other Players' Tendencies515	m_paiOtherPlayerTurnsSinceAttackedProtectedMinor = &m_pDiploData->m_aiOtherPlayerTurnsSinceAttackedProtectedMinor[0];516	m_paiOtherPlayerProtectedMinorAttacked = &m_pDiploData->m_aiOtherPlayerProtectedMinorAttacked[0];517	m_paiOtherPlayerNumProtectedMinorsAttacked = &m_pDiploData->m_aiOtherPlayerNumProtectedMinorsAttacked[0];518	m_paiOtherPlayerTurnsSinceKilledProtectedMinor = &m_pDiploData->m_aiOtherPlayerTurnsSinceKilledProtectedMinor[0];519	m_paiOtherPlayerProtectedMinorKilled = &m_pDiploData->m_aiOtherPlayerProtectedMinorKilled[0];520	m_paiOtherPlayerNumProtectedMinorsKilled = &m_pDiploData->m_aiOtherPlayerNumProtectedMinorsKilled[0];521	m_paiOtherPlayerNumProtectedMinorsBullied = &m_pDiploData->m_aiOtherPlayerNumProtectedMinorsBullied[0];522	m_paiOtherPlayerTurnsSinceSidedWithTheirProtectedMinor = &m_pDiploData->m_aiOtherPlayerTurnsSinceSidedWithTheirProtectedMinor[0];523	m_paiOtherPlayerNumMinorsAttacked = &m_pDiploData->m_aiOtherPlayerNumMinorsAttacked[0];524	m_paiOtherPlayerNumMinorsConquered = &m_pDiploData->m_aiOtherPlayerNumMinorsConquered[0];525	m_paiOtherPlayerNumMajorsAttacked = &m_pDiploData->m_aiOtherPlayerNumMajorsAttacked[0];526	m_paiOtherPlayerNumMajorsConquered = &m_pDiploData->m_aiOtherPlayerNumMajorsConquered[0];527#if defined(MOD_API_EXTENSIONS)528	m_paiOtherPlayerWarmongerAmountTimes100 = &m_pDiploData->m_aiOtherPlayerWarmongerAmountTimes100[0];529#else530	m_paiOtherPlayerWarmongerAmount = &m_pDiploData->m_aiOtherPlayerWarmongerAmount[0];531#endif532533	m_paiOtherPlayerTurnsSinceWeLikedTheirProposal = &m_pDiploData->m_aiOtherPlayerTurnsSinceWeLikedTheirProposal[0];534	m_paiOtherPlayerTurnsSinceWeDislikedTheirProposal = &m_pDiploData->m_aiOtherPlayerTurnsSinceWeDislikedTheirProposal[0];535	m_paiOtherPlayerTurnsSinceTheySupportedOurProposal = &m_pDiploData->m_aiOtherPlayerTurnsSinceTheySupportedOurProposal[0];536	m_paiOtherPlayerTurnsSinceTheyFoiledOurProposal = &m_pDiploData->m_aiOtherPlayerTurnsSinceTheyFoiledOurProposal[0];537	m_paiOtherPlayerTurnsSinceTheySupportedOurHosting = &m_pDiploData->m_aiOtherPlayerTurnsSinceTheySupportedOurHosting[0];538539	//Init 2D array pointers540	int iI;541	m_ppaaeOtherPlayerMajorCivOpinion = &m_pDiploData->m_apaeOtherPlayerMajorCivOpinion[0];542	for(iI = 0; iI <MAX_MAJOR_CIVS; iI++)543	{544		m_ppaaeOtherPlayerMajorCivOpinion[iI] = &m_pDiploData->m_aaeOtherPlayerMajorCivOpinion[ MAX_MAJOR_CIVS * iI ];545	}546547	m_ppaaeOtherPlayerLandDisputeLevel = &m_pDiploData->m_apaeOtherPlayerLandDisputeLevel[0];548	for(iI = 0; iI <MAX_CIV_PLAYERS; iI++)549	{550		m_ppaaeOtherPlayerLandDisputeLevel[iI] = &m_pDiploData->m_aaeOtherPlayerLandDisputeLevel[ REALLY_MAX_PLAYERS * iI ];551	}552553	m_ppaaeOtherPlayerVictoryDisputeLevel = &m_pDiploData->m_apaeOtherPlayerVictoryDisputeLevel[0];554	for(iI = 0; iI <MAX_CIV_PLAYERS; iI++)555	{556		m_ppaaeOtherPlayerVictoryDisputeLevel[iI] = &m_pDiploData->m_aaeOtherPlayerVictoryDisputeLevel[ REALLY_MAX_PLAYERS * iI ];557	}558559	m_ppaaeOtherPlayerWarDamageLevel = &m_pDiploData->m_apaeOtherPlayerWarDamageLevel[0];560	for(iI = 0; iI <MAX_CIV_PLAYERS; iI++)561	{562		m_ppaaeOtherPlayerWarDamageLevel[iI] = &m_pDiploData->m_aaeOtherPlayerWarDamageLevel[REALLY_MAX_PLAYERS * iI];563	}564565	m_ppaaiOtherPlayerWarValueLost = &m_pDiploData->m_apaiOtherPlayerWarValueLost[0];566	for(iI = 0; iI < MAX_CIV_PLAYERS; iI++)567	{568		m_ppaaiOtherPlayerWarValueLost[iI] = &m_pDiploData->m_aaiOtherPlayerWarValueLost[REALLY_MAX_PLAYERS*iI];569	}570571	m_ppaaiOtherPlayerLastRoundWarValueLost = &m_pDiploData->m_apaiOtherPlayerLastRoundWarValueLost[0];572	for(iI = 0; iI < MAX_CIV_PLAYERS; iI++)573	{574		m_ppaaiOtherPlayerLastRoundWarValueLost[iI] = &m_pDiploData->m_aaiOtherPlayerLastRoundWarValueLost[REALLY_MAX_PLAYERS*iI];575	}576577	m_ppaabSentAttackMessageToMinorCivProtector = &m_pDiploData->m_apabSentAttackMessageToMinorCivProtector[0];578	for(iI = 0; iI < MAX_CIV_PLAYERS; iI++)579	{580		m_ppaabSentAttackMessageToMinorCivProtector[iI] = &m_pDiploData->m_aabSentAttackMessageToMinorCivProtector[REALLY_MAX_PLAYERS* iI];581	}582583	m_ppaaeOtherPlayerMilitaryThreat = &m_pDiploData->m_apaeOtherPlayerMilitaryThreat[0];584	for(iI = 0; iI < MAX_CIV_PLAYERS; iI++)585	{586		m_ppaaeOtherPlayerMilitaryThreat[iI] = &m_pDiploData->m_aaeOtherPlayerMilitaryThreat[REALLY_MAX_PLAYERS*iI];587	}588589	m_ppaDiploStatementsLog = &m_pDiploData->m_apaDiploStatementsLog[0];590	for(iI = 0; iI < MAX_MAJOR_CIVS; iI++)591	{592		m_ppaDiploStatementsLog[iI] = &m_pDiploData->m_aaDiploStatementsLog[iI * MAX_DIPLO_LOG_STATEMENTS];593	}594595	m_ppaabWorkingAgainstPlayerAccepted = &m_pDiploData->m_apabWorkingAgainstPlayerAccepted[0];596	for(iI = 0; iI < MAX_MAJOR_CIVS; iI++)597	{598		m_ppaabWorkingAgainstPlayerAccepted[iI] = &m_pDiploData->m_aabWorkingAgainstPlayerAccepted[iI * MAX_MAJOR_CIVS];599	}600601	m_ppaaiWorkingAgainstPlayerCounter = &m_pDiploData->m_apaiWorkingAgainstPlayerCounter[0];602	for(iI = 0; iI < MAX_MAJOR_CIVS; iI++)603	{604		m_ppaaiWorkingAgainstPlayerCounter[iI] = &m_pDiploData->m_aaiWorkingAgainstPlayerCounter[iI * MAX_MAJOR_CIVS];605	}606607	m_ppaacCoopWarAcceptedState = &m_pDiploData->m_apacCoopWarAcceptedState[0];608	for(iI = 0; iI < MAX_MAJOR_CIVS; iI++)609	{610		m_ppaacCoopWarAcceptedState[iI] = &m_pDiploData->m_aacCoopWarAcceptedState[iI * MAX_MAJOR_CIVS];611	}612613	m_ppaaiCoopWarCounter = &m_pDiploData->m_apaiCoopWarCounter[0];614	for(iI = 0; iI < MAX_MAJOR_CIVS; iI++)615	{616		m_ppaaiCoopWarCounter[iI] = &m_pDiploData->m_aaiCoopWarCounter[iI * MAX_MAJOR_CIVS];617	}618619	Reset();620}

Calls

Called by