summaryrefslogtreecommitdiff
path: root/src/KingSystem/Resource/resLoadRequest.h
blob: b23f0e5543f7c474598f1b270052dc332dcb1ac8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#pragma once

#include <basis/seadTypes.h>
#include <prim/seadRuntimeTypeInfo.h>
#include <prim/seadSafeString.h>
#include <resource/seadResource.h>
#include "KingSystem/Utils/Types.h"

namespace sead {
class FileDevice;
}

namespace ksys {
class OverlayArena;
}

namespace ksys::res {

class Handle;

class EntryFactoryBase;

class ILoadRequest {
    SEAD_RTTI_BASE(ILoadRequest)
public:
    ILoadRequest() = default;
    ILoadRequest(const ILoadRequest&) = default;
    ILoadRequest& operator=(const ILoadRequest&) = default;
    virtual ~ILoadRequest();

    bool _8 = false;
    u32 mLaneId = 1;
    sead::SafeString mRequester;
};
KSYS_CHECK_SIZE_NX150(ILoadRequest, 0x20);

class LoadRequest : public ILoadRequest {
    SEAD_RTTI_OVERRIDE(LoadRequest, ILoadRequest)
public:
    LoadRequest();
    LoadRequest(s32 load_data_alignment, u32 lane_id, bool arg_20);
    LoadRequest(const LoadRequest&) = default;
    LoadRequest& operator=(const LoadRequest&) = default;
    ~LoadRequest() override = default;

    bool _20 = false;
    bool _21 = false;
    bool _22 = false;
    bool mCanFallBackToNonArchiveLoad = true;
    bool _24 = false;
    bool mLoadCompressed = true;
    bool _26 = true;
    bool _27 = true;
    bool _28 = true;
    s32 mLoadDataAlignment = 0;
    u32 mBufferSize = 0;
    u32 _34 = 0;
    sead::FileDevice* mFileDevice = nullptr;
    EntryFactoryBase* mEntryFactory = nullptr;
    sead::FileDevice* mAocFileDevice = nullptr;
    OverlayArena* mArena = nullptr;
    Handle* mPackHandle = nullptr;
    void* _60 = nullptr;
    void* _68 = nullptr;
    sead::SafeString mPath;
};
KSYS_CHECK_SIZE_NX150(LoadRequest, 0x80);

class SimpleLoadRequest : public ILoadRequest {
    SEAD_RTTI_OVERRIDE(SimpleLoadRequest, ILoadRequest)
public:
    SimpleLoadRequest();
    ~SimpleLoadRequest() override = default;
    SimpleLoadRequest(const SimpleLoadRequest&) = default;
    SimpleLoadRequest& operator=(const SimpleLoadRequest&) = default;

    sead::SafeString mPath;
    void* _30 = nullptr;
};
KSYS_CHECK_SIZE_NX150(SimpleLoadRequest, 0x38);

class SimplePackedLoadRequest : public ILoadRequest {
    SEAD_RTTI_OVERRIDE(SimplePackedLoadRequest, ILoadRequest)
public:
    SimplePackedLoadRequest();
    ~SimplePackedLoadRequest() override = default;
    SimplePackedLoadRequest(const SimplePackedLoadRequest&) = default;
    SimplePackedLoadRequest& operator=(const SimplePackedLoadRequest&) = default;

    Handle* mPack = nullptr;
    void* _30 = nullptr;
};
KSYS_CHECK_SIZE_NX150(SimplePackedLoadRequest, 0x30);

}  // namespace ksys::res