Bazaar developer reference

CvMinorCivAI::DoTurnStatus()

Defined in
CvMinorCivAI.cpp, line 2971
Class
CvMinorCivAI
Hook name
CivHooks::CvMinorCivAI_DoTurnStatus

Hooks

static bool BeforeCvMinorCivAI_DoTurnStatus(CvMinorCivAI* self);static void AfterCvMinorCivAI_DoTurnStatus(CvMinorCivAI* self);static void ReplaceCvMinorCivAI_DoTurnStatus(void (*original)(CvMinorCivAI*), CvMinorCivAI* self);CivRegisterBefore<CivHooks::CvMinorCivAI_DoTurnStatus>(host, &BeforeCvMinorCivAI_DoTurnStatus);CivRegisterAfter<CivHooks::CvMinorCivAI_DoTurnStatus>(host, &AfterCvMinorCivAI_DoTurnStatus);CivRegisterReplace<CivHooks::CvMinorCivAI_DoTurnStatus>(host, &ReplaceCvMinorCivAI_DoTurnStatus);

Code

2970/// Update what our status is2971void CvMinorCivAI::DoTurnStatus()2972{2973	int iWeight = 0;29742975	PlayerProximityTypes eProximity;29762977	CvPlayer* pPlayer;2978	CvTeam* pTeam;2979	PlayerTypes ePlayer;2980	for(int iPlayerLoop = 0; iPlayerLoop < MAX_MAJOR_CIVS; iPlayerLoop++)2981	{2982		ePlayer = (PlayerTypes) iPlayerLoop;2983		pPlayer = &GET_PLAYER(ePlayer);2984		pTeam = &GET_TEAM(pPlayer->getTeam());29852986		eProximity = pPlayer->GetProximityToPlayer(GetPlayer()->GetID());29872988		// Check how close the player is2989		switch(eProximity)2990		{2991			// DISTANT: Elevated if we're at war2992		case PLAYER_PROXIMITY_DISTANT:2993			break;2994// 			if (IsAtWarWithPlayersTeam(ePlayer))2995// 			{2996// 				iWeight += 10;2997// 			}29982999			// FAR: Elevated if they're an aggressor OR we're at war (note the ELSE IF)3000		case PLAYER_PROXIMITY_FAR:3001			break;3002// 			if (pTeam->IsMinorCivAggressor())3003// 			{3004// 				iWeight += 10;3005// 			}3006// 			else if (IsAtWarWithPlayersTeam(ePlayer))3007// 			{3008// 				iWeight += 10;3009// 			}30103011			// CLOSE: Elevated if they're an aggressor, critical if we're at war3012		case PLAYER_PROXIMITY_CLOSE:3013			if(pTeam->IsMinorCivAggressor())3014			{3015				iWeight += 10;3016			}3017			if(pTeam->IsMinorCivWarmonger())3018			{3019				iWeight += 20;3020			}3021			break;30223023			// NEIGHBORS: Pretty much anything makes the situation critical3024		case PLAYER_PROXIMITY_NEIGHBORS:3025			if(pTeam->IsMinorCivAggressor())3026			{3027				iWeight += 20;3028			}3029			if(IsAtWarWithPlayersTeam(ePlayer))3030			{3031				iWeight += 20;3032			}3033			break;3034		default:3035			break;3036		}3037	}30383039	// Do the final math3040	if(iWeight >= 20)3041	{3042		m_eStatus = MINOR_CIV_STATUS_CRITICAL;3043	}3044	else if(iWeight >= 10)3045	{3046		m_eStatus = MINOR_CIV_STATUS_ELEVATED;3047	}3048	else3049	{3050		m_eStatus = MINOR_CIV_STATUS_NORMAL;3051	}3052}

Calls

Called by