Bazaar developer reference

CvTeamTechs::SetHasTech(TechTypes, bool)

Defined in
CvTechClasses.cpp, line 1928
Class
CvTeamTechs
Hook name
CivHooks::CvTeamTechs_SetHasTech
Lua events
GameEvents.TeamSetHasTech

Hooks

static bool BeforeCvTeamTechs_SetHasTech(CvTeamTechs* self, TechTypes eIndex, bool bNewValue);static void AfterCvTeamTechs_SetHasTech(CvTeamTechs* self, TechTypes eIndex, bool bNewValue);static void ReplaceCvTeamTechs_SetHasTech(void (*original)(CvTeamTechs*, TechTypes, bool), CvTeamTechs* self, TechTypes eIndex, bool bNewValue);CivRegisterBefore<CivHooks::CvTeamTechs_SetHasTech>(host, &BeforeCvTeamTechs_SetHasTech);CivRegisterAfter<CivHooks::CvTeamTechs_SetHasTech>(host, &AfterCvTeamTechs_SetHasTech);CivRegisterReplace<CivHooks::CvTeamTechs_SetHasTech>(host, &ReplaceCvTeamTechs_SetHasTech);

Code

1927/// Accessor: set whether team owns a tech1928void CvTeamTechs::SetHasTech(TechTypes eIndex, bool bNewValue)1929{1930	CvAssertMsg(eIndex >= 0, "eIndex is expected to be non-negative (invalid Index)");1931	CvAssertMsg(eIndex < GC.getNumTechInfos(), "eIndex is expected to be within maximum bounds (invalid Index)");19321933	if(m_pabHasTech[eIndex] != bNewValue)1934	{1935		m_pabHasTech[eIndex] = bNewValue;19361937		if(bNewValue)1938			SetLastTechAcquired(eIndex);19391940		ICvEngineScriptSystem1* pkScriptSystem = gDLL->GetScriptSystem();1941		if(pkScriptSystem)1942		{1943			CvLuaArgsHandle args;1944			args->Push(m_pTeam->GetID());1945			args->Push(eIndex);1946			args->Push(bNewValue);19471948			// Attempt to execute the game events.1949			// Will return false if there are no registered listeners.1950			bool bResult = false;1951			LuaSupport::CallHook(pkScriptSystem, "TeamSetHasTech", args.get(), bResult);1952		}1953	}1954}

Calls

Called by