mirror of
https://github.com/zeldaret/botw
synced 2026-10-09 13:37:01 -04:00
Actor: ActorFactory is game, CurrentResNameMgr is ksys
ActorFactory's static initialiser fills its table with uking actor ctors. CurrentResNameMgr (0x71010b770c) links in KingSystem/System right before GameConfig. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
This commit is contained in:
+13
-13
@@ -44846,15 +44846,15 @@ Address,Quality,Size,Name
|
||||
0x00000071006cb0e4,U,000056,AI_F_AI_BowlPin
|
||||
0x00000071006cb11c,U,000004,nullsub_5404
|
||||
0x00000071006cb120,U,001872,sinitActors
|
||||
0x00000071006cb870,O,000100,_ZN4ksys3act18ActorFactoryHolder18SingletonDisposer_D1Ev
|
||||
0x00000071006cb8d4,O,000108,_ZN4ksys3act18ActorFactoryHolder18SingletonDisposer_D0Ev
|
||||
0x00000071006cb940,O,000160,_ZN4ksys3act18ActorFactoryHolder14createInstanceEPN4sead4HeapE
|
||||
0x00000071006cb9e0,O,000020,_ZN4ksys3act18ActorFactoryHolderD1Ev
|
||||
0x00000071006cb9f4,O,000052,_ZN4ksys3act18ActorFactoryHolderD0Ev
|
||||
0x00000071006cba28,O,000056,_ZN4ksys3act18ActorFactoryHolder4initEPN4sead4HeapE
|
||||
0x00000071006cb870,O,000100,_ZN5uking3act18ActorFactoryHolder18SingletonDisposer_D1Ev
|
||||
0x00000071006cb8d4,O,000108,_ZN5uking3act18ActorFactoryHolder18SingletonDisposer_D0Ev
|
||||
0x00000071006cb940,O,000160,_ZN5uking3act18ActorFactoryHolder14createInstanceEPN4sead4HeapE
|
||||
0x00000071006cb9e0,O,000020,_ZN5uking3act18ActorFactoryHolderD1Ev
|
||||
0x00000071006cb9f4,O,000052,_ZN5uking3act18ActorFactoryHolderD0Ev
|
||||
0x00000071006cba28,O,000056,_ZN5uking3act18ActorFactoryHolder4initEPN4sead4HeapE
|
||||
0x00000071006cba60,U,000412,constructActor
|
||||
0x00000071006cbbfc,O,000004,_ZN4ksys3act12ActorFactory5dummyEv
|
||||
0x00000071006cbc00,O,000004,_ZN4ksys3act12ActorFactory6dummy2Ev
|
||||
0x00000071006cbbfc,O,000004,_ZN5uking3act12ActorFactory5dummyEv
|
||||
0x00000071006cbc00,O,000004,_ZN5uking3act12ActorFactory6dummy2Ev
|
||||
0x00000071006cbc04,U,000016,AI::initBehaviors
|
||||
0x00000071006cbc14,U,000056,AI_F_Behavior_SetEnableResetToInitialState
|
||||
0x00000071006cbc4c,U,000056,AI_F_Behavior_SetWindForceScale
|
||||
@@ -89239,11 +89239,11 @@ Address,Quality,Size,Name
|
||||
0x00000071010b7600,U,000056,
|
||||
0x00000071010b7638,U,000092,
|
||||
0x00000071010b7694,U,000120,
|
||||
0x00000071010b770c,O,000056,_ZN4ksys3res17CurrentResNameMgr18SingletonDisposer_D1Ev
|
||||
0x00000071010b7744,O,000092,_ZN4ksys3res17CurrentResNameMgr18SingletonDisposer_D0Ev
|
||||
0x00000071010b77a0,O,000120,_ZN4ksys3res17CurrentResNameMgr14createInstanceEPN4sead4HeapE
|
||||
0x00000071010b7818,O,000004,_ZN4ksys3res17CurrentResNameMgr4initEPN4sead4HeapE
|
||||
0x00000071010b781c,O,000032,_ZNK4ksys3res17CurrentResNameMgr17getCurrentResNameEv
|
||||
0x00000071010b770c,O,000056,_ZN4ksys17CurrentResNameMgr18SingletonDisposer_D1Ev
|
||||
0x00000071010b7744,O,000092,_ZN4ksys17CurrentResNameMgr18SingletonDisposer_D0Ev
|
||||
0x00000071010b77a0,O,000120,_ZN4ksys17CurrentResNameMgr14createInstanceEPN4sead4HeapE
|
||||
0x00000071010b7818,O,000004,_ZN4ksys17CurrentResNameMgr4initEPN4sead4HeapE
|
||||
0x00000071010b781c,O,000032,_ZNK4ksys17CurrentResNameMgr17getCurrentResNameEv
|
||||
0x00000071010b783c,U,000004,j__ZN4sead16ExceptionHandler10initializeEv
|
||||
0x00000071010b7840,U,000224,
|
||||
0x00000071010b7920,U,000444,GameConfig::initProperties
|
||||
|
||||
|
Can't render this file because it is too large.
|
@@ -16,6 +16,8 @@ target_sources(uking PRIVATE
|
||||
aiAiFactories.h
|
||||
aiQueryFactories.cpp
|
||||
aiQueryFactories.h
|
||||
actActorFactory.cpp
|
||||
actActorFactory.h
|
||||
actDragon.cpp
|
||||
actDragon.h
|
||||
actPlayerCreateMgr.cpp
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "KingSystem/ActorSystem/actActorFactory.h"
|
||||
#include "Game/Actor/actActorFactory.h"
|
||||
#include "KingSystem/ActorSystem/actActorCreator.h"
|
||||
|
||||
namespace ksys::act {
|
||||
namespace uking::act {
|
||||
|
||||
SEAD_SINGLETON_DISPOSER_IMPL(ActorFactoryHolder)
|
||||
|
||||
@@ -10,12 +10,12 @@ void ActorFactory::dummy() {}
|
||||
void ActorFactory::dummy2() {}
|
||||
|
||||
ActorFactoryHolder::~ActorFactoryHolder() {
|
||||
ActorCreator::deleteInstance();
|
||||
ksys::act::ActorCreator::deleteInstance();
|
||||
}
|
||||
|
||||
void ActorFactoryHolder::init(sead::Heap* heap) {
|
||||
ActorCreator::createInstance(heap);
|
||||
ActorCreator::instance()->setActorFactory(&mFactory);
|
||||
ksys::act::ActorCreator::createInstance(heap);
|
||||
ksys::act::ActorCreator::instance()->setActorFactory(&mFactory);
|
||||
}
|
||||
|
||||
} // namespace ksys::act
|
||||
} // namespace uking::act
|
||||
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <heap/seadDisposer.h>
|
||||
#include "KingSystem/ActorSystem/actActorCreator.h"
|
||||
|
||||
namespace uking::act {
|
||||
|
||||
class ActorFactory : public ksys::act::IActorFactory {
|
||||
public:
|
||||
void dummy() override;
|
||||
ksys::act::BaseProc* createActor(const ksys::act::ActorCreateArg& arg) override;
|
||||
void dummy2() override;
|
||||
};
|
||||
|
||||
class ActorFactoryHolder {
|
||||
SEAD_SINGLETON_DISPOSER(ActorFactoryHolder)
|
||||
ActorFactoryHolder() = default;
|
||||
virtual ~ActorFactoryHolder();
|
||||
|
||||
public:
|
||||
void init(sead::Heap* heap);
|
||||
|
||||
private:
|
||||
ActorFactory mFactory;
|
||||
};
|
||||
|
||||
} // namespace uking::act
|
||||
@@ -31,8 +31,6 @@ target_sources(uking PRIVATE
|
||||
actActorCreator.h
|
||||
actActorEditorNode.cpp
|
||||
actActorEditorNode.h
|
||||
actActorFactory.cpp
|
||||
actActorFactory.h
|
||||
actActorHeapUtil.cpp
|
||||
actActorHeapUtil.h
|
||||
actActorLimiter.cpp
|
||||
|
||||
@@ -17,11 +17,18 @@ class Object;
|
||||
namespace ksys::act {
|
||||
|
||||
class Actor;
|
||||
class ActorFactory;
|
||||
struct ActorCreateArg;
|
||||
class BaseProc;
|
||||
struct BaseProcCreateArg;
|
||||
class BaseProcHandle;
|
||||
|
||||
class IActorFactory {
|
||||
public:
|
||||
virtual void dummy() = 0;
|
||||
virtual BaseProc* createActor(const ActorCreateArg& arg) = 0;
|
||||
virtual void dummy2() = 0;
|
||||
};
|
||||
|
||||
class ActorCreator {
|
||||
SEAD_SINGLETON_DISPOSER(ActorCreator)
|
||||
ActorCreator();
|
||||
@@ -39,7 +46,7 @@ public:
|
||||
void enableDistanceUnloadChecks();
|
||||
void eraseActor(Actor* actor);
|
||||
|
||||
void setActorFactory(ActorFactory* factory) { mActorFactory = factory; }
|
||||
void setActorFactory(IActorFactory* factory) { mActorFactory = factory; }
|
||||
bool get5a() const { return _5a; }
|
||||
|
||||
sead::OffsetList<Actor>& getActorList() { return mActorList; }
|
||||
@@ -81,7 +88,7 @@ private:
|
||||
this, &ActorCreator::doCreateProc};
|
||||
TaskRemoveCallbackT<ActorCreator> mTaskRemovedDelegate{this, &ActorCreator::onTaskRemoved};
|
||||
sead::CriticalSection mActorListCS;
|
||||
ActorFactory* mActorFactory;
|
||||
IActorFactory* mActorFactory;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(ActorCreator, 0xf0);
|
||||
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <heap/seadDisposer.h>
|
||||
|
||||
namespace ksys::act {
|
||||
|
||||
struct ActorCreateArg;
|
||||
class BaseProc;
|
||||
|
||||
class ActorFactory {
|
||||
public:
|
||||
virtual void dummy();
|
||||
virtual BaseProc* createActor(const ActorCreateArg& arg);
|
||||
virtual void dummy2();
|
||||
};
|
||||
|
||||
class ActorFactoryHolder {
|
||||
SEAD_SINGLETON_DISPOSER(ActorFactoryHolder)
|
||||
ActorFactoryHolder() = default;
|
||||
virtual ~ActorFactoryHolder();
|
||||
|
||||
public:
|
||||
void init(sead::Heap* heap);
|
||||
|
||||
private:
|
||||
ActorFactory mFactory;
|
||||
};
|
||||
|
||||
} // namespace ksys::act
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <utility/aglParameter.h>
|
||||
#include "KingSystem/ActorSystem/actAiActionBase.h"
|
||||
#include "KingSystem/ActorSystem/actAiClassDef.h"
|
||||
#include "KingSystem/Resource/resCurrentResNameMgr.h"
|
||||
#include "KingSystem/System/CurrentResNameMgr.h"
|
||||
#include "KingSystem/Utils/HeapUtil.h"
|
||||
|
||||
namespace ksys::res {
|
||||
|
||||
@@ -94,8 +94,6 @@ target_sources(uking PRIVATE
|
||||
resControlTask.h
|
||||
resCounter.cpp
|
||||
resCounter.h
|
||||
resCurrentResNameMgr.cpp
|
||||
resCurrentResNameMgr.h
|
||||
resEntryFactory.cpp
|
||||
resEntryFactory.h
|
||||
resGameResourceSystem.cpp
|
||||
|
||||
@@ -13,6 +13,8 @@ target_sources(uking PRIVATE
|
||||
CameraEditor.cpp
|
||||
CameraEditor.h
|
||||
CoreInfo.h
|
||||
CurrentResNameMgr.cpp
|
||||
CurrentResNameMgr.h
|
||||
DebugFinder.cpp
|
||||
DebugFinder.h
|
||||
DebugMessage.h
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
#include "KingSystem/Resource/resCurrentResNameMgr.h"
|
||||
#include "KingSystem/System/CurrentResNameMgr.h"
|
||||
|
||||
namespace ksys::res {
|
||||
namespace ksys {
|
||||
|
||||
SEAD_SINGLETON_DISPOSER_IMPL(CurrentResNameMgr)
|
||||
|
||||
@@ -10,4 +10,4 @@ sead::SafeString CurrentResNameMgr::getCurrentResName() const {
|
||||
return sead::SafeString::cEmptyString;
|
||||
}
|
||||
|
||||
} // namespace ksys::res
|
||||
} // namespace ksys
|
||||
+2
-2
@@ -4,7 +4,7 @@
|
||||
#include <prim/seadSafeString.h>
|
||||
#include "KingSystem/Utils/Types.h"
|
||||
|
||||
namespace ksys::res {
|
||||
namespace ksys {
|
||||
|
||||
/// Current Resource Name Manager?
|
||||
/// Stubbed in release builds.
|
||||
@@ -18,4 +18,4 @@ public:
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(CurrentResNameMgr, 0x20);
|
||||
|
||||
} // namespace ksys::res
|
||||
} // namespace ksys
|
||||
Reference in New Issue
Block a user