Changeset View
Changeset View
Standalone View
Standalone View
source/simulation2/components/CCmpAIManager.cpp
Show First 20 Lines • Show All 624 Lines • ▼ Show 20 Lines | public: | ||||
void LoadEntityTemplates(const std::vector<std::pair<std::string, const CParamNode*> >& templates) | void LoadEntityTemplates(const std::vector<std::pair<std::string, const CParamNode*> >& templates) | ||||
{ | { | ||||
JSContext* cx = m_ScriptInterface->GetContext(); | JSContext* cx = m_ScriptInterface->GetContext(); | ||||
JSAutoRequest rq(cx); | JSAutoRequest rq(cx); | ||||
m_HasLoadedEntityTemplates = true; | m_HasLoadedEntityTemplates = true; | ||||
m_ScriptInterface->Eval("({})", &m_EntityTemplates); | m_ScriptInterface->CreateObject(&m_EntityTemplates); | ||||
elexis: CAn be tested by running a match with the AI and looking if it crashes. | |||||
JS::RootedValue val(cx); | JS::RootedValue val(cx); | ||||
for (size_t i = 0; i < templates.size(); ++i) | for (size_t i = 0; i < templates.size(); ++i) | ||||
{ | { | ||||
templates[i].second->ToJSVal(cx, false, &val); | templates[i].second->ToJSVal(cx, false, &val); | ||||
m_ScriptInterface->SetProperty(m_EntityTemplates, templates[i].first.c_str(), val, true); | m_ScriptInterface->SetProperty(m_EntityTemplates, templates[i].first.c_str(), val, true); | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 536 Lines • ▼ Show 20 Lines | void LoadPathfinderClasses(JS::HandleValue state) | ||||
if (!cmpPathfinder) | if (!cmpPathfinder) | ||||
return; | return; | ||||
const ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); | const ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); | ||||
JSContext* cx = scriptInterface.GetContext(); | JSContext* cx = scriptInterface.GetContext(); | ||||
JSAutoRequest rq(cx); | JSAutoRequest rq(cx); | ||||
JS::RootedValue classesVal(cx); | JS::RootedValue classesVal(cx); | ||||
scriptInterface.Eval("({})", &classesVal); | scriptInterface.CreateObject(&classesVal); | ||||
std::map<std::string, pass_class_t> classes; | std::map<std::string, pass_class_t> classes; | ||||
cmpPathfinder->GetPassabilityClasses(classes); | cmpPathfinder->GetPassabilityClasses(classes); | ||||
for (std::map<std::string, pass_class_t>::iterator it = classes.begin(); it != classes.end(); ++it) | for (std::map<std::string, pass_class_t>::iterator it = classes.begin(); it != classes.end(); ++it) | ||||
scriptInterface.SetProperty(classesVal, it->first.c_str(), it->second, true); | scriptInterface.SetProperty(classesVal, it->first.c_str(), it->second, true); | ||||
scriptInterface.SetProperty(state, "passabilityClasses", classesVal, true); | scriptInterface.SetProperty(state, "passabilityClasses", classesVal, true); | ||||
} | } | ||||
CAIWorker m_Worker; | CAIWorker m_Worker; | ||||
}; | }; | ||||
REGISTER_COMPONENT_TYPE(AIManager) | REGISTER_COMPONENT_TYPE(AIManager) |
Wildfire Games · Phabricator
CAn be tested by running a match with the AI and looking if it crashes.