From 00a8b847dffc9fed651e5a90f93d1e47fff3edcc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 6 Apr 2022 13:48:05 -0400 Subject: [PATCH] through ScrCmd_842 --- asm/scrcmd.s | 219 ------------------------------------------- include/overlay_01.h | 7 ++ include/script.h | 2 +- src/fieldmap.c | 2 +- src/scrcmd_c.c | 79 ++++++++++++++-- 5 files changed, 81 insertions(+), 228 deletions(-) diff --git a/asm/scrcmd.s b/asm/scrcmd.s index 9faf8aff2..38baa764a 100644 --- a/asm/scrcmd.s +++ b/asm/scrcmd.s @@ -910,225 +910,6 @@ _021D4168: .public sub_02041770 .public sub_020418B4 - thumb_func_start ScrCmd_068 -ScrCmd_068: ; 0x02041950 - push {r4, lr} - add r4, r0, #0 - add r0, #0x80 - ldr r0, [r0] - mov r1, #0 - bl FieldSysGetAttrAddr - add r1, r0, #0 - add r0, r4, #0 - mov r2, #0 - bl sub_02041770 - mov r0, #1 - pop {r4, pc} - thumb_func_end ScrCmd_068 - - thumb_func_start ScrCmd_069 -ScrCmd_069: ; 0x0204196C - push {r4, lr} - add r4, r0, #0 - add r0, #0x80 - ldr r0, [r0] - mov r1, #0 - bl FieldSysGetAttrAddr - add r1, r0, #0 - ldr r2, [r4, #0x78] - add r0, r4, #0 - bl sub_02041770 - mov r0, #1 - pop {r4, pc} - thumb_func_end ScrCmd_069 - - thumb_func_start ScrCmd_070 -ScrCmd_070: ; 0x02041988 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r0, #0x80 - ldr r0, [r0] - mov r1, #0 - bl FieldSysGetAttrAddr - add r4, r0, #0 - add r0, r5, #0 - bl ScriptReadHalfword - add r1, r0, #0 - add r0, r5, #0 - add r0, #0x80 - ldr r0, [r0] - bl VarGet - add r6, r0, #0 - add r0, r5, #0 - bl ScriptReadHalfword - add r1, r0, #0 - add r0, r5, #0 - add r0, #0x80 - ldr r0, [r0] - bl VarGet - add r7, r0, #0 - add r0, r5, #0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0 - ldr r0, [r5] - bl VarGet - add r3, r0, #0 - lsl r1, r6, #0x18 - lsl r2, r7, #0x18 - lsl r3, r3, #0x18 - ldr r0, [r4] - lsr r1, r1, #0x18 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - bl MoveTutorMenu_SetListItem - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ScrCmd_070 - - thumb_func_start ScrCmd_071 -ScrCmd_071: ; 0x020419E8 - push {r4, lr} - add r4, r0, #0 - add r0, #0x80 - ldr r0, [r0] - mov r1, #0 - bl FieldSysGetAttrAddr - ldr r0, [r0] - bl ov01_021EDFA4 - ldr r1, _02041A08 ; =sub_020418B4 - add r0, r4, #0 - bl SetupNativeScript - mov r0, #1 - pop {r4, pc} - .balign 4, 0 -_02041A08: .word sub_020418B4 - thumb_func_end ScrCmd_071 - - thumb_func_start ScrCmd_695 -ScrCmd_695: ; 0x02041A0C - push {r3, r4, r5, lr} - add r5, r0, #0 - add r0, #0x80 - ldr r0, [r0] - mov r1, #0 - bl FieldSysGetAttrAddr - add r4, r0, #0 - add r0, r5, #0 - bl ScriptReadHalfword - add r1, r0, #0 - add r0, r5, #0 - add r0, #0x80 - ldr r0, [r0] - bl VarGet - add r1, r0, #0 - ldr r0, [r4] - bl ov01_021EE014 - ldr r1, _02041A44 ; =sub_020418B4 - add r0, r5, #0 - bl SetupNativeScript - mov r0, #1 - pop {r3, r4, r5, pc} - nop -_02041A44: .word sub_020418B4 - thumb_func_end ScrCmd_695 - - thumb_func_start ScrCmd_677 -ScrCmd_677: ; 0x02041A48 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r0, #0x80 - ldr r0, [r0] - mov r1, #0 - bl FieldSysGetAttrAddr - add r4, r0, #0 - add r0, r5, #0 - bl ScriptReadHalfword - add r1, r0, #0 - add r0, r5, #0 - add r0, #0x80 - ldr r0, [r0] - bl GetVarPointer - add r6, r0, #0 - add r0, r5, #0 - bl ScriptReadHalfword - add r1, r0, #0 - add r0, r5, #0 - add r0, #0x80 - ldr r0, [r0] - bl GetVarPointer - add r2, r0, #0 - ldr r0, [r4] - add r1, r6, #0 - bl ov01_021EE0EC - ldr r1, _02041A94 ; =sub_020418B4 - add r0, r5, #0 - bl SetupNativeScript - mov r0, #1 - pop {r4, r5, r6, pc} - .balign 4, 0 -_02041A94: .word sub_020418B4 - thumb_func_end ScrCmd_677 - - thumb_func_start ScrCmd_072 -ScrCmd_072: ; 0x02041A98 - push {r4, lr} - add r4, r0, #0 - add r0, #0x80 - ldr r0, [r0] - mov r1, #0 - bl FieldSysGetAttrAddr - ldr r2, [r4, #8] - add r1, r2, #1 - str r1, [r4, #8] - ldrb r1, [r2] - ldr r0, [r0] - bl ov01_021EE974 - ldr r1, _02041AC0 ; =sub_020418B4 - add r0, r4, #0 - bl SetupNativeScript - mov r0, #1 - pop {r4, pc} - .balign 4, 0 -_02041AC0: .word sub_020418B4 - thumb_func_end ScrCmd_072 - - thumb_func_start ScrCmd_841 -ScrCmd_841: ; 0x02041AC4 - push {r4, lr} - add r4, r0, #0 - add r0, #0x80 - ldr r0, [r0] - mov r1, #0 - bl FieldSysGetAttrAddr - ldr r2, [r4, #8] - add r1, r2, #1 - str r1, [r4, #8] - ldrb r1, [r2] - ldr r0, [r0] - bl ov01_021EF018 - mov r0, #1 - pop {r4, pc} - thumb_func_end ScrCmd_841 - - thumb_func_start ScrCmd_842 -ScrCmd_842: ; 0x02041AE4 - push {r4, lr} - add r4, r0, #0 - add r0, #0x80 - ldr r0, [r0] - mov r1, #0 - bl FieldSysGetAttrAddr - ldr r2, [r4, #8] - add r1, r2, #1 - str r1, [r4, #8] - ldrb r1, [r2] - ldr r0, [r0] - bl ov01_021EF034 - mov r0, #1 - pop {r4, pc} - thumb_func_end ScrCmd_842 - thumb_func_start ScrCmd_ApplyMovement ScrCmd_ApplyMovement: ; 0x02041B04 push {r3, r4, r5, r6, r7, lr} diff --git a/include/overlay_01.h b/include/overlay_01.h index 6e672b7f8..45d11ed0e 100644 --- a/include/overlay_01.h +++ b/include/overlay_01.h @@ -56,5 +56,12 @@ struct UnkStruct_ov01_021EDC28 *ov01_021EDF78(FieldSystem *fsys, u8 x, u8 y, u8 void ov01_021EDC7C(struct UnkStruct_ov01_021EDC28 *menu, u32 msgId, u32 value); void ov01_021EDC84(struct UnkStruct_ov01_021EDC28 *menu); void ov01_021EDF38(struct UnkStruct_ov01_021EDC28 *menu); +void ov01_021EE014(struct UnkStruct_ov01_021EDC28 *menu, u16 a1); +void ov01_021EE0EC(struct UnkStruct_ov01_021EDC28 *menu, u16 *a1, u16 *a2); +void ov01_021EDFA4(struct UnkStruct_ov01_021EDC28 *menu); +void ov01_021EE974(struct UnkStruct_ov01_021EDC28 *menu, u8 a1); +void ov01_021EF018(struct UnkStruct_ov01_021EDC28 *menu, u8 a1); +void ov01_021EF034(struct UnkStruct_ov01_021EDC28 *menu, u8 a1); +void MoveTutorMenu_SetListItem(struct UnkStruct_ov01_021EDC28 *menu, u8 a1, u8 a2, u8 a3); #endif //POKEHEARTGOLD_OVERLAY_01_H diff --git a/include/script.h b/include/script.h index 8f91d3a31..4024a4d1c 100644 --- a/include/script.h +++ b/include/script.h @@ -78,7 +78,7 @@ typedef struct ScriptEnvironment { } ScriptEnvironment; enum ScriptEnvField { - SCRIPTENV_10 = 0, + SCRIPTENV_MENU_WINDOW = 0, SCRIPTENV_WINDOW = 1, SCRIPTENV_MENU = 2, SCRIPTENV_05 = 3, diff --git a/src/fieldmap.c b/src/fieldmap.c index 3a4cc5917..53f294872 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -218,7 +218,7 @@ void LoadScriptsAndMessagesForCurrentMap(FieldSystem *fsys, SCRIPTCONTEXT *ctx) void *FieldSysGetAttrAddrInternal(ScriptEnvironment *unk, enum ScriptEnvField field) { switch (field) { - case SCRIPTENV_10: + case SCRIPTENV_MENU_WINDOW: return &unk->unk_10; case SCRIPTENV_WINDOW: return &unk->unk_14; diff --git a/src/scrcmd_c.c b/src/scrcmd_c.c index cf4bd6e66..2c352ef02 100644 --- a/src/scrcmd_c.c +++ b/src/scrcmd_c.c @@ -888,17 +888,17 @@ void sub_02041770(SCRIPTCONTEXT *ctx, struct UnkStruct_ov01_021EDC28 **a1, MSGDA } BOOL ScrCmd_064(SCRIPTCONTEXT *ctx) { - sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_10), NULL); + sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW), NULL); return TRUE; } BOOL ScrCmd_065(SCRIPTCONTEXT *ctx) { - sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_10), ctx->msg_data); + sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW), ctx->msg_data); return TRUE; } BOOL ScrCmd_066(SCRIPTCONTEXT *ctx) { - struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_10); + struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW); u8 msgId = ScriptReadByte(ctx); u8 value = ScriptReadByte(ctx); ov01_021EDC7C(*pp_menu, msgId, value); @@ -906,7 +906,7 @@ BOOL ScrCmd_066(SCRIPTCONTEXT *ctx) { } BOOL ScrCmd_559(SCRIPTCONTEXT *ctx) { - struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_10); + struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW); u16 msgId = ScriptGetVar(ctx); u16 value = ScriptGetVar(ctx); ov01_021EDC7C(*pp_menu, msgId, value); @@ -916,7 +916,7 @@ BOOL ScrCmd_559(SCRIPTCONTEXT *ctx) { BOOL sub_020418B4(SCRIPTCONTEXT *ctx); BOOL ScrCmd_067(SCRIPTCONTEXT *ctx) { - struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_10); + struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW); ov01_021EDC84(*pp_menu); SetupNativeScript(ctx, sub_020418B4); return TRUE; @@ -929,7 +929,7 @@ BOOL sub_020418B4(SCRIPTCONTEXT *ctx) { BOOL sub_02041900(SCRIPTCONTEXT *ctx); BOOL ScrCmd_585(SCRIPTCONTEXT *ctx) { - struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_10); + struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW); ov01_021EDC84(*pp_menu); SetupNativeScript(ctx, sub_02041900); return TRUE; @@ -938,7 +938,7 @@ BOOL ScrCmd_585(SCRIPTCONTEXT *ctx) { BOOL sub_02041900(SCRIPTCONTEXT *ctx) { FieldSystem *fsys = ctx->fsys; u16 *p_var = GetVarPointer(fsys, ctx->data[0]); - struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(fsys, SCRIPTENV_10); + struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(fsys, SCRIPTENV_MENU_WINDOW); if (*p_var == 0xEEEE) { if (sub_0205A478(fsys->unk80)) { *p_var = 8; @@ -951,3 +951,68 @@ BOOL sub_02041900(SCRIPTCONTEXT *ctx) { return TRUE; } } + +BOOL ScrCmd_068(SCRIPTCONTEXT *ctx) { + sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW), NULL); + return TRUE; +} + +BOOL ScrCmd_069(SCRIPTCONTEXT *ctx) { + sub_02041770(ctx, FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW), ctx->msg_data); + return TRUE; +} + +BOOL ScrCmd_070(SCRIPTCONTEXT *ctx) { + struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW); + u16 r6 = ScriptGetVar(ctx); + u16 r7 = ScriptGetVar(ctx); + u16 r3 = ScriptGetVar(ctx); + MoveTutorMenu_SetListItem(*pp_menu, r6, r7, r3); + return FALSE; +} + +BOOL ScrCmd_071(SCRIPTCONTEXT *ctx) { + struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW); + ov01_021EDFA4(*pp_menu); + SetupNativeScript(ctx, sub_020418B4); + return TRUE; +} + +BOOL ScrCmd_695(SCRIPTCONTEXT *ctx) { + struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW); + u16 var = ScriptGetVar(ctx); + ov01_021EE014(*pp_menu, var); + SetupNativeScript(ctx, sub_020418B4); + return TRUE; +} + +BOOL ScrCmd_677(SCRIPTCONTEXT *ctx) { + struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW); + u16 *var1 = ScriptGetVarPointer(ctx); + u16 *var2 = ScriptGetVarPointer(ctx); + ov01_021EE0EC(*pp_menu, var1, var2); + SetupNativeScript(ctx, sub_020418B4); + return TRUE; +} + +BOOL ScrCmd_072(SCRIPTCONTEXT *ctx) { + struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW); + u8 val = ScriptReadByte(ctx); + ov01_021EE974(*pp_menu, val); + SetupNativeScript(ctx, sub_020418B4); + return TRUE; +} + +BOOL ScrCmd_841(SCRIPTCONTEXT *ctx) { + struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW); + u8 val = ScriptReadByte(ctx); + ov01_021EF018(*pp_menu, val); + return TRUE; +} + +BOOL ScrCmd_842(SCRIPTCONTEXT *ctx) { + struct UnkStruct_ov01_021EDC28 **pp_menu = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_MENU_WINDOW); + u8 val = ScriptReadByte(ctx); + ov01_021EF034(*pp_menu, val); + return TRUE; +}