Bazaar developer reference

CvDiplomacyAI::LogMajorCivApproachUpdate(PlayerTypes, const int *, MajorCivApproachTypes, MajorCivApproachTypes, WarFaceTypes)

Defined in
CvDiplomacyAI.cpp, line 25908
Class
CvDiplomacyAI
Hook name
CivHooks::CvDiplomacyAI_LogMajorCivApproachUpdate

Hooks

static bool BeforeCvDiplomacyAI_LogMajorCivApproachUpdate(CvDiplomacyAI* self, PlayerTypes ePlayer, const int* aiApproachValues, MajorCivApproachTypes eNewMajorCivApproach, MajorCivApproachTypes eOldApproach, WarFaceTypes eNewWarFace);static void AfterCvDiplomacyAI_LogMajorCivApproachUpdate(CvDiplomacyAI* self, PlayerTypes ePlayer, const int* aiApproachValues, MajorCivApproachTypes eNewMajorCivApproach, MajorCivApproachTypes eOldApproach, WarFaceTypes eNewWarFace);static void ReplaceCvDiplomacyAI_LogMajorCivApproachUpdate(void (*original)(CvDiplomacyAI*, PlayerTypes, const int*, MajorCivApproachTypes, MajorCivApproachTypes, WarFaceTypes), CvDiplomacyAI* self, PlayerTypes ePlayer, const int* aiApproachValues, MajorCivApproachTypes eNewMajorCivApproach, MajorCivApproachTypes eOldApproach, WarFaceTypes eNewWarFace);CivRegisterBefore<CivHooks::CvDiplomacyAI_LogMajorCivApproachUpdate>(host, &BeforeCvDiplomacyAI_LogMajorCivApproachUpdate);CivRegisterAfter<CivHooks::CvDiplomacyAI_LogMajorCivApproachUpdate>(host, &AfterCvDiplomacyAI_LogMajorCivApproachUpdate);CivRegisterReplace<CivHooks::CvDiplomacyAI_LogMajorCivApproachUpdate>(host, &ReplaceCvDiplomacyAI_LogMajorCivApproachUpdate);

Code

25907/// Log Major Civ Approach Update25908void CvDiplomacyAI::LogMajorCivApproachUpdate(PlayerTypes ePlayer, const int* aiApproachValues, MajorCivApproachTypes eNewMajorCivApproach, MajorCivApproachTypes eOldApproach, WarFaceTypes eNewWarFace)25909{25910	if(GC.getLogging() && GC.getAILogging())25911	{25912		CvString strOutBuf;25913		CvString strBaseString;25914		CvString strTemp;25915		CvString playerName;25916		CvString otherPlayerName;25917		CvString strDesc;25918		CvString strLogName;2591925920		// Find the name of this civ and city25921		playerName = GetPlayer()->getCivilizationShortDescription();2592225923		// Open the log file25924		if(GC.getPlayerAndCityAILogSplit())25925		{25926			strLogName = "DiplomacyAI_Approach_Log_" + playerName + ".csv";25927		}25928		else25929		{25930			strLogName = "DiplomacyAI_Approach_Log.csv";25931		}2593225933		FILogFile* pLog;25934		pLog = LOGFILEMGR.GetLog(strLogName, FILogFile::kDontTimeStamp);2593525936		// Get the leading info for this line25937		strBaseString.Format("%03d, ", GC.getGame().getElapsedGameTurns());25938		strBaseString += playerName;2593925940		otherPlayerName = GET_PLAYER(ePlayer).getCivilizationShortDescription();25941		strBaseString += ", " + otherPlayerName;2594225943		MajorCivApproachTypes eMajorCivApproach;2594425945		// Major Civs25946		if(!GET_PLAYER(ePlayer).isMinorCiv())25947		{25948			LogMajorCivApproach(strOutBuf, eNewMajorCivApproach, eNewWarFace);2594925950			if(eNewMajorCivApproach != eOldApproach)25951			{25952				LogMajorCivApproach(strOutBuf, eOldApproach, eNewWarFace);25953			}25954			else25955			{25956				strTemp.Format("---");25957				strOutBuf += ", " + strTemp;25958			}2595925960			LogOpinion(strOutBuf, ePlayer);2596125962			LogWarmongerThreat(strOutBuf, ePlayer);2596325964			LogMilitaryThreat(strOutBuf, ePlayer);2596525966			LogTargetValue(strOutBuf, ePlayer);2596725968			LogWarGoal(strOutBuf, ePlayer);2596925970			LogMilitaryAggressivePosture(strOutBuf, ePlayer);2597125972			LogProximity(strOutBuf, ePlayer);2597325974			LogLandDispute(strOutBuf, ePlayer);2597525976			LogVictoryDispute(strOutBuf, ePlayer);2597725978			LogWonderDispute(strOutBuf, ePlayer);2597925980			LogMinorCivDispute(strOutBuf, ePlayer);2598125982			strTemp.Format("---");25983			strOutBuf += ", " + strTemp;2598425985			// Weights for each possible Approach25986			for(int iMajorCivApproachLoop = 0; iMajorCivApproachLoop < NUM_MAJOR_CIV_APPROACHES; iMajorCivApproachLoop++)25987			{25988				eMajorCivApproach = (MajorCivApproachTypes) iMajorCivApproachLoop;2598925990				switch(eMajorCivApproach)25991				{25992				case MAJOR_CIV_APPROACH_WAR:25993					strTemp.Format("War");25994					break;25995				case MAJOR_CIV_APPROACH_HOSTILE:25996					strTemp.Format("Hostile");25997					break;25998				case MAJOR_CIV_APPROACH_DECEPTIVE:25999					strTemp.Format("Deceptive");26000					break;26001				case MAJOR_CIV_APPROACH_GUARDED:26002					strTemp.Format("Guarded");26003					break;26004				case MAJOR_CIV_APPROACH_AFRAID:26005					strTemp.Format("Afraid");26006					break;26007				case MAJOR_CIV_APPROACH_FRIENDLY:26008					strTemp.Format("Friendly");26009					break;26010				case MAJOR_CIV_APPROACH_NEUTRAL:26011					strTemp.Format("Neutral");26012					break;26013				default:26014					strTemp.Format("XXX");26015					break;26016				}26017				strOutBuf += ", " + strTemp;2601826019				strTemp.Format("%d", aiApproachValues[eMajorCivApproach] / 100);26020				strOutBuf += ", " + strTemp;26021			}2602226023			strOutBuf = strBaseString + strOutBuf;26024			pLog->Msg(strOutBuf);26025		}26026	}26027}

Calls

Called by