mirror of https://github.com/zeldaret/botw.git
ksys/res: Implement Resource (base class)
This commit is contained in:
parent
96a3286a43
commit
578955f4e9
|
|
@ -50,6 +50,9 @@ add_executable(uking
|
|||
|
||||
src/KingSystem/MessageSystem/mesTransceiver.h
|
||||
|
||||
src/KingSystem/Resource/resResource.cpp
|
||||
src/KingSystem/Resource/resResource.h
|
||||
|
||||
src/KingSystem/Terrain/teraSystem.h
|
||||
|
||||
src/KingSystem/Utils/Byaml.cpp
|
||||
|
|
|
|||
|
|
@ -56358,7 +56358,7 @@
|
|||
0x00000071009cab10,sub_71009CAB10,8,
|
||||
0x00000071009cab18,sub_71009CAB18,92,
|
||||
0x00000071009cab74,sub_71009CAB74,8,
|
||||
0x00000071009cab7c,ResourceBase::needsParse,8,
|
||||
0x00000071009cab7c,ResourceBase::needsParse,8,_ZNK4ksys3res8Resource10needsParseEv
|
||||
0x00000071009cab84,sub_71009CAB84,8,
|
||||
0x00000071009cad00,nullsub_5460,4,
|
||||
0x00000071009cad04,sub_71009CAD04,496,
|
||||
|
|
@ -56427,7 +56427,7 @@
|
|||
0x00000071009cde70,sub_71009CDE70,132,
|
||||
0x00000071009cdef4,sub_71009CDEF4,92,
|
||||
0x00000071009cdf50,sub_71009CDF50,8,
|
||||
0x00000071009cdf58,ResourceBase::returnTrue,8,
|
||||
0x00000071009cdf58,ResourceBase::returnTrue,8,_ZN4ksys3res8Resource3m2_Ev
|
||||
0x00000071009cdf60,sub_71009CDF60,140,
|
||||
0x00000071009ce10c,_ZN3agl12GPUMemBlockTIhED2Ev,20,
|
||||
0x00000071009ce120,sub_71009CE120,52,
|
||||
|
|
@ -90751,30 +90751,30 @@
|
|||
0x0000007101200abc,nullsub_4691,4,
|
||||
0x0000007101200ac0,sub_7101200AC0,1444,
|
||||
0x00000071012011d8,sub_71012011D8,124,
|
||||
0x0000007101201254,ResourceBase::ctor,64,
|
||||
0x0000007101201294,j__ZN4sead14DirectResourceD2Ev,4,
|
||||
0x0000007101201298,sub_7101201298,8,
|
||||
0x00000071012012a0,ResourceBase::dtorDelete,36,
|
||||
0x00000071012012c4,sub_71012012C4,40,
|
||||
0x0000007101201254,ResourceBase::ctor,64,_ZN4ksys3res8ResourceC1Ev
|
||||
0x0000007101201294,j__ZN4sead14DirectResourceD2Ev,4,_ZN4ksys3res8ResourceD2Ev
|
||||
0x0000007101201298,sub_7101201298,8,_ZThn32_N4ksys3res8ResourceD1Ev
|
||||
0x00000071012012a0,ResourceBase::dtorDelete,36,_ZN4ksys3res8ResourceD0Ev
|
||||
0x00000071012012c4,sub_71012012C4,40,_ZThn32_N4ksys3res8ResourceD0Ev
|
||||
0x00000071012012ec,res::getResLoadArgAllocSize,16,
|
||||
0x00000071012012fc,ResourceBase::getField30,8,
|
||||
0x0000007101201304,ResourceBase::setField30,8,
|
||||
0x000000710120130c,ResourceBase::callOnDestroy,12,
|
||||
0x0000007101201318,ResourceBase::callParse,24,
|
||||
0x0000007101201330,ResourceBase::callM5,32,
|
||||
0x0000007101201350,ResourceBase::callM6AndClearField30,48,
|
||||
0x0000007101201380,ResourceBase::callM7,12,
|
||||
0x000000710120138c,ResourceBase::doCreate,4,
|
||||
0x0000007101201390,ResourceBase::onDestroy,4,
|
||||
0x0000007101201394,ResourceBase::parse,8,
|
||||
0x000000710120139c,ResourceBase::nullsub1,4,
|
||||
0x00000071012013a0,ResourceBase::afterParse,8,
|
||||
0x00000071012013a8,ResourceBase::returnTrue4,8,
|
||||
0x00000071012013b0,ResourceBase::nullsub2,4,
|
||||
0x00000071012012fc,ResourceBase::getField30,8,_ZNK4ksys3res8Resource10getContextEv
|
||||
0x0000007101201304,ResourceBase::setField30,8,_ZN4ksys3res8Resource10setContextEPNS0_7ContextE
|
||||
0x000000710120130c,ResourceBase::callOnDestroy,12,_ZN4ksys3res8Resource9onDestroyEv
|
||||
0x0000007101201318,ResourceBase::callParse,24,_ZN4ksys3res8Resource5parseEPNS0_7ContextEPN4sead4HeapE
|
||||
0x0000007101201330,ResourceBase::callM5,32,_ZN4ksys3res8Resource2m5Ev
|
||||
0x0000007101201350,ResourceBase::callM6AndClearField30,48,_ZN4ksys3res8Resource13finishParsingEv
|
||||
0x0000007101201380,ResourceBase::callM7,12,_ZN4ksys3res8Resource2m7Ev
|
||||
0x000000710120138c,ResourceBase::doCreate,4,_ZN4ksys3res8Resource9doCreate_EPhjPN4sead4HeapE
|
||||
0x0000007101201390,ResourceBase::onDestroy,4,_ZN4ksys3res8Resource10onDestroy_Ev
|
||||
0x0000007101201394,ResourceBase::parse,8,_ZN4ksys3res8Resource6parse_EPhmPN4sead4HeapE
|
||||
0x000000710120139c,ResourceBase::nullsub1,4,_ZN4ksys3res8Resource3m5_Ev
|
||||
0x00000071012013a0,ResourceBase::afterParse,8,_ZN4ksys3res8Resource14finishParsing_Ev
|
||||
0x00000071012013a8,ResourceBase::returnTrue4,8,_ZN4ksys3res8Resource3m7_Ev
|
||||
0x00000071012013b0,ResourceBase::nullsub2,4,_ZN4ksys3res8Resource3m8_Ev
|
||||
0x00000071012013b4,res::setResLoadArgAllocSize,16,
|
||||
0x00000071012013c4,res::clearResLoadArgAllocSize,16,
|
||||
0x00000071012013d4,ResourceBase::rtti1,288,
|
||||
0x00000071012014f4,ResourceBase::rtti2,92,
|
||||
0x00000071012013d4,ResourceBase::rtti1,288,_ZNK4ksys3res8Resource27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
|
||||
0x00000071012014f4,ResourceBase::rtti2,92,_ZNK4ksys3res8Resource18getRuntimeTypeInfoEv
|
||||
0x0000007101201550,nullsub_5570,4,
|
||||
0x0000007101201554,sub_7101201554,324,
|
||||
0x0000007101201698,ResourceLoadArgBase::dtorDelete,4,
|
||||
|
|
|
|||
|
Can't render this file because it is too large.
|
|
|
@ -0,0 +1,38 @@
|
|||
#include "KingSystem/Resource/resResource.h"
|
||||
|
||||
namespace ksys::res {
|
||||
|
||||
Resource::Resource() = default;
|
||||
|
||||
Context* Resource::getContext() const {
|
||||
return mContext;
|
||||
}
|
||||
|
||||
void Resource::setContext(Context* context) {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
void Resource::onDestroy() {
|
||||
onDestroy_();
|
||||
}
|
||||
|
||||
void Resource::parse(Context*, sead::Heap* heap) {
|
||||
parse_(mRawData, mRawSize, heap);
|
||||
}
|
||||
|
||||
bool Resource::m5() {
|
||||
m5_();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Resource::finishParsing() {
|
||||
const bool ret = finishParsing_();
|
||||
mContext = nullptr;
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool Resource::m7() {
|
||||
return m7_();
|
||||
}
|
||||
|
||||
} // namespace ksys::res
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
#pragma once
|
||||
|
||||
#include <resource/seadResource.h>
|
||||
#include "KingSystem/Utils/Types.h"
|
||||
|
||||
namespace ksys::res {
|
||||
|
||||
class IResource {
|
||||
public:
|
||||
virtual ~IResource() = default;
|
||||
};
|
||||
|
||||
class Context {
|
||||
public:
|
||||
virtual ~Context() = default;
|
||||
};
|
||||
|
||||
class Resource : public sead::DirectResource, public IResource {
|
||||
SEAD_RTTI_OVERRIDE(Resource, sead::DirectResource)
|
||||
public:
|
||||
Resource();
|
||||
|
||||
void doCreate_(u8* buffer, u32 bufferSize, sead::Heap* heap) override;
|
||||
|
||||
virtual bool needsParse() const { return false; }
|
||||
virtual bool m2_() { return true; }
|
||||
|
||||
Context* getContext() const;
|
||||
void setContext(Context* context);
|
||||
|
||||
void onDestroy();
|
||||
void parse(Context*, sead::Heap* heap);
|
||||
bool m5();
|
||||
bool finishParsing();
|
||||
bool m7();
|
||||
|
||||
protected:
|
||||
virtual void onDestroy_() {}
|
||||
virtual bool parse_(u8* data, size_t size, sead::Heap* heap);
|
||||
virtual void m5_() {}
|
||||
virtual bool finishParsing_() { return true; }
|
||||
virtual bool m7_() { return true; }
|
||||
virtual void m8_() {}
|
||||
|
||||
u32 mAllocSize = 0;
|
||||
Context* mContext = nullptr;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(Resource, 0x38);
|
||||
|
||||
inline void Resource::doCreate_(u8*, u32, sead::Heap*) {}
|
||||
|
||||
inline bool Resource::parse_(u8*, size_t, sead::Heap*) {
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace ksys::res
|
||||
Loading…
Reference in New Issue