From a15c20dcd79b46e910c95d3981f4465be052d5de Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Thu, 22 Dec 2022 14:36:27 -0700 Subject: [PATCH] dTimer_c::restart --- include/d/d_timer.h | 2 +- src/d/d_timer.cpp | 22 +++++++++++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/include/d/d_timer.h b/include/d/d_timer.h index b46a3238b9b..569bedfe620 100644 --- a/include/d/d_timer.h +++ b/include/d/d_timer.h @@ -87,7 +87,7 @@ public: /* 8025D7C0 */ int stock_start(s16); /* 8025D708 */ bool stock_start(); /* 8025D7E8 */ int stop(u8); - /* 8025D86C */ void restart(u8); + /* 8025D86C */ int restart(u8); /* 8025D920 */ void end(int); /* 8025D9E0 */ int deleteRequest(); /* 8025D9F0 */ int getTimeMs(); diff --git a/src/d/d_timer.cpp b/src/d/d_timer.cpp index fa61c2035e8..c25872b6792 100644 --- a/src/d/d_timer.cpp +++ b/src/d/d_timer.cpp @@ -308,14 +308,22 @@ int dTimer_c::stop(u8 param_0) { } /* 8025D86C-8025D920 2581AC 00B4+00 1/1 1/1 0/0 .text restart__8dTimer_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_c::restart(u8 param_0) { - nofralloc -#include "asm/d/d_timer/restart__8dTimer_cFUc.s" +int dTimer_c::restart(u8 param_0) { + if (field_0x16A != 1 || field_0x16B != param_0) { + return 0; + } else { + if (mDeleteCheck != 4 && mDeleteCheck != 2) { + return 0; + } else { + mTime2 = dLib_time_c::getTime(); + OSTime tmp = mTime2 - mTime3; + mTime5 += tmp; + field_0x16A = 0; + field_0x16B = 0; + return 1; + } + } } -#pragma pop /* 8025D920-8025D9E0 258260 00C0+00 0/0 1/1 0/0 .text end__8dTimer_cFi */ #pragma push