Files
123456789758 d0852db127 d_meter - 99% matching (#907)
Co-authored-by: ‎ ‎ ‎ <‎ ‎ ‎>
2025-12-27 16:23:15 -05:00

76 lines
2.0 KiB
C++

#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 */