1#pragma once
2
3#include <basis/seadTypes.h>
4
5namespace al {
6class CameraPoser;
7class CameraTicketId;
8
9class CameraTicket {
10public:
11 enum Priority {
12 Priority_Default = 0,
13 Priority_Entrance = 2,
14 Priority_BossField = 3,
15 Priority_Capture = 4,
16 Priority_Object = 5,
17 Priority_ForceArea = 6,
18 Priority_Unknown = 7, // Mention in alCameraPoserFunction::isPrePriorityEntranceAll
19 Priority_SafetyPointRecovery = 8,
20 Priority_Player = 9,
21 Priority_DemoTalk = 10,
22 Priority_Demo = 11,
23 Priority_Demo2 = 12,
24 };
25
26 CameraTicket(CameraPoser* poser, const CameraTicketId* ticketId, s32 priority);
27 void setPriority(s32 priority);
28
29 CameraPoser* getPoser() const { return mPoser; }
30
31 const CameraTicketId* getTicketId() const { return mTicketId; }
32
33 s32 getPriority() const { return mPriority; }
34
35 bool isActiveCamera() const { return mIsActiveCamera; }
36
37 void setActiveCamera(bool isActiveCamera) { mIsActiveCamera = isActiveCamera; }
38
39private:
40 CameraPoser* mPoser;
41 const CameraTicketId* mTicketId;
42 s32 mPriority;
43 bool mIsActiveCamera = false;
44};
45
46static_assert(sizeof(CameraTicket) == 0x18);
47
48} // namespace al
49