Bazaar developer reference

CvDllNetMessageHandler::ResponseChangeIdeology(PlayerTypes)

Defined in
CvDllNetMessageHandler.cpp, line 578
Class
CvDllNetMessageHandler
Hook name
CivHooks::CvDllNetMessageHandler_ResponseChangeIdeology

Hooks

static bool BeforeCvDllNetMessageHandler_ResponseChangeIdeology(CvDllNetMessageHandler* self, PlayerTypes ePlayer);static void AfterCvDllNetMessageHandler_ResponseChangeIdeology(CvDllNetMessageHandler* self, PlayerTypes ePlayer);static void ReplaceCvDllNetMessageHandler_ResponseChangeIdeology(void (*original)(CvDllNetMessageHandler*, PlayerTypes), CvDllNetMessageHandler* self, PlayerTypes ePlayer);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseChangeIdeology::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllNetMessageHandler_ResponseChangeIdeology);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseChangeIdeology::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllNetMessageHandler_ResponseChangeIdeology);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseChangeIdeology::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllNetMessageHandler_ResponseChangeIdeology);

Code

578void CvDllNetMessageHandler::ResponseChangeIdeology(PlayerTypes ePlayer)579{580	CvAssertMsg(ePlayer != NO_PLAYER, "ePlayer invalid");581582	// is this player alive583	CvPlayer &kPlayer = GET_PLAYER(ePlayer);584	if (kPlayer.isAlive())585	{586		PolicyBranchTypes ePreferredIdeology = kPlayer.GetCulture()->GetPublicOpinionPreferredIdeology();587		kPlayer.SetAnarchyNumTurns(GC.getSWITCH_POLICY_BRANCHES_ANARCHY_TURNS());588		kPlayer.GetPlayerPolicies()->DoSwitchIdeologies(ePreferredIdeology);589	}590}

Calls