summaryrefslogtreecommitdiff
path: root/src/KingSystem/Map/mapPlacementMapMgr.h
blob: 913c419a7398f16dc161c30df63e1c17f7c42775 (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
#pragma once

#include <basis/seadTypes.h>
#include <container/seadBuffer.h>
#include <container/seadPtrArray.h>
#include <heap/seadDisposer.h>
#include "KingSystem/Map/mapPlacementMap.h"
#include "KingSystem/Resource/resHandle.h"
#include "KingSystem/Utils/Types.h"

namespace ksys::map {

class MapProperties;
class Placement18;
class FarActorMerge;
class PlacementActors;

class PlacementMap;

/* NOT WORKING */
class PlacementMapMgr {
    /* NOT WORKING */
    class PlacementMapArray {
    public:
        PlacementMapArray() = default;
        ~PlacementMapArray() = default;

        sead::PtrArray<PlacementMap> mMaps;
        sead::PtrArray<PlacementMap> mPtrs;
        PlacementActors* mPa;
        s64 _28;
        res::Handle mRes;
        Placement18* mP18;
        s32 _88;
        s32 _8c;
        void* _90;
    };
    KSYS_CHECK_SIZE_NX150(PlacementMapArray, 0x98);

public:
    PlacementMapMgr() = default;
    ~PlacementMapMgr() = default;

    bool isShrineOrDivineBeast() const { return mIsShrineOrDivineBeast; }

private:
    sead::Buffer<PlacementMap> mMaps;
    MapProperties* mMapProps;
    s32 _18;
    s32 _1c;
    PlacementMapArray mMapArray;
    FarActorMerge* mFarActorMerge;
    s32 mNeedLoadDynMap;
    s32 mNeedLoadDynMapPhysics;
    bool mIsShrineOrDivineBeast;
    bool mIsShrine;
};

KSYS_CHECK_SIZE_NX150(PlacementMapMgr, 0xD0);

}  // namespace ksys::map