New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
FrameCtrl.h
Go to the documentation of this file.
1#pragma once
2
3#include <prim/seadBitFlag.h>
4
6{
7public:
9 {
12 };
13
14public:
15 // Address: 0x024DEE24
17
18 // Address: 0x024DEEAC
19 void reset();
20
21 // Address: 0x024DEED4
23
24 // Address: 0x024DEF04
25 void play();
26
27 f32 getFrameStart() const { return mFrameStart; }
28 void setFrameStart(f32 frame) { mFrameStart = frame; }
29
30 f32 getFrameEnd() const { return mFrameEnd; }
31 void setFrameEnd(f32 frame) { mFrameEnd = frame; }
32
33 f32 getFrameMin() const { return mFrameMin; }
34 void setFrameMin(f32 frame) { mFrameMin = frame; }
35
36 f32 getFrameMax() const { return mFrameMax; }
37 void setFrameMax(f32 frame) { mFrameMax = frame; }
38
39 f32 getFrame() const { return mFrame; }
40 void setFrame(f32 frame) { mFrame = frame; mFlag.set(cFlag_StartFrame); }
41
42 f32 getRate() const { return mRate; }
43 void setRate(f32 rate) { mRate = rate; }
44
45 void set(PlayMode mode, f32 rate, f32 frame)
46 {
47 setPlayMode(mode);
48 setRate(rate);
49 setFrame(frame);
50 }
51
52 bool isRepeat() const
53 {
54 return mFlag.isOn(cFlag_Repeat);
55 }
56
57 bool isStartFrame() const
58 {
59 return mFlag.isOn(cFlag_StartFrame);
60 }
61
62 bool isLoopFrame() const
63 {
64 return mFlag.isOn(cFlag_LoopFrame);
65 }
66
67 bool hasLooped() const
68 {
69 return mFlag.isOn(cFlag_HasLooped);
70 }
71
72 bool isEndFrame() const
73 {
74 return mFlag.isOn(cFlag_EndFrame);
75 }
76
77 bool isStop() const
78 {
79 return mFlag.isOn(cFlag_IsStop);
80 }
81
82 void stop()
83 {
84 mFlag.set(cFlag_IsStop);
85 }
86
87 // Address: 0x024DF0B8
88 bool checkFrame(f32) const;
89
90protected:
91 enum Flag
92 {
93 cFlag_Repeat = 1 << 0,
98 cFlag_IsStop = 1 << 5
99 };
100
108};
109static_assert(sizeof(FrameCtrl) == 0x1C);
Definition FrameCtrl.h:6
void setFrame(f32 frame)
Definition FrameCtrl.h:40
Flag
Definition FrameCtrl.h:92
@ cFlag_StartFrame
Definition FrameCtrl.h:94
@ cFlag_Repeat
Definition FrameCtrl.h:93
@ cFlag_IsStop
Definition FrameCtrl.h:98
@ cFlag_LoopFrame
Definition FrameCtrl.h:95
@ cFlag_HasLooped
Definition FrameCtrl.h:96
@ cFlag_EndFrame
Definition FrameCtrl.h:97
void play()
f32 mFrame
Definition FrameCtrl.h:105
f32 getFrameMin() const
Definition FrameCtrl.h:33
void setFrameStart(f32 frame)
Definition FrameCtrl.h:28
PlayMode
Definition FrameCtrl.h:9
@ cMode_Repeat
Definition FrameCtrl.h:11
@ cMode_NoRepeat
Definition FrameCtrl.h:10
bool isStop() const
Definition FrameCtrl.h:77
void setRate(f32 rate)
Definition FrameCtrl.h:43
f32 mFrameStart
Definition FrameCtrl.h:101
void setFrameEnd(f32 frame)
Definition FrameCtrl.h:31
void setFrameMax(f32 frame)
Definition FrameCtrl.h:37
bool isEndFrame() const
Definition FrameCtrl.h:72
void set(PlayMode mode, f32 rate, f32 frame)
Definition FrameCtrl.h:45
f32 getFrame() const
Definition FrameCtrl.h:39
bool isLoopFrame() const
Definition FrameCtrl.h:62
f32 mRate
Definition FrameCtrl.h:106
bool isStartFrame() const
Definition FrameCtrl.h:57
f32 mFrameMax
Definition FrameCtrl.h:104
bool hasLooped() const
Definition FrameCtrl.h:67
void setFrameMin(f32 frame)
Definition FrameCtrl.h:34
f32 getFrameEnd() const
Definition FrameCtrl.h:30
sead::BitFlag32 mFlag
Definition FrameCtrl.h:107
void setPlayMode(PlayMode mode)
bool checkFrame(f32) const
f32 mFrameEnd
Definition FrameCtrl.h:102
f32 getFrameStart() const
Definition FrameCtrl.h:27
void reset()
void stop()
Definition FrameCtrl.h:82
f32 getFrameMax() const
Definition FrameCtrl.h:36
f32 mFrameMin
Definition FrameCtrl.h:103
f32 getRate() const
Definition FrameCtrl.h:42
bool isRepeat() const
Definition FrameCtrl.h:52