1#ifndef SEAD_ARCHIVE_RES_H_
2#define SEAD_ARCHIVE_RES_H_
4#include <basis/seadAssert.h>
5#include <filedevice/seadFileDevice.h>
6#include <heap/seadHeap.h>
7#include <prim/seadSafeString.h>
8#include <resource/seadResource.h>
36 static_assert(
sizeof(
FileInfo) == 8,
"sead::ArchiveRes::FileInfo size mismatch");
74 return static_cast<u8*>(getFileFastImpl_(entry_id, file_info));
80 return convertPathToEntryIDImpl_(file_path);
105 return readDirectoryImpl_(handle_buffer, entry, num);
112 file_info->mStartOffset = start_offset;
113 file_info->mLength = length;
120static_assert(
sizeof(
ArchiveRes) == 0x28,
"sead::ArchiveRes size mismatch");
Definition seadArchiveRes.h:18
FileInfo()
Definition seadArchiveRes.h:20
u32 getLength() const
Definition seadArchiveRes.h:27
u32 mLength
Definition seadArchiveRes.h:31
u32 getStartOffset() const
Definition seadArchiveRes.h:26
u32 mStartOffset
Definition seadArchiveRes.h:30
Definition seadArchiveRes.h:13
u32 getLoadDataAlignment() override
Definition seadArchiveRes.h:48
ArchiveRes()
Definition seadArchiveRes.h:40
bool mEnable
Definition seadArchiveRes.h:117
virtual bool setCurrentDirectoryImpl_(const SafeString &file_path)=0
bool setCurrentDirectory(const SafeString &file_path)
Definition seadArchiveRes.h:83
virtual u32 readDirectoryImpl_(HandleBuffer *handle_buffer, DirectoryEntry *entry, u32 num)=0
bool closeDirectory(HandleBuffer *handle_buffer)
Definition seadArchiveRes.h:95
ResourcePtr load(ResourceMgr::LoadArg &arg)
Definition seadArchiveRes.cpp:12
void doCreate_(u8 *buf, u32, Heap *) override
Definition seadArchiveRes.cpp:7
virtual void * getFileFastImpl_(s32 entry_id, FileInfo *file_info)=0
virtual bool prepareArchive_(const void *archive)=0
bool openDirectory(HandleBuffer *handle_buffer, const SafeString &dir_path)
Definition seadArchiveRes.h:89
virtual void * getFileImpl_(const SafeString &file_path, FileInfo *file_info)=0
virtual s32 convertPathToEntryIDImpl_(const SafeString &file_path)=0
~ArchiveRes() override
Definition seadArchiveRes.h:46
u8 * getFile(const SafeString &file_path, FileInfo *file_info=nullptr)
Definition seadArchiveRes.h:65
virtual bool openDirectoryImpl_(HandleBuffer *handle_buffer, const SafeString &dir_path)=0
u8 * getFileFast(s32 entry_id, FileInfo *file_info=nullptr)
Definition seadArchiveRes.h:71
u32 readDirectory(HandleBuffer *handle_buffer, DirectoryEntry *entry, u32 num)
Definition seadArchiveRes.h:101
virtual bool closeDirectoryImpl_(HandleBuffer *handle_buffer)=0
s32 convertPathToEntryID(const SafeString &file_path)
Definition seadArchiveRes.h:77
void setFileInfo(FileInfo *file_info, u32 start_offset, u32 length)
Definition seadArchiveRes.h:109
Definition seadResource.h:30
DirectResource()
Definition seadResource.cpp:18
Definition seadResourceMgr.h:45
Definition seadResourceMgr.h:16
Definition seadAssert.h:44
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
SafeArray< u8, 32 > HandleBuffer
Definition seadFileDevice.h:15
#define SEAD_ASSERT(condition)
Definition seadAssert.h:24
#define SEAD_RTTI_OVERRIDE(CLASS, BASE)
Definition seadRuntimeTypeInfo.h:96
Definition seadFileDevice.h:443
Definition seadResourceMgr.h:77