Bazaar developer reference

CvPlayerTechs::CanEverResearch(TechTypes) const

Defined in
CvTechClasses.cpp, line 1137
Class
CvPlayerTechs
Hook name
CivHooks::CvPlayerTechs_CanEverResearch
Lua events
GameEvents.PlayerCanEverResearch

Hooks

static bool BeforeCvPlayerTechs_CanEverResearch(const CvPlayerTechs* self, TechTypes eTech, bool& result);static void AfterCvPlayerTechs_CanEverResearch(const CvPlayerTechs* self, TechTypes eTech, bool& result);static bool ReplaceCvPlayerTechs_CanEverResearch(bool (*original)(const CvPlayerTechs*, TechTypes), const CvPlayerTechs* self, TechTypes eTech);CivRegisterBefore<CivHooks::CvPlayerTechs_CanEverResearch>(host, &BeforeCvPlayerTechs_CanEverResearch);CivRegisterAfter<CivHooks::CvPlayerTechs_CanEverResearch>(host, &AfterCvPlayerTechs_CanEverResearch);CivRegisterReplace<CivHooks::CvPlayerTechs_CanEverResearch>(host, &ReplaceCvPlayerTechs_CanEverResearch);

Code

1136/// Accessor: Is this tech disabled?1137bool CvPlayerTechs::CanEverResearch(TechTypes eTech) const1138{1139	CvTechEntry* pkTechInfo = GC.getTechInfo(eTech);1140	if(pkTechInfo == NULL)1141	{1142		return false;1143	}11441145	if(pkTechInfo->IsDisable())1146	{1147		return false;1148	}11491150	if(m_pPlayer->getCivilizationInfo().isCivilizationDisableTechs(eTech))1151	{1152		return false;1153	}11541155	ICvEngineScriptSystem1* pkScriptSystem = gDLL->GetScriptSystem();1156	if(pkScriptSystem)1157	{1158		CvLuaArgsHandle args;1159		args->Push(m_pPlayer->GetID());1160		args->Push(eTech);11611162		// Attempt to execute the game events.1163		// Will return false if there are no registered listeners.1164		bool bResult = false;1165		if(LuaSupport::CallTestAll(pkScriptSystem, "PlayerCanEverResearch", args.get(), bResult))1166		{1167			// Check the result.1168			if(bResult == false)1169			{1170				return false;1171			}1172		}1173	}117411751176	return true;1177}

Calls

Called by