NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
frame_ctrl.hpp
1#pragma once
2#include <types.h>
3#include <nw4r/ut.h>
4
5namespace m2d {
6
8public:
9 enum ANM_FLAG_e {
10 NO_LOOP = BIT_FLAG(0),
11 REVERSE = BIT_FLAG(1),
12 };
13
14 virtual ~FrameCtrl_c() {}
15
16 void play();
17 void set(float endFrame, u8 flags, float rate, float currFrame);
18 void setFrame(float frame);
19 void setRate(float rate);
20 bool isStop() const;
21
22 void setFlags(bool loop, bool reverse) {
23 mFlags = (!loop ? FrameCtrl_c::NO_LOOP : 0) | (reverse ? FrameCtrl_c::REVERSE : 0);
24 }
25 float getFrame() const { return mCurrFrame; }
26 float getLastFrame() const { return mEndFrame - 1.0f; }
27 float getLastActiveFrame() const { return mEndFrame - 2.0f; }
28
29 float mEndFrame;
30 float mCurrFrame;
31 float mPrevFrame;
32 float mRate;
33 u8 mFlags;
34};
35
36} // namespace m2d