From 18b90cea29fc73795917bed2a5c564c59141e9b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sat, 26 Dec 2020 16:21:16 +0100 Subject: [PATCH] ksys/act: Add copies of getDynamicParam that are sometimes used --- src/KingSystem/ActorSystem/actAiActionBase.h | 22 ++++++++++++++++++++ src/KingSystem/ActorSystem/actAiParam.h | 8 +++++++ 2 files changed, 30 insertions(+) diff --git a/src/KingSystem/ActorSystem/actAiActionBase.h b/src/KingSystem/ActorSystem/actAiActionBase.h index 5997245c..f490a7ad 100644 --- a/src/KingSystem/ActorSystem/actAiActionBase.h +++ b/src/KingSystem/ActorSystem/actAiActionBase.h @@ -245,6 +245,28 @@ protected: value, key, static_cast(getDefaultString32())); } + // TODO: rename -- why do these exist? + template + bool getDynamicParamPtrImpl2(T** value, const sead::SafeString& key, T* default_value) const { + return getDynamicParamImpl(value, key, &ParamPack::getPtrGeneric2, &default_value); + } + + bool getDynamicParam2(int** value, const sead::SafeString& key) const { + return getDynamicParamPtrImpl2(value, key, getDefaultInt()); + } + + bool getDynamicParam2(float** value, const sead::SafeString& key) const { + return getDynamicParamPtrImpl2(value, key, getDefaultFloat()); + } + + bool getDynamicParam2(sead::Vector3f** value, const sead::SafeString& key) const { + return getDynamicParamPtrImpl2(value, key, getDefaultVec3()); + } + + bool getDynamicParam2(bool** value, const sead::SafeString& key) const { + return getDynamicParamPtrImpl2(value, key, getDefaultBool()); + } + Actor* mActor; ParamPack mParams; s16 mDefinitionIdx; diff --git a/src/KingSystem/ActorSystem/actAiParam.h b/src/KingSystem/ActorSystem/actAiParam.h index 3f3dab10..c426a8cb 100644 --- a/src/KingSystem/ActorSystem/actAiParam.h +++ b/src/KingSystem/ActorSystem/actAiParam.h @@ -92,6 +92,14 @@ public: return ptr != nullptr; } + // TODO: rename this -- why does this exist? + template + bool getPtrGeneric2(T** value, const sead::SafeString& key) const { + auto* ptr = static_cast(getAITreeVariablePointer(key, Type)); + *value = ptr; + return ptr != nullptr; + } + bool getString(sead::SafeString* value, const sead::SafeString& key) const; bool setString(const sead::SafeString& value, const sead::SafeString& key) const;