summaryrefslogtreecommitdiff
path: root/include/m/m3d/m_fanm.h
blob: fd02f880688c9d083c3dbf189e9f96fbe7a1dea2 (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
#ifndef M3D_M_FANM_H
#define M3D_M_FANM_H

#include "m/m3d/m_banm.h"

namespace m3d {

enum playMode_e {
    PLAY_MODE_0,
    PLAY_MODE_1,
    PLAY_MODE_2,
    PLAY_MODE_3,
    PLAY_MODE_4,
};

class fanm_c : public banm_c {
public:
    fanm_c();
    virtual ~fanm_c();

    virtual int getType() const = 0;
    virtual void play();

    void set(f32, playMode_e, f32, f32);
    void set2(f32, playMode_e, f32, f32, f32);
    void setFrame(f32);
    void setFrameOnly(f32);
    bool isStop() const;
    bool checkFrame(f32) const;
    bool unk_802EAE70() const;

    inline void setPlayState(playMode_e state) {
        mPlayState = state;
    }

    playMode_e getPlayMode() const {
        return (playMode_e)mPlayState;
    }

    inline f32 getEndFrame() {
        return mEndFrame;
    }

    // Something about this is wrong
    inline void setStartFrame(f32 f) {
        mEndFrame = f;
    }

    inline f32 getStartFrame() {
        return mStartFrame;
    }

private:
    /* 0x28 */ f32 mEndFrame;
    /* 0x2C */ f32 mStartFrame;
    /* 0x30 */ f32 mCurrentFrame;
    /* 0x34 */ u8 mPlayState;
};

} // namespace m3d

#endif