From 638865a2073a3a4b7300f7427a0743b152ea6dee Mon Sep 17 00:00:00 2001 From: AnonymousRandomPerson Date: Thu, 19 Mar 2026 21:14:17 -0400 Subject: [PATCH] Decomped IsMissionSuspendedAndValid Decomped by @slaw-22 --- .../{main_0205C854.inc => main_0205C870.inc} | 1 + asm/{main_0205C854.s => main_0205C870.s} | 13 +------------ include/main_0205C73C.h | 3 +++ main.lsf | 2 +- src/main_0205C73C.c | 11 +++++++++++ 5 files changed, 17 insertions(+), 13 deletions(-) rename asm/include/{main_0205C854.inc => main_0205C870.inc} (99%) rename asm/{main_0205C854.s => main_0205C870.s} (99%) diff --git a/asm/include/main_0205C854.inc b/asm/include/main_0205C870.inc similarity index 99% rename from asm/include/main_0205C854.inc rename to asm/include/main_0205C870.inc index 28845800..21738fa7 100644 --- a/asm/include/main_0205C854.inc +++ b/asm/include/main_0205C870.inc @@ -78,6 +78,7 @@ .public IsItemInTimeDarkness .public IsItemInTreasureBoxes .public IsItemValidVeneer +.public IsMissionSuspendedAndValid .public IsMonsterValid .public IsSpecialEpisodeBeaten .public IsSpecialEpisodeOpen diff --git a/asm/main_0205C854.s b/asm/main_0205C870.s similarity index 99% rename from asm/main_0205C854.s rename to asm/main_0205C870.s index 1d3d33ab..93e49dce 100644 --- a/asm/main_0205C854.s +++ b/asm/main_0205C870.s @@ -1,19 +1,8 @@ .include "asm/macros.inc" - .include "main_0205C854.inc" + .include "main_0205C870.inc" .text - arm_func_start IsMissionSuspendedAndValid -IsMissionSuspendedAndValid: ; 0x0205C854 - stmdb sp!, {r3, lr} - ldrb r1, [r0] - cmp r1, #4 - movne r0, #0 - ldmneia sp!, {r3, pc} - bl IsMissionValid - ldmia sp!, {r3, pc} - arm_func_end IsMissionSuspendedAndValid - arm_func_start sub_0205C870 sub_0205C870: ; 0x0205C870 cmp r0, #6 diff --git a/include/main_0205C73C.h b/include/main_0205C73C.h index 5423f7f1..f5b44c70 100644 --- a/include/main_0205C73C.h +++ b/include/main_0205C73C.h @@ -1,7 +1,10 @@ #ifndef PMDSKY_MAIN_0205C73C_H #define PMDSKY_MAIN_0205C73C_H +#include "mission.h" + void sub_0205C73C(void); void sub_0205C75C(void); +bool8 IsMissionSuspendedAndValid(struct mission *mission); #endif //PMDSKY_MAIN_0205C73C_H diff --git a/main.lsf b/main.lsf index 95b4d42f..a84f6450 100644 --- a/main.lsf +++ b/main.lsf @@ -162,7 +162,7 @@ Static main Object src/main_0205C440.o Object asm/main_0205C548.o Object src/main_0205C73C.o - Object asm/main_0205C854.o + Object asm/main_0205C870.o Object src/dungeon_init_2.o Object asm/main_0206A750.o Object src/main_0206C98C.o diff --git a/src/main_0205C73C.c b/src/main_0205C73C.c index 63e35f9b..3d26d8b9 100644 --- a/src/main_0205C73C.c +++ b/src/main_0205C73C.c @@ -6,6 +6,7 @@ extern u8 _022B6F10[]; extern void sub_020600CC(void); extern void ClearMissionData(struct mission* mission); +extern bool8 IsMissionValid(struct mission *mission); void sub_0205C73C(void) { @@ -41,3 +42,13 @@ void sub_0205C75C(void) *(u32 *)&MISSION_DELIVER_LIST_PTR.unk18[i * 12 + 0x348] = 0; } } + +bool8 IsMissionSuspendedAndValid(struct mission *mission) +{ + if (mission->status != MISSION_STATUS_SUSPENDED) + { + return FALSE; + } + + return IsMissionValid(mission); +}