summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/d/d_timer.h8
-rw-r--r--src/d/d_timer.cpp32
2 files changed, 25 insertions, 15 deletions
diff --git a/include/d/d_timer.h b/include/d/d_timer.h
index a70cac2145..83e18046d5 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 7fec36a819..a7b378b2e2 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