1#ifndef SEAD_SHARC_ARCHIVE_RES_H_
2#define SEAD_SHARC_ARCHIVE_RES_H_
4#include <container/seadBuffer.h>
5#include <filedevice/seadFileDevice.h>
6#include <prim/seadEndian.h>
7#include <prim/seadSafeString.h>
8#include <resource/seadArchiveRes.h>
33 "sead::SharcArchiveRes::ArchiveBlockHeader size mismatch");
43 "sead::SharcArchiveRes::FATBlockHeader size mismatch");
52 static_assert(
sizeof(
FATEntry) == 0x10,
53 "sead::SharcArchiveRes::FATEntry size mismatch");
62 "sead::SharcArchiveRes::FNTBlockHeader size mismatch");
87static_assert(
sizeof(
SharcArchiveRes) == 0x44,
"sead::SharcArchiveRes size mismatch");
Definition seadArchiveRes.h:18
Definition seadArchiveRes.h:13
Definition seadBuffer.h:13
Definition seadEndian.h:10
Types
Definition seadEndian.h:13
Definition seadSharcArchiveRes.h:13
s32 convertPathToEntryIDImpl_(const SafeString &file_path) override
Definition seadSharcArchiveRes.cpp:114
const ArchiveBlockHeader * mArchiveBlockHeader
Definition seadSharcArchiveRes.h:79
Endian::Types mEndianType
Definition seadSharcArchiveRes.h:84
SharcArchiveRes()
Definition seadSharcArchiveRes.cpp:58
static const u32 cArchiveEntryMax
Definition seadSharcArchiveRes.h:18
bool setCurrentDirectoryImpl_(const SafeString &file_path) override
Definition seadSharcArchiveRes.cpp:160
bool openDirectoryImpl_(HandleBuffer *handle_buffer, const SafeString &dir_path) override
Definition seadSharcArchiveRes.cpp:167
void * getFileImpl_(const SafeString &file_path, FileInfo *file_info) override
Definition seadSharcArchiveRes.cpp:77
bool prepareArchive_(const void *archive) override
Definition seadSharcArchiveRes.cpp:222
void * getFileFastImpl_(s32 entry_id, FileInfo *file_info) override
Definition seadSharcArchiveRes.cpp:90
u32 readDirectoryImpl_(HandleBuffer *handle_buffer, DirectoryEntry *entry, u32 num) override
Definition seadSharcArchiveRes.cpp:183
virtual ~SharcArchiveRes()
Definition seadSharcArchiveRes.cpp:72
Buffer< const FATEntry > mFATEntrys
Definition seadSharcArchiveRes.h:82
const char * mFNTBlock
Definition seadSharcArchiveRes.h:81
static const u32 cArchiveVersion
Definition seadSharcArchiveRes.h:17
const FATBlockHeader * mFATBlockHeader
Definition seadSharcArchiveRes.h:80
const u8 * mDataBlock
Definition seadSharcArchiveRes.h:83
static const u32 cFileNameTableAlign
Definition seadSharcArchiveRes.h:19
bool closeDirectoryImpl_(HandleBuffer *handle_buffer) override
Definition seadSharcArchiveRes.cpp:177
Definition seadAssert.h:44
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
SafeArray< u8, 32 > HandleBuffer
Definition seadFileDevice.h:15
#define SEAD_RTTI_OVERRIDE(CLASS, BASE)
Definition seadRuntimeTypeInfo.h:96
Definition seadFileDevice.h:443
Definition seadSharcArchiveRes.h:46
u32 data_start_offset
Definition seadSharcArchiveRes.h:49
u32 name_offset
Definition seadSharcArchiveRes.h:48
u32 data_end_offset
Definition seadSharcArchiveRes.h:50
u32 hash
Definition seadSharcArchiveRes.h:47