ksys/res: Add ModelList (incomplete)

This commit is contained in:
Léo Lam 2020-11-13 01:04:02 +01:00
parent 13d1f0d0be
commit c3d665f1c1
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
7 changed files with 141 additions and 4 deletions

View File

@ -1,5 +1,19 @@
0x00000071023556B0,_ZTVN4sead14SafeStringBaseIcEE 0x00000071023556B0,_ZTVN4sead14SafeStringBaseIcEE
0x0000007102356AF0,_ZTVN4sead22BufferedSafeStringBaseIcEE
0x000000710246F9E0,_ZN4ksys3gdt6detail13sCommonFlags0E 0x000000710246F9E0,_ZN4ksys3gdt6detail13sCommonFlags0E
0x00000071024709E0,_ZN4ksys3gdt6detail13sCommonFlags1E 0x00000071024709E0,_ZN4ksys3gdt6detail13sCommonFlags1E
0x00000071024719E0,_ZN4ksys3gdt6detail13sCommonFlags2E 0x00000071024719E0,_ZN4ksys3gdt6detail13sCommonFlags2E
0x00000071024729E0,_ZN4ksys3gdt6detail13sCommonFlags3E 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

1 0x00000071023556B0 _ZTVN4sead14SafeStringBaseIcEE
2 0x0000007102356AF0 _ZTVN4sead22BufferedSafeStringBaseIcEE
3 0x000000710246F9E0 _ZN4ksys3gdt6detail13sCommonFlags0E
4 0x00000071024709E0 _ZN4ksys3gdt6detail13sCommonFlags1E
5 0x00000071024719E0 _ZN4ksys3gdt6detail13sCommonFlags2E
6 0x00000071024729E0 _ZN4ksys3gdt6detail13sCommonFlags3E
7 0x00000071024C0F18 _ZTVN3agl3utl13ParameterBaseE
8 0x00000071024C1060 _ZTVN3agl3utl9ParameterIbEE
9 0x00000071024C1100 _ZTVN3agl3utl9ParameterIfEE
10 0x00000071024C11A0 _ZTVN3agl3utl9ParameterIiEE
11 0x00000071024C1240 _ZTVN3agl3utl9ParameterIjEE
12 0x00000071024C12E0 _ZTVN3agl3utl9ParameterIN4sead7Vector2IfEEEE
13 0x00000071024C1380 _ZTVN3agl3utl9ParameterIN4sead7Vector3IfEEEE
14 0x00000071024C1420 _ZTVN3agl3utl9ParameterIN4sead7Vector4IfEEEE
15 0x00000071024C14E0 _ZTVN3agl3utl9ParameterIN4sead7Color4fEEE
16 0x00000071024C1560 _ZTVN3agl3utl9ParameterIN4sead4QuatIfEEEE
17 0x00000071024C1600 _ZTVN3agl3utl9ParameterIN4sead15FixedSafeStringILi64EEEEE
18 0x00000071024C16A0 _ZTVN3agl3utl9ParameterIN4sead15FixedSafeStringILi256EEEEE
19 0x00000071024C1740 _ZTVN3agl3utl9ParameterIN4sead14SafeStringBaseIcEEEE

View File

@ -91525,8 +91525,8 @@
0x00000071011ae2bc,sub_71011AE2BC,8, 0x00000071011ae2bc,sub_71011AE2BC,8,
0x00000071011ae2c4,sub_71011AE2C4,372, 0x00000071011ae2c4,sub_71011AE2C4,372,
0x00000071011ae438,sub_71011AE438,212, 0x00000071011ae438,sub_71011AE438,212,
0x00000071011ae50c,Bmodellist::ctor,596, 0x00000071011ae50c,Bmodellist::ctor,596,_ZN4ksys3res9ModelListC1Ev
0x00000071011ae760,BmodellistSub::ctor,404, 0x00000071011ae760,BmodellistSub::ctor,404,_ZN4ksys3res9ModelList9AttentionC2Ev
0x00000071011ae8f4,sub_71011AE8F4,972, 0x00000071011ae8f4,sub_71011AE8F4,972,
0x00000071011aecc0,sub_71011AECC0,8, 0x00000071011aecc0,sub_71011AECC0,8,
0x00000071011aecc8,sub_71011AECC8,8, 0x00000071011aecc8,sub_71011AECC8,8,

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

@ -1 +1 @@
Subproject commit 29da026c05155b3432eed35f89818bf474894b2b Subproject commit 6d0d19ac628c26622c75c38dde8e1cbd93f3a854

View File

@ -150,6 +150,8 @@ target_sources(uking PRIVATE
resResourceLifeCondition.h resResourceLifeCondition.h
resResourceLod.cpp resResourceLod.cpp
resResourceLod.h resResourceLod.h
resResourceModelList.cpp
resResourceModelList.h
resResourceRecipe.cpp resResourceRecipe.cpp
resResourceRecipe.h resResourceRecipe.h
resResourceShop.cpp resResourceShop.cpp

View File

@ -21,7 +21,7 @@ public:
Resource(); Resource();
~Resource() override; ~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 needsParse() const { return false; }
virtual bool m2_() { return true; } virtual bool m2_() { return true; }

View File

@ -0,0 +1,7 @@
#include "KingSystem/Resource/resResourceModelList.h"
namespace ksys::res {
ModelList::ModelList() : ParamIO("modellist", 0) {}
} // namespace ksys::res

View File

@ -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