From 2397f33aba0abd83b628e66d0a49ba09f3feeeb4 Mon Sep 17 00:00:00 2001 From: RavePossum Date: Sun, 23 Jun 2024 19:45:45 -0400 Subject: [PATCH] Document CommonScript and ReturnLocal, isCommonScript->commonScriptActive --- asm/macros/scrcmd.inc | 4 +-- include/unk_0203E880.h | 4 +-- src/scrcmd.c | 56 +++++++++++++++++++----------------------- src/unk_0203E880.c | 4 +-- 4 files changed, 31 insertions(+), 37 deletions(-) diff --git a/asm/macros/scrcmd.inc b/asm/macros/scrcmd.inc index 5ac4295752..a75fb525ea 100644 --- a/asm/macros/scrcmd.inc +++ b/asm/macros/scrcmd.inc @@ -115,9 +115,9 @@ .short \arg0 .endm - .macro ScrCmd_014 arg0 + .macro ScrCmd_014 scriptID .short 20 - .short \arg0 + .short \scriptID .endm .macro ScrCmd_015 diff --git a/include/unk_0203E880.h b/include/unk_0203E880.h index 1cf35389f0..4f63c28aca 100644 --- a/include/unk_0203E880.h +++ b/include/unk_0203E880.h @@ -19,7 +19,7 @@ enum ScriptManagerMember { SCRIPT_MANAGER_UI_CONTROL, SCRIPT_MANAGER_MESSAGE_ID, SCRIPT_MANAGER_MOVEMENT_COUNT, - SCRIPT_MANAGER_IS_COMMON_SCRIPT, + SCRIPT_MANAGER_COMMON_SCRIPT_ACTIVE, SCRIPT_MANAGER_IS_MSG_BOX_OPEN, SCRIPT_MANAGER_CONTEXT_COUNT, SCRIPT_MANAGER_SCRIPT_ID, @@ -102,7 +102,7 @@ typedef struct ScriptManager { u8 state; u8 messageID; u8 movementCount; - u8 isCommonScript; + u8 commonScriptActive; // used to determine when to return from a common script u8 isMsgBoxOpen; u8 ctxCount; u16 scriptID; diff --git a/src/scrcmd.c b/src/scrcmd.c index 4dbdae7e33..a9a6ebfc14 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -265,9 +265,9 @@ static BOOL ScrCmd_010(ScriptContext * ctx); static BOOL ScrCmd_CompareVarToValue(ScriptContext * ctx); static BOOL ScrCmd_CompareVarToVar(ScriptContext * ctx); static BOOL ScrCmd_013(ScriptContext * ctx); -static BOOL ScrCmd_014(ScriptContext * ctx); -static BOOL sub_0203F9EC(ScriptContext * ctx); -static BOOL ScrCmd_015(ScriptContext * ctx); +static BOOL ScrCmd_CommonScript(ScriptContext * ctx); +static BOOL ScriptContext_WaitCommonScript(ScriptContext * ctx); +static BOOL ScrCmd_ReturnLocal(ScriptContext * ctx); static BOOL ScrCmd_GoTo(ScriptContext * ctx); static MapObject * sub_02040ED4(FieldSystem * fieldSystem, int param1); static BOOL ScrCmd_017(ScriptContext * ctx); @@ -794,8 +794,8 @@ const ScrCmdFunc Unk_020EAC58[] = { ScrCmd_CompareVarToValue, ScrCmd_CompareVarToVar, ScrCmd_013, - ScrCmd_014, - ScrCmd_015, + ScrCmd_CommonScript, + ScrCmd_ReturnLocal, ScrCmd_GoTo, ScrCmd_017, ScrCmd_018, @@ -1851,42 +1851,36 @@ static BOOL ScrCmd_013 (ScriptContext * ctx) return 1; } -static BOOL ScrCmd_014 (ScriptContext * ctx) +static BOOL ScrCmd_CommonScript (ScriptContext * ctx) { - u16 v0; + u16 scriptID; FieldSystem * fieldSystem = ctx->fieldSystem; - u8 * v2 = FieldSystem_GetScriptMember(fieldSystem, SCRIPT_MANAGER_IS_COMMON_SCRIPT); - u8 * v3 = FieldSystem_GetScriptMember(fieldSystem, SCRIPT_MANAGER_CONTEXT_COUNT); - ScriptContext ** v4 = FieldSystem_GetScriptMember(fieldSystem, SCRIPT_MANAGER_CONTEXT_1); + u8 *commonScriptActive = FieldSystem_GetScriptMember(fieldSystem, SCRIPT_MANAGER_COMMON_SCRIPT_ACTIVE); + u8 *ctxCount = FieldSystem_GetScriptMember(fieldSystem, SCRIPT_MANAGER_CONTEXT_COUNT); + ScriptContext **commonScriptCtx = FieldSystem_GetScriptMember(fieldSystem, SCRIPT_MANAGER_CONTEXT_1); - v0 = ScriptContext_ReadHalfWord(ctx); - *v2 = 1; - *v4 = ScriptContext_New(fieldSystem, v0); - (*v3)++; + scriptID = ScriptContext_ReadHalfWord(ctx); + *commonScriptActive = TRUE; + *commonScriptCtx = ScriptContext_New(fieldSystem, scriptID); + (*ctxCount)++; - ScriptContext_Pause(ctx, sub_0203F9EC); - return 1; + ScriptContext_Pause(ctx, ScriptContext_WaitCommonScript); + return TRUE; } -static BOOL sub_0203F9EC (ScriptContext * ctx) +static BOOL ScriptContext_WaitCommonScript (ScriptContext * ctx) { - FieldSystem * fieldSystem = ctx->fieldSystem; - u8 * v1 = FieldSystem_GetScriptMember(fieldSystem, SCRIPT_MANAGER_IS_COMMON_SCRIPT); - - if (*v1 == 0) { - return 1; - } - - return 0; + FieldSystem *fieldSystem = ctx->fieldSystem; + u8 *commonScriptActive = FieldSystem_GetScriptMember(fieldSystem, SCRIPT_MANAGER_COMMON_SCRIPT_ACTIVE); + return *commonScriptActive == FALSE; } -static BOOL ScrCmd_015 (ScriptContext * ctx) +static BOOL ScrCmd_ReturnLocal (ScriptContext * ctx) { - FieldSystem * fieldSystem = ctx->fieldSystem; - u8 * v1 = FieldSystem_GetScriptMember(fieldSystem, SCRIPT_MANAGER_IS_COMMON_SCRIPT); - - *v1 = 0; - return 0; + FieldSystem *fieldSystem = ctx->fieldSystem; + u8 *commonScriptActive = FieldSystem_GetScriptMember(fieldSystem, SCRIPT_MANAGER_COMMON_SCRIPT_ACTIVE); + *commonScriptActive = FALSE; + return FALSE; } static BOOL ScrCmd_GoTo (ScriptContext * ctx) diff --git a/src/unk_0203E880.c b/src/unk_0203E880.c index 6aaded261b..b100b92be2 100644 --- a/src/unk_0203E880.c +++ b/src/unk_0203E880.c @@ -327,8 +327,8 @@ void * ScriptManager_GetMemberPtr (ScriptManager *scriptManager, u32 member) return &scriptManager->messageID; case SCRIPT_MANAGER_MOVEMENT_COUNT: return &scriptManager->movementCount; - case SCRIPT_MANAGER_IS_COMMON_SCRIPT: - return &scriptManager->isCommonScript; + case SCRIPT_MANAGER_COMMON_SCRIPT_ACTIVE: + return &scriptManager->commonScriptActive; case SCRIPT_MANAGER_IS_MSG_BOX_OPEN: return &scriptManager->isMsgBoxOpen; case SCRIPT_MANAGER_CONTEXT_COUNT: