summaryrefslogtreecommitdiff
path: root/src/KingSystem/Quest/qstActorData.h
blob: c6e3ab37404e93d5f5ccea221bebaf1afd9ab046 (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
#pragma once

#include <container/seadPtrArray.h>
#include <heap/seadHeap.h>
#include <prim/seadSafeString.h>
#include "KingSystem/Utils/Types.h"

namespace al {
class ByamlIter;
}

namespace ksys::qst {

struct CameraTarget {
    virtual ~CameraTarget();
    bool enabled;
    sead::SafeString name;
};
KSYS_CHECK_SIZE_NX150(CameraTarget, 0x20);

struct ActorData {
    ActorData(sead::Heap* heap);
    virtual ~ActorData();

    bool init(al::ByamlIter* iter, sead::BufferedSafeString* out_message);
    const CameraTarget* getTarget(int idx) const;
    void disableAllTargets();
    void enableAllTargets();

    sead::PtrArray<CameraTarget> targets;
    sead::Heap* heap;
};
KSYS_CHECK_SIZE_NX150(ActorData, 0x20);

}  // namespace ksys::qst