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
- CvCivilizationInfo::isCivilizationDisableTechs(int) const
- CvGlobals::getDLLIFace()
- CvGlobals::getTechInfo(TechTypes)
- CvLuaArgsHandle::CvLuaArgsHandle()
- CvLuaArgsHandle::get() const
- CvLuaArgsHandle::operator->() const
- CvPlayer::getCivilizationInfo() const
- CvPlayer::GetID() const
- CvTechEntry::IsDisable() const
ICvEngineScriptSystemArgs1::PushICvEngineUtility1::GetScriptSystem- LuaSupport::CallTestAll(ICvEngineScriptSystem1 *, const char *, ICvEngineScriptSystemArgs1 *, bool &)