summaryrefslogtreecommitdiff
path: root/src/KingSystem/ActorSystem/actActorParam.h
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-11-12 16:03:03 +0100
committerLéo Lam <leo@leolam.fr>2020-11-14 21:06:08 +0100
commitffe38d0076fd487bae46edd092171469ec08d439 (patch)
tree16c4f06dc454e2c81d67133355184022397198d6 /src/KingSystem/ActorSystem/actActorParam.h
parentd9356ffa90f2b6c819b00bfc7905763aea8c39bc (diff)
ksys/act: Implement more ActorParamMgr functions
Diffstat (limited to 'src/KingSystem/ActorSystem/actActorParam.h')
-rw-r--r--src/KingSystem/ActorSystem/actActorParam.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/KingSystem/ActorSystem/actActorParam.h b/src/KingSystem/ActorSystem/actActorParam.h
index 88f563ec..fe93b944 100644
--- a/src/KingSystem/ActorSystem/actActorParam.h
+++ b/src/KingSystem/ActorSystem/actActorParam.h
@@ -40,6 +40,8 @@ class UMii;
namespace act {
+class ActorParamMgr;
+
// FIXME: incomplete
class ActorParam : public sead::hostio::Node {
public:
@@ -69,8 +71,15 @@ public:
LifeCondition = 22,
UMii = 23,
AnimationInfo = 24,
+ AS = 25,
+ AttClient = 26,
+ RagdollConfig = 27,
};
+ static constexpr bool isValidType(ResourceType type) {
+ return type <= ResourceType::AnimationInfo;
+ }
+
union Resources {
struct {
res::ActorLink* mActorLink;
@@ -112,7 +121,7 @@ public:
Priority getPriority() const { return mPriority; }
const Resources& getRes() const { return mRes; }
- bool isDummyParam(res::ActorLink::Users::User user) const;
+ bool isDummyParam(res::ActorLink::User user) const;
static void resetDummyResources();
@@ -141,7 +150,15 @@ private:
bool setPriority(const sead::SafeString& priority);
void setProfileAndPriority(const char* profile, const char* priority);
- u16 _8 = 0;
+ void setResourceIfValidType(ResourceType type, ParamIO* param_io) {
+ if (isValidType(type))
+ setResource(type, param_io);
+ }
+
+ void onLoadFinished(ActorParamMgr* mgr);
+
+ u8 _8 = 0;
+ u8 _9 = 0;
u8 _a = 0;
sead::FixedSafeString<64> mActorName;
sead::SafeString mProfile;