ksys/act: Fix ActorParamMgr struct and add ASSetting stub

This commit is contained in:
Léo Lam 2020-11-08 15:51:44 +01:00
parent aa92bf882c
commit a9ec880f2e
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
9 changed files with 101 additions and 17 deletions

View File

@ -88753,12 +88753,12 @@
0x0000007101167dc0,sub_7101167DC0,76,
0x0000007101167e0c,sub_7101167E0C,124,
0x0000007101167e88,sub_7101167E88,140,
0x0000007101167f14,sub_7101167F14,152,
0x0000007101167fac,sub_7101167FAC,160,
0x000000710116804c,ActorParam::createInstance,136,
0x00000071011680d4,ActorParam::ctor,372,
0x0000007101167f14,sub_7101167F14,152,_ZN4ksys3act13ActorParamMgr18SingletonDisposer_D2Ev
0x0000007101167fac,sub_7101167FAC,160,_ZN4ksys3act13ActorParamMgr18SingletonDisposer_D0Ev
0x000000710116804c,ActorParam::createInstance,136,_ZN4ksys3act13ActorParamMgr14createInstanceEPN4sead4HeapE
0x00000071011680d4,ActorParam::ctor,372,_ZN4ksys3act13ActorParamMgrC1Ev
0x0000007101168248,ActorParam::init,6612,
0x0000007101169c1c,sub_7101169C1C,248,
0x0000007101169c1c,sub_7101169C1C,248,_ZN4sead9SafeArrayIN4ksys3res6HandleELi28EED2Ev
0x0000007101169d14,sub_7101169D14,8,
0x0000007101169d1c,sub_7101169D1C,316,
0x0000007101169e58,ActorParam::getLoad,620,

Can't render this file because it is too large.

View File

@ -10,6 +10,7 @@ target_sources(uking PRIVATE
actActorLinkConstDataAccess.h
actActorParam.cpp
actActorParam.h
actActorParamMgr.cpp
actActorParamMgr.h
actAiAction.cpp
actAiAction.h

View File

@ -0,0 +1 @@
#include "KingSystem/ActorSystem/actASSetting.h"

View File

@ -0,0 +1,12 @@
#pragma once
#include <heap/seadDisposer.h>
namespace ksys::act {
// FIXME: very incomplete
class ASSetting {
SEAD_SINGLETON_DISPOSER(ASSetting)
};
} // namespace ksys::act

View File

@ -0,0 +1,14 @@
#include "KingSystem/ActorSystem/actActorParamMgr.h"
#include "KingSystem/ActorSystem/actASSetting.h"
namespace ksys::act {
SEAD_SINGLETON_DISPOSER_IMPL(ActorParamMgr)
ActorParamMgr::ActorParamMgr() = default;
ActorParamMgr::~ActorParamMgr() {
ASSetting::deleteInstance();
}
} // namespace ksys::act

View File

@ -1,6 +1,13 @@
#pragma once
#include <container/seadSafeArray.h>
#include <heap/seadDisposer.h>
#include <hostio/seadHostIONode.h>
#include <thread/seadCriticalSection.h>
#include "KingSystem/Resource/resHandle.h"
#include "KingSystem/System/DebugMessage.h"
#include "KingSystem/System/KingEditor.h"
#include "KingSystem/Utils/Types.h"
namespace ksys {
@ -10,14 +17,38 @@ class GParamList;
namespace act {
class ActorParam;
// FIXME: incomplete
class ActorParamMgr {
class ActorParamMgr final : public sead::hostio::Node, public KingEditorComponent {
SEAD_SINGLETON_DISPOSER(ActorParamMgr)
ActorParamMgr();
~ActorParamMgr();
public:
const char* getName() const override { return "AglXml"; }
void syncData(const char* data) override;
void init(sead::Heap* heap, sead::Heap* debug_heap);
res::GParamList* getDummyGParamList() const;
DebugMessage& getDebugMessage() { return mDebugMessage; }
sead::Heap* getDebugHeap() const { return mDebugHeap; }
sead::Heap* getTmpActorParamMgrHeap() const { return mTmpActorParamMgrHeap; }
private:
u8 mFlags{};
ActorParam* mParams = nullptr;
DebugMessage mDebugMessage{"アクタパラメータ"};
void* _e0 = nullptr;
void* _e8 = nullptr;
sead::Heap* mDebugHeap = nullptr;
sead::Heap* mTmpActorParamMgrHeap = nullptr;
sead::SafeArray<res::Handle, 28> mResHandles;
sead::CriticalSection mCS;
};
KSYS_CHECK_SIZE_NX150(ActorParamMgr, 0xa00);
} // namespace act

View File

@ -153,20 +153,12 @@ public:
inline IManager::~IManager() = default;
/// GameDataMgr communication.
class ManagerCom : public KingEditorComponent {
public:
void* _8 = nullptr;
void* _10 = nullptr;
};
KSYS_CHECK_SIZE_NX150(ManagerCom, 0x18);
class Manager : public IManager, public ManagerCom {
class Manager : public IManager, public KingEditorComponent {
SEAD_SINGLETON_DISPOSER(Manager)
Manager();
~Manager() override;
const char* getName() const override { return "GameData"; }
void syncData() override;
void syncData(const char* data) override;
public:
struct ResetEvent {

View File

@ -0,0 +1,30 @@
#pragma once
#include <basis/seadTypes.h>
#include <gfx/seadColor.h>
#include <prim/seadSafeString.h>
#include "KingSystem/Utils/Types.h"
namespace ksys {
struct DebugMessage {
DebugMessage() = default;
explicit DebugMessage(const sead::SafeString& msg) : message(msg) {}
virtual ~DebugMessage() { ; }
void log(const char* format, ...);
u64 _8 = 0;
sead::FixedSafeString<64> message;
sead::Color4f color = sead::Color4f::cWhite;
f32 _78 = 0.3;
f32 _7c = 0.3;
f32 _80 = 0.3;
f32 _84 = 0.8;
bool _88 = true;
bool _89 = true;
};
KSYS_CHECK_SIZE_NX150(DebugMessage, 0x90);
} // namespace ksys

View File

@ -7,7 +7,10 @@ namespace ksys {
class KingEditorComponent {
public:
virtual const char* getName() const = 0;
virtual void syncData() = 0;
virtual void syncData(const char* data) = 0;
void* _8 = nullptr;
void* _10 = nullptr;
};
// FIXME