blob: 67c8eb992b0ae7d7dd43a4a19eebad5613b9bbc0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#ifndef HOMEBUTTON_FRAME_CONTROLLER_H
#define HOMEBUTTON_FRAME_CONTROLLER_H
#include <revolution/types.h>
namespace homebutton {
enum {
/* 0 */ ANIM_TYPE_FORWARD = 0,
/* 1 */ ANIM_TYPE_BACKWARD,
/* 2 */ ANIM_TYPE_LOOP,
/* 3 */ ANIM_TYPE_ALTERNATE
};
enum {
/* 0 */ ANIM_STATE_STOP = 0,
/* 1 */ ANIM_STATE_PLAY,
/* 2 */ ANIM_STATE_STOP_REQ,
};
class FrameController {
public:
FrameController() {}
/* 0x08 */ virtual ~FrameController() {}
/* 0x0C */ virtual void calc();
void init(int type, f32 maxFrame, f32 minFrame, f32 delta);
void initFrame();
void setMaxFrame(f32 value) { mMaxFrame = value; }
f32 getMaxFrame() const { return mMaxFrame; }
f32 getLastFrame() const { return mMaxFrame - 1.0f; }
void setMinFrame(f32 value) { mMinFrame = value; }
f32 getMinFrame() const { return mMinFrame; }
void setCurrentFrame(f32 value) { mFrame = value; }
f32 getCurrentFrame() const { return mFrame; }
void setDelta(f32 value) { mDelta = value; }
f32 getDelta() const { return mDelta; }
void setState(int value) { mState = value; }
int getState() const { return mState; }
void setAnimType(int value) { mAnmType = value; }
int getAnimType() const { return mAnmType; }
bool isPlaying() const { return mState == ANIM_STATE_PLAY; }
void start() {
initFrame();
restart();
}
void restart() { mState = ANIM_STATE_PLAY; }
void stop() { mState = ANIM_STATE_STOP; }
protected:
/* 0x00 (vtable) */
/* 0x04 */ f32 mMaxFrame;
/* 0x08 */ f32 mMinFrame;
/* 0x0C */ f32 mFrame;
/* 0x10 */ f32 mDelta;
/* 0x14 */ int mState;
/* 0x18 */ int mAnmType;
private:
/* 0x1C */ bool mbAlternateBack;
};
} // namespace homebutton
#endif
|