Bazaar developer reference

CvPlayer::SetProximityToPlayer(PlayerTypes, PlayerProximityTypes)

Defined in
CvPlayer.cpp, line 19104
Class
CvPlayer
Hook name
CivHooks::CvPlayer_SetProximityToPlayer

Hooks

static bool BeforeCvPlayer_SetProximityToPlayer(CvPlayer* self, PlayerTypes ePlayer, PlayerProximityTypes eProximity);static void AfterCvPlayer_SetProximityToPlayer(CvPlayer* self, PlayerTypes ePlayer, PlayerProximityTypes eProximity);static void ReplaceCvPlayer_SetProximityToPlayer(void (*original)(CvPlayer*, PlayerTypes, PlayerProximityTypes), CvPlayer* self, PlayerTypes ePlayer, PlayerProximityTypes eProximity);CivRegisterBefore<CivHooks::CvPlayer_SetProximityToPlayer>(host, &BeforeCvPlayer_SetProximityToPlayer);CivRegisterAfter<CivHooks::CvPlayer_SetProximityToPlayer>(host, &AfterCvPlayer_SetProximityToPlayer);CivRegisterReplace<CivHooks::CvPlayer_SetProximityToPlayer>(host, &ReplaceCvPlayer_SetProximityToPlayer);

Code

19103/// Sets how "close" we are to another player (useful for diplomacy, war planning, etc.)19104void CvPlayer::SetProximityToPlayer(PlayerTypes ePlayer, PlayerProximityTypes eProximity)19105{19106	CvAssertMsg(ePlayer >= 0, "eIndex is expected to be non-negative (invalid Index)");19107	CvAssertMsg(ePlayer < MAX_PLAYERS, "eIndex is expected to be within maximum bounds (invalid Index)");1910819109	CvAssertMsg(GetID() != ePlayer, "Trying to calculate proximity to oneself. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");1911019111	CvAssertMsg(eProximity >= NO_PLAYER_PROXIMITY, "eIndex is expected to be non-negative (invalid Index)");	// NO_PLAYER_PROXIMITY is valid because some players may have no Cities (e.g. on the first turn)19112	CvAssertMsg(eProximity < NUM_PLAYER_PROXIMITIES, "eIndex is expected to be within maximum bounds (invalid Index)");1911319114	if((GC.getLogging() && GC.getAILogging()))19115	{19116		if(eProximity != m_aiProximityToPlayer[ePlayer])19117		{19118			// Open the log file19119			CvString strFileName = "PlayerProximityLog.csv";19120			FILogFile* pLog;19121			pLog = LOGFILEMGR.GetLog(strFileName, FILogFile::kDontTimeStamp);19122			CvString strLog, strTemp;1912319124			CvString strPlayerName;19125			strPlayerName = getCivilizationShortDescription();19126			strLog += strPlayerName;19127			strLog += ",";1912819129			strTemp.Format("%d,", GC.getGame().getGameTurn()); // turn19130			strLog += strTemp;19131			CvString strOtherPlayerName;19132			strOtherPlayerName = GET_PLAYER(ePlayer).getCivilizationShortDescription();19133			strLog += strOtherPlayerName;19134			strLog += ",";1913519136			switch(m_aiProximityToPlayer[ePlayer])19137			{19138			case NO_PLAYER_PROXIMITY:19139				strLog += "No player proximity,";19140				break;19141			case PLAYER_PROXIMITY_NEIGHBORS:19142				strLog += "Neighbors,";19143				break;19144			case PLAYER_PROXIMITY_CLOSE:19145				strLog += "Close,";19146				break;19147			case PLAYER_PROXIMITY_FAR:19148				strLog += "Far,";19149				break;19150			case PLAYER_PROXIMITY_DISTANT:19151				strLog += "Distant,";19152				break;19153			}1915419155			strLog += "-->,";1915619157			switch(eProximity)19158			{19159			case NO_PLAYER_PROXIMITY:19160				strLog += "No player proximity,";19161				break;19162			case PLAYER_PROXIMITY_NEIGHBORS:19163				strLog += "Neighbors,";19164				break;19165			case PLAYER_PROXIMITY_CLOSE:19166				strLog += "Close,";19167				break;19168			case PLAYER_PROXIMITY_FAR:19169				strLog += "Far,";19170				break;19171			case PLAYER_PROXIMITY_DISTANT:19172				strLog += "Distant,";19173				break;19174			}1917519176			pLog->Msg(strLog);19177		}19178	}1917919180	m_aiProximityToPlayer.setAt(ePlayer, eProximity);19181}

Calls

Called by