New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
PlayerDemoMgr.h
Go to the documentation of this file.
1#pragma once
2
3#include <state/FStateID.h>
4
5#include <container/seadRingBuffer.h>
6#include <heap/seadDisposer.h>
7#include <math/seadVector.h>
8#include <prim/seadBitFlag.h>
9
11
13{
15
16public:
24 static_assert(cMode_Num == 3);
25
26public:
27 void setDemoMode(Mode mode);
28 bool isDemoMode(const StateID& state_id) const;
29
30 bool isGoalDemoMode() const;
31
33
36
38
39 void stopOther();
40 void playOther();
41
42 void setCourseOutList(s32 player_no);
43
44 s32 getCourseOutList(s32 index) const
45 {
46 return mCourseOutList[index];
47 }
48
50 {
51 return mCourseOutPlayerNo;
52 }
53
54 void setCourseOutPlayerNo(s32 player_no)
55 {
56 mCourseOutPlayerNo = player_no;
57 }
58
60 {
62 }
63
65 {
67 }
68
69 bool checkDemoNo(s8* player_no)
70 {
71 return isEnableCheckDemoNo() && getNextDemoNo() == *player_no;
72 }
73
74 void setDemoNo(s32 player_no)
75 {
76 if (!mDemoNoRingBuffer.isFull())
77 mDemoNoRingBuffer.pushBack(player_no);
78 }
79
83 void clearDemoNo(s32 player_no);
84 s32 searchDemoNo(s32 player_no);
85
86 s32 setGoalDemoList(s32 player_no);
87
89 {
90 return mGoalDemoNum;
91 }
92
93 s32 getPoleBelowPlayer(s32 player_no);
94
96 {
97 mGoalFlag.setBit(0);
98 }
99
101 {
102 mGoalFlag.resetBit(3);
103 }
104
106 {
107 mGoalFlag.setBit(4);
108 }
109
111 {
112 mGoalFlag.resetBit(4);
113 }
114
115 bool isUnkGoalFlag6() const
116 {
117 return mGoalFlag.isOnBit(6);
118 }
119
120 bool isUnkGoalFlag7() const
121 {
122 return mGoalFlag.isOnBit(7);
123 }
124
125 bool isSecretExit() const
126 {
127 return mIsSecretExit;
128 }
129
130 void setSecretExit(bool b)
131 {
132 mIsSecretExit = b;
133 }
134
135 bool isNormalExit() const
136 {
137 return !mIsSecretExit;
138 }
139
140 const sead::Vector2f& getGoalPos() const
141 {
142 return mGoalPos;
143 }
144
145 void setGoalPos(const sead::Vector2f& pos)
146 {
147 mGoalPos = pos;
148 }
149
151 {
152 mGoalWalkTargetPosX = x;
153 }
154
155 void setHanabiPos(const sead::Vector3f& pos)
156 {
157 mHanabiPos = pos;
158 }
159
161
166
168 {
169 return mFlag.isOnBit(0);
170 }
171
173
174protected:
175 u32 _10[(0x3C - 0x10) / sizeof(u32)];
177 u32 _40[(0x48 - 0x40) / sizeof(u32)];
179 u32 _4c[(0xD8 - 0x4C) / sizeof(u32)];
181 u32 _dc[(0xF0 - 0xDC) / sizeof(u32)];
183 u32 _f8[(0x108 - 0xF8) / sizeof(u32)];
185 u32 _10c[(0x128 - 0x10C) / sizeof(u32)];
187 u32 _134[(0x158 - 0x134) / sizeof(u32)];
195 u32 _1c8[(0x1D8 - 0x1C8) / sizeof(u32)];
197 u32 _1dc[(0x1F4 - 0x1DC) / sizeof(u32)];
198};
199static_assert(sizeof(PlayerDemoMgr) == 0x1F4, "PlayerDemoMgr size mismatch");
Definition EventGoalActorStop.h:6
Definition PlayerDemoMgr.h:13
s32 getGoalDemoNum() const
Definition PlayerDemoMgr.h:88
bool isNormalExit() const
Definition PlayerDemoMgr.h:135
u32 _40[(0x48 - 0x40)/sizeof(u32)]
Definition PlayerDemoMgr.h:177
s32 getNumDemoNo()
bool isEnableCheckDemoNo()
Definition PlayerDemoMgr.h:59
u32 _4c[(0xD8 - 0x4C)/sizeof(u32)]
Definition PlayerDemoMgr.h:179
void setCourseOutPlayerNo(s32 player_no)
Definition PlayerDemoMgr.h:54
void setHanabiPos(const sead::Vector3f &pos)
Definition PlayerDemoMgr.h:155
s32 getCourseOutList(s32 index) const
Definition PlayerDemoMgr.h:44
void playOther()
sead::Vector2f mGoalPos
Definition PlayerDemoMgr.h:182
f32 mGoalWalkTargetPosX
Definition PlayerDemoMgr.h:184
void offUnkGoalFlag3()
Definition PlayerDemoMgr.h:100
void setSecretExit(bool b)
Definition PlayerDemoMgr.h:130
void setDemoMode(Mode mode)
bool mIsSecretExit
Definition PlayerDemoMgr.h:180
u32 _1bc
Definition PlayerDemoMgr.h:192
void clearDemoNo(s32 player_no)
bool isSecretExit() const
Definition PlayerDemoMgr.h:125
void setGoalPos(const sead::Vector2f &pos)
Definition PlayerDemoMgr.h:145
s32 mGoalDemoNum
Definition PlayerDemoMgr.h:178
sead::FixedRingBuffer< s32, 4 > mDemoNoRingBufferCopy
Definition PlayerDemoMgr.h:190
bool isGoalDemoKimeWait()
bool isGoalDemoMode() const
sead::BitFlag32 mGoalFlag
Definition PlayerDemoMgr.h:176
sead::Vector3f mHanabiPos
Definition PlayerDemoMgr.h:186
void stopOther()
s32 getPoleBelowPlayer(s32 player_no)
void setDemoNo(s32 player_no)
Definition PlayerDemoMgr.h:74
EventGoalActorStop * getGoalStopEvent() const
Definition PlayerDemoMgr.h:162
bool isPlayerGameStop()
bool isGoalDemoItem()
sead::FixedRingBuffer< s32, 4 > mCourseOutList
Definition PlayerDemoMgr.h:188
void onHangFlag()
Definition PlayerDemoMgr.h:105
void setCourseOutList(s32 player_no)
sead::FixedRingBuffer< s32, 4 > mDemoNoRingBuffer
Definition PlayerDemoMgr.h:189
u32 _134[(0x158 - 0x134)/sizeof(u32)]
Definition PlayerDemoMgr.h:187
sead::BitFlag32 mFlag
Definition PlayerDemoMgr.h:194
u32 _10c[(0x128 - 0x10C)/sizeof(u32)]
Definition PlayerDemoMgr.h:185
s32 mCourseOutPlayerNo
Definition PlayerDemoMgr.h:191
void setEnableCheckDemoNo()
Definition PlayerDemoMgr.h:64
u32 _10[(0x3C - 0x10)/sizeof(u32)]
Definition PlayerDemoMgr.h:175
bool mIsEnableCheckDemoNo
Definition PlayerDemoMgr.h:193
void setSubjectClear()
void stopBgmGoalDemo()
void setPoleDown()
Definition PlayerDemoMgr.h:95
s32 getCourseOutPlayerNo() const
Definition PlayerDemoMgr.h:49
s32 setGoalDemoList(s32 player_no)
void turnNextDemoNo()
void offHangFlag()
Definition PlayerDemoMgr.h:110
u32 _dc[(0xF0 - 0xDC)/sizeof(u32)]
Definition PlayerDemoMgr.h:181
bool isUnkGoalFlag7() const
Definition PlayerDemoMgr.h:120
u32 _1dc[(0x1F4 - 0x1DC)/sizeof(u32)]
Definition PlayerDemoMgr.h:197
s32 getControlDemoPlayerNum() const
EventGoalActorStop * mEventGoalActorStop
Definition PlayerDemoMgr.h:196
const sead::Vector2f & getGoalPos() const
Definition PlayerDemoMgr.h:140
bool isUnderwaterKoopaJrDemo() const
Definition PlayerDemoMgr.h:167
bool isDemoMode(const StateID &state_id) const
bool isUnkGoalFlag6() const
Definition PlayerDemoMgr.h:115
s32 searchDemoNo(s32 player_no)
void setGoalWalkTargetPosX(f32 x)
Definition PlayerDemoMgr.h:150
u32 _f8[(0x108 - 0xF8)/sizeof(u32)]
Definition PlayerDemoMgr.h:183
bool checkDemoNo(s8 *player_no)
Definition PlayerDemoMgr.h:69
s32 getNextDemoNo()
u32 _1c8[(0x1D8 - 0x1C8)/sizeof(u32)]
Definition PlayerDemoMgr.h:195