diff options
-rw-r--r-- | arm9/asm/scrcmd_asm.s | 143 | ||||
-rw-r--r-- | arm9/asm/unk_02038C78.s | 8 | ||||
-rw-r--r-- | arm9/global.inc | 8 | ||||
-rw-r--r-- | arm9/src/scrcmd.c | 50 | ||||
-rw-r--r-- | include/scrcmd.h | 4 |
5 files changed, 61 insertions, 152 deletions
diff --git a/arm9/asm/scrcmd_asm.s b/arm9/asm/scrcmd_asm.s index 8b5212dd..3c73d00c 100644 --- a/arm9/asm/scrcmd_asm.s +++ b/arm9/asm/scrcmd_asm.s @@ -15,149 +15,6 @@ UNK_021C5A0C: ; 0x021C5A0C .text - thumb_func_start ScrCmd_message_from -ScrCmd_message_from: ; 0x0203A04C - ; message_from bank, id - push {r4-r6, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - mov r0, #0x1 - mov r1, #0x1a - add r2, r5, #0x0 - mov r3, #0x20 - bl NewMsgDataFromNarc - add r5, r0, #0x0 - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl MOD05_ShowMessageInField - add r0, r5, #0x0 - bl DestroyMsgData - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_0203A098 -FUN_0203A098: ; 0x0203A098 - push {r3-r6, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - mov r0, #0x1 - mov r1, #0x1a - add r2, r5, #0x0 - mov r3, #0x20 - bl NewMsgDataFromNarc - add r5, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - mov r3, #0x1 - bl MOD05_021E2BD0 - add r0, r5, #0x0 - bl DestroyMsgData - ldr r1, _0203A0F8 ; =FUN_0203A2F0 - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x4 - pop {r3-r6, pc} - nop -_0203A0F8: .word FUN_0203A2F0 - - thumb_func_start FUN_0203A0FC -FUN_0203A0FC: ; 0x0203A0FC - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - bl ScriptReadHalfword - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r7, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - str r0, [sp, #0x0] - mov r0, #0xff - str r0, [sp, #0x4] - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - add r3, r7, #0x0 - bl MOD05_021E2C58 - mov r0, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0203A13C -FUN_0203A13C: ; 0x0203A13C - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - bl ScriptReadHalfword - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r7, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - add r3, r7, #0x0 - bl MOD05_021E2C58 - ldr r1, _0203A184 ; =FUN_0203A2F0 - add r0, r5, #0x0 - bl SetupNativeScript - mov r0, #0x1 - add sp, #0x8 - pop {r3-r7, pc} - nop -_0203A184: .word FUN_0203A2F0 - thumb_func_start FUN_0203A188 FUN_0203A188: ; 0x0203A188 push {r4-r6, lr} diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index 86085965..2bada91e 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -655,10 +655,10 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_survivepsn .word FUN_0203BC2C .word ScrCmd_DebugWatch - .word ScrCmd_message_from - .word FUN_0203A098 - .word FUN_0203A0FC - .word FUN_0203A13C + .word ScrCmd_MessageFrom + .word ScrCmd_MessageFrom2 + .word ScrCmd_Unk01FC + .word ScrCmd_Unk01FD .word FUN_0203A188 .word FUN_0203A210 .word FUN_0203C7F4 diff --git a/arm9/global.inc b/arm9/global.inc index cec9d379..ca70f69b 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -2744,10 +2744,10 @@ .extern ScrCmd_CopyVar .extern ScrCmd_SetOrCopyVar .extern ScrCmd_Message -.extern ScrCmd_message_from -.extern FUN_0203A098 -.extern FUN_0203A0FC -.extern FUN_0203A13C +.extern ScrCmd_MessageFrom +.extern ScrCmd_MessageFrom2 +.extern ScrCmd_Unk01FC +.extern ScrCmd_Unk01FD .extern FUN_0203A188 .extern FUN_0203A210 .extern FUN_0203A288 diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c index 91ee2f03..82a14a7c 100644 --- a/arm9/src/scrcmd.c +++ b/arm9/src/scrcmd.c @@ -12,7 +12,10 @@ extern u8 FlagCheck(struct UnkStruct_0204639C *arg, u16 flag); extern void TrainerFlagSet(struct UnkStruct_0204639C *arg, u16 flag); extern void TrainerFlagClear(struct UnkStruct_0204639C *arg, u16 flag); extern u8 TrainerFlagCheck(struct UnkStruct_0204639C *arg, u16 flag); -extern void MOD05_ShowMessageInField(struct ScriptContext *ctx, struct MsgData *msgData, u8 id); +extern void MOD05_ShowMessageInField(struct ScriptContext *ctx, struct MsgData *msgData, u16 id); +extern void MOD05_021E2BD0(struct ScriptContext *ctx, struct MsgData *msgData, u16 msgId, u32 param4, void *param5); +extern BOOL FUN_0203A2F0(struct ScriptContext *ctx); +extern void MOD05_021E2C58(struct ScriptContext *ctx, u16 typ, u16 id, u16 word1, s16 word2, u8 param5); static BOOL RunPauseTimer(struct ScriptContext* ctx); static u32 Compare(u16 a, u16 b); @@ -434,3 +437,48 @@ THUMB_FUNC BOOL ScrCmd_Message(struct ScriptContext* ctx) MOD05_ShowMessageInField(ctx, ctx->msgData, id); return FALSE; } + +THUMB_FUNC BOOL ScrCmd_MessageFrom(struct ScriptContext* ctx) +{ + u16 arc = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 msg = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct MsgData *msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, arc, 32); + MOD05_ShowMessageInField(ctx, msgData, msg); + DestroyMsgData(msgData); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_MessageFrom2(struct ScriptContext* ctx) +{ + u16 arc = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 msg = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct MsgData *msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, arc, 32); + MOD05_021E2BD0(ctx, msgData, msg, 1, NULL); + DestroyMsgData(msgData); + SetupNativeScript(ctx, FUN_0203A2F0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01FC(struct ScriptContext* ctx) +{ + u16 typ = ScriptReadHalfword(ctx); + u16 id = ScriptReadHalfword(ctx); + u16 word1 = ScriptReadHalfword(ctx); + u16 word2 = ScriptReadHalfword(ctx); + + MOD05_021E2C58(ctx, typ, id, word1, word2, 0xff); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01FD(struct ScriptContext* ctx) +{ + u16 typ = ScriptReadHalfword(ctx); + u16 id = ScriptReadHalfword(ctx); + u16 word1 = ScriptReadHalfword(ctx); + u16 word2 = ScriptReadHalfword(ctx); + + MOD05_021E2C58(ctx, typ, id, word1, word2, 1); + SetupNativeScript(ctx, FUN_0203A2F0); + return TRUE; +} + diff --git a/include/scrcmd.h b/include/scrcmd.h index a8c7ee4f..ece18d9a 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -50,6 +50,10 @@ BOOL ScrCmd_SetVar(struct ScriptContext* ctx); BOOL ScrCmd_CopyVar(struct ScriptContext* ctx); BOOL ScrCmd_SetOrCopyVar(struct ScriptContext* ctx); BOOL ScrCmd_Message(struct ScriptContext* ctx); +BOOL ScrCmd_MessageFrom(struct ScriptContext* ctx); +BOOL ScrCmd_MessageFrom2(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01FC(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01FD(struct ScriptContext* ctx); //scrcmd_18.c BOOL ScrCmd_GiveMon(struct ScriptContext* ctx); |