summaryrefslogtreecommitdiff
path: root/include/d/d_metronome.h
blob: de981cafc2891785ca72dfa5bbe14964a534a9ed (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

#ifndef D_METRONOME_H
#define D_METRONOME_H

#include "JSystem/JParticle/JPAEmitter.h"
#include "JSystem/JUtility/TColor.h"
#include "d/d_drawlist.h"
#include "f_op/f_op_msg_mng.h"
#include "m_Do/m_Do_hostIO.h"

class dMn_HIO_c : public mDoHIO_entry_c {
public:
    dMn_HIO_c();
    virtual ~dMn_HIO_c() {}

    void genMessage(JORMContext* ctx);

public:
    /* 0x04 */ f32 mEchoScale;
    /* 0x08 */ s16 mShiftTiming;
    /* 0x0A */ s16 mFlashTiming;
    /* 0x0C */ JUtility::TColor mWhiteColor0;
    /* 0x10 */ JUtility::TColor mWhiteColor1;
    /* 0x14 */ JUtility::TColor mBlackColor0;
    /* 0x18 */ JUtility::TColor mBlackColor1;
    /* 0x1C */ u8 mAlphaOrig;
    /* 0x1D */ u8 mTimingTrail;
};

class dMetronome_c : public dDlst_base_c {
public:
    void screenSet();
    void metronomeMove();
    void melodyInit(u8);
    void melodyMove();
    void melodyGuideShow(s32, s16);
    void melodyShow();
    void melodyDemo();
    void melodyFlash();
    void melodyShift();
    void initialize();
    void _create();
    void _delete();
    void _move();
    void _draw();
    BOOL _open();
    BOOL _close();
    void draw() { return _draw(); };

public:
    /* 0x004 */ J2DScreen* scrn;
    /* 0x008 */ fopMsgM_pane_class pane_cn[7];
    /* 0x190 */ fopMsgM_pane_class pane_wn[7];
    /* 0x318 */ fopMsgM_pane_class pane_pk[7];
    /* 0x4A0 */ fopMsgM_pane_class pane_i12[7];
    /* 0x628 */ fopMsgM_pane_class pane_i11[7];
    /* 0x7B0 */ fopMsgM_pane_class pane_bs[7];
    /* 0x938 */ fopMsgM_pane_class pane_timing[21]; // Metronome dots at the top
    /* 0xDD0 */ fopMsgM_pane_class pane_echo; // Metronome "echo" when it hits the center dot.

    /* 0xE08 */ JPABaseEmitter * mpEmitter;
    /* 0xE0C */ f32 mCurRate;
    /* 0xE10 */ f32 mPosX;
    /* 0xE14 */ s32 field_0xE14;
    /* 0xE18 */ s32 mNote[7];
    /* 0xE34 */ s32 mCurTimer;
    /* 0xE38 */ u8 field_0xE38;
    /* 0xE39 */ u8 mBeat;
    /* 0xE3A */ u8 mAction;
    /* 0xE3B */ u8 mbOpen;
};

extern dMn_HIO_c g_mnHIO;

#endif /* D_METRONOME_H */