diff --git a/include/d/d_timer.h b/include/d/d_timer.h index 14eef713cf..1b39147cab 100644 --- a/include/d/d_timer.h +++ b/include/d/d_timer.h @@ -14,8 +14,23 @@ s32 dTimer_createStockTimer(); class dDlst_TimerScrnDraw_c { private: - u8 field_0x00[0x3e1]; - u8 mTimerVisible; + /* 0x000 */ u8 field_0x000[0x3B0]; + /* 0x3B0 */ int field_0x3B0;; + /* 0x3B4 */ int field_0x3B4; + /* 0x3B8 */ int field_0x3B8; + /* 0x3BC */ int field_0x3BC; + /* 0x3C0 */ u8 field_0x3C0[12]; + /* 0x3CC */ int field_0x3CC; + /* 0x3D0 */ int field_0x3D0; + /* 0x3D4 */ int field_0x3D4; + /* 0x3D8 */ int field_0x3D8; + /* 0x3DC */ u8 field_0x3DC; + // /* 0x3DC */ u8 field_0x3DD; + /* 0x3DE */ u8 field_0x3DE; + /* 0x3DF */ u8 field_0x3DF; + /* 0x3E0 */ u8 field_0x3E0; + /* 0x3E1 */ u8 field_0x3E1; + /* 0x3E2 */ u8 mTimerVisible; public: /* 8025DB38 */ dDlst_TimerScrnDraw_c(); /* 8025DBE0 */ void setHIO(); @@ -26,7 +41,7 @@ public: /* 8025EB20 */ void hideDenominator(); /* 8025EC5C */ void deleteScreen(); /* 8025EE24 */ void changeNumberTexture(J2DPane*, int); - /* 8025EECC */ void getNumber(int); + /* 8025EECC */ char* getNumber(int); /* 8025EEF0 */ void setTimer(int); /* 8025F180 */ void setCounter(u8, u8); /* 8025FA00 */ void setParentPos(f32, f32); diff --git a/src/d/d_timer.cpp b/src/d/d_timer.cpp index f149252e7b..9a54c4226f 100644 --- a/src/d/d_timer.cpp +++ b/src/d/d_timer.cpp @@ -325,7 +325,6 @@ int dTimer_c::restart(u8 param_0) { } /* 8025D920-8025D9E0 258260 00C0+00 0/0 1/1 0/0 .text end__8dTimer_cFi */ -#ifndef NONMATCHING int dTimer_c::end(int param_0) { int ret; if (mDeleteCheck != 4) { @@ -343,16 +342,6 @@ int dTimer_c::end(int param_0) { return ret; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_c::end(int param_0) { - nofralloc -#include "asm/d/d_timer/end__8dTimer_cFi.s" -} -#pragma pop -#endif /* 8025D9E0-8025D9F0 258320 0010+00 0/0 1/1 0/0 .text deleteRequest__8dTimer_cFv */ int dTimer_c::deleteRequest() { @@ -435,6 +424,26 @@ SECTION_DATA extern void* __vt__21dDlst_TimerScrnDraw_c[4] = { }; /* 8025DB38-8025DBE0 258478 00A8+00 1/1 0/0 0/0 .text __ct__21dDlst_TimerScrnDraw_cFv */ +#ifdef NONMATCHING +dDlst_TimerScrnDraw_c::dDlst_TimerScrnDraw_c() { + mTimerVisible = 0; + field_0x3DD = 0; + field_0x3D8 = 0; + field_0x3CC = -1; + field_0x3D0 = -1; + field_0x3D4 = 0; + + field_0x3B0 = 0; // fix + field_0x3B4 = 0; // fix + field_0x3B8 = 0; // fix + field_0x3BC = 0; // fix + + field_0x3DE = 0; + field_0x3DF = 0; + field_0x3E0 = 0; + field_0x3E1 = 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -443,6 +452,7 @@ asm dDlst_TimerScrnDraw_c::dDlst_TimerScrnDraw_c() { #include "asm/d/d_timer/__ct__21dDlst_TimerScrnDraw_cFv.s" } #pragma pop +#endif /* 8025DBE0-8025DFBC 258520 03DC+00 1/1 0/0 0/0 .text setHIO__21dDlst_TimerScrnDraw_cFv */ @@ -559,6 +569,11 @@ asm void dDlst_TimerScrnDraw_c::changeNumberTexture(J2DPane* param_0, int param_ #pragma pop /* 8025EECC-8025EEF0 25980C 0024+00 1/1 0/0 0/0 .text getNumber__21dDlst_TimerScrnDraw_cFi */ +#ifndef NONMATCHING +char* dDlst_TimerScrnDraw_c::getNumber(int pIndex) { + return dMeter2Info_getNumberTextureName(pIndex); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -567,6 +582,7 @@ asm void dDlst_TimerScrnDraw_c::getNumber(int param_0) { #include "asm/d/d_timer/getNumber__21dDlst_TimerScrnDraw_cFi.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80454F4C-80454F50 00354C 0004+00 5/5 0/0 0/0 .sdata2 @4124 */