Bazaar developer reference

CvDiplomacyAI::DeclareWar(PlayerTypes)

Defined in
CvDiplomacyAI.cpp, line 5724
Class
CvDiplomacyAI
Hook name
CivHooks::CvDiplomacyAI_DeclareWar

Hooks

static bool BeforeCvDiplomacyAI_DeclareWar(CvDiplomacyAI* self, PlayerTypes ePlayer);static void AfterCvDiplomacyAI_DeclareWar(CvDiplomacyAI* self, PlayerTypes ePlayer);static void ReplaceCvDiplomacyAI_DeclareWar(void (*original)(CvDiplomacyAI*, PlayerTypes), CvDiplomacyAI* self, PlayerTypes ePlayer);CivRegisterBefore<CivHooks::CvDiplomacyAI_DeclareWar>(host, &BeforeCvDiplomacyAI_DeclareWar);CivRegisterAfter<CivHooks::CvDiplomacyAI_DeclareWar>(host, &AfterCvDiplomacyAI_DeclareWar);CivRegisterReplace<CivHooks::CvDiplomacyAI_DeclareWar>(host, &ReplaceCvDiplomacyAI_DeclareWar);

Code

5723/// We've decided to declare war on someone5724void CvDiplomacyAI::DeclareWar(PlayerTypes ePlayer)5725{5726	CvAssertMsg(!GET_PLAYER(ePlayer).isMinorCiv() || GET_PLAYER(ePlayer).GetMinorCivAI()->GetAlly() != GetPlayer()->GetID(), "Major is declaring war on a city-state it is allied with! Please send Jon this with your last 5 autosaves and what changelist # you're playing.");57275728	CvTeam& kMyTeam = GET_TEAM(GetTeam());5729	TeamTypes eTheirTeam = GET_PLAYER(ePlayer).getTeam();57305731	// Only do it if we are not already at war.5732	if(!kMyTeam.isAtWar(eTheirTeam))5733	{5734#if defined(MOD_EVENTS_WAR_AND_PEACE)5735		kMyTeam.declareWar(eTheirTeam, false, GetPlayer()->GetID());5736#else5737		kMyTeam.declareWar(eTheirTeam);5738#endif57395740		m_pPlayer->GetCitySpecializationAI()->SetSpecializationsDirty(SPECIALIZATION_UPDATE_NOW_AT_WAR);57415742		// Show scene to human5743#if defined(MOD_AI_MP_DIPLOMACY)5744		if (MOD_AI_MP_DIPLOMACY) {5745			// JdH => deciding whether to send a notification or pop up directly is done in SendRequest5746			if (CvPreGame::isHuman(ePlayer))5747			{5748#if defined(MOD_DIPLOMACY_STFU)5749				SendAILeaderMessage(GetPlayer()->GetID(), ePlayer, DIPLO_UI_STATE_AI_DECLARED_WAR, DIPLO_MESSAGE_DOW_ROOT, ePlayer, LEADERHEAD_ANIM_DECLARE_WAR);5750#else5751				const char* strText = GetDiploStringForMessage(DIPLO_MESSAGE_DOW_ROOT, ePlayer);5752#if defined(MOD_API_PLAYER_LOGS)5753				CvDiplomacyRequests::SendRequest(GetPlayer()->GetID(), ePlayer, DIPLO_UI_STATE_AI_DECLARED_WAR, DIPLO_MESSAGE_DOW_ROOT, ePlayer, strText, LEADERHEAD_ANIM_DECLARE_WAR);5754#else5755				CvDiplomacyRequests::SendRequest(GetPlayer()->GetID(), ePlayer, DIPLO_UI_STATE_AI_DECLARED_WAR, strText, LEADERHEAD_ANIM_DECLARE_WAR);5756#endif5757#endif5758			}5759		} else {5760#endif5761		if(!CvPreGame::isNetworkMultiplayerGame() && GC.getGame().getActivePlayer() == ePlayer)5762		{5763#if defined(MOD_DIPLOMACY_STFU)5764			DisplayAILeaderMessage(GetPlayer()->GetID(), DIPLO_UI_STATE_AI_DECLARED_WAR, DIPLO_MESSAGE_DOW_ROOT, ePlayer, LEADERHEAD_ANIM_DECLARE_WAR);5765#else5766			const char* strText = GetDiploStringForMessage(DIPLO_MESSAGE_DOW_ROOT, ePlayer);5767			gDLL->GameplayDiplomacyAILeaderMessage(GetPlayer()->GetID(), DIPLO_UI_STATE_AI_DECLARED_WAR, strText, LEADERHEAD_ANIM_DECLARE_WAR);5768#endif5769		}5770#if defined(MOD_AI_MP_DIPLOMACY)5771		}5772#endif57735774		LogWarDeclaration(ePlayer);5775	}5776}

Calls

Called by