mirror of https://github.com/zeldaret/botw.git
ksys/res: Start implementing GParamList
Incomplete because many of the sub-objects have their constructors inlined into the GParamList parse function...
This commit is contained in:
parent
a97f61f02a
commit
62880a0b1d
|
@ -30,6 +30,7 @@ add_executable(uking
|
|||
src/KingSystem/ActorSystem/actActorFactory.h
|
||||
src/KingSystem/ActorSystem/actActorLinkConstDataAccess.cpp
|
||||
src/KingSystem/ActorSystem/actActorLinkConstDataAccess.h
|
||||
src/KingSystem/ActorSystem/actActorParamMgr.h
|
||||
src/KingSystem/ActorSystem/actAiAction.cpp
|
||||
src/KingSystem/ActorSystem/actAiAction.h
|
||||
src/KingSystem/ActorSystem/actAiClass.cpp
|
||||
|
@ -62,10 +63,10 @@ add_executable(uking
|
|||
|
||||
src/KingSystem/MessageSystem/mesTransceiver.h
|
||||
|
||||
src/KingSystem/Resource/GeneralParamList/resGParamListObject.cpp
|
||||
src/KingSystem/Resource/GeneralParamList/resGParamListObject.h
|
||||
src/KingSystem/Resource/GeneralParamList/resGParamListObjectTraveler.cpp
|
||||
src/KingSystem/Resource/GeneralParamList/resGParamListObjectTraveler.h
|
||||
src/KingSystem/Resource/GeneralParamList/resGParamListTraits.h
|
||||
src/KingSystem/Resource/resCurrentResNameMgr.cpp
|
||||
src/KingSystem/Resource/resCurrentResNameMgr.h
|
||||
src/KingSystem/Resource/resEntryFactory.cpp
|
||||
|
|
|
@ -89047,17 +89047,17 @@
|
|||
0x0000007101186094,ActorParam::Load::loadPriority,472,
|
||||
0x000000710118626c,ActorParam::Load::checkClassAndPriority,424,
|
||||
0x0000007101186414,nullsub_4613,4,
|
||||
0x0000007101186418,nullsub_4614,4,
|
||||
0x000000710118641c,ResourceBgparamlist::doCreate,4,
|
||||
0x0000007101186420,Bgparamlist::parse,22480,
|
||||
0x000000710118bbf0,ResourceBgparamlist::parse,28,
|
||||
0x000000710118bc0c,nullsub_4616,4,
|
||||
0x000000710118bc10,nullsub_4617,4,
|
||||
0x0000007101186418,nullsub_4614,4,_ZN4ksys3res10GParamList9doCreate_EPhjPN4sead4HeapE
|
||||
0x000000710118641c,ResourceBgparamlist::doCreate,4,_ZThn632_N4ksys3res10GParamList9doCreate_EPhjPN4sead4HeapE
|
||||
0x0000007101186420,Bgparamlist::parse,22480,_ZN4ksys3res10GParamList6parse_EPhmPN4sead4HeapE|
|
||||
0x000000710118bbf0,ResourceBgparamlist::parse,28,_ZThn632_N4ksys3res10GParamList6parse_EPhmPN4sead4HeapE
|
||||
0x000000710118bc0c,nullsub_4616,4,_ZN4ksys3res10GParamList9finalize_Ev
|
||||
0x000000710118bc10,nullsub_4617,4,_ZThn632_N4ksys3res10GParamList9finalize_Ev
|
||||
0x000000710118bc14,return_D318,8,
|
||||
0x000000710118bc1c,nullsub_4618,4,
|
||||
0x000000710118bc20,nullsub_4619,4,
|
||||
0x000000710118bc24,sub_710118BC24,24,
|
||||
0x000000710118bc3c,sub_710118BC3C,28,
|
||||
0x000000710118bc1c,nullsub_4618,4,_ZN4ksys3res15DummyGParamList9doCreate_EPhjPN4sead4HeapE
|
||||
0x000000710118bc20,nullsub_4619,4,_ZThn632_N4ksys3res15DummyGParamList9doCreate_EPhjPN4sead4HeapE
|
||||
0x000000710118bc24,sub_710118BC24,24,_ZN4ksys3res15DummyGParamList6parse_EPhmPN4sead4HeapE
|
||||
0x000000710118bc3c,sub_710118BC3C,28,_ZThn632_N4ksys3res15DummyGParamList6parse_EPhmPN4sead4HeapE
|
||||
0x000000710118bc58,BgparamlistObjectGeneral::ctor,764,
|
||||
0x000000710118bf54,BgparamlistObjectEnemy::ctor,1440,
|
||||
0x000000710118c4f4,BgparamlistObjectEnemyLevel::ctor,936,
|
||||
|
@ -89123,28 +89123,28 @@
|
|||
0x00000071011a6410,BgparamlistObjectGolemIK::ctor,1792,
|
||||
0x00000071011a6b10,BgparamlistObjectPictureBook::ctor,344,
|
||||
0x00000071011a6c68,BgparamlistObjectMotorcycle::ctor,2736,
|
||||
0x00000071011a7718,sub_71011A7718,52,
|
||||
0x00000071011a774c,sub_71011A774C,40,
|
||||
0x00000071011a7774,sub_71011A7774,8,
|
||||
0x00000071011a777c,sub_71011A777C,8,
|
||||
0x00000071011a7784,sub_71011A7784,92,
|
||||
0x00000071011a77e0,sub_71011A77E0,8,
|
||||
0x00000071011a77e8,ResourceBgparamlist::rtti1,8,
|
||||
0x00000071011a77f0,ResourceBgparamlist::rtti2,92,
|
||||
0x00000071011a784c,ResourceBgparamlist::dtor,48,
|
||||
0x00000071011a787c,ResourceBgparamlist::dtorDelete,36,
|
||||
0x00000071011a78a0,ResourceBgparamlist::needsParse,8,
|
||||
0x00000071011a78a8,sub_71011A78A8,52,
|
||||
0x00000071011a78dc,sub_71011A78DC,40,
|
||||
0x00000071011a7904,sub_71011A7904,40,
|
||||
0x00000071011a792c,sub_71011A792C,132,
|
||||
0x00000071011a79b0,sub_71011A79B0,92,
|
||||
0x00000071011a7a0c,sub_71011A7A0C,132,
|
||||
0x00000071011a7a90,sub_71011A7A90,92,
|
||||
0x00000071011a7aec,sub_71011A7AEC,48,
|
||||
0x00000071011a7b1c,sub_71011A7B1C,36,
|
||||
0x00000071011a7b40,sub_71011A7B40,52,
|
||||
0x00000071011a7b74,sub_71011A7B74,40,
|
||||
0x00000071011a7718,sub_71011A7718,52,_ZN4ksys3res10GParamListD2Ev
|
||||
0x00000071011a774c,sub_71011A774C,40,_ZN4ksys3res10GParamListD0Ev
|
||||
0x00000071011a7774,sub_71011A7774,8,_ZN4ksys3res10GParamList10ParamIO_m0Ev
|
||||
0x00000071011a777c,sub_71011A777C,8,_ZNK4ksys3res10GParamList27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE?
|
||||
0x00000071011a7784,sub_71011A7784,92,_ZNK4ksys3res10GParamList18getRuntimeTypeInfoEv
|
||||
0x00000071011a77e0,sub_71011A77E0,8,_ZNK4ksys3res10GParamList10needsParseEv
|
||||
0x00000071011a77e8,ResourceBgparamlist::rtti1,8,_ZThn632_NK4ksys3res10GParamList27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE?
|
||||
0x00000071011a77f0,ResourceBgparamlist::rtti2,92,_ZThn632_NK4ksys3res10GParamList18getRuntimeTypeInfoEv
|
||||
0x00000071011a784c,ResourceBgparamlist::dtor,48,_ZThn632_N4ksys3res10GParamListD1Ev
|
||||
0x00000071011a787c,ResourceBgparamlist::dtorDelete,36,_ZThn632_N4ksys3res10GParamListD0Ev
|
||||
0x00000071011a78a0,ResourceBgparamlist::needsParse,8,_ZThn632_NK4ksys3res10GParamList10needsParseEv
|
||||
0x00000071011a78a8,sub_71011A78A8,52,_ZThn664_N4ksys3res10GParamListD1Ev
|
||||
0x00000071011a78dc,sub_71011A78DC,40,_ZThn664_N4ksys3res10GParamListD0Ev
|
||||
0x00000071011a7904,sub_71011A7904,40,_ZN4ksys3res15DummyGParamListD0Ev
|
||||
0x00000071011a792c,sub_71011A792C,132,_ZNK4ksys3res15DummyGParamList27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE?
|
||||
0x00000071011a79b0,sub_71011A79B0,92,_ZNK4ksys3res15DummyGParamList18getRuntimeTypeInfoEv
|
||||
0x00000071011a7a0c,sub_71011A7A0C,132,_ZThn632_NK4ksys3res15DummyGParamList27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE?
|
||||
0x00000071011a7a90,sub_71011A7A90,92,_ZThn632_NK4ksys3res15DummyGParamList18getRuntimeTypeInfoEv
|
||||
0x00000071011a7aec,sub_71011A7AEC,48,_ZThn632_N4ksys3res15DummyGParamListD1Ev
|
||||
0x00000071011a7b1c,sub_71011A7B1C,36,_ZThn632_N4ksys3res15DummyGParamListD0Ev
|
||||
0x00000071011a7b40,sub_71011A7B40,52,_ZThn664_N4ksys3res15DummyGParamListD1Ev
|
||||
0x00000071011a7b74,sub_71011A7B74,40,_ZThn664_N4ksys3res15DummyGParamListD0Ev
|
||||
0x00000071011a7b9c,sub_71011A7B9C,12,
|
||||
0x00000071011a7ba8,sub_71011A7BA8,12,
|
||||
0x00000071011a7bb4,sub_71011A7BB4,12,
|
||||
|
@ -89186,7 +89186,7 @@
|
|||
0x00000071011a7d64,sub_71011A7D64,12,
|
||||
0x00000071011a7d70,sub_71011A7D70,12,
|
||||
0x00000071011a7d7c,sub_71011A7D7C,12,
|
||||
0x00000071011a7d88,sub_71011A7D88,12,
|
||||
0x00000071011a7d88,sub_71011A7D88,12,_ZNK4ksys3res24GParamListObjectTraveler7getNameEv
|
||||
0x00000071011a7d94,sub_71011A7D94,12,
|
||||
0x00000071011a7da0,sub_71011A7DA0,12,
|
||||
0x00000071011a7dac,sub_71011A7DAC,12,
|
||||
|
@ -89224,7 +89224,7 @@
|
|||
0x00000071011a7f2c,sub_71011A7F2C,12,
|
||||
0x00000071011a7f38,sub_71011A7F38,12,
|
||||
0x00000071011a7f44,sub_71011A7F44,12,
|
||||
0x00000071011a80c4,sub_71011A80C4,140,
|
||||
0x00000071011a80c4,sub_71011A80C4,140,_ZNK4sead15RuntimeTypeInfo6DeriveIN4ksys3res10GParamListEE9isDerivedEPKNS0_9InterfaceE
|
||||
0x00000071011a8150,sub_71011A8150,108,_ZN4ksys3res9AIProgramD1Ev
|
||||
0x00000071011a81bc,ResourceAiprog::m2,104,_ZThn632_N4ksys3res9AIProgramD1Ev
|
||||
0x00000071011a8224,sub_71011A8224,112,_ZThn664_N4ksys3res9AIProgramD1Ev
|
||||
|
|
Can't render this file because it is too large.
|
|
@ -0,0 +1,24 @@
|
|||
#pragma once
|
||||
|
||||
#include <heap/seadDisposer.h>
|
||||
|
||||
namespace ksys {
|
||||
|
||||
namespace res {
|
||||
class GParamList;
|
||||
}
|
||||
|
||||
namespace act {
|
||||
|
||||
// FIXME: incomplete
|
||||
class ActorParamMgr {
|
||||
SEAD_SINGLETON_DISPOSER(ActorParamMgr)
|
||||
public:
|
||||
void init(sead::Heap* heap, sead::Heap* debug_heap);
|
||||
|
||||
res::GParamList* getDummyGParamList() const;
|
||||
};
|
||||
|
||||
} // namespace act
|
||||
|
||||
} // namespace ksys
|
|
@ -1 +0,0 @@
|
|||
#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
|
|
@ -87,6 +87,7 @@ enum class GParamListObjType {
|
|||
AirWall = 0x4D,
|
||||
Motorcycle = 0x4E,
|
||||
};
|
||||
inline constexpr size_t NumGParamListObjTypes = 1 + 0x4E;
|
||||
|
||||
/// Base class for GeneralParamList parameter objects.
|
||||
/// @bug This should have a virtual destructor...
|
||||
|
@ -94,6 +95,8 @@ class GParamListObject : public sead::hostio::Node {
|
|||
public:
|
||||
virtual const char* getName() const = 0;
|
||||
|
||||
agl::utl::ParameterObj& getObj() { return mObj; }
|
||||
|
||||
protected:
|
||||
agl::utl::ParameterObj mObj;
|
||||
};
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
#pragma once
|
||||
|
||||
#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
|
||||
|
||||
namespace ksys::res {
|
||||
|
||||
template <GParamListObjType>
|
||||
struct GParamListObjTypeTraits;
|
||||
|
||||
#define KSYS_DECLARE_GPARAM_TRAIT_(NAME) \
|
||||
template <> \
|
||||
struct GParamListObjTypeTraits<GParamListObjType::NAME> { \
|
||||
using type = class GParamListObject##NAME; \
|
||||
};
|
||||
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(System)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(General)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Enemy)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(EnemyLevel)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(EnemyRace)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(AttackInterval)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(EnemyShown)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(BindBone)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Attack)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(WeaponCommon)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(WeaponThrow)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Sandworm)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(SmallSword)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Rod)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(LargeSword)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Spear)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Shield)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Bow)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(WeaponOption)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(MasterSword)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(GuardianMiniWeapon)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Player)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Camera)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Grab)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Armor)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(ArmorEffect)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(ArmorHead)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(ArmorUpper)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(ShiekerStone)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(SeriesArmor)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Liftable)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Item)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Rupee)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Arrow)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Bullet)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(CureItem)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(CookSpice)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(LumberjackTree)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Npc)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(NpcEquipment)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Zora)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Traveler)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Prey)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(AnimalFollowOffset)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(ExtendedEntity)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(BindActor)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(EatTarget)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(AnimalUnit)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Insect)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Fish)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Rope)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Horse)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(HorseUnit)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(HorseObject)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(HorseRider)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(HorseCreator)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(GiantArmorSlot)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(GiantArmor)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Guardian)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(MonsterShop)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Swarm)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(GelEnemy)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Nest)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Wizzrobe)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(StalEnemy)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(GuardianMini)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(ClothReaction)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Global)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Beam)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(AutoGen)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(ChemicalType)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Golem)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(HorseTargetedInfo)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(WolfLink)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Event)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(GolemIK)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(PictureBook)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(AirWall)
|
||||
KSYS_DECLARE_GPARAM_TRAIT_(Motorcycle)
|
||||
|
||||
#undef KSYS_DECLARE_GPARAM_TRAIT_
|
||||
|
||||
} // namespace ksys::res
|
|
@ -1 +1,57 @@
|
|||
#include "KingSystem/Resource/resResourceGParamList.h"
|
||||
#include <KingSystem/ActorSystem/actActorParamMgr.h>
|
||||
#include <agl/Utils/aglParameter.h>
|
||||
#include <prim/seadRuntimeTypeInfo.h>
|
||||
#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
|
||||
#include "KingSystem/Resource/GeneralParamList/resGParamListTraits.h"
|
||||
|
||||
namespace ksys::res {
|
||||
|
||||
void GParamList::doCreate_(u8*, u32, sead::Heap*) {}
|
||||
|
||||
template <GParamListObjType Type>
|
||||
KSYS_ALWAYS_INLINE void GParamList::add(const agl::utl::ResParameterList& list,
|
||||
const sead::SafeString& name, sead::Heap* heap,
|
||||
GParamList* dummy_list) {
|
||||
const auto pobj = agl::utl::getResParameterObj(list, name);
|
||||
if (pobj.ptr()) {
|
||||
using T = typename GParamListObjTypeTraits<Type>::type;
|
||||
|
||||
auto* obj = new (heap) T;
|
||||
if (obj)
|
||||
addObj(&obj->getObj(), obj->getName());
|
||||
|
||||
mObjects[s32(Type)] = obj;
|
||||
|
||||
} else {
|
||||
mObjects[s32(Type)] = dummy_list ? dummy_list->mObjects[s32(Type)] : nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
bool GParamList::parse_(u8* data, size_t, sead::Heap* heap) {
|
||||
GParamList* dummy_list = nullptr;
|
||||
if (!sead::IsDerivedFrom<DummyGParamList>(this) && act::ActorParamMgr::instance())
|
||||
dummy_list = act::ActorParamMgr::instance()->getDummyGParamList();
|
||||
|
||||
mObjects.allocBufferAssert(NumGParamListObjTypes, heap);
|
||||
|
||||
const agl::utl::ResParameterArchive archive{data};
|
||||
|
||||
// TODO: System, etc.
|
||||
|
||||
if (data)
|
||||
applyResParameterArchive(archive);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void GParamList::finalize_() {}
|
||||
|
||||
void DummyGParamList::doCreate_(u8*, u32, sead::Heap*) {}
|
||||
|
||||
bool DummyGParamList::parse_(u8* data, size_t size, sead::Heap* heap) {
|
||||
GParamList::parse_(data, size, heap);
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace ksys::res
|
||||
|
|
|
@ -1 +1,46 @@
|
|||
#pragma once
|
||||
|
||||
#include <container/seadBuffer.h>
|
||||
#include "KingSystem/Resource/GeneralParamList/resGParamListObject.h"
|
||||
#include "KingSystem/Resource/resResource.h"
|
||||
#include "KingSystem/Utils/ParamIO.h"
|
||||
#include "KingSystem/Utils/Types.h"
|
||||
|
||||
namespace ksys::res {
|
||||
|
||||
class GParamList : public ParamIO, public Resource {
|
||||
SEAD_RTTI_OVERRIDE(GParamList, Resource)
|
||||
public:
|
||||
GParamList() : ParamIO("bgparamlist", 0) {}
|
||||
~GParamList() override = default;
|
||||
|
||||
bool ParamIO_m0() override { return false; }
|
||||
void doCreate_(u8* buffer, u32 bufferSize, sead::Heap* heap) override;
|
||||
bool needsParse() const override { return true; }
|
||||
|
||||
protected:
|
||||
bool parse_(u8* data, size_t size, sead::Heap* heap) override;
|
||||
void finalize_() override;
|
||||
|
||||
private:
|
||||
template <GParamListObjType Type>
|
||||
void add(const agl::utl::ResParameterList& list, const sead::SafeString& name, sead::Heap* heap,
|
||||
GParamList* dummy_list);
|
||||
|
||||
sead::Buffer<GParamListObject*> mObjects;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(GParamList, 0x2c0);
|
||||
|
||||
class DummyGParamList : public GParamList {
|
||||
SEAD_RTTI_OVERRIDE(DummyGParamList, GParamList)
|
||||
public:
|
||||
using GParamList::GParamList;
|
||||
~DummyGParamList() override = default;
|
||||
|
||||
void doCreate_(u8* buffer, u32 bufferSize, sead::Heap* heap) override;
|
||||
|
||||
private:
|
||||
bool parse_(u8* data, size_t size, sead::Heap* heap) override;
|
||||
};
|
||||
|
||||
} // namespace ksys::res
|
||||
|
|
Loading…
Reference in New Issue