ksys/res: Add ASList header

This commit is contained in:
Léo Lam 2020-11-13 19:29:06 +01:00
parent 4c18e03834
commit c639c70c5b
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
4 changed files with 91 additions and 1 deletions

View File

@ -91495,7 +91495,7 @@
0x00000071011abc7c,sub_71011ABC7C,8,
0x00000071011abc84,sub_71011ABC84,372,
0x00000071011abdf8,nullsub_4622,4,
0x00000071011abdfc,sub_71011ABDFC,372,
0x00000071011abdfc,sub_71011ABDFC,372,_ZN4ksys3res6ASListC1Ev
0x00000071011abf70,sub_71011ABF70,668,
0x00000071011ac20c,sub_71011AC20C,8,
0x00000071011ac214,sub_71011AC214,8,

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

View File

@ -130,6 +130,8 @@ target_sources(uking PRIVATE
resResourceActorLink.h
resResourceAIProgram.cpp
resResourceAIProgram.h
resResourceASList.cpp
resResourceASList.h
resResourceArchive.cpp
resResourceArchive.h
resResourceAwareness.cpp

View File

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

View File

@ -0,0 +1,81 @@
#pragma once
#include <agl/Utils/aglParameter.h>
#include <agl/Utils/aglParameterList.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 {
class ASList : public ParamIO, public Resource {
SEAD_RTTI_OVERRIDE(ASList, Resource)
public:
struct ASDefine {
agl::utl::Parameter<sead::SafeString> name;
agl::utl::Parameter<sead::SafeString> file_name;
agl::utl::ParameterObj obj;
void* _88;
};
KSYS_CHECK_SIZE_NX150(ASDefine, 0x88);
struct CFDefine {
agl::utl::Parameter<sead::SafeString> name;
agl::utl::ParameterObj pre_obj;
sead::Buffer<void*> posts;
agl::utl::ParameterList posts_list;
sead::Buffer<void*> excepts;
agl::utl::ParameterObj obj;
agl::utl::ParameterList excepts_list;
};
KSYS_CHECK_SIZE_NX150(CFDefine, 0x138);
struct AddRes {
agl::utl::Parameter<sead::SafeString> _0;
agl::utl::Parameter<sead::SafeString> _28;
agl::utl::Parameter<bool> _50;
agl::utl::ParameterObj obj;
};
KSYS_CHECK_SIZE_NX150(AddRes, 0xa0);
struct Common {
agl::utl::Parameter<f32> rate_all;
agl::utl::ParameterObj obj;
};
KSYS_CHECK_SIZE_NX150(Common, 0x50);
struct Buffers {
Buffers() { _0 = 0; }
s32 _0;
sead::Buffer<ASDefine> as_defines;
sead::Buffer<CFDefine> cf_defines;
sead::Buffer<AddRes> add_reses;
};
ASList();
~ASList() 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 Buffers& getBuffers() const { return mBuffers; }
const Common& getCommon() const { return mCommon.ref(); }
protected:
bool finishParsing_() override;
bool m7_() override;
private:
Buffers mBuffers;
agl::utl::ParameterList mCFDefinesList;
agl::utl::ParameterList mASDefinesList;
agl::utl::ParameterList mAddResesList;
sead::StorageFor<Common> mCommon{sead::ZeroInitializeTag{}};
};
KSYS_CHECK_SIZE_NX150(ASList, 0x410);
} // namespace ksys::res