summaryrefslogtreecommitdiff
path: root/src/KingSystem/Resource/resResourceAIProgram.cpp
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-12-09 18:32:25 +0100
committerLéo Lam <leo@leolam.fr>2020-12-09 20:43:22 +0100
commit930b780cd1513e1dd92bc114cde58adb552159a6 (patch)
tree11e767a103695841a90afdc922e088c2b47b4ae2 /src/KingSystem/Resource/resResourceAIProgram.cpp
parentfcbe17a3f0db98bdafdfd917210b03019de2d31f (diff)
ksys/act: Implement more Query functions
Diffstat (limited to 'src/KingSystem/Resource/resResourceAIProgram.cpp')
-rw-r--r--src/KingSystem/Resource/resResourceAIProgram.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/KingSystem/Resource/resResourceAIProgram.cpp b/src/KingSystem/Resource/resResourceAIProgram.cpp
index f7271975..242fb42b 100644
--- a/src/KingSystem/Resource/resResourceAIProgram.cpp
+++ b/src/KingSystem/Resource/resResourceAIProgram.cpp
@@ -326,6 +326,17 @@ AIProgram::Definition::findSInstParam(const sead::SafeString& name) const {
return findSInstParam(agl::utl::ParameterBase::calcHash(name));
}
+bool AIProgram::getSInstParam(const char** value, const AIProgram::Definition& def,
+ const sead::SafeString& param_name) const {
+ const auto* param = def.findSInstParam(param_name);
+ if (!param || param->getParameterType() != agl::utl::ParameterType::StringRef) {
+ *value = &sead::SafeString::cNullChar;
+ return false;
+ }
+ *value = param->ptrT<char>();
+ return true;
+}
+
bool AIProgram::getSInstParam(sead::SafeString* value, const AIProgram::Definition& def,
const sead::SafeString& param_name) const {
const auto* param = def.findSInstParam(param_name);
@@ -343,6 +354,12 @@ bool AIProgram::getSInstParam(const s32** value, const AIProgram::Definition& de
return getSInstParam_(value, def, param_name, agl::utl::ParameterType::Int, &sDefault);
}
+bool AIProgram::getSInstParam(const f32** value, const AIProgram::Definition& def,
+ const sead::SafeString& param_name) const {
+ static const f32 sDefault{};
+ return getSInstParam_(value, def, param_name, agl::utl::ParameterType::F32, &sDefault);
+}
+
bool AIProgram::getSInstParam(const sead::Vector3f** value, const AIProgram::Definition& def,
const sead::SafeString& param_name) const {
return getSInstParam_(value, def, param_name, agl::utl::ParameterType::Vec3,