1#include "Project/ArchiveEntry.h"
2
3#include <resource/seadArchiveRes.h>
4
5#include "Library/File/FileUtil.h"
6
7namespace al {
8
9ArchiveEntry::ArchiveEntry() = default;
10
11void ArchiveEntry::load() {
12 sead::Resource* resource = sead::ResourceMgr::instance()->tryLoad(arg: mLoadArg, factory_name: "sarc", decompressor: nullptr);
13 mArchiveRes = sead::DynamicCast<sead::ArchiveRes>(obj: resource);
14 sendMessageDone();
15}
16
17void ArchiveEntry::setLoadRequestInfo(const sead::SafeString& fileName, sead::Heap* heap,
18 sead::FileDevice* fileDevice) {
19 setFileName(fileName);
20 mLoadArg.path = getFileName();
21 mLoadArg.device = fileDevice;
22 mLoadArg.instance_heap = heap;
23 mLoadArg.load_data_heap = heap;
24 mLoadArg.load_data_alignment = calcFileAlignment(fileName);
25 mLoadArg.load_data_alignment = calcFileAlignment(fileName: mLoadArg.path);
26 mLoadArg.load_data_buffer_alignment = calcBufferSizeAlignment(fileName: mLoadArg.path);
27 setLoadStateRequested();
28}
29
30sead::ArchiveRes* ArchiveEntry::getArchiveRes() {
31 return mArchiveRes;
32}
33
34void ArchiveEntry::clear() {
35 FileEntryBase::clear();
36 mArchiveRes = nullptr;
37}
38
39} // namespace al
40