mirror of
https://github.com/pret/pokediamond.git
synced 2026-04-25 15:42:51 -05:00
Msg related commands
This commit is contained in:
parent
81f366007a
commit
fd489fdec4
|
|
@ -8,6 +8,7 @@
|
|||
.extern CompareUtil
|
||||
.extern gUnknown21C48B8
|
||||
.extern gUnk021C4918
|
||||
.extern FUN_0203A2F0
|
||||
|
||||
.section .bss
|
||||
|
||||
|
|
@ -17,354 +18,6 @@ UNK_021C5A0C: ; 0x021C5A0C
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start FUN_0203A188
|
||||
FUN_0203A188: ; 0x0203A188
|
||||
push {r4-r6, lr}
|
||||
sub sp, #0x8
|
||||
add r5, r0, #0x0
|
||||
ldr r2, [r5, #0x8]
|
||||
add r1, r2, #0x1
|
||||
str r1, [r5, #0x8]
|
||||
add r1, r5, #0x0
|
||||
add r1, #0x80
|
||||
ldr r1, [r1, #0x0]
|
||||
ldrb r3, [r2, #0x0]
|
||||
add r1, #0xa8
|
||||
ldr r2, [r1, #0x0]
|
||||
cmp r2, #0x0
|
||||
bne _0203A1AA
|
||||
add sp, #0x8
|
||||
mov r0, #0x0
|
||||
pop {r4-r6, pc}
|
||||
_0203A1AA:
|
||||
lsl r1, r3, #0x4
|
||||
add r1, r3, r1
|
||||
add r2, #0x90
|
||||
lsl r1, r1, #0x4
|
||||
add r4, r2, r1
|
||||
ldrh r1, [r2, r1]
|
||||
ldr r2, _0203A204 ; =0x0000FFFF
|
||||
cmp r1, r2
|
||||
bne _0203A1E2
|
||||
ldr r2, _0203A208 ; =0x0000022B
|
||||
mov r0, #0x1
|
||||
mov r1, #0x1a
|
||||
mov r3, #0x20
|
||||
bl FUN_0200A86C
|
||||
add r6, r0, #0x0
|
||||
mov r0, #0x0
|
||||
str r0, [sp, #0x0]
|
||||
ldrh r2, [r4, #0x2]
|
||||
add r0, r5, #0x0
|
||||
add r1, r6, #0x0
|
||||
mov r3, #0x1
|
||||
bl MOD05_021E2BD0
|
||||
add r0, r6, #0x0
|
||||
bl FUN_0200A8B8
|
||||
b _0203A1F4
|
||||
_0203A1E2:
|
||||
mov r2, #0x6
|
||||
ldrsh r2, [r4, r2]
|
||||
str r2, [sp, #0x0]
|
||||
mov r2, #0x1
|
||||
str r2, [sp, #0x4]
|
||||
ldrh r2, [r4, #0x2]
|
||||
ldrh r3, [r4, #0x4]
|
||||
bl MOD05_021E2C58
|
||||
_0203A1F4:
|
||||
ldr r1, _0203A20C ; =FUN_0203A2F0
|
||||
add r0, r5, #0x0
|
||||
bl SetupNativeScript
|
||||
mov r0, #0x1
|
||||
add sp, #0x8
|
||||
pop {r4-r6, pc}
|
||||
nop
|
||||
_0203A204: .word 0x0000FFFF
|
||||
_0203A208: .word 0x0000022B
|
||||
_0203A20C: .word FUN_0203A2F0
|
||||
|
||||
thumb_func_start FUN_0203A210
|
||||
FUN_0203A210: ; 0x0203A210
|
||||
push {r3-r7, lr}
|
||||
sub sp, #0x8
|
||||
add r5, r0, #0x0
|
||||
add r1, r5, #0x0
|
||||
add r1, #0x80
|
||||
ldr r2, [r5, #0x8]
|
||||
ldr r6, [r1, #0x0]
|
||||
add r1, r2, #0x1
|
||||
str r1, [r5, #0x8]
|
||||
ldrb r4, [r2, #0x0]
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl FUN_020394F0
|
||||
add r7, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl ScriptReadHalfword
|
||||
ldr r1, [r5, #0x8]
|
||||
add r2, r0, #0x0
|
||||
add r0, r1, #0x1
|
||||
str r0, [r5, #0x8]
|
||||
ldrb r3, [r1, #0x0]
|
||||
mov r1, #0x0
|
||||
add r0, sp, #0x4
|
||||
strb r1, [r0, #0x0]
|
||||
add r0, sp, #0x4
|
||||
str r0, [sp, #0x0]
|
||||
ldr r0, [r6, #0xc]
|
||||
add r1, r7, #0x0
|
||||
bl MOD06_02244210
|
||||
add r6, r0, #0x0
|
||||
add r2, sp, #0x4
|
||||
ldrb r2, [r2, #0x0]
|
||||
add r0, r5, #0x0
|
||||
add r1, r6, #0x0
|
||||
add r2, r4, r2
|
||||
lsl r2, r2, #0x18
|
||||
lsr r2, r2, #0x18
|
||||
mov r3, #0x1
|
||||
bl MOD05_021E2CBC
|
||||
add r0, r6, #0x0
|
||||
bl FUN_0200AB18
|
||||
ldr r1, _0203A284 ; =FUN_0203A2F0
|
||||
add r0, r5, #0x0
|
||||
bl SetupNativeScript
|
||||
mov r0, #0x1
|
||||
add sp, #0x8
|
||||
pop {r3-r7, pc}
|
||||
nop
|
||||
_0203A284: .word FUN_0203A2F0
|
||||
|
||||
thumb_func_start FUN_0203A288
|
||||
FUN_0203A288: ; 0x0203A288
|
||||
push {r3-r5, lr}
|
||||
sub sp, #0x8
|
||||
add r5, r0, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r4, r0, #0x0
|
||||
add r0, sp, #0x4
|
||||
add r1, r5, #0x0
|
||||
bl MOD05_021E2BB8
|
||||
mov r1, #0x3
|
||||
add r0, sp, #0x4
|
||||
strb r1, [r0, #0x2]
|
||||
add r0, sp, #0x4
|
||||
str r0, [sp, #0x0]
|
||||
ldr r1, [r5, #0x78]
|
||||
add r0, r5, #0x0
|
||||
add r2, r4, #0x0
|
||||
mov r3, #0x0
|
||||
bl MOD05_021E2BD0
|
||||
ldr r1, _0203A2C0 ; =FUN_0203A2F0
|
||||
add r0, r5, #0x0
|
||||
bl SetupNativeScript
|
||||
mov r0, #0x1
|
||||
add sp, #0x8
|
||||
pop {r3-r5, pc}
|
||||
.balign 4
|
||||
_0203A2C0: .word FUN_0203A2F0
|
||||
|
||||
thumb_func_start FUN_0203A2C4
|
||||
FUN_0203A2C4: ; 0x0203A2C4
|
||||
push {r3-r4, lr}
|
||||
sub sp, #0x4
|
||||
add r4, r0, #0x0
|
||||
ldr r2, [r4, #0x8]
|
||||
mov r3, #0x1
|
||||
add r1, r2, #0x1
|
||||
str r1, [r4, #0x8]
|
||||
mov r1, #0x0
|
||||
str r1, [sp, #0x0]
|
||||
ldrb r2, [r2, #0x0]
|
||||
ldr r1, [r4, #0x78]
|
||||
bl MOD05_021E2BD0
|
||||
ldr r1, _0203A2EC ; =FUN_0203A2F0
|
||||
add r0, r4, #0x0
|
||||
bl SetupNativeScript
|
||||
mov r0, #0x1
|
||||
add sp, #0x4
|
||||
pop {r3-r4, pc}
|
||||
.balign 4
|
||||
_0203A2EC: .word FUN_0203A2F0
|
||||
|
||||
thumb_func_start FUN_0203A2F0
|
||||
FUN_0203A2F0: ; 0x0203A2F0
|
||||
push {r3, lr}
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
mov r1, #0x3
|
||||
bl FUN_02039438
|
||||
ldrb r0, [r0, #0x0]
|
||||
bl FUN_020546C8
|
||||
pop {r3, pc}
|
||||
|
||||
thumb_func_start FUN_0203A304
|
||||
FUN_0203A304: ; 0x0203A304
|
||||
push {r3-r4, 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 FUN_020394F0
|
||||
add r2, r0, #0x0
|
||||
mov r0, #0x0
|
||||
str r0, [sp, #0x0]
|
||||
lsl r2, r2, #0x18
|
||||
ldr r1, [r4, #0x78]
|
||||
add r0, r4, #0x0
|
||||
lsr r2, r2, #0x18
|
||||
mov r3, #0x1
|
||||
bl MOD05_021E2BD0
|
||||
ldr r1, _0203A33C ; =FUN_0203A2F0
|
||||
add r0, r4, #0x0
|
||||
bl SetupNativeScript
|
||||
mov r0, #0x1
|
||||
add sp, #0x4
|
||||
pop {r3-r4, pc}
|
||||
.balign 4
|
||||
_0203A33C: .word FUN_0203A2F0
|
||||
|
||||
thumb_func_start FUN_0203A340
|
||||
FUN_0203A340: ; 0x0203A340
|
||||
push {r3-r5, lr}
|
||||
sub sp, #0x8
|
||||
add r5, r0, #0x0
|
||||
bl ScriptReadHalfword
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
bl FUN_020394F0
|
||||
add r4, r0, #0x0
|
||||
add r0, sp, #0x4
|
||||
add r1, r5, #0x0
|
||||
bl MOD05_021E2BB8
|
||||
lsl r2, r4, #0x18
|
||||
mov r3, #0x1
|
||||
add r0, sp, #0x4
|
||||
strb r3, [r0, #0x1]
|
||||
add r0, sp, #0x4
|
||||
str r0, [sp, #0x0]
|
||||
ldr r1, [r5, #0x78]
|
||||
add r0, r5, #0x0
|
||||
lsr r2, r2, #0x18
|
||||
bl MOD05_021E2BD0
|
||||
ldr r1, _0203A384 ; =FUN_0203A2F0
|
||||
add r0, r5, #0x0
|
||||
bl SetupNativeScript
|
||||
mov r0, #0x1
|
||||
add sp, #0x8
|
||||
pop {r3-r5, pc}
|
||||
.balign 4
|
||||
_0203A384: .word FUN_0203A2F0
|
||||
|
||||
thumb_func_start FUN_0203A388
|
||||
FUN_0203A388: ; 0x0203A388
|
||||
push {r3-r4, 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 FUN_020394F0
|
||||
add r2, r0, #0x0
|
||||
mov r3, #0x0
|
||||
str r3, [sp, #0x0]
|
||||
lsl r2, r2, #0x18
|
||||
ldr r1, [r4, #0x78]
|
||||
add r0, r4, #0x0
|
||||
lsr r2, r2, #0x18
|
||||
bl MOD05_021E2BD0
|
||||
ldr r1, _0203A3C0 ; =FUN_0203A2F0
|
||||
add r0, r4, #0x0
|
||||
bl SetupNativeScript
|
||||
mov r0, #0x1
|
||||
add sp, #0x4
|
||||
pop {r3-r4, pc}
|
||||
nop
|
||||
_0203A3C0: .word FUN_0203A2F0
|
||||
|
||||
thumb_func_start FUN_0203A3C4
|
||||
FUN_0203A3C4: ; 0x0203A3C4
|
||||
push {r3-r4, lr}
|
||||
sub sp, #0x4
|
||||
add r4, r0, #0x0
|
||||
add r0, #0x80
|
||||
ldr r0, [r0, #0x0]
|
||||
mov r1, #0xa
|
||||
bl FUN_02039438
|
||||
ldr r0, [r0, #0x0]
|
||||
bl FUN_02058488
|
||||
lsl r0, r0, #0x18
|
||||
lsr r2, r0, #0x18
|
||||
mov r0, #0x0
|
||||
str r0, [sp, #0x0]
|
||||
ldr r1, [r4, #0x78]
|
||||
add r0, r4, #0x0
|
||||
mov r3, #0x1
|
||||
bl MOD05_021E2BD0
|
||||
ldr r1, _0203A3FC ; =FUN_0203A2F0
|
||||
add r0, r4, #0x0
|
||||
bl SetupNativeScript
|
||||
mov r0, #0x1
|
||||
add sp, #0x4
|
||||
pop {r3-r4, pc}
|
||||
nop
|
||||
_0203A3FC: .word FUN_0203A2F0
|
||||
|
||||
thumb_func_start FUN_0203A400
|
||||
FUN_0203A400: ; 0x0203A400
|
||||
push {r3-r5, lr}
|
||||
sub sp, #0x8
|
||||
add r5, r0, #0x0
|
||||
ldr r1, [r5, #0x8]
|
||||
add r0, r1, #0x1
|
||||
str r0, [r5, #0x8]
|
||||
ldrb r4, [r1, #0x0]
|
||||
bl FUN_02030F40
|
||||
cmp r0, #0x0
|
||||
bne _0203A428
|
||||
mov r0, #0x0
|
||||
str r0, [sp, #0x0]
|
||||
ldr r1, [r5, #0x78]
|
||||
add r0, r5, #0x0
|
||||
add r2, r4, #0x0
|
||||
mov r3, #0x1
|
||||
bl MOD05_021E2BD0
|
||||
b _0203A448
|
||||
_0203A428:
|
||||
add r0, sp, #0x4
|
||||
add r1, r5, #0x0
|
||||
bl MOD05_021E2BB8
|
||||
mov r1, #0x1
|
||||
add r0, sp, #0x4
|
||||
strb r1, [r0, #0x0]
|
||||
strb r1, [r0, #0x1]
|
||||
add r0, sp, #0x4
|
||||
str r0, [sp, #0x0]
|
||||
ldr r1, [r5, #0x78]
|
||||
add r0, r5, #0x0
|
||||
add r2, r4, #0x0
|
||||
mov r3, #0x0
|
||||
bl MOD05_021E2BD0
|
||||
_0203A448:
|
||||
ldr r1, _0203A458 ; =FUN_0203A2F0
|
||||
add r0, r5, #0x0
|
||||
bl SetupNativeScript
|
||||
mov r0, #0x1
|
||||
add sp, #0x8
|
||||
pop {r3-r5, pc}
|
||||
nop
|
||||
_0203A458: .word FUN_0203A2F0
|
||||
|
||||
thumb_func_start FUN_0203A45C
|
||||
FUN_0203A45C: ; 0x0203A45C
|
||||
push {r3, lr}
|
||||
|
|
|
|||
|
|
@ -198,10 +198,10 @@ gScriptCmdTable: ; 0x020F355C
|
|||
.word ScrCmd_LoadWkWk
|
||||
.word ScrCmd_LoadWkWkValue
|
||||
.word ScrCmd_TalkMsgAllPut
|
||||
.word FUN_0203A2C4
|
||||
.word FUN_0203A304
|
||||
.word FUN_0203A388
|
||||
.word FUN_0203A400
|
||||
.word ScrCmd_TalkMsg
|
||||
.word ScrCmd_TalkMsgSp
|
||||
.word ScrCmd_TalkMsgNoSkip
|
||||
.word ScrCmd_TalkConSioMsg
|
||||
.word FUN_0203A45C
|
||||
.word FUN_0203A4D0
|
||||
.word FUN_0203A560
|
||||
|
|
@ -664,8 +664,8 @@ gScriptCmdTable: ; 0x020F355C
|
|||
.word ScrCmd_TalkMsgOtherArc
|
||||
.word ScrCmd_TalkMsgAllPutPMS
|
||||
.word ScrCmd_TalkMsgPMS
|
||||
.word FUN_0203A188
|
||||
.word FUN_0203A210
|
||||
.word ScrCmd_TalkMsgTowerApper
|
||||
.word ScrCmd_TalkMsgNgPokeName
|
||||
.word FUN_0203C7F4
|
||||
.word FUN_0203C820
|
||||
.word FUN_0203E5DC
|
||||
|
|
@ -678,7 +678,7 @@ gScriptCmdTable: ; 0x020F355C
|
|||
.word FUN_0203BE50
|
||||
.word FUN_0203BECC
|
||||
.word FUN_0203BF00
|
||||
.word FUN_0203A3C4
|
||||
.word ScrCmd_MsgAutoGet
|
||||
.word FUN_0203E684
|
||||
.word FUN_0203E6B4
|
||||
.word FUN_0203E6C4
|
||||
|
|
@ -775,7 +775,7 @@ gScriptCmdTable: ; 0x020F355C
|
|||
.word FUN_0203F110
|
||||
.word FUN_0203F174
|
||||
.word FUN_0203F19C
|
||||
.word FUN_0203A288
|
||||
.word ScrCmd_TalkMsgUnknownFont
|
||||
.word FUN_0203F234
|
||||
.word FUN_0203F254
|
||||
.word FUN_0203F26C
|
||||
|
|
@ -858,7 +858,7 @@ gScriptCmdTable: ; 0x020F355C
|
|||
.word FUN_0203D0A4
|
||||
.word FUN_0203FC58
|
||||
.word FUN_0203CAE8
|
||||
.word FUN_0203A340
|
||||
.word ScrCmd_TalkMsgSpAuto
|
||||
.word FUN_0203FC80
|
||||
.word FUN_0203FCB0
|
||||
.word FUN_0203FCDC
|
||||
|
|
|
|||
|
|
@ -2727,15 +2727,15 @@
|
|||
.extern ScrCmd_TalkMsgOtherArc
|
||||
.extern ScrCmd_TalkMsgAllPutPMS
|
||||
.extern ScrCmd_TalkMsgPMS
|
||||
.extern FUN_0203A188
|
||||
.extern FUN_0203A210
|
||||
.extern FUN_0203A288
|
||||
.extern FUN_0203A2C4
|
||||
.extern FUN_0203A304
|
||||
.extern FUN_0203A340
|
||||
.extern FUN_0203A388
|
||||
.extern FUN_0203A3C4
|
||||
.extern FUN_0203A400
|
||||
.extern ScrCmd_TalkMsgTowerApper
|
||||
.extern ScrCmd_TalkMsgNgPokeName
|
||||
.extern ScrCmd_TalkMsgUnknownFont
|
||||
.extern ScrCmd_TalkMsg
|
||||
.extern ScrCmd_TalkMsgSp
|
||||
.extern ScrCmd_TalkMsgSpAuto
|
||||
.extern ScrCmd_TalkMsgNoSkip
|
||||
.extern ScrCmd_MsgAutoGet
|
||||
.extern ScrCmd_TalkConSioMsg
|
||||
.extern FUN_0203A45C
|
||||
.extern FUN_0203A484
|
||||
.extern FUN_0203A4D0
|
||||
|
|
|
|||
|
|
@ -7,29 +7,35 @@
|
|||
extern u8 ConditionLookup[6][3];
|
||||
|
||||
// External funcs
|
||||
extern u16* FUN_020394B8(u32 arg, u16 wk);
|
||||
extern u16 FUN_020394F0(u32 arg, u16 wk);
|
||||
extern void* FUN_02039438(u32 arg, u16 id);
|
||||
extern void* FUN_02038EB0(u32 arg, u16 id);
|
||||
extern u16* FUN_020394B8(struct UnkStruct80* arg, u16 wk);
|
||||
extern u16 FUN_020394F0(struct UnkStruct80* arg, u16 wk);
|
||||
extern void* FUN_02039438(struct UnkStruct80* arg, u32 id);
|
||||
extern void* FUN_02038EB0(struct UnkStruct80* arg, u16 id);
|
||||
extern u8 FUN_02058448(u32 arg);
|
||||
extern u32 FUN_02046534(u32 arg);
|
||||
extern void FUN_0203953C(u32 arg, u16 flag);
|
||||
extern void FUN_02039550(u32 arg, u16 flag);
|
||||
extern BOOL FUN_02039528(u32 arg, u16 flag);
|
||||
extern void FUN_0203965C(u32 arg, u16 wk);
|
||||
extern void FUN_02039678(u32 arg, u16 wk);
|
||||
extern BOOL FUN_02039640(u32 arg, u16 wk);
|
||||
extern void FUN_0203953C(struct UnkStruct80* arg, u16 flag);
|
||||
extern void FUN_02039550(struct UnkStruct80* arg, u16 flag);
|
||||
extern BOOL FUN_02039528(struct UnkStruct80* arg, u16 flag);
|
||||
extern void FUN_0203965C(struct UnkStruct80* arg, u16 wk);
|
||||
extern void FUN_02039678(struct UnkStruct80* arg, u16 wk);
|
||||
extern BOOL FUN_02039640(struct UnkStruct80* arg, u16 wk);
|
||||
extern void MOD05_021E2C24(struct ScriptContext* ctx, u32 arg, u16 id);
|
||||
extern void MOD05_021E2BD0(struct ScriptContext* ctx, u32 arg, u16 id, u8 unk1, u32 unk2);
|
||||
extern void MOD05_021E2BD0(struct ScriptContext* ctx, u32 arg, u16 id, u8 unk1, struct UnkStruct* unk2);
|
||||
extern void MOD05_021E2C58(struct ScriptContext* ctx, u16 typ, u16 id, u16 word1, s16 word2, u8 unk);
|
||||
extern u32 FUN_0200A86C(u32 a, u32 b, u32 id, u32 d);
|
||||
extern void FUN_0200A8B8(u32 arg);
|
||||
extern BOOL FUN_020546C8(u8 arg);
|
||||
extern u32 MOD06_02244210(u32 unkC, u16 poke, u16 sex, u8 flag, u8* unk);
|
||||
extern void MOD05_021E2CBC(struct ScriptContext* ctx, u32 unk, u8 unk2, u8 unk3);
|
||||
extern void FUN_0200AB18(u32 unk);
|
||||
extern void MOD05_021E2BB8(struct UnkStruct* unk, struct ScriptContext* ctx);
|
||||
extern u32 FUN_02058488(u32);
|
||||
extern BOOL FUN_02030F40();
|
||||
|
||||
// Early definitions
|
||||
BOOL FUN_020399E8(struct ScriptContext* ctx);
|
||||
BOOL FUN_02039CC8(struct ScriptContext* ctx);
|
||||
extern BOOL FUN_0203A2F0(struct ScriptContext* ctx);
|
||||
BOOL FUN_0203A2F0(struct ScriptContext* ctx);
|
||||
|
||||
// Functions
|
||||
// Names taken from
|
||||
|
|
@ -49,7 +55,7 @@ THUMB_FUNC BOOL ScrCmd_End(struct ScriptContext* ctx) {
|
|||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_TimeWait(struct ScriptContext* ctx) {
|
||||
u32 unk80 = ctx->unk80;
|
||||
struct UnkStruct80* unk80 = ctx->unk80;
|
||||
u16 num = ScriptReadHalfword(ctx);
|
||||
u16 wk = ScriptReadHalfword(ctx);
|
||||
u16* unk = FUN_020394B8(unk80, wk);
|
||||
|
|
@ -190,7 +196,7 @@ THUMB_FUNC BOOL ScrCmd_CmpWkWk(struct ScriptContext* ctx) {
|
|||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_VMMachineAdd(struct ScriptContext* ctx) {
|
||||
u32 unk80 = ctx->unk80;
|
||||
struct UnkStruct80* unk80 = ctx->unk80;
|
||||
u8* unk1 = FUN_02039438(unk80, 0x7);
|
||||
u32** unk2 = FUN_02039438(unk80, 0xe);
|
||||
u16 id = ScriptReadHalfword(ctx);
|
||||
|
|
@ -201,7 +207,7 @@ THUMB_FUNC BOOL ScrCmd_VMMachineAdd(struct ScriptContext* ctx) {
|
|||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_ChangeCommonScr(struct ScriptContext* ctx) {
|
||||
u32 unk80 = ctx->unk80;
|
||||
struct UnkStruct80* unk80 = ctx->unk80;
|
||||
u8* unk_flag_0x5 = FUN_02039438(unk80, 0x5);
|
||||
u8* unk2 = FUN_02039438(unk80, 0x7);
|
||||
u32** unk3 = FUN_02039438(unk80, 0xe);
|
||||
|
|
@ -302,7 +308,7 @@ THUMB_FUNC BOOL ScrCmd_IfCall(struct ScriptContext* ctx) {
|
|||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_FlagSet(struct ScriptContext* ctx) {
|
||||
u32 unk80 = ctx->unk80;
|
||||
struct UnkStruct80* unk80 = ctx->unk80;
|
||||
u16 flag = ScriptReadHalfword(ctx);
|
||||
FUN_0203953C(unk80, flag);
|
||||
return FALSE;
|
||||
|
|
@ -310,21 +316,21 @@ THUMB_FUNC BOOL ScrCmd_FlagSet(struct ScriptContext* ctx) {
|
|||
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_FlagReset(struct ScriptContext* ctx) {
|
||||
u32 unk80 = ctx->unk80;
|
||||
struct UnkStruct80* unk80 = ctx->unk80;
|
||||
u16 flag = ScriptReadHalfword(ctx);
|
||||
FUN_02039550(unk80, flag);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_FlagCheck(struct ScriptContext* ctx) {
|
||||
u32 unk80 = ctx->unk80;
|
||||
struct UnkStruct80* unk80 = ctx->unk80;
|
||||
u16 flag = ScriptReadHalfword(ctx);
|
||||
ctx->comparisonResult = FUN_02039528(unk80, flag);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_FlagCheckWk(struct ScriptContext* ctx) {
|
||||
u32 unk80 = ctx->unk80;
|
||||
struct UnkStruct80* unk80 = ctx->unk80;
|
||||
u16* wk1 = FUN_020394B8(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16* wk2 = FUN_020394B8(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
*wk2 = FUN_02039528(unk80, *wk1);
|
||||
|
|
@ -332,21 +338,21 @@ THUMB_FUNC BOOL ScrCmd_FlagCheckWk(struct ScriptContext* ctx) {
|
|||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_FlagSetWk(struct ScriptContext* ctx) {
|
||||
u32 unk80 = ctx->unk80;
|
||||
struct UnkStruct80* unk80 = ctx->unk80;
|
||||
u16* wk = FUN_020394B8(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
FUN_0203953C(unk80, *wk);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_TrainerFlagSet(struct ScriptContext* ctx) {
|
||||
u32 unk80 = ctx->unk80;
|
||||
struct UnkStruct80* unk80 = ctx->unk80;
|
||||
u16 wk = FUN_020394F0(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
FUN_0203965C(unk80, wk);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_TrainerFlagReset(struct ScriptContext* ctx) {
|
||||
u32 unk80 = ctx->unk80;
|
||||
struct UnkStruct80* unk80 = ctx->unk80;
|
||||
u16 wk = FUN_020394F0(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
FUN_02039678(unk80, wk);
|
||||
return FALSE;
|
||||
|
|
@ -354,7 +360,7 @@ THUMB_FUNC BOOL ScrCmd_TrainerFlagReset(struct ScriptContext* ctx) {
|
|||
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_TrainerFlagCheck(struct ScriptContext* ctx) {
|
||||
u32 unk80 = ctx->unk80;
|
||||
struct UnkStruct80* unk80 = ctx->unk80;
|
||||
u16 wk = FUN_020394F0(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
ctx->comparisonResult = FUN_02039640(unk80, wk);
|
||||
return FALSE;
|
||||
|
|
@ -413,7 +419,7 @@ THUMB_FUNC BOOL ScrCmd_TalkMsgOtherArc(struct ScriptContext* ctx) {
|
|||
u16 arc = FUN_020394F0(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16 msg = FUN_020394F0(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u32 unk = FUN_0200A86C(0x1, 0x1a, arc, 0x20);
|
||||
MOD05_021E2BD0(ctx, unk, msg, 1, 0);
|
||||
MOD05_021E2BD0(ctx, unk, msg, 1, NULL);
|
||||
FUN_0200A8B8(unk);
|
||||
SetupNativeScript(ctx, FUN_0203A2F0);
|
||||
return TRUE;
|
||||
|
|
@ -440,10 +446,115 @@ THUMB_FUNC BOOL ScrCmd_TalkMsgPMS(struct ScriptContext* ctx) {
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
// Commented out as it comes later in the file
|
||||
BOOL FUN_0203A2F0(struct ScriptContext* ctx) {
|
||||
THUMB_FUNC u8 ScrCmd_TalkMsgTowerApper(struct ScriptContext* ctx) {
|
||||
u8 id = ScriptReadByte(ctx); // Even though this returns an u8 storing as u16 matches better?
|
||||
|
||||
if (ctx->unk80->unkA8 == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
u16 *unkArr = ctx->unk80->unkA8->unksubstruct[id].unk0;
|
||||
if (unkArr[0] == 0xFFFF) {
|
||||
u32 unk3 = FUN_0200A86C(0x1, 0x1a, 0x22b, 0x20);
|
||||
MOD05_021E2BD0(ctx, unk3, unkArr[1], 1, NULL);
|
||||
FUN_0200A8B8(unk3);
|
||||
} else {
|
||||
MOD05_021E2C58(ctx, unkArr[0], unkArr[1], unkArr[2], unkArr[3], 1);
|
||||
}
|
||||
SetupNativeScript(ctx, FUN_0203A2F0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_TalkMsgNgPokeName(struct ScriptContext* ctx) {
|
||||
struct UnkStruct80* unk80 = ctx->unk80;
|
||||
u8 msg = ScriptReadByte(ctx);
|
||||
u16 poke = FUN_020394F0(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
u16 sex = ScriptReadHalfword(ctx);
|
||||
u8 flag = ScriptReadByte(ctx);
|
||||
u8 unk = 0;
|
||||
|
||||
u32 unk2 = MOD06_02244210(unk80->unkC, poke, sex, flag, &unk);
|
||||
MOD05_021E2CBC(ctx, unk2, msg + unk, 1);
|
||||
FUN_0200AB18(unk2);
|
||||
|
||||
SetupNativeScript(ctx, FUN_0203A2F0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_TalkMsgUnknownFont(struct ScriptContext* ctx) {
|
||||
struct UnkStruct myLocalStruct;
|
||||
u16 msg = ScriptReadHalfword(ctx);
|
||||
|
||||
MOD05_021E2BB8(&myLocalStruct, ctx);
|
||||
myLocalStruct.unk2 = 3;
|
||||
|
||||
MOD05_021E2BD0(ctx, ctx->unk78, msg, 0, &myLocalStruct);
|
||||
SetupNativeScript(ctx, FUN_0203A2F0);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_TalkMsg(struct ScriptContext* ctx) {
|
||||
u8 msg = ScriptReadByte(ctx);
|
||||
MOD05_021E2BD0(ctx, ctx->unk78, msg, 1, NULL);
|
||||
SetupNativeScript(ctx, FUN_0203A2F0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL FUN_0203A2F0(struct ScriptContext* ctx) {
|
||||
u8* unk = FUN_02039438(ctx->unk80, 0x3);
|
||||
return FUN_020546C8(*unk);
|
||||
}
|
||||
*/
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_TalkMsgSp(struct ScriptContext* ctx) {
|
||||
u16 msg = FUN_020394F0(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
MOD05_021E2BD0(ctx, ctx->unk78, (u8)msg, 1, NULL);
|
||||
SetupNativeScript(ctx, FUN_0203A2F0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_TalkMsgSpAuto(struct ScriptContext* ctx) {
|
||||
struct UnkStruct myLocalStruct;
|
||||
u16 msg = FUN_020394F0(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
|
||||
MOD05_021E2BB8(&myLocalStruct, ctx);
|
||||
myLocalStruct.unk1 = 1;
|
||||
|
||||
MOD05_021E2BD0(ctx, ctx->unk78, (u8)msg, 1, &myLocalStruct);
|
||||
SetupNativeScript(ctx, FUN_0203A2F0);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_TalkMsgNoSkip(struct ScriptContext* ctx) {
|
||||
u16 msg = FUN_020394F0(ctx->unk80, ScriptReadHalfword(ctx));
|
||||
MOD05_021E2BD0(ctx, ctx->unk78, (u8)msg, 0, NULL);
|
||||
SetupNativeScript(ctx, FUN_0203A2F0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_MsgAutoGet(struct ScriptContext* ctx) {
|
||||
u32* unk = FUN_02039438(ctx->unk80, 0xa);
|
||||
u8 msg = FUN_02058488(*unk);
|
||||
MOD05_021E2BD0(ctx, ctx->unk78, (u8)msg, 1, NULL);
|
||||
SetupNativeScript(ctx, FUN_0203A2F0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
THUMB_FUNC BOOL ScrCmd_TalkConSioMsg(struct ScriptContext* ctx) {
|
||||
u8 msg = ScriptReadByte(ctx);
|
||||
|
||||
if (FUN_02030F40() == FALSE) {
|
||||
MOD05_021E2BD0(ctx, ctx->unk78, msg, 1, NULL);
|
||||
} else {
|
||||
struct UnkStruct myLocalStruct;
|
||||
MOD05_021E2BB8(&myLocalStruct, ctx);
|
||||
myLocalStruct.unk0 = 1;
|
||||
myLocalStruct.unk1 = 1;
|
||||
MOD05_021E2BD0(ctx, ctx->unk78, msg, 0, &myLocalStruct);
|
||||
}
|
||||
|
||||
SetupNativeScript(ctx, FUN_0203A2F0);
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,30 @@ struct ScriptContext;
|
|||
typedef u8 (*ScrCmdFunc)(struct ScriptContext *);
|
||||
typedef u8 Script[];
|
||||
|
||||
struct UnkStruct {
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
};
|
||||
|
||||
struct UnkSubStruct90 {
|
||||
u16 unk0[4];
|
||||
u8 filler8[0x108];
|
||||
}; // size = 0x110
|
||||
|
||||
struct UnkSubStructA8 {
|
||||
u8 filler0[0x90];
|
||||
struct UnkSubStruct90 unksubstruct[1]; // unk size
|
||||
};
|
||||
|
||||
// TODO: What is this struct?
|
||||
struct UnkStruct80 {
|
||||
u8 filler0[0xC];
|
||||
u32 unkC;
|
||||
u8 filler10[0x98];
|
||||
struct UnkSubStructA8 *unkA8;
|
||||
};
|
||||
|
||||
struct ScriptContext
|
||||
{
|
||||
u8 stackDepth;
|
||||
|
|
@ -22,7 +46,7 @@ struct ScriptContext
|
|||
u32 unk74;
|
||||
u32 unk78;
|
||||
u32 unk7C;
|
||||
u32 unk80;
|
||||
struct UnkStruct80* unk80;
|
||||
};
|
||||
|
||||
#define ScriptReadByte(ctx) (*(ctx->scriptPtr++))
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user