From c4ed589f23cc04582596132bcbce2bfabdfee3cd Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Thu, 22 Dec 2022 00:03:31 -0700 Subject: [PATCH] dTimer_c::stock_start --- include/d/d_timer.h | 8 +++++--- src/d/d_timer.cpp | 32 ++++++++++++++++++++------------ 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/include/d/d_timer.h b/include/d/d_timer.h index a70cac2145b..83e18046d54 100644 --- a/include/d/d_timer.h +++ b/include/d/d_timer.h @@ -23,7 +23,9 @@ private: /* 0x154 */ int mTimerMode; /* 0x158 */ u8 field_0x158[12]; /* 0x164 */ u8 mSeIdx; - /* 0x165 */ u8 field_0x165[7]; + /* 0x165 */ u8 field_0x165[3]; + /* 0x168 */ s16 field_0x168; + /* 0x16A */ u8 field_0x16A[2]; /* 0x16C */ u8 mDeleteCheck; public: @@ -34,8 +36,8 @@ public: /* 8025D524 */ int deleteCheck(); /* 8025D618 */ void start(int, s16); /* 8025D538 */ void start(int); - /* 8025D7C0 */ void stock_start(s16); - /* 8025D708 */ void stock_start(); + /* 8025D7C0 */ int stock_start(s16); + /* 8025D708 */ bool stock_start(); /* 8025D7E8 */ void stop(u8); /* 8025D86C */ void restart(u8); /* 8025D920 */ void end(int); diff --git a/src/d/d_timer.cpp b/src/d/d_timer.cpp index 7fec36a8194..a7b378b2e26 100644 --- a/src/d/d_timer.cpp +++ b/src/d/d_timer.cpp @@ -252,20 +252,9 @@ asm void dTimer_c::_delete() { #pragma pop /* 8025D524-8025D538 257E64 0014+00 0/0 1/1 0/0 .text deleteCheck__8dTimer_cFv */ -#ifndef NONMATCHING int dTimer_c::deleteCheck() { return mDeleteCheck == 7; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dTimer_c::deleteCheck() { - nofralloc -#include "asm/d/d_timer/deleteCheck__8dTimer_cFv.s" -} -#pragma pop -#endif /* 8025D538-8025D618 257E78 00E0+00 1/1 1/1 0/0 .text start__8dTimer_cFi */ #pragma push @@ -288,16 +277,34 @@ asm void dTimer_c::start(int param_0, s16 param_1) { #pragma pop /* 8025D708-8025D7C0 258048 00B8+00 1/1 0/0 0/0 .text stock_start__8dTimer_cFv */ +#ifdef NONMATCHING +int dTimer_c::stock_start() { + if (mDeleteCheck == 0) { + field_0x168 = param_1 + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dTimer_c::stock_start() { +asm bool dTimer_c::stock_start() { nofralloc #include "asm/d/d_timer/stock_start__8dTimer_cFv.s" } #pragma pop +#endif /* 8025D7C0-8025D7E8 258100 0028+00 1/1 0/0 0/0 .text stock_start__8dTimer_cFs */ +#ifndef NONMATCHING +int dTimer_c::stock_start(s16 param_0) { + if (mDeleteCheck == 0) { + field_0x168 = param_0; + mDeleteCheck = 5; + return 1; + } + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -306,6 +313,7 @@ asm void dTimer_c::stock_start(s16 param_0) { #include "asm/d/d_timer/stock_start__8dTimer_cFs.s" } #pragma pop +#endif /* 8025D7E8-8025D86C 258128 0084+00 3/3 1/1 0/0 .text stop__8dTimer_cFUc */ #pragma push