From ea1555e41ff5a80fb9c00a987299cff62c7d93d6 Mon Sep 17 00:00:00 2001 From: Akashi Akira Date: Mon, 15 May 2023 03:48:34 +0100 Subject: [PATCH] ScrCmd_OpenTradeScreen --- arm9/asm/scrcmd_asm.s | 23 ----------------------- arm9/asm/unk_02038C78.s | 2 +- arm9/global.inc | 2 +- arm9/src/scrcmd.c | 11 +++++++++-- include/scrcmd.h | 1 + 5 files changed, 12 insertions(+), 27 deletions(-) diff --git a/arm9/asm/scrcmd_asm.s b/arm9/asm/scrcmd_asm.s index 6cdcfc184..507f151c5 100644 --- a/arm9/asm/scrcmd_asm.s +++ b/arm9/asm/scrcmd_asm.s @@ -14,29 +14,6 @@ UNK_021C5A0C: ; 0x021C5A0C .text - thumb_func_start ScrCmd_Unk02A5 -ScrCmd_Unk02A5: ; 0x0203B914 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x13 - bl FieldSysGetAttrAddr - add r1, r5, #0x0 - add r1, #0x80 - add r4, r0, #0x0 - ldr r1, [r1, #0x0] - mov r0, #0x20 - bl FUN_02037A1C - str r0, [r4, #0x0] - ldr r1, _0203B940 ; =FUN_0203BC04 - add r0, r5, #0x0 - bl SetupNativeScript - mov r0, #0x1 - pop {r3-r5, pc} - nop -_0203B940: .word FUN_0203BC04 - thumb_func_start ScrCmd_Unk0192 ScrCmd_Unk0192: ; 0x0203B944 push {r3-r5, lr} diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index 5602ab442..17624259b 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -826,7 +826,7 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk02A2 .word ScrCmd_Unk02A3 .word ScrCmd_Unk02A4 - .word ScrCmd_Unk02A5 + .word ScrCmd_OpenTradeScreen .word ScrCmd_GetPrizeItemIdAndCost .word ScrCmd_Unk02A7 .word ScrCmd_TakeCoinsAddress diff --git a/arm9/global.inc b/arm9/global.inc index 6dfd6f34a..3dc6b6aad 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -2812,7 +2812,7 @@ .extern ScrCmd_GiveSeals .extern ScrCmd_GetPokemonForme .extern ScrCmd_Unk0191 -.extern ScrCmd_Unk02A5 +.extern ScrCmd_OpenTradeScreen .extern ScrCmd_Unk0192 .extern ScrCmd_Unk0193 .extern ScrCmd_Unk0194 diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c index 59727ca22..b17623a11 100644 --- a/arm9/src/scrcmd.c +++ b/arm9/src/scrcmd.c @@ -93,6 +93,7 @@ extern u16 FUN_02029E0C(struct SealCase *sealCase); extern u16 FUN_02029E2C(struct SealCase *sealCase, u16 sealId); extern void FUN_02029D44(struct SealCase *sealCase, u16 sealId, s16 amount); extern u32 FUN_020379F8(u32 param0, struct FieldSystem *fieldSystem); +extern u32 FUN_02037A1C(u32 param0, struct FieldSystem *fieldSystem); extern u8 UNK_021C5A0C[4]; @@ -1774,10 +1775,16 @@ THUMB_FUNC BOOL ScrCmd_GetPokemonForme(struct ScriptContext *ctx) //0095 return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0191(struct ScriptContext *ctx) //0191 -{ +THUMB_FUNC BOOL ScrCmd_Unk0191(struct ScriptContext *ctx) { //0191 - TODO: similar to below? u32 *unk = FieldSysGetAttrAddr(ctx->fieldSystem, 0x13); *unk = FUN_020379F8(0x20, ctx->fieldSystem); SetupNativeScript(ctx, FUN_0203BC04); return TRUE; } + +THUMB_FUNC BOOL ScrCmd_OpenTradeScreen(struct ScriptContext *ctx) { + u32 *unk = FieldSysGetAttrAddr(ctx->fieldSystem, 0x13); + *unk = FUN_02037A1C(0x20, ctx->fieldSystem); + SetupNativeScript(ctx, FUN_0203BC04); + return TRUE; +} diff --git a/include/scrcmd.h b/include/scrcmd.h index 6f21fcc6c..2f33d5956 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -149,6 +149,7 @@ BOOL ScrCmd_GetSealCountFromId(struct ScriptContext *ctx); BOOL ScrCmd_GiveSeals(struct ScriptContext *ctx); BOOL ScrCmd_GetPokemonForme(struct ScriptContext *ctx); BOOL ScrCmd_Unk0191(struct ScriptContext *ctx); +BOOL ScrCmd_OpenTradeScreen(struct ScriptContext *ctx); // scrcmd_mart.c BOOL ScrCmd_NormalMart(struct ScriptContext * ctx);