d_meter work

This commit is contained in:
LagoLunatic
2024-02-03 18:09:07 -05:00
parent cb19541788
commit b6b8d14d0c
3 changed files with 133 additions and 21 deletions
+29 -16
View File
@@ -35,10 +35,10 @@ public:
/* 0x04 */ u8 field_0x4;
/* 0x05 */ u8 field_0x5;
/* 0x08 */ dMap_2DMtMapSpcl_tex_c* field_0x8;
/* 0x0C */ short field_0xc;
/* 0x0E */ short field_0xe;
/* 0x10 */ short field_0x10;
/* 0x12 */ short field_0x12;
/* 0x0C */ s16 field_0xc;
/* 0x0E */ s16 field_0xe;
/* 0x10 */ s16 field_0x10;
/* 0x12 */ s16 field_0x12;
};
class dMap_2DAGBScrDsp_c : public dDlst_base_c {
@@ -153,8 +153,20 @@ public:
class dMap_c {
public:
static void setMapAlpha(u8 alpha) { mAlpha = alpha; }
static void setIconFreeAlpha(u8 alpha) { mIconFreeAlpha = alpha; }
static void setMapDispMode(u8 mode) { mMapDispMode = mode; }
static void setMapDispPosLeftUpX(s16 x) { mDispPosLeftUpX = x; }
static void setMapDispPosLeftUpY(s16 y) { mDispPosLeftUpY = y; }
static void setIconFreePosX(s16 x) { mIconFreePosX = x; }
static void setIconFreePosY(s16 y) { mIconFreePosY = y; }
static void setIconFreeScale(f32 scale) { mIconFreeScale = scale; }
static void setIconSelfAlpha(u8 alpha) { mIconSelfAlpha = alpha; }
static void setIconSelfScale(f32 scale) { mIconSelfScale = scale; }
static u8 getIconDispMode() { return mIconDispMode; }
static void setIconDispMode(u8 mode) { mIconDispMode = mode; }
void clrAGBMapSendStopFlg() {}
void getIconDispMode() {}
void getMapAlpha() {}
void getMapDspPosLeftUpX() {}
void getMapDspPosLeftUpY() {}
@@ -165,19 +177,8 @@ public:
void isMapDispTypeEnlargementSize() {}
void isMapDispTypeRealSize() {}
void setAGBMapSendStopFlg() {}
void setIconDispMode(u8) {}
void setIconFreeAlpha(u8) {}
void setIconFreePosX(s16) {}
void setIconFreePosY(s16) {}
void setIconFreeScale(f32) {}
void setIconSelfAlpha(u8) {}
void setIconSelfScale(f32) {}
void setMapAlpha(u8) {}
void setMapChgSizeEnlargementSize() {}
void setMapChgSizeRealSize() {}
void setMapDispMode(u8) {}
void setMapDispPosLeftUpX(s16) {}
void setMapDispPosLeftUpY(s16) {}
static void create();
void isEnableEnlargementScroll();
@@ -244,6 +245,18 @@ public:
void mapBufferSendAGB_dungeon();
void mapSetPointAll();
static void mapBufferSendAGB(int);
static u8 mAlpha;
static u8 mIconFreeAlpha;
static u8 mMapDispMode;
static u16 mDispPosLeftUpX;
static u16 mDispPosLeftUpY;
static u16 mIconFreePosX;
static u16 mIconFreePosY;
static f32 mIconFreeScale;
static u8 mIconSelfAlpha;
static f32 mIconSelfScale;
static u8 mIconDispMode;
};
inline void dMap_drawPoint(u8 param_1, f32 param_2, f32 param_3, f32 param_4, s8 param_5, s16 param_6, u8 param_7, u8 param_8, u8 param_9) {
+17
View File
@@ -518,9 +518,23 @@ public:
class mapCtrlDisp_c {
public:
// TODO: these two functions are supposed to be weak
void initMapCtrlDisp();
void moveMapCtrlDisp();
void Create() {}
void Delete() {}
void getAlpha() {}
void getHideOffsetX() {}
void getShowOffsetX() {}
void hideSEOff() {}
void hideSEOn() {}
void isMode() {}
void setAlpha(u8) {}
void setHide() {}
void showSEOff() {}
void showSEOn() {}
/* 0x00 */ u8 field_0x0;
/* 0x01 */ u8 field_0x1;
/* 0x02 */ u8 field_0x2;
@@ -560,6 +574,9 @@ public:
/* 0x2F60 */ ResTIMG* moveIconTex[3];
/* 0x2F6C */ u8 field_0x2f6c[0x3024 - 0x2F6C];
/* 0x3024 */ u8 field_0x3024;
/* 0x3025 */ u8 field_0x3025;
/* 0x3026 */ u8 field_0x3026;
/* 0x3027 */ u8 field_0x3027;
};
extern dMeter_menuHIO_c g_menuHIO;
+87 -5
View File
@@ -15,7 +15,10 @@
#include "d/d_timer.h"
#include "stdio.h"
u8 dummy_3569[0xC];
dMeter_info_c dMeter_Info;
fopMsgM_pane_class item_parts;
dMeter_map_HIO_c g_meter_mapHIO;
dMeter_HIO_c g_meterHIO;
dMeter_menuHIO_c g_menuHIO;
@@ -59,6 +62,13 @@ dDlst_2DMETER2_c meter2;
dDlst_2Dm_c tekari;
dDlst_2Dm_c clock[3];
static const char* arrowTexImage[] = {
"arrow_00.bti",
"arrow_01.bti",
"arrow_02.bti",
"arrow_03.bti",
};
static void dummy(f32* m, u32 p2, s32 p3) {
m[0] = 0.8f;
m[1] = 0.0f;
@@ -589,8 +599,6 @@ void dMeter_offAuctionFlag() {
dMeter_auctionFlag = false;
}
fopMsgM_pane_class item_parts;
/* 801EF9C4-801EFA38 .text dMeter_itemMoveSet__FP18fopMsgM_pane_classUcUc */
void dMeter_itemMoveSet(fopMsgM_pane_class* pane, u8 btn, u8 item) {
dMeter_itemMoveFlag = 1;
@@ -1133,6 +1141,18 @@ void dMeter_actionAlpha(sub_meter_class* i_this) {
/* 801F4C80-801F4CC4 .text dMeter_numberSet__FP7J2DPaneUc */
void dMeter_numberSet(J2DPane*, u8) {
/* Nonmatching */
static const char* number[] = {
"count_num_0.bti",
"count_num_1.bti",
"count_num_2.bti",
"count_num_3.bti",
"count_num_4.bti",
"count_num_5.bti",
"count_num_6.bti",
"count_num_7.bti",
"count_num_8.bti",
"count_num_9.bti",
};
}
/* 801F4CC4-801F4E04 .text dMeter_numberColor__FP7J2DPaneUcUc */
@@ -1507,12 +1527,17 @@ void dMeter_clockMultiMove(sub_meter_class* i_this) {
/* 801FF184-801FF1F8 .text dMeter_mapInit__FP15sub_meter_class */
void dMeter_mapInit(sub_meter_class* i_this) {
/* Nonmatching */
i_this->field_0x3027 = 0xFF;
i_this->field_0x0100[0].mUserArea = dComIfGs_isDungeonItemCompass();
dMeter_mMapCtrlDisp.field_0x0 = 0;
dMeter_mMapCtrlDisp.field_0x4 = g_meter_mapHIO.field_0xc - g_meter_mapHIO.field_0x8;
dMeter_mMapCtrlDisp.initMapCtrlDisp();
}
/* 801FF1F8-801FF684 .text dMeter_mapMove__FP15sub_meter_class */
void dMeter_mapMove(sub_meter_class* i_this) {
/* Nonmatching */
dMeter_mMapCtrlDisp.moveMapCtrlDisp();
}
/* 801FF684-801FF76C .text dMeter_arwInit__FP15sub_meter_class */
@@ -1699,7 +1724,6 @@ BOOL dMeter_Draw(sub_meter_class* i_this) {
/* 80204820-80204C20 .text dMeter_Execute__FP15sub_meter_class */
BOOL dMeter_Execute(sub_meter_class* i_this) {
/* Nonmatching */
JKRHeap* oldHeap = mDoExt_setCurrentHeap(i_this->heap);
i_this->field_0x3024 = 0;
dMeter_statusCheck(i_this);
@@ -1710,6 +1734,50 @@ BOOL dMeter_Execute(sub_meter_class* i_this) {
dMeter_xyMove(i_this);
dMeter_rMove(i_this);
f32 f31 = g_meterHIO.field_0x40 / 100.0f;
f32 f30 = g_meterHIO.field_0x44 / 100.0f;
f32 f29 = g_meterHIO.field_0x46 / 100.0f;
dMeter_parentPaneTrans(i_this->field_0x2438 + 0x16, f31);
dMeter_childPaneTrans(i_this->field_0x2438 + 0x14, i_this->field_0x2438 + 0x16, f31);
dMeter_childPaneTrans(i_this->field_0x2438 + 0x15, i_this->field_0x2438 + 0x16, f31);
dMeter_childPaneTransOnly(i_this->field_0x1638 + 0x1F, i_this->field_0x2438 + 0x16, f31, f30);
dMeter_childPaneTransOnly(i_this->field_0x2438 + 0x12, i_this->field_0x2438 + 0x16, f31, f29);
dMeter_childPaneTransChildTrans(i_this->field_0x2438 + 0x13, i_this->field_0x2438 + 0x16, i_this->field_0x2438 + 0x12, f31, f29);
dMeter_childPaneTransOnly(i_this->field_0x1d38 + 0x00, i_this->field_0x2438 + 0x16, f31, f30);
for (int i = 0; i < 2; i++) {
dMeter_childPaneTrans(i_this->field_0x1d38 + 0x04 + i, i_this->field_0x2438 + 0x16, f31);
dMeter_childPaneTrans(i_this->field_0x1d38 + 0x02 + i, i_this->field_0x2438 + 0x16, f31);
}
dMeter_childPaneTrans(i_this->field_0x2438 + 0x0E, i_this->field_0x2438 + 0x16, f31);
dMeter_childPaneTrans(i_this->field_0x2438 + 0x0F, i_this->field_0x2438 + 0x16, f31);
dMeter_childPaneTrans(i_this->field_0x2438 + 0x10, i_this->field_0x2438 + 0x16, f31);
dMeter_childPaneTrans(i_this->field_0x2438 + 0x11, i_this->field_0x2438 + 0x16, f31);
for (int i = 0; i < 3; i++) {
dMeter_childPaneTransOnly(i_this->field_0x1d38 + 0x0F + i, i_this->field_0x2438 + 0x16, f31, f29);
dMeter_childPaneTransChildTransOnly(i_this->field_0x1d38 + 0x0C + i, i_this->field_0x2438 + 0x16, i_this->field_0x1d38 + 0x0F + i, f31, f29);
dMeter_childPaneTransChildTransOnly(i_this->field_0x1d38 + 0x09 + i, i_this->field_0x2438 + 0x16, i_this->field_0x1d38 + 0x0F + i, f31, f29);
dMeter_childPaneTransChildTrans(i_this->field_0x1d38 + 0x12 + i, i_this->field_0x2438 + 0x16, i_this->field_0x1d38 + 0x0F + i, f31, f29);
dMeter_childPaneTransChildTrans(i_this->field_0x1d38 + 0x1B + i, i_this->field_0x2438 + 0x16, i_this->field_0x1d38 + 0x0F + i, f31, f29);
dMeter_childPaneTransChildTrans(i_this->field_0x1d38 + 0x1E + i, i_this->field_0x2438 + 0x16, i_this->field_0x1d38 + 0x0F + i, f31, f29);
dMeter_childPaneTransChildTrans(i_this->field_0x2438 + 0x01 + i, i_this->field_0x2438 + 0x16, i_this->field_0x1d38 + 0x0F + i, f31, f29);
}
dMeter_childPaneTrans(i_this->field_0x2438 + 0x04, i_this->field_0x2438 + 0x16, f31);
for (int i = 0; i < 2; i++) {
dMeter_childPaneTrans(i_this->field_0x2438 + 0x05 + i, i_this->field_0x2438 + 0x16, f31);
dMeter_childPaneTrans(i_this->field_0x2438 + 0x07 + i, i_this->field_0x2438 + 0x16, f31);
dMeter_childPaneTrans(i_this->field_0x2438 + 0x09 + i, i_this->field_0x2438 + 0x16, f31);
}
dMeter_childPaneTransOnly(i_this->field_0x1638 + 0x1E, i_this->field_0x2438 + 0x16, f31, f29);
dMeter_childPaneTrans(i_this->field_0x2438 + 0x0C, i_this->field_0x2438 + 0x16, f31);
dMeter_childPaneTrans(i_this->field_0x2438 + 0x0B, i_this->field_0x2438 + 0x16, f31);
dMeter_enemyMove(i_this);
dMeter_magicMove(i_this);
dMeter_windMove(i_this);
@@ -1882,7 +1950,21 @@ dMeter_map_HIO_c::dMeter_map_HIO_c() {
/* 802059E0-80205A44 .text initMapCtrlDisp__13mapCtrlDisp_cFv */
void mapCtrlDisp_c::initMapCtrlDisp() {
/* Nonmatching */
dMap_c::setMapAlpha(0);
dMap_c::setIconFreeAlpha(0);
dMap_c::setMapDispMode(1);
dMap_c::setMapDispPosLeftUpX(g_meter_mapHIO.field_0x8);
dMap_c::setMapDispPosLeftUpY(g_meter_mapHIO.field_0xa);
dMap_c::setIconFreePosX(g_meter_mapHIO.field_0x14);
dMap_c::setIconFreePosY(g_meter_mapHIO.field_0x16);
dMap_c::setIconFreeScale(0.0f);
dMap_c::setIconSelfAlpha(0);
dMap_c::setIconSelfScale(0.0f);
dMap_c::setIconDispMode(0);
field_0x0 = 0;
field_0x1 = 0;
field_0x2 = 0;
field_0x4 = 0;
}
/* 80205A44-80205D24 .text moveMapCtrlDisp__13mapCtrlDisp_cFv */