summaryrefslogtreecommitdiff
path: root/include/d/meter
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2022-02-06 06:23:54 -0800
committerGitHub <noreply@github.com>2022-02-06 09:23:54 -0500
commit3a79e96e8b033e26a3970da68d0633010fac0f03 (patch)
tree4f96139d922bc2af03685bca121fb327723447f2 /include/d/meter
parent612f26c132280da43ecfa5fa8c8cc32966f06eb6 (diff)
d_meter2 wip / d_s_play / d_file_sel_info (#179)
* d_meter2 wip * d_s_play * d_file_sel_info * format * tag_lv5soup / tag_setBall / fix dKyeff * d_cc_uty
Diffstat (limited to 'include/d/meter')
-rw-r--r--include/d/meter/d_meter2.h231
-rw-r--r--include/d/meter/d_meter2_draw.h1
-rw-r--r--include/d/meter/d_meter2_info.h30
-rw-r--r--include/d/meter/d_meter_HIO.h8
4 files changed, 234 insertions, 36 deletions
diff --git a/include/d/meter/d_meter2.h b/include/d/meter/d_meter2.h
index df92f8011a..eb711581b8 100644
--- a/include/d/meter/d_meter2.h
+++ b/include/d/meter/d_meter2.h
@@ -10,13 +10,171 @@
class dMeterMap_c;
+class dMeterSub_c : public dDlst_base_c {
+public:
+ /* 8019412C */ virtual void draw();
+ /* 801940D4 */ virtual ~dMeterSub_c();
+ /* 8019411C */ virtual bool _create();
+ /* 80194130 */ virtual bool _execute(u32);
+ /* 80194124 */ virtual bool _delete();
+ /* 80194138 */ virtual bool isDead();
+};
+
+class dMeterButton_c : public dDlst_base_c {
+public:
+ /* 80201328 */ dMeterButton_c();
+ /* 802013CC */ void _create();
+ /* 80201404 */ void _execute(u32, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool,
+ bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool,
+ bool);
+ /* 80202A9C */ void _delete();
+ /* 802032C4 */ void alphaAnimeButtonA(u32, bool);
+ /* 8020339C */ void alphaAnimeButtonB(u32, bool);
+ /* 802034A8 */ void alphaAnimeButtonR(u32, bool);
+ /* 802035AC */ void alphaAnimeButtonZ(u32, bool);
+ /* 802036C0 */ void alphaAnimeButton3D(u32, bool);
+ /* 802037B8 */ void alphaAnimeButtonC(u32, bool);
+ /* 80203878 */ void alphaAnimeButtonS(u32, bool);
+ /* 802038F4 */ void alphaAnimeButtonX(u32, bool);
+ /* 80203A08 */ void alphaAnimeButtonY(u32, bool);
+ /* 80203B1C */ void alphaAnimeButtonNun(u32, bool);
+ /* 80203C30 */ void alphaAnimeButtonRemo(u32, bool);
+ /* 80203D44 */ void alphaAnimeButtonRemo2(u32, bool);
+ /* 80203E58 */ void alphaAnimeButtonAR(u32, bool);
+ /* 80203F60 */ void alphaAnimeButton3DB(u32, bool);
+ /* 80204068 */ void alphaAnimeButtonNURE(u32, bool);
+ /* 80204170 */ void alphaAnimeButtonReel(u32, bool);
+ /* 80204278 */ void alphaAnimeButtonReel2(u32, bool);
+ /* 80204368 */ void alphaAnimeButtonAB(u32, bool);
+ /* 80204458 */ void alphaAnimeButtonTate(u32, bool);
+ /* 80204548 */ void alphaAnimeButtonNunZ(u32, bool);
+ /* 80204620 */ void alphaAnimeButtonNunC(u32, bool);
+ /* 802046F8 */ void alphaAnimeButtonBin(u32, bool);
+ /* 802047E8 */ void screenInitButton();
+ /* 80205834 */ void screenInitText();
+ /* 80205CA0 */ void updateButton();
+ /* 80206978 */ void updateText(u32);
+ /* 80206CE0 */ void setAlphaButtonAAnimeMin();
+ /* 80206D70 */ void isFastSet(int);
+ /* 80207060 */ void setAlphaButtonAAnimeMax();
+ /* 8020714C */ void setAlphaButtonBAnimeMin();
+ /* 802071DC */ void setAlphaButtonBAnimeMax();
+ /* 802072C8 */ void setAlphaButtonRAnimeMin();
+ /* 80207358 */ void setAlphaButtonRAnimeMax();
+ /* 80207444 */ void setAlphaButtonZAnimeMin();
+ /* 802074D4 */ void setAlphaButtonZAnimeMax();
+ /* 802075C0 */ void setAlphaButton3DAnimeMin();
+ /* 80207654 */ void setAlphaButton3DAnimeMax();
+ /* 80207740 */ void setAlphaButton3DVAnimeMin();
+ /* 80207744 */ void setAlphaButton3DVAnimeMax();
+ /* 80207748 */ void setAlphaButtonCAnimeMin();
+ /* 802077EC */ void setAlphaButtonCAnimeMax();
+ /* 80207A28 */ void setAlphaButtonSAnimeMin();
+ /* 80207AB8 */ void setAlphaButtonSAnimeMax();
+ /* 80207BA4 */ void setAlphaButtonXAnimeMin();
+ /* 80207C34 */ void setAlphaButtonXAnimeMax();
+ /* 80207D20 */ void setAlphaButtonYAnimeMin();
+ /* 80207DB0 */ void setAlphaButtonYAnimeMax();
+ /* 80207E9C */ void setAlphaButtonNunAnimeMin();
+ /* 80207F34 */ void setAlphaButtonNunAnimeMax();
+ /* 80208028 */ void setAlphaButtonRemoAnimeMin();
+ /* 802080C0 */ void setAlphaButtonRemoAnimeMax();
+ /* 802081B4 */ void setAlphaButtonRemo2AnimeMin();
+ /* 8020824C */ void setAlphaButtonRemo2AnimeMax();
+ /* 80208340 */ void setAlphaButtonARAnimeMin();
+ /* 802083D8 */ void setAlphaButtonARAnimeMax();
+ /* 802084D8 */ void setAlphaButton3DBAnimeMin();
+ /* 80208570 */ void setAlphaButton3DBAnimeMax();
+ /* 80208670 */ void setAlphaButtonNUREAnimeMin();
+ /* 80208708 */ void setAlphaButtonNUREAnimeMax();
+ /* 80208808 */ void setAlphaButtonReelAnimeMin();
+ /* 802088A0 */ void setAlphaButtonReelAnimeMax();
+ /* 802089A0 */ void setAlphaButtonReel2AnimeMin();
+ /* 80208A38 */ void setAlphaButtonReel2AnimeMax();
+ /* 80208AEC */ void setAlphaButtonABAnimeMin();
+ /* 80208B84 */ void setAlphaButtonABAnimeMax();
+ /* 80208C38 */ void setAlphaButtonTateAnimeMin();
+ /* 80208CD0 */ void setAlphaButtonTateAnimeMax();
+ /* 80208D84 */ void setAlphaButtonNunZAnimeMin();
+ /* 80208E1C */ void setAlphaButtonNunZAnimeMax();
+ /* 80208F1C */ void setAlphaButtonNunCAnimeMin();
+ /* 80208FB4 */ void setAlphaButtonNunCAnimeMax();
+ /* 802090B4 */ void setAlphaButtonBinAnimeMin();
+ /* 8020914C */ void setAlphaButtonBinAnimeMax();
+ /* 8020924C */ void setAlphaButtonOAnimeMin(int);
+ /* 802092C0 */ void setAlphaButtonOAnimeMax(int);
+ /* 80209368 */ void setAlphaIconAnimeMin();
+ /* 802093D8 */ void setAlphaIconAnimeMax();
+ /* 80209474 */ void isClose();
+ /* 802095C0 */ void setString(char*, u8, u8, u8);
+ /* 80209CEC */ void hideAll();
+ /* 80209D7C */ void getCenterPosCalc(u8, char*, int);
+ /* 8020A540 */ void trans_button(int, f32);
+ /* 8020A94C */ void hide_button(u8);
+ /* 8020AA84 */ void pikariCheck();
+ /* 8020AE68 */ void paneTrans(CPaneMgr*, f32, f32, u8);
+
+ /* 80202240 */ virtual void draw();
+ /* 80201370 */ virtual ~dMeterButton_c();
+};
+
+class dMeterString_c : public dMeterSub_c {
+public:
+ /* 8020ED60 */ dMeterString_c(int);
+ /* 8020F5A4 */ void createString(int);
+ /* 8020F66C */ void playBckAnimation(f32);
+ /* 8020F6EC */ void drawPikari();
+ /* 8020FA88 */ void isLeadByte(int);
+
+ /* 8020F1B0 */ virtual void draw();
+ /* 8020EDF4 */ virtual ~dMeterString_c();
+ /* 8020EE70 */ virtual bool _create();
+ /* 8020F150 */ virtual bool _execute(u32);
+ /* 8020F49C */ virtual bool _delete();
+};
+
+class dMeterHaihai_c : public dMeterSub_c {
+public:
+ /* 8020AE8C */ dMeterHaihai_c(u8);
+ /* 8020B814 */ void drawHaihai(u8, f32, f32, f32, f32);
+ /* 8020B518 */ void drawHaihai(u8);
+ /* 8020B9B0 */ void drawHaihaiLeft(f32, f32);
+ /* 8020BA4C */ void drawHaihaiRight(f32, f32);
+ /* 8020BAE8 */ void drawHaihaiTop(f32, f32);
+ /* 8020BB84 */ void drawHaihaiBottom(f32, f32);
+ /* 8020BC20 */ void setScale(f32);
+ /* 8020BEA0 */ void alphaAnimeHaihai(u32);
+ /* 8020BEA4 */ void updateHaihai();
+ /* 8020BF00 */ void playBckAnime(J2DAnmTransformKey*);
+ /* 8020C078 */ void playBtkAnime(J2DAnmTextureSRTKey*);
+ /* 8020C1CC */ void playBpkAnime(J2DAnmColor*);
+
+ /* 8020B140 */ virtual void draw();
+ /* 8020AEF0 */ virtual ~dMeterHaihai_c();
+ /* 8020AF6C */ virtual bool _create();
+ /* 8020B0F4 */ virtual bool _execute(u32);
+ /* 8020BDAC */ virtual bool _delete();
+};
+
class dMeter2_c : public msg_class {
public:
+ enum {
+ /* 0x2 */ ARROW_MAX = 2,
+ /* 0x3 */ PACHINKO_MAX,
+ };
+
+ enum {
+ /* 0x0 */ X_ITEM,
+ /* 0x1 */ X_STATUS,
+ /* 0x2 */ Y_ITEM,
+ /* 0x3 */ Y_STATUS,
+ };
+
/* 8021EA14 */ int _create();
/* 8021F128 */ int _execute();
/* 8021F370 */ int _draw();
/* 8021F49C */ int _delete();
- /* 8021F6EC */ void emphasisButtonDelete();
+ /* 8021F6EC */ int emphasisButtonDelete();
/* 8021F780 */ void setLifeZero();
/* 8021F7B0 */ void checkStatus();
/* 8021FD60 */ void moveLife();
@@ -51,23 +209,29 @@ public:
/* 80224F70 */ void alphaAnimeKey();
/* 802250F4 */ void alphaAnimeButton();
/* 802254C0 */ void alphaAnimeButtonCross();
- /* 802256DC */ void isShowLightDrop();
+ /* 802256DC */ bool isShowLightDrop();
/* 802258A0 */ void killSubContents(u8);
/* 80225960 */ void isKeyVisible();
- /* 802259F8 */ void isArrowEquip();
- /* 80225A64 */ void isPachinkoEquip();
+ /* 802259F8 */ int isArrowEquip();
+ /* 80225A64 */ int isPachinkoEquip();
void setNowLifeGauge(s16 life) { mNowLifeGauge = life; }
+ void onArrowSoundBit(int bit) { mArrowSound |= (1 << bit); }
+ void offArrowSoundBit(int bit) { mArrowSound &= ~(1 << bit); }
+ bool isArrowSoundBit(int bit) { return mArrowSound & (1 << bit); }
+ void onRupeeSoundBit(int bit) { mRupeeSound |= (1 << bit); }
+ void offRupeeSoundBit(int bit) { mRupeeSound &= ~(1 << bit); }
+ bool isRupeeSoundBit(int bit) { return mRupeeSound & (1 << bit); }
private:
/* 0x100 */ JKRExpHeap* mpHeap;
/* 0x104 */ JKRExpHeap* mpSubHeap;
/* 0x108 */ void* field_0x108;
/* 0x10C */ dMeter2Draw_c* mpMeterDraw;
- /* 0x110 */ dDlst_base_c* field_0x110;
- /* 0x114 */ dDlst_base_c* field_0x114;
- /* 0x118 */ dDlst_base_c* field_0x118;
- /* 0x11C */ void* field_0x11c;
+ /* 0x110 */ dMeterSub_c* mpMeterSub;
+ /* 0x114 */ dMeterString_c* mpMeterString;
+ /* 0x118 */ dMeterButton_c* mpMeterButton;
+ /* 0x11C */ dMeterHaihai_c* field_0x11c; // type is a guess for now
/* 0x120 */ dMeterMap_c* mpMap;
/* 0x124 */ u32 field_0x124;
/* 0x128 */ u32 field_0x128;
@@ -104,32 +268,32 @@ private:
/* 0x1B8 */ u16 field_0x1b8[5];
/* 0x1C2 */ u8 mLightDropNum;
/* 0x1C3 */ u8 mNeedLightDropNum;
- /* 0x1C4 */ u8 field_0x1c4;
- /* 0x1C5 */ u8 field_0x1c5;
+ /* 0x1C4 */ u8 mDoStatus;
+ /* 0x1C5 */ u8 mAStatus;
/* 0x1C6 */ u8 field_0x1c6;
- /* 0x1C7 */ u8 field_0x1c7;
- /* 0x1C8 */ u8 field_0x1c8;
- /* 0x1C9 */ u8 field_0x1c9;
- /* 0x1CA */ u8 field_0x1ca;
- /* 0x1CB */ u8 field_0x1cb;
- /* 0x1CC */ u8 field_0x1cc;
- /* 0x1CD */ u8 field_0x1cd;
- /* 0x1CE */ u8 field_0x1ce;
- /* 0x1CF */ u8 field_0x1cf;
- /* 0x1D0 */ u8 field_0x1d0;
- /* 0x1D1 */ u8 field_0x1d1;
- /* 0x1D2 */ u8 field_0x1d2[4];
+ /* 0x1C7 */ u8 mCollectSmell;
+ /* 0x1C8 */ u8 mRStatus;
+ /* 0x1C9 */ u8 mZStatus;
+ /* 0x1CA */ u8 m3DStatus;
+ /* 0x1CB */ u8 mCStickStatus;
+ /* 0x1CC */ u8 mSButtonStatus;
+ /* 0x1CD */ u8 mNunStatus;
+ /* 0x1CE */ u8 mRemoConStatus;
+ /* 0x1CF */ u8 mNunZStatus;
+ /* 0x1D0 */ u8 mNunCStatus;
+ /* 0x1D1 */ u8 mBottleStatus;
+ /* 0x1D2 */ u8 mItemStatus[4];
/* 0x1D6 */ u8 field_0x1d6[2];
/* 0x1D8 */ u8 field_0x1d8[2];
/* 0x1DA */ u8 mArrowNum;
/* 0x1DB */ u8 mPachinkoNum;
- /* 0x1DC */ u8 field_0x1dc;
- /* 0x1DD */ u8 field_0x1dd;
- /* 0x1DE */ u8 field_0x1de;
- /* 0x1DF */ u8 field_0x1df;
- /* 0x1E0 */ u8 field_0x1e0;
+ /* 0x1DC */ u8 mDoSetFlag;
+ /* 0x1DD */ u8 mASetFlag;
+ /* 0x1DE */ u8 mRSetFlag;
+ /* 0x1DF */ u8 mXSetFlag;
+ /* 0x1E0 */ u8 mYSetFlag;
/* 0x1E1 */ u8 field_0x1e1;
- /* 0x1E2 */ u8 field_0x1e2;
+ /* 0x1E2 */ u8 mEquipSword;
/* 0x1E3 */ u8 field_0x1e3;
/* 0x1E4 */ u8 field_0x1e4;
/* 0x1E5 */ u8 mSubContents;
@@ -137,8 +301,8 @@ private:
/* 0x1E7 */ u8 field_0x1e7;
/* 0x1E8 */ u8 field_0x1e8;
/* 0x1E9 */ u8 field_0x1e9;
- /* 0x1EA */ u8 field_0x1ea;
- /* 0x1EB */ u8 field_0x1eb;
+ /* 0x1EA */ u8 mRupeeSound;
+ /* 0x1EB */ u8 mArrowSound;
/* 0x1EC */ u8 field_0x1ec;
/* 0x1ED */ u8 field_0x1ed;
/* 0x1EE */ u8 field_0x1ee;
@@ -151,8 +315,11 @@ private:
/* 0x1FF */ u8 field_0x1ff;
/* 0x200 */ u8 field_0x200;
/* 0x201 */ u8 field_0x201;
+ /* 0x204 */ f32 field_0x204;
+ /* 0x208 */ f32 field_0x208;
+ /* 0x20C */ f32 field_0x20c;
+ /* 0x210 */ f32 field_0x210;
+ /* 0x214 */ f32 field_0x214;
};
-typedef int (*dMeter2_Method)(dMeter2_c*);
-
#endif /* D_METER_D_METER2_H */
diff --git a/include/d/meter/d_meter2_draw.h b/include/d/meter/d_meter2_draw.h
index 81b4378c97..7f6ebcd3bd 100644
--- a/include/d/meter/d_meter2_draw.h
+++ b/include/d/meter/d_meter2_draw.h
@@ -115,6 +115,7 @@ public:
/* 802102F8 */ virtual ~dMeter2Draw_c();
J2DScreen* getMainScreenPtr() { return mpScreen; }
+ bool isEmphasisC() { return field_0x766 == 7 ? true : false; }
private:
/* 0x004 */ f32 field_0x4;
diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h
index bffd6ba5ec..558efb0a08 100644
--- a/include/d/meter/d_meter2_info.h
+++ b/include/d/meter/d_meter2_info.h
@@ -145,6 +145,12 @@ public:
void* getMsgResource() { return mMsgResource; }
void* getStageMsgResource() { return mStageMsgResource; }
void* getMsgUnitResource() { return mMsgUnitResource; }
+ u8 getLightDropGetFlag(int i) { return mLightDropGetFlag[i]; }
+ u32 getMeterStringType() { return mMeterString; }
+ void setMeterClass(dMeter2_c* meter) { mMeterClass = meter; }
+ void onLifeGaugeSE() { mLifeGaugeSE = 1; }
+ void offLifeGaugeSE() { mLifeGaugeSE = 0; }
+ u8 getLifeGaugeSE() { return mLifeGaugeSE; }
public:
/* 0x04 */ u8 unk4[4];
@@ -399,6 +405,30 @@ inline void* dMeter2Info_getMsgUnitResource() {
return g_meter2_info.getMsgUnitResource();
}
+inline u8 dMeter2Info_getLightDropGetFlag(int i) {
+ return g_meter2_info.getLightDropGetFlag(i);
+}
+
+inline s32 dMeter2Info_getMeterStringType() {
+ return g_meter2_info.getMeterStringType();
+}
+
+inline void dMeter2Info_setMeterClass(dMeter2_c* meter) {
+ g_meter2_info.setMeterClass(meter);
+}
+
+inline void dMeter2Info_onLifeGaugeSE() {
+ g_meter2_info.onLifeGaugeSE();
+}
+
+inline void dMeter2Info_offLifeGaugeSE() {
+ g_meter2_info.offLifeGaugeSE();
+}
+
+inline u8 dMeter2Info_getLifeGaugeSE() {
+ return g_meter2_info.getLifeGaugeSE();
+}
+
char* dMeter2Info_getNumberTextureName(int pIndex);
#endif /* D_METER_D_METER2_INFO_H */
diff --git a/include/d/meter/d_meter_HIO.h b/include/d/meter/d_meter_HIO.h
index 4155d985c3..93aba8f392 100644
--- a/include/d/meter/d_meter_HIO.h
+++ b/include/d/meter/d_meter_HIO.h
@@ -601,7 +601,7 @@ public:
/* 80201128 */ virtual ~dMeter_drawHIO_c();
/* 0x000 */ // vtable
- /* 0x004 */ u8 field_0x04[4];
+ /* 0x004 */ s8 field_0x4;
/* 0x008 */ f32 mLifeTopPosX;
/* 0x00C */ f32 mLifeTopPosY;
/* 0x010 */ f32 mNoMagicPosY;
@@ -995,7 +995,7 @@ public:
};
/* 0x000 */ // vtable
- /* 0x004 */ u8 field_0x4[4];
+ /* 0x004 */ s8 field_0x4;
/* 0x008 */ f32 mRingRadiusH;
/* 0x00C */ f32 mRingRadiusV;
/* 0x010 */ f32 field_0x10;
@@ -1248,7 +1248,7 @@ public:
/* 802006C8 */ dMeter_fmapHIO_c();
/* 80200BCC */ virtual ~dMeter_fmapHIO_c();
- /* 0x004 */ u8 field_0x4[4];
+ /* 0x004 */ s8 field_0x4;
/* 0x008 */ JKRArchive* field_0x8;
/* 0x00C */ void* field_0xc;
/* 0x010 */ void* field_0x10;
@@ -1361,7 +1361,7 @@ public:
/* 80200CD4 */ dMeter_cursorHIO_c();
/* 80201098 */ virtual ~dMeter_cursorHIO_c();
- /* 0x04 */ u8 field_0x4[4];
+ /* 0x04 */ s8 field_0x4;
/* 0x08 */ cXyz mSeraShopObjZoom;
/* 0x14 */ cXyz mObjZoom;
/* 0x20 */ cXyz mMagicArmorObjZoom;