summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPheenoh <pheenoh@gmail.com>2022-12-22 00:36:10 -0700
committerPheenoh <pheenoh@gmail.com>2022-12-22 00:36:10 -0700
commit282b2a33f440fc7a2d54fa951adc3e278ec93019 (patch)
treec13be5fb245d62bfbe42c698df30ecee0a6879ab
parent42d6d8c0bfaa71f9a87fe3b2313d0e60f67e879e (diff)
dTimer_c::stop
-rw-r--r--include/d/d_timer.h11
-rw-r--r--src/d/d_timer.cpp19
2 files changed, 26 insertions, 4 deletions
diff --git a/include/d/d_timer.h b/include/d/d_timer.h
index 83e18046d5..5bf1291573 100644
--- a/include/d/d_timer.h
+++ b/include/d/d_timer.h
@@ -17,15 +17,18 @@ private:
/* 0x108 */ request_of_phase_process_class mPhase;
/* 0x110 */ OSTime mTime1;
/* 0x118 */ OSTime mTime2;
- /* 0x120 */ u8 field_0x120[32];
- /* 0x140 */ OSTime mTime3;
+ /* 0x120 */ u8 field_0x120[16];
+ /* 0x130 */ OSTime mTime3;
+ /* 0x138 */ u8 field_0x138[8];
+ /* 0x140 */ OSTime mTime4;
/* 0x148 */ u8 field_0x148[12];
/* 0x154 */ int mTimerMode;
/* 0x158 */ u8 field_0x158[12];
/* 0x164 */ u8 mSeIdx;
/* 0x165 */ u8 field_0x165[3];
/* 0x168 */ s16 field_0x168;
- /* 0x16A */ u8 field_0x16A[2];
+ /* 0x16A */ u8 field_0x16A;
+ /* 0x16B */ u8 field_0x16B;
/* 0x16C */ u8 mDeleteCheck;
public:
@@ -38,7 +41,7 @@ public:
/* 8025D538 */ void start(int);
/* 8025D7C0 */ int stock_start(s16);
/* 8025D708 */ bool stock_start();
- /* 8025D7E8 */ void stop(u8);
+ /* 8025D7E8 */ int stop(u8);
/* 8025D86C */ void restart(u8);
/* 8025D920 */ void end(int);
/* 8025D9E0 */ void deleteRequest();
diff --git a/src/d/d_timer.cpp b/src/d/d_timer.cpp
index 618c6b0b98..acb67d8003 100644
--- a/src/d/d_timer.cpp
+++ b/src/d/d_timer.cpp
@@ -316,6 +316,24 @@ int dTimer_c::stock_start(s16 param_0) {
}
/* 8025D7E8-8025D86C 258128 0084+00 3/3 1/1 0/0 .text stop__8dTimer_cFUc */
+#ifndef NONMATCHING
+int dTimer_c::stop(u8 param_0) {
+ int ret;
+
+ if (field_0x16A == 1 || field_0x16B != 0) {
+ ret = 0;
+ } else if (mDeleteCheck != 4) {
+ ret = 0;
+ } else {
+ mTime3 = dLib_time_c::getTime();
+ field_0x16A = 1;
+ field_0x16B = param_0;
+ ret = 1;
+ }
+
+ return ret;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -324,6 +342,7 @@ asm void dTimer_c::stop(u8 param_0) {
#include "asm/d/d_timer/stop__8dTimer_cFUc.s"
}
#pragma pop
+#endif
/* 8025D86C-8025D920 2581AC 00B4+00 1/1 1/1 0/0 .text restart__8dTimer_cFUc */
#pragma push