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}