summaryrefslogtreecommitdiff
path: root/include/d/a/d_a_bird.h
blob: a4afd616a8bc001e1bf843073ddeb3ddae882acb (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
#ifndef D_A_BIRD_H
#define D_A_BIRD_H

#include "d/a/obj/d_a_obj_base.h"
#include "s/s_State.hpp"

class dBird_c : public dAcObjBase_c {
public:
    dBird_c() : mStateMgr(*this) {}
    virtual ~dBird_c() {}

    STATE_FUNC_DECLARE(dBird_c, Wait);
    STATE_FUNC_DECLARE(dBird_c, PreMove);
    STATE_FUNC_DECLARE(dBird_c, Move);
    STATE_FUNC_DECLARE(dBird_c, Hide);
    STATE_FUNC_DECLARE(dBird_c, RideDemo);
    STATE_FUNC_DECLARE(dBird_c, FirstRideDemo);
    STATE_FUNC_DECLARE(dBird_c, OutAreaDemo);
    STATE_FUNC_DECLARE(dBird_c, RideOff);
    STATE_FUNC_DECLARE(dBird_c, OnGround);
    STATE_FUNC_DECLARE(dBird_c, Tornado);
    STATE_FUNC_DECLARE(dBird_c, SaveStartDemo);
    STATE_FUNC_DECLARE(dBird_c, MiniGameWait);
    STATE_FUNC_DECLARE(dBird_c, MiniGameMove);
    STATE_FUNC_DECLARE(dBird_c, MiniGameEnd);
    STATE_FUNC_DECLARE(dBird_c, MiniGameLevelUpDemo);

    // fn_129_8DD0, only referenced by d_a_obj_bird_sp
    void accelerateTowards(mVec3_c &targetDirection);

    s16 getNumDashes() const {
        return mNumDashes;
    }

    static dBird_c *getInstance() {
        return spInstance;
    }

private:
    static dBird_c *spInstance;
    /* 0x??? */ STATE_MGR_DECLARE(dBird_c);
    u8 _0x36C[0xF8E - 0x36C];
    /* 0xF8E */ s16 mNumDashes;
};

#endif