New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
LineMgr.h
Go to the documentation of this file.
1#pragma once
2
3#include <state/FStateMgr.h>
4#include <utility/Angle.h>
5#include <utility/Direction.h>
6
7#include <container/seadSafeArray.h>
8#include <math/seadVector.h>
9
11{
12public:
13 enum Type
14 {
15 cType_ReverseAtEnd = 0, // i.e., Two-way
16 cType_StopAtEnd // i.e., One-way
17 };
18
19public:
20 // Address: 0x0200DC14
22
23 // Address: 0x0200DF60
24 void init(const sead::Vector2f& pos, u8 layer, f32 base_speed = 0.0f, Type type = cType_ReverseAtEnd, u8 dir_x = cDirType_Right);
25
26 // Address: 0x0200E0C0
27 void setBaseSpeed(f32 speed);
28
29 // Address: 0x0200E178
30 void startLineMove(bool exec_fall_down = false);
31
32 void execute()
33 {
34 mStateMgr.executeState();
35 }
36
37 const sead::Vector2f& getPos() const
38 {
39 return mPos;
40 }
41
42 bool isState(const StateID& state_id) const
43 {
44 return *mStateMgr.getStateID() == state_id;
45 }
46
47 u8 getDir() const
48 {
49 return mDir;
50 }
51
52public:
53 // StateID_FallDown Address: 0x101ECA8C
54 // initializeState_FallDown Address: 0x0201371C
55 // executeState_FallDown Address: 0x02013730
56 // finalizeState_FallDown Address: 0x020170F4
57 DECLARE_STATE_ID(LineMgr, FallDown)
58 // StateID_Left45 Address: 0x101ECAAC
59 // initializeState_Left45 Address: 0x020137B4
60 // executeState_Left45 Address: 0x02013800
61 // finalizeState_Left45 Address: 0x020170F8
63 // StateID_Right45 Address: 0x101ECACC
64 // initializeState_Right45 Address: 0x02013960
65 // executeState_Right45 Address: 0x020139A0
66 // finalizeState_Right45 Address: 0x020170FC
68 //StateID_Side Address: 0x101ECAEC
69 //initializeState_Side Address: 0x02013AE0
70 //executeState_Side Address: 0x02013B1C
71 //finalizeState_Side Address: 0x02017100
73 //StateID_Height Address: 0x101ECB0C
74 //initializeState_Height Address: 0x02013CE0
75 //executeState_Height Address: 0x02013D1C
76 //finalizeState_Height Address: 0x02017104
78 //StateID_CornerHeightLine Address: 0x101ECB2C
79 //initializeState_CornerHeightLine Address: 0x02013E30
80 //executeState_CornerHeightLine Address: 0x02013E6C
81 //finalizeState_CornerHeightLine Address: 0x02017108
83 // StateID_Left30Left Address: 0x101ECB6C
84 // initializeState_Left30Left Address: 0x020140DC
85 // executeState_Left30Left Address: 0x0201413C
86 // finalizeState_Left30Left Address: 0x02017110
88 // StateID_Left30Right Address: 0x101ECB8C
89 // initializeState_Left30Right Address: 0x0201438C
90 // executeState_Left30Right Address: 0x020143EC
91 // finalizeState_Left30Right Address: 0x02017114
93 // StateID_Right30Left Address: 0x101ECBAC
94 // initializeState_Right30Left Address: 0x02014610
95 // executeState_Right30Left Address: 0x02014668
96 // finalizeState_Right30Left Address: 0x02017118
98 // StateID_Right30Right Address: 0x101ECBCC
99 // initializeState_Right30Right Address: 0x02014894
100 // executeState_Right30Right Address: 0x020148EC
101 // finalizeState_Right30Right Address: 0x0201711C
103 // StateID_Left60Up Address: 0x101ECBEC
104 // initializeState_Left60Up Address: 0x02014B20
105 // executeState_Left60Up Address: 0x02014B80
106 // finalizeState_Left60Up Address: 0x02017120
108 // StateID_Left60Down Address: 0x101ECC0C
109 // initializeState_Left60Down Address: 0x02014DE0
110 // executeState_Left60Down Address: 0x02014E40
111 // finalizeState_Left60Down Address: 0x02017124
113 // StateID_Right60Down Address: 0x101ECC2C
114 // initializeState_Right60Down Address: 0x02015074
115 // executeState_Right60Down Address: 0x020150D4
116 // finalizeState_Right60Down Address: 0x02017128
118 // StateID_Right60Up Address: 0x101ECC4C
119 // initializeState_Right60Up Address: 0x02015314
120 // executeState_Right60Up Address: 0x0201536C
121 // finalizeState_Right60Up Address: 0x0201712C
123 // StateID_Circle Address: 0x101ECC6C
124 // initializeState_Circle Address: 0x0201559C
125 // executeState_Circle Address: 0x020155D8
126 // finalizeState_Circle Address: 0x02017130
128 // StateID_Circle2x2LeftUp Address: 0x101ECC8C
129 // initializeState_Circle2x2LeftUp Address: 0x02015668
130 // executeState_Circle2x2LeftUp Address: 0x020156A4
131 // finalizeState_Circle2x2LeftUp Address: 0x02017134
133 // StateID_Circle2x2RightUp Address: 0x101ECCAC
134 // initializeState_Circle2x2RightUp Address: 0x020156B8
135 // executeState_Circle2x2RightUp Address: 0x020156FC
136 // finalizeState_Circle2x2RightUp Address: 0x02017138
138 // StateID_Circle2x2LeftDown Address: 0x101ECCCC
139 // initializeState_LeftDown Address: 0x02015710
140 // executeState_LeftDown Address: 0x0201574C
141 // finalizeState_LeftDown Address: 0x0201713C
143 // StateID_Circle2x2RightDown Address: 0x101ECCEC
144 // initializeState_RightDown Address: 0x02015760
145 // executeState_RightDown Address: 0x0201579C
146 // finalizeState_RightDown Address: 0x02017140
148 // StateID_Circle4x4RightUp Address: 0x101ECD0C
149 // initializeState_Circle4x4RightUp Address: 0x020157B0
150 // executeState_Circle4x4RightUp Address: 0x020157F4
151 // finalizeState_Circle4x4RightUp Address: 0x02017144
153
154protected:
164 u8 mType; // See Type
167 bool _8f; // Set, but never read
168};
169static_assert(sizeof(LineMgr) == 0x90);
Definition LineMgr.h:11
f32 mBaseSpeed
Definition LineMgr.h:163
sead::Vector2f mSpeed
Definition LineMgr.h:157
u8 mType
Definition LineMgr.h:164
Type
Definition LineMgr.h:14
@ cType_ReverseAtEnd
Definition LineMgr.h:15
@ cType_StopAtEnd
Definition LineMgr.h:16
u8 mLayer
Definition LineMgr.h:165
sead::Vector2f mPos
Definition LineMgr.h:158
sead::Vector2f mPosBlock
Definition LineMgr.h:160
void setBaseSpeed(f32 speed)
sead::Vector2f _7c
Definition LineMgr.h:161
void startLineMove(bool exec_fall_down=false)
u8 mDir
Definition LineMgr.h:166
void init(const sead::Vector2f &pos, u8 layer, f32 base_speed=0.0f, Type type=cType_ReverseAtEnd, u8 dir_x=cDirType_Right)
void execute()
Definition LineMgr.h:32
const sead::Vector2f & getPos() const
Definition LineMgr.h:37
bool _8f
Definition LineMgr.h:167
sead::UnsafeArray< sead::Vector2f, 7 > _24
Definition LineMgr.h:156
sead::Vector2f mPosPrev
Definition LineMgr.h:159
bool isState(const StateID &state_id) const
Definition LineMgr.h:42
u8 getDir() const
Definition LineMgr.h:47
Angle mAngle
Definition LineMgr.h:162