summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/asm/scrcmd_asm.s143
-rw-r--r--arm9/asm/unk_02038C78.s8
-rw-r--r--arm9/global.inc8
-rw-r--r--arm9/src/scrcmd.c50
-rw-r--r--include/scrcmd.h4
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);