mirror of https://github.com/zeldaret/botw.git
ksys/res: Add ModelList (incomplete)
This commit is contained in:
parent
13d1f0d0be
commit
c3d665f1c1
|
@ -1,5 +1,19 @@
|
|||
0x00000071023556B0,_ZTVN4sead14SafeStringBaseIcEE
|
||||
0x0000007102356AF0,_ZTVN4sead22BufferedSafeStringBaseIcEE
|
||||
0x000000710246F9E0,_ZN4ksys3gdt6detail13sCommonFlags0E
|
||||
0x00000071024709E0,_ZN4ksys3gdt6detail13sCommonFlags1E
|
||||
0x00000071024719E0,_ZN4ksys3gdt6detail13sCommonFlags2E
|
||||
0x00000071024729E0,_ZN4ksys3gdt6detail13sCommonFlags3E
|
||||
0x00000071024C0F18,_ZTVN3agl3utl13ParameterBaseE
|
||||
0x00000071024C1060,_ZTVN3agl3utl9ParameterIbEE
|
||||
0x00000071024C1100,_ZTVN3agl3utl9ParameterIfEE
|
||||
0x00000071024C11A0,_ZTVN3agl3utl9ParameterIiEE
|
||||
0x00000071024C1240,_ZTVN3agl3utl9ParameterIjEE
|
||||
0x00000071024C12E0,_ZTVN3agl3utl9ParameterIN4sead7Vector2IfEEEE
|
||||
0x00000071024C1380,_ZTVN3agl3utl9ParameterIN4sead7Vector3IfEEEE
|
||||
0x00000071024C1420,_ZTVN3agl3utl9ParameterIN4sead7Vector4IfEEEE
|
||||
0x00000071024C14E0,_ZTVN3agl3utl9ParameterIN4sead7Color4fEEE
|
||||
0x00000071024C1560,_ZTVN3agl3utl9ParameterIN4sead4QuatIfEEEE
|
||||
0x00000071024C1600,_ZTVN3agl3utl9ParameterIN4sead15FixedSafeStringILi64EEEEE
|
||||
0x00000071024C16A0,_ZTVN3agl3utl9ParameterIN4sead15FixedSafeStringILi256EEEEE
|
||||
0x00000071024C1740,_ZTVN3agl3utl9ParameterIN4sead14SafeStringBaseIcEEEE
|
||||
|
|
|
|
@ -91525,8 +91525,8 @@
|
|||
0x00000071011ae2bc,sub_71011AE2BC,8,
|
||||
0x00000071011ae2c4,sub_71011AE2C4,372,
|
||||
0x00000071011ae438,sub_71011AE438,212,
|
||||
0x00000071011ae50c,Bmodellist::ctor,596,
|
||||
0x00000071011ae760,BmodellistSub::ctor,404,
|
||||
0x00000071011ae50c,Bmodellist::ctor,596,_ZN4ksys3res9ModelListC1Ev
|
||||
0x00000071011ae760,BmodellistSub::ctor,404,_ZN4ksys3res9ModelList9AttentionC2Ev
|
||||
0x00000071011ae8f4,sub_71011AE8F4,972,
|
||||
0x00000071011aecc0,sub_71011AECC0,8,
|
||||
0x00000071011aecc8,sub_71011AECC8,8,
|
||||
|
|
Can't render this file because it is too large.
|
2
lib/sead
2
lib/sead
|
@ -1 +1 @@
|
|||
Subproject commit 29da026c05155b3432eed35f89818bf474894b2b
|
||||
Subproject commit 6d0d19ac628c26622c75c38dde8e1cbd93f3a854
|
|
@ -150,6 +150,8 @@ target_sources(uking PRIVATE
|
|||
resResourceLifeCondition.h
|
||||
resResourceLod.cpp
|
||||
resResourceLod.h
|
||||
resResourceModelList.cpp
|
||||
resResourceModelList.h
|
||||
resResourceRecipe.cpp
|
||||
resResourceRecipe.h
|
||||
resResourceShop.cpp
|
||||
|
|
|
@ -21,7 +21,7 @@ public:
|
|||
Resource();
|
||||
~Resource() override;
|
||||
|
||||
void doCreate_(u8* buffer, u32 bufferSize, sead::Heap* heap) override;
|
||||
void doCreate_(u8* buffer, u32 buffer_size, sead::Heap* heap) override;
|
||||
|
||||
virtual bool needsParse() const { return false; }
|
||||
virtual bool m2_() { return true; }
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#include "KingSystem/Resource/resResourceModelList.h"
|
||||
|
||||
namespace ksys::res {
|
||||
|
||||
ModelList::ModelList() : ParamIO("modellist", 0) {}
|
||||
|
||||
} // namespace ksys::res
|
|
@ -0,0 +1,114 @@
|
|||
#pragma once
|
||||
|
||||
#include <agl/Utils/aglParameter.h>
|
||||
#include <agl/Utils/aglParameterObj.h>
|
||||
#include <container/seadBuffer.h>
|
||||
#include <prim/seadStorageFor.h>
|
||||
#include "KingSystem/Resource/resResource.h"
|
||||
#include "KingSystem/Utils/ParamIO.h"
|
||||
|
||||
namespace ksys::res {
|
||||
|
||||
// FIXME: incomplete
|
||||
class ModelList : public ParamIO, public Resource {
|
||||
SEAD_RTTI_OVERRIDE(ModelList, Resource)
|
||||
public:
|
||||
struct ControllerInfo {
|
||||
agl::utl::Parameter<sead::Color4f> _2b0;
|
||||
agl::utl::Parameter<sead::Color4f> _2d8;
|
||||
agl::utl::ParameterObj mControllerInfo;
|
||||
agl::utl::Parameter<sead::Vector3f> mBaseScale;
|
||||
agl::utl::Parameter<sead::SafeString> _358;
|
||||
agl::utl::Parameter<s32> _380;
|
||||
agl::utl::Parameter<sead::SafeString> _3a0;
|
||||
agl::utl::Parameter<s32> _3c8;
|
||||
agl::utl::Parameter<sead::SafeString> _3e8;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(ControllerInfo, 0x160);
|
||||
|
||||
struct Attention {
|
||||
agl::utl::Parameter<bool> _0;
|
||||
agl::utl::Parameter<sead::SafeString> _20;
|
||||
agl::utl::Parameter<sead::Vector3f> _48;
|
||||
agl::utl::Parameter<f32> _70;
|
||||
agl::utl::Parameter<f32> _90;
|
||||
agl::utl::Parameter<sead::SafeString> _b0;
|
||||
agl::utl::Parameter<sead::Vector3f> _d8;
|
||||
agl::utl::Parameter<sead::SafeString> _100;
|
||||
agl::utl::Parameter<sead::Vector3f> _128;
|
||||
agl::utl::Parameter<sead::SafeString> _150;
|
||||
agl::utl::Parameter<sead::Vector3f> _178;
|
||||
agl::utl::Parameter<sead::SafeString> _1a0;
|
||||
agl::utl::Parameter<sead::Vector3f> _1c8;
|
||||
agl::utl::Parameter<f32> _1f0;
|
||||
agl::utl::Parameter<sead::SafeString> _210;
|
||||
agl::utl::Parameter<sead::Vector3f> _238;
|
||||
agl::utl::Parameter<bool> _260;
|
||||
agl::utl::Parameter<sead::SafeString> _280;
|
||||
agl::utl::Parameter<sead::Vector3f> _2a8;
|
||||
agl::utl::ParameterObj _2d0;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(Attention, 0x300);
|
||||
|
||||
struct Unit {
|
||||
agl::utl::Parameter<sead::SafeString> unit_name;
|
||||
agl::utl::Parameter<sead::SafeString> bind_bone;
|
||||
agl::utl::ParameterObj obj;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(Unit, 0x80);
|
||||
|
||||
struct ModelData {
|
||||
agl::utl::Parameter<sead::SafeString> folder;
|
||||
agl::utl::ParameterObj base_obj;
|
||||
sead::Buffer<Unit> units;
|
||||
agl::utl::ParameterList unit_list;
|
||||
agl::utl::ParameterList list;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(ModelData, 0xf8);
|
||||
|
||||
// Misspelling of "partical", which is a misspelling of "particle"?
|
||||
struct Partial {
|
||||
agl::utl::Parameter<sead::SafeString> bone;
|
||||
agl::utl::Parameter<s32> bind_flag;
|
||||
agl::utl::Parameter<bool> recursible;
|
||||
agl::utl::ParameterObj obj;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(Partial, 0x98);
|
||||
|
||||
struct AnmTarget {
|
||||
agl::utl::Parameter<s32> num_as_slot;
|
||||
agl::utl::Parameter<bool> is_partical_enable;
|
||||
agl::utl::Parameter<s32> target_type;
|
||||
agl::utl::ParameterObj base_obj;
|
||||
sead::Buffer<Partial> partials;
|
||||
agl::utl::ParameterList partial_list;
|
||||
agl::utl::ParameterList list;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(AnmTarget, 0x130);
|
||||
|
||||
ModelList();
|
||||
~ModelList() override;
|
||||
|
||||
void doCreate_(u8* buffer, u32 buffer_size, sead::Heap* heap) override;
|
||||
bool needsParse() const override { return true; }
|
||||
bool parse_(u8* data, size_t size, sead::Heap* heap) override;
|
||||
|
||||
const ControllerInfo& getControllerInfo() const { return mControllerInfo.ref(); }
|
||||
const Attention& getAttention() const { return mAttention.ref(); }
|
||||
const sead::Buffer<ModelData>& getModelData() const { return mModelData; }
|
||||
const sead::Buffer<AnmTarget>& getAnmTargets() const { return mAnmTargets; }
|
||||
bool is7C8() const { return _7c8; }
|
||||
|
||||
private:
|
||||
sead::StorageFor<ControllerInfo> mControllerInfo{sead::ZeroInitializeTag{}};
|
||||
sead::StorageFor<Attention> mAttention{sead::ZeroInitializeTag{}};
|
||||
u8* mRawData{};
|
||||
sead::Buffer<ModelData> mModelData;
|
||||
agl::utl::ParameterList mModelDataList;
|
||||
sead::Buffer<AnmTarget> mAnmTargets;
|
||||
agl::utl::ParameterList mAnmTargetList;
|
||||
bool _7c8 = false;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(ModelList, 0x7d0);
|
||||
|
||||
} // namespace ksys::res
|
Loading…
Reference in New Issue