ksys/res: Implement Archive

This commit is contained in:
Léo Lam 2020-09-06 17:10:23 +02:00
parent 3d3bcaee1a
commit bb055e442e
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
5 changed files with 47 additions and 9 deletions

View File

@ -57,6 +57,8 @@ add_executable(uking
src/KingSystem/Resource/resResource.h
src/KingSystem/Resource/resResourceActorLink.cpp
src/KingSystem/Resource/resResourceActorLink.h
src/KingSystem/Resource/resResourceArchive.cpp
src/KingSystem/Resource/resResourceArchive.h
src/KingSystem/Resource/resResourceDemo.cpp
src/KingSystem/Resource/resResourceDemo.h
src/KingSystem/Resource/resResourceLod.cpp

View File

@ -91067,14 +91067,14 @@
0x00000071012132cc,return_0,8,
0x00000071012132d4,return_8,8,
0x00000071012132dc,return1,16,
0x00000071012132ec,ArchiveRes::ctor,60,
0x0000007101213328,ArchiveRes::dtor,4,
0x000000710121332c,sub_710121332C,8,
0x0000007101213334,ArchiveRes::dtorDelete,36,
0x0000007101213358,sub_7101213358,40,
0x0000007101213380,ArchiveRes::doCreate,12,
0x000000710121338c,ArchiveRes::rtti1,132,
0x0000007101213410,ArchiveRes::rtti2,92,
0x00000071012132ec,ArchiveRes::ctor,60,_ZN4ksys3res7ArchiveC1Ev
0x0000007101213328,ArchiveRes::dtor,4,_ZN4ksys3res7ArchiveD1Ev
0x000000710121332c,sub_710121332C,8,_ZThn88_N4ksys3res7ArchiveD1Ev
0x0000007101213334,ArchiveRes::dtorDelete,36,_ZN4ksys3res7ArchiveD0Ev
0x0000007101213358,sub_7101213358,40,_ZThn88_N4ksys3res7ArchiveD0Ev
0x0000007101213380,ArchiveRes::doCreate,12,_ZN4ksys3res7Archive9doCreate_EPhjPN4sead4HeapE
0x000000710121338c,ArchiveRes::rtti1,132,_ZNK4ksys3res7Archive27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x0000007101213410,ArchiveRes::rtti2,92,_ZNK4ksys3res7Archive18getRuntimeTypeInfoEv
0x000000710121346c,_ZN4sead15SharcArchiveRes19closeDirectoryImpl_EPNS_9SafeArrayIhLi32EEE,8,_ZNK4sead15SharcArchiveRes19closeDirectoryImpl_EPNS_9SafeArrayIhLi32EEE
0x00000071012135e8,sub_71012135E8,56,
0x0000007101213620,sub_7101213620,92,

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

@ -1 +1 @@
Subproject commit 397b25d7f0c8841972f20a59f6000f1fb5daabfe
Subproject commit 46ef57b925a24bfb54cbd679a5ecfb413be2d3dc

View File

@ -0,0 +1,13 @@
#include "KingSystem/Resource/resResourceArchive.h"
namespace ksys::res {
Archive::Archive() = default;
Archive::~Archive() = default;
void Archive::doCreate_(u8* data, u32 size, sead::Heap* heap) {
sead::ArchiveRes::doCreate_(data + mDataOffset, size, heap);
}
} // namespace ksys::res

View File

@ -0,0 +1,23 @@
#pragma once
#include <resource/seadSharcArchiveRes.h>
#include "KingSystem/Resource/resResource.h"
#include "KingSystem/Utils/Types.h"
namespace ksys::res {
struct ArchiveOffset {
u32 mDataOffset = 0;
};
class Archive : public sead::SharcArchiveRes, public IResource, public ArchiveOffset {
SEAD_RTTI_OVERRIDE(Archive, sead::SharcArchiveRes)
public:
Archive();
~Archive() override;
void doCreate_(u8* data, u32 size, sead::Heap* heap) override;
};
KSYS_CHECK_SIZE_NX150(Archive, 0x68);
} // namespace ksys::res