mirror of
https://github.com/pret/pokediamond.git
synced 2026-04-27 00:42:18 -05:00
Merge pull request #568 from bhvNT/scrcmd7
Some checks failed
build / build (push) Has been cancelled
Some checks failed
build / build (push) Has been cancelled
scrcmd_7.c decompiled
This commit is contained in:
commit
31df5f825e
|
|
@ -1,674 +0,0 @@
|
||||||
.include "asm/macros.inc"
|
|
||||||
.include "global.inc"
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00B6
|
|
||||||
ScrCmd_Unk00B6: ; 0x020416A8
|
|
||||||
push {r3-r7, lr}
|
|
||||||
sub sp, #0x18
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r1, r5, #0x0
|
|
||||||
add r1, #0x80
|
|
||||||
ldr r4, [r1, #0x0]
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r5, #0x80
|
|
||||||
add r1, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl FieldSystem_VarGet
|
|
||||||
add r5, r0, #0x0
|
|
||||||
bne _02041708
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x18
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
str r0, [sp, #0x14]
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x19
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
str r0, [sp, #0xc]
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x1a
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x1b
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x1c
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
str r0, [sp, #0x10]
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x1d
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r6, r0, #0x0
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x1e
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
b _02041748
|
|
||||||
_02041708:
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x1f
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
str r0, [sp, #0x14]
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x20
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
str r0, [sp, #0xc]
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x21
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x22
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x23
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
str r0, [sp, #0x10]
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x24
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r6, r0, #0x0
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x25
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
_02041748:
|
|
||||||
add r7, r0, #0x0
|
|
||||||
mov r0, #0x0
|
|
||||||
str r0, [sp, #0x0]
|
|
||||||
ldr r0, [sp, #0x10]
|
|
||||||
ldr r2, [sp, #0xc]
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
ldr r3, [sp, #0x14]
|
|
||||||
str r0, [sp, #0x4]
|
|
||||||
str r5, [sp, #0x8]
|
|
||||||
ldr r0, [r6, #0x0]
|
|
||||||
ldr r1, [r4, #0x38]
|
|
||||||
ldr r2, [r2, #0x0]
|
|
||||||
ldr r3, [r3, #0x0]
|
|
||||||
bl sub_0205CA4C
|
|
||||||
str r0, [r7, #0x0]
|
|
||||||
mov r0, #0x0
|
|
||||||
add sp, #0x18
|
|
||||||
pop {r3-r7, pc}
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00B7
|
|
||||||
ScrCmd_Unk00B7: ; 0x02041770
|
|
||||||
push {r4-r6, lr}
|
|
||||||
add r5, r0, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl FieldSystem_VarGet
|
|
||||||
add r6, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r4, r0, #0x0
|
|
||||||
mov r0, #0x0
|
|
||||||
strh r0, [r4, #0x0]
|
|
||||||
cmp r6, #0x0
|
|
||||||
bne _020417AE
|
|
||||||
add r5, #0x80
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
mov r1, #0x1e
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
b _020417B8
|
|
||||||
_020417AE:
|
|
||||||
add r5, #0x80
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
mov r1, #0x25
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
_020417B8:
|
|
||||||
add r5, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
cmp r0, #0x0
|
|
||||||
bne _020417C6
|
|
||||||
mov r0, #0x1
|
|
||||||
strh r0, [r4, #0x0]
|
|
||||||
pop {r4-r6, pc}
|
|
||||||
_020417C6:
|
|
||||||
bl sub_0205CA64
|
|
||||||
cmp r0, #0x1
|
|
||||||
bne _020417DC
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl sub_0205CA78
|
|
||||||
mov r0, #0x0
|
|
||||||
str r0, [r5, #0x0]
|
|
||||||
mov r0, #0x1
|
|
||||||
strh r0, [r4, #0x0]
|
|
||||||
_020417DC:
|
|
||||||
mov r0, #0x1
|
|
||||||
pop {r4-r6, pc}
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00B8
|
|
||||||
ScrCmd_Unk00B8: ; 0x020417E0
|
|
||||||
push {r3-r5, lr}
|
|
||||||
add r4, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0x1c
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r0, r4, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r4, #0x80
|
|
||||||
add r1, r0, #0x0
|
|
||||||
ldr r0, [r4, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
ldrh r1, [r5, #0x0]
|
|
||||||
strh r1, [r0, #0x0]
|
|
||||||
mov r0, #0x0
|
|
||||||
pop {r3-r5, pc}
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00B9
|
|
||||||
ScrCmd_Unk00B9: ; 0x02041808
|
|
||||||
push {r3-r7, lr}
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0x1b
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r4, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0x22
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r6, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl FieldSystem_VarGet
|
|
||||||
add r7, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r5, #0x80
|
|
||||||
add r1, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
cmp r7, #0x0
|
|
||||||
bne _02041852
|
|
||||||
ldrh r1, [r4, #0x0]
|
|
||||||
b _02041854
|
|
||||||
_02041852:
|
|
||||||
ldrh r1, [r6, #0x0]
|
|
||||||
_02041854:
|
|
||||||
strh r1, [r0, #0x0]
|
|
||||||
mov r0, #0x0
|
|
||||||
pop {r3-r7, pc}
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00E4
|
|
||||||
ScrCmd_Unk00E4: ; 0x0204185C
|
|
||||||
push {r3-r5, lr}
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0x8
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r4, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r5, #0x80
|
|
||||||
add r1, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r5, r0, #0x0
|
|
||||||
ldrh r0, [r4, #0x0]
|
|
||||||
bl sub_020395F4
|
|
||||||
strh r0, [r5, #0x0]
|
|
||||||
mov r0, #0x0
|
|
||||||
pop {r3-r5, pc}
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00E5
|
|
||||||
ScrCmd_Unk00E5: ; 0x0204188C
|
|
||||||
push {r3-r7, lr}
|
|
||||||
sub sp, #0x10
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r4, [r0, #0x0]
|
|
||||||
mov r1, #0x8
|
|
||||||
add r0, r4, #0x0
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r0, r4, #0x0
|
|
||||||
mov r1, #0x17
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r7, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl FieldSystem_VarGet
|
|
||||||
str r0, [sp, #0xc]
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl FieldSystem_VarGet
|
|
||||||
str r0, [sp, #0x8]
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r6, #0x0
|
|
||||||
ldr r0, [r0, #0xc]
|
|
||||||
bl Save_VarsFlags_Get
|
|
||||||
bl Save_VarsFlags_CheckHaveFollower
|
|
||||||
cmp r0, #0x1
|
|
||||||
bne _020418F2
|
|
||||||
ldr r0, [r4, #0xc]
|
|
||||||
bl Save_VarsFlags_Get
|
|
||||||
bl sub_0205F368
|
|
||||||
add r6, r0, #0x0
|
|
||||||
_020418F2:
|
|
||||||
mov r0, #0xb
|
|
||||||
str r0, [sp, #0x0]
|
|
||||||
str r7, [sp, #0x4]
|
|
||||||
ldr r0, [r5, #0x74]
|
|
||||||
ldr r1, [sp, #0xc]
|
|
||||||
ldr r2, [sp, #0x8]
|
|
||||||
add r3, r6, #0x0
|
|
||||||
bl SetupAndStartTrainerBattle
|
|
||||||
mov r0, #0x1
|
|
||||||
add sp, #0x10
|
|
||||||
pop {r3-r7, pc}
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk02A0
|
|
||||||
ScrCmd_Unk02A0: ; 0x0204190C
|
|
||||||
push {r3-r7, lr}
|
|
||||||
sub sp, #0x8
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0x17
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r4, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl FieldSystem_VarGet
|
|
||||||
add r6, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl FieldSystem_VarGet
|
|
||||||
add r7, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl FieldSystem_VarGet
|
|
||||||
add r2, r0, #0x0
|
|
||||||
mov r0, #0xb
|
|
||||||
str r0, [sp, #0x0]
|
|
||||||
str r4, [sp, #0x4]
|
|
||||||
ldr r0, [r5, #0x74]
|
|
||||||
add r1, r7, #0x0
|
|
||||||
add r3, r6, #0x0
|
|
||||||
bl SetupAndStartTrainerBattle
|
|
||||||
mov r0, #0x1
|
|
||||||
add sp, #0x8
|
|
||||||
pop {r3-r7, pc}
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00E7
|
|
||||||
ScrCmd_Unk00E7: ; 0x02041970
|
|
||||||
push {r3-r7, lr}
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0x8
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r4, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r7, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r6, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r5, #0x80
|
|
||||||
add r1, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r5, r0, #0x0
|
|
||||||
ldrh r0, [r4, #0x0]
|
|
||||||
bl sub_020395F4
|
|
||||||
bl TrainerIsDoubleBattle
|
|
||||||
lsl r0, r0, #0x10
|
|
||||||
lsr r0, r0, #0x10
|
|
||||||
bne _020419D2
|
|
||||||
mov r0, #0x0
|
|
||||||
mov r1, #0x2
|
|
||||||
add r2, r0, #0x0
|
|
||||||
b _020419EC
|
|
||||||
_020419D2:
|
|
||||||
ldrh r0, [r4, #0x0]
|
|
||||||
bl sub_02039618
|
|
||||||
lsl r0, r0, #0x10
|
|
||||||
lsr r0, r0, #0x10
|
|
||||||
bne _020419E6
|
|
||||||
mov r0, #0x3
|
|
||||||
mov r1, #0x5
|
|
||||||
mov r2, #0x6
|
|
||||||
b _020419EC
|
|
||||||
_020419E6:
|
|
||||||
mov r0, #0x7
|
|
||||||
mov r1, #0x9
|
|
||||||
mov r2, #0xa
|
|
||||||
_020419EC:
|
|
||||||
strh r0, [r7, #0x0]
|
|
||||||
strh r1, [r6, #0x0]
|
|
||||||
strh r2, [r5, #0x0]
|
|
||||||
mov r0, #0x0
|
|
||||||
pop {r3-r7, pc}
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00E8
|
|
||||||
ScrCmd_Unk00E8: ; 0x020419F8
|
|
||||||
push {r3-r7, lr}
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0x8
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r4, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r7, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r6, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r5, #0x80
|
|
||||||
add r1, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r5, r0, #0x0
|
|
||||||
ldrh r0, [r4, #0x0]
|
|
||||||
bl sub_020395F4
|
|
||||||
bl TrainerIsDoubleBattle
|
|
||||||
lsl r0, r0, #0x10
|
|
||||||
lsr r0, r0, #0x10
|
|
||||||
bne _02041A5A
|
|
||||||
mov r1, #0x0
|
|
||||||
mov r0, #0x11
|
|
||||||
add r2, r1, #0x0
|
|
||||||
b _02041A74
|
|
||||||
_02041A5A:
|
|
||||||
ldrh r0, [r4, #0x0]
|
|
||||||
bl sub_02039618
|
|
||||||
lsl r0, r0, #0x10
|
|
||||||
lsr r0, r0, #0x10
|
|
||||||
bne _02041A6E
|
|
||||||
mov r0, #0x12
|
|
||||||
mov r1, #0x0
|
|
||||||
mov r2, #0x6
|
|
||||||
b _02041A74
|
|
||||||
_02041A6E:
|
|
||||||
mov r0, #0x13
|
|
||||||
mov r1, #0x0
|
|
||||||
mov r2, #0xa
|
|
||||||
_02041A74:
|
|
||||||
strh r0, [r7, #0x0]
|
|
||||||
strh r1, [r6, #0x0]
|
|
||||||
strh r2, [r5, #0x0]
|
|
||||||
mov r0, #0x0
|
|
||||||
pop {r3-r7, pc}
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00E9
|
|
||||||
ScrCmd_Unk00E9: ; 0x02041A80
|
|
||||||
push {r3-r5, lr}
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0x8
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r4, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r5, #0x80
|
|
||||||
add r1, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r5, r0, #0x0
|
|
||||||
ldrh r0, [r4, #0x0]
|
|
||||||
bl sub_020395F4
|
|
||||||
bl TrainerIsDoubleBattle
|
|
||||||
strh r0, [r5, #0x0]
|
|
||||||
mov r0, #0x0
|
|
||||||
pop {r3-r5, pc}
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00EA
|
|
||||||
ScrCmd_Unk00EA: ; 0x02041AB4
|
|
||||||
push {r4, lr}
|
|
||||||
add r4, r0, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r4, #0x80
|
|
||||||
add r1, r0, #0x0
|
|
||||||
ldr r0, [r4, #0x0]
|
|
||||||
bl FieldSystem_VarGet
|
|
||||||
bl sub_0204AD0C
|
|
||||||
bl sub_02004724
|
|
||||||
mov r0, #0x1
|
|
||||||
pop {r4, pc}
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00EB
|
|
||||||
ScrCmd_Unk00EB: ; 0x02041AD4
|
|
||||||
push {r3, lr}
|
|
||||||
ldr r0, [r0, #0x74]
|
|
||||||
bl CallTask_Blackout
|
|
||||||
mov r0, #0x1
|
|
||||||
pop {r3, pc}
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00EC
|
|
||||||
ScrCmd_Unk00EC: ; 0x02041AE0
|
|
||||||
push {r3-r5, lr}
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0x17
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r4, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r5, #0x80
|
|
||||||
add r1, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r5, r0, #0x0
|
|
||||||
ldr r0, [r4, #0x0]
|
|
||||||
bl IsBattleResultWin
|
|
||||||
strh r0, [r5, #0x0]
|
|
||||||
mov r0, #0x1
|
|
||||||
pop {r3-r5, pc}
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00ED
|
|
||||||
ScrCmd_Unk00ED: ; 0x02041B10
|
|
||||||
push {r3-r5, lr}
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0x17
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r4, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r5, #0x80
|
|
||||||
add r1, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r5, r0, #0x0
|
|
||||||
ldr r0, [r4, #0x0]
|
|
||||||
bl sub_020480C8
|
|
||||||
strh r0, [r5, #0x0]
|
|
||||||
mov r0, #0x1
|
|
||||||
pop {r3-r5, pc}
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk02BC
|
|
||||||
ScrCmd_Unk02BC: ; 0x02041B40
|
|
||||||
push {r3-r5, lr}
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0x17
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r4, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r5, #0x80
|
|
||||||
add r1, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r5, r0, #0x0
|
|
||||||
ldr r0, [r4, #0x0]
|
|
||||||
bl sub_020480D8
|
|
||||||
strh r0, [r5, #0x0]
|
|
||||||
mov r0, #0x1
|
|
||||||
pop {r3-r5, pc}
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00EE
|
|
||||||
ScrCmd_Unk00EE: ; 0x02041B70
|
|
||||||
push {r3-r5, lr}
|
|
||||||
add r5, r0, #0x0
|
|
||||||
bl ScriptReadHalfword
|
|
||||||
add r1, r0, #0x0
|
|
||||||
add r0, r5, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
bl GetVarPointer
|
|
||||||
add r5, #0x80
|
|
||||||
add r4, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
ldr r0, [r0, #0xc]
|
|
||||||
bl SaveArray_Party_Get
|
|
||||||
bl HasEnoughAlivePokemonForDoubleBattle
|
|
||||||
strh r0, [r4, #0x0]
|
|
||||||
mov r0, #0x0
|
|
||||||
pop {r3-r5, pc}
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00EF
|
|
||||||
ScrCmd_Unk00EF: ; 0x02041B9C
|
|
||||||
push {r4, lr}
|
|
||||||
sub sp, #0x8
|
|
||||||
add r4, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0x17
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
mov r1, #0xb
|
|
||||||
str r1, [sp, #0x0]
|
|
||||||
str r0, [sp, #0x4]
|
|
||||||
mov r2, #0x0
|
|
||||||
ldr r0, [r4, #0x74]
|
|
||||||
mov r1, #0x1
|
|
||||||
add r3, r2, #0x0
|
|
||||||
bl SetupAndStartTrainerBattle
|
|
||||||
mov r0, #0x1
|
|
||||||
add sp, #0x8
|
|
||||||
pop {r4, pc}
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00F0
|
|
||||||
ScrCmd_Unk00F0: ; 0x02041BC4
|
|
||||||
push {r3-r5, lr}
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0xa
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r5, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl MapObject_GetFieldSystem
|
|
||||||
add r4, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl MapObject_GetID
|
|
||||||
add r1, r0, #0x0
|
|
||||||
lsl r1, r1, #0x10
|
|
||||||
add r0, r4, #0x0
|
|
||||||
lsr r1, r1, #0x10
|
|
||||||
bl TrainerFieldSystem_FlagSet
|
|
||||||
mov r0, #0x0
|
|
||||||
pop {r3-r5, pc}
|
|
||||||
|
|
||||||
thumb_func_start ScrCmd_Unk00F1
|
|
||||||
ScrCmd_Unk00F1: ; 0x02041BF0
|
|
||||||
push {r3-r7, lr}
|
|
||||||
add r6, r0, #0x0
|
|
||||||
add r0, #0x80
|
|
||||||
ldr r0, [r0, #0x0]
|
|
||||||
mov r1, #0xa
|
|
||||||
bl FieldSysGetAttrAddr
|
|
||||||
add r5, r0, #0x0
|
|
||||||
add r0, r6, #0x0
|
|
||||||
bl ScriptReadWord
|
|
||||||
add r4, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl MapObject_GetFieldSystem
|
|
||||||
add r7, r0, #0x0
|
|
||||||
ldr r0, [r5, #0x0]
|
|
||||||
bl MapObject_GetID
|
|
||||||
add r1, r0, #0x0
|
|
||||||
lsl r1, r1, #0x10
|
|
||||||
add r0, r7, #0x0
|
|
||||||
lsr r1, r1, #0x10
|
|
||||||
bl TrainerFieldSystem_FlagCheck
|
|
||||||
cmp r0, #0x1
|
|
||||||
bne _02041C34
|
|
||||||
ldr r1, [r6, #0x8]
|
|
||||||
add r0, r6, #0x0
|
|
||||||
add r1, r1, r4
|
|
||||||
bl ScriptJump
|
|
||||||
mov r0, #0x1
|
|
||||||
pop {r3-r7, pc}
|
|
||||||
_02041C34:
|
|
||||||
mov r0, #0x0
|
|
||||||
pop {r3-r7, pc}
|
|
||||||
299
arm9/src/scrcmd_7.c
Normal file
299
arm9/src/scrcmd_7.c
Normal file
|
|
@ -0,0 +1,299 @@
|
||||||
|
#include "global.h"
|
||||||
|
|
||||||
|
#include "blackout.h"
|
||||||
|
#include "encounter.h"
|
||||||
|
#include "scrcmd.h"
|
||||||
|
#include "script_pokemon_util.h"
|
||||||
|
#include "unk_0205EC84.h"
|
||||||
|
|
||||||
|
extern void *FieldSysGetAttrAddr(FieldSystem *fieldSystem, u8 idx);
|
||||||
|
extern SaveFashionData *Save_FashionData_Get(SaveData *save);
|
||||||
|
extern void TrainerFieldSystem_FlagSet(FieldSystem *fieldSystem, u16 flag);
|
||||||
|
extern u8 TrainerFieldSystem_FlagCheck(FieldSystem *fieldSystem, u16 flag);
|
||||||
|
|
||||||
|
extern void *sub_0205CA4C(void *event, PlayerAvatar *playerAvatar, void *param3, void *param4, int param5, void *encounterType, u16 param7);
|
||||||
|
extern int sub_0205CA64(void);
|
||||||
|
extern void sub_0205CA78(void *param1);
|
||||||
|
extern u16 sub_020395F4(u16 scriptNumber);
|
||||||
|
extern int sub_0205F368(SaveVarsFlags *saveVarFlags);
|
||||||
|
extern BOOL TrainerIsDoubleBattle(u16 param1);
|
||||||
|
extern BOOL sub_02039618(u16 scriptNumber);
|
||||||
|
extern BOOL IsBattleResultWin(u32 winFlag);
|
||||||
|
extern int sub_0204AD0C(u16 param1);
|
||||||
|
extern void sub_02004724(int param1);
|
||||||
|
extern int sub_020480C8(int param1);
|
||||||
|
extern int sub_020480D8(int param1);
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00B6(ScriptContext *ctx) {
|
||||||
|
FieldSystem *field = ctx->fieldSystem;
|
||||||
|
void **trainer0;
|
||||||
|
void **trainer8;
|
||||||
|
void **trainerId;
|
||||||
|
void **trainerEncounterType;
|
||||||
|
void **trainer4;
|
||||||
|
void **trainer18;
|
||||||
|
u16 var = ScriptGetVar(ctx);
|
||||||
|
void **trainerEvent;
|
||||||
|
|
||||||
|
if (var == 0) {
|
||||||
|
trainer0 = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_0_FIELD_00);
|
||||||
|
trainer4 = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_0_FIELD_04);
|
||||||
|
trainer8 = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_0_FIELD_08);
|
||||||
|
trainerId = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_0_ID);
|
||||||
|
trainerEncounterType = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_0_ENCOUNTER_TYPE);
|
||||||
|
trainerEvent = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_0_EVENT);
|
||||||
|
trainer18 = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_0_FIELD_18);
|
||||||
|
} else {
|
||||||
|
trainer0 = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_1_FIELD_00);
|
||||||
|
trainer4 = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_1_FIELD_04);
|
||||||
|
trainer8 = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_1_FIELD_08);
|
||||||
|
trainerId = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_1_ID);
|
||||||
|
trainerEncounterType = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_1_ENCOUNTER_TYPE);
|
||||||
|
trainerEvent = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_1_EVENT);
|
||||||
|
trainer18 = FieldSysGetAttrAddr(field, SCRIPTENV_ENGAGED_TRAINER_1_FIELD_18);
|
||||||
|
}
|
||||||
|
|
||||||
|
*trainer18 = sub_0205CA4C(*trainerEvent, field->playerAvatar, *trainer4, *trainer0, 0, *trainerEncounterType, var);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00B7(ScriptContext *ctx) {
|
||||||
|
u16 var1 = ScriptGetVar(ctx);
|
||||||
|
u16 *var2 = ScriptGetVarPointer(ctx);
|
||||||
|
void **trainer18;
|
||||||
|
|
||||||
|
*var2 = 0;
|
||||||
|
|
||||||
|
trainer18 = var1 == 0 ? FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_ENGAGED_TRAINER_0_FIELD_18) : FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_ENGAGED_TRAINER_1_FIELD_18);
|
||||||
|
|
||||||
|
if (*trainer18 == NULL) {
|
||||||
|
*var2 = 1;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
} else if (sub_0205CA64() == 1) {
|
||||||
|
sub_0205CA78(*trainer18);
|
||||||
|
*trainer18 = NULL;
|
||||||
|
*var2 = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00B8(ScriptContext *ctx) {
|
||||||
|
u16 *trainerEncounterType = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_ENGAGED_TRAINER_0_ENCOUNTER_TYPE);
|
||||||
|
u16 *encounterTypePtr = ScriptGetVarPointer(ctx);
|
||||||
|
|
||||||
|
*encounterTypePtr = *trainerEncounterType;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00B9(ScriptContext *ctx) {
|
||||||
|
u16 *trainer0Id = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_ENGAGED_TRAINER_0_ID);
|
||||||
|
u16 *trainer1Id = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_ENGAGED_TRAINER_1_ID);
|
||||||
|
u16 var1 = ScriptGetVar(ctx);
|
||||||
|
u16 *trainerId = ScriptGetVarPointer(ctx);
|
||||||
|
u16 id = var1 == 0 ? *trainer0Id : *trainer1Id;
|
||||||
|
|
||||||
|
*trainerId = id;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00E4(ScriptContext *ctx) {
|
||||||
|
u16 *scriptNumber = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_ACTIVE_SCRIPT_NUMBER);
|
||||||
|
u16 *var = ScriptGetVarPointer(ctx);
|
||||||
|
|
||||||
|
*var = sub_020395F4(*scriptNumber);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00E5(ScriptContext *ctx) {
|
||||||
|
FieldSystem *field = ctx->fieldSystem;
|
||||||
|
u16 *scriptNumber = FieldSysGetAttrAddr(field, SCRIPTENV_ACTIVE_SCRIPT_NUMBER);
|
||||||
|
u32 *winFlag = FieldSysGetAttrAddr(field, SCRIPTENV_BATTLE_WIN_FLAG);
|
||||||
|
u16 opponentTrainer1 = ScriptGetVar(ctx);
|
||||||
|
u16 opponentTrainer2 = ScriptGetVar(ctx);
|
||||||
|
u32 followerTrainerNum = 0;
|
||||||
|
|
||||||
|
if (Save_VarsFlags_CheckHaveFollower(Save_VarsFlags_Get(ctx->fieldSystem->saveData)) == TRUE) {
|
||||||
|
followerTrainerNum = sub_0205F368(Save_VarsFlags_Get(field->saveData));
|
||||||
|
}
|
||||||
|
|
||||||
|
SetupAndStartTrainerBattle(ctx->taskManager, opponentTrainer1, opponentTrainer2, followerTrainerNum, HEAP_ID_FIELD, winFlag);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk02A0(ScriptContext *ctx) {
|
||||||
|
FieldSystem *field = ctx->fieldSystem;
|
||||||
|
u32 *winFlag = FieldSysGetAttrAddr(field, SCRIPTENV_BATTLE_WIN_FLAG);
|
||||||
|
u16 followerTrainerNum = ScriptGetVar(ctx);
|
||||||
|
u16 opponentTrainer1 = ScriptGetVar(ctx);
|
||||||
|
u16 opponentTrainer2 = ScriptGetVar(ctx);
|
||||||
|
|
||||||
|
SetupAndStartTrainerBattle(ctx->taskManager, opponentTrainer1, opponentTrainer2, followerTrainerNum, HEAP_ID_FIELD, winFlag);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00E7(ScriptContext *ctx) {
|
||||||
|
FieldSystem *field = ctx->fieldSystem;
|
||||||
|
u16 *scriptNumber = FieldSysGetAttrAddr(field, SCRIPTENV_ACTIVE_SCRIPT_NUMBER);
|
||||||
|
u16 *var1 = ScriptGetVarPointer(ctx);
|
||||||
|
u16 *var2 = ScriptGetVarPointer(ctx);
|
||||||
|
u16 *var3 = ScriptGetVarPointer(ctx);
|
||||||
|
int var4;
|
||||||
|
int var5;
|
||||||
|
int var6;
|
||||||
|
|
||||||
|
if ((u16)TrainerIsDoubleBattle(sub_020395F4(*scriptNumber)) == FALSE) {
|
||||||
|
var4 = 0;
|
||||||
|
var5 = 2;
|
||||||
|
var6 = 0;
|
||||||
|
} else if ((u16)sub_02039618(*scriptNumber) == FALSE) {
|
||||||
|
var4 = 3;
|
||||||
|
var5 = 5;
|
||||||
|
var6 = 6;
|
||||||
|
} else {
|
||||||
|
var4 = 7;
|
||||||
|
var5 = 9;
|
||||||
|
var6 = 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
*var1 = var4;
|
||||||
|
*var2 = var5;
|
||||||
|
*var3 = var6;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00E8(ScriptContext *ctx) {
|
||||||
|
FieldSystem *field = ctx->fieldSystem;
|
||||||
|
u16 *scriptNumber = FieldSysGetAttrAddr(field, SCRIPTENV_ACTIVE_SCRIPT_NUMBER);
|
||||||
|
u16 *var1 = ScriptGetVarPointer(ctx);
|
||||||
|
u16 *var2 = ScriptGetVarPointer(ctx);
|
||||||
|
u16 *var3 = ScriptGetVarPointer(ctx);
|
||||||
|
int var4;
|
||||||
|
int var5;
|
||||||
|
int var6;
|
||||||
|
|
||||||
|
if ((u16)TrainerIsDoubleBattle(sub_020395F4(*scriptNumber)) == FALSE) {
|
||||||
|
var4 = 17;
|
||||||
|
var5 = 0;
|
||||||
|
var6 = 0;
|
||||||
|
} else if ((u16)sub_02039618(*scriptNumber) == FALSE) {
|
||||||
|
var4 = 18;
|
||||||
|
var5 = 0;
|
||||||
|
var6 = 6;
|
||||||
|
} else {
|
||||||
|
var4 = 19;
|
||||||
|
var5 = 0;
|
||||||
|
var6 = 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
*var1 = var4;
|
||||||
|
*var2 = var5;
|
||||||
|
*var3 = var6;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00E9(ScriptContext *ctx) {
|
||||||
|
FieldSystem *field = ctx->fieldSystem;
|
||||||
|
u16 *scriptNumber = FieldSysGetAttrAddr(field, SCRIPTENV_ACTIVE_SCRIPT_NUMBER);
|
||||||
|
u16 *var1 = ScriptGetVarPointer(ctx);
|
||||||
|
|
||||||
|
*var1 = TrainerIsDoubleBattle(sub_020395F4(*scriptNumber));
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00EA(ScriptContext *ctx) {
|
||||||
|
sub_02004724(sub_0204AD0C(ScriptGetVar(ctx)));
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00EB(ScriptContext *ctx) {
|
||||||
|
CallTask_Blackout(ctx->taskManager);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00EC(ScriptContext *ctx) {
|
||||||
|
FieldSystem *field = ctx->fieldSystem;
|
||||||
|
u32 *winFlag = FieldSysGetAttrAddr(field, SCRIPTENV_BATTLE_WIN_FLAG);
|
||||||
|
u16 *var1 = ScriptGetVarPointer(ctx);
|
||||||
|
|
||||||
|
*var1 = IsBattleResultWin(*winFlag);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00ED(ScriptContext *ctx) {
|
||||||
|
FieldSystem *field = ctx->fieldSystem;
|
||||||
|
u32 *var1 = FieldSysGetAttrAddr(field, SCRIPTENV_BATTLE_WIN_FLAG);
|
||||||
|
u16 *var2 = ScriptGetVarPointer(ctx);
|
||||||
|
|
||||||
|
*var2 = sub_020480C8(*var1);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk02BC(ScriptContext *ctx) {
|
||||||
|
FieldSystem *field = ctx->fieldSystem;
|
||||||
|
u32 *var1 = FieldSysGetAttrAddr(field, SCRIPTENV_BATTLE_WIN_FLAG);
|
||||||
|
u16 *var2 = ScriptGetVarPointer(ctx);
|
||||||
|
|
||||||
|
*var2 = sub_020480D8(*var1);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00EE(ScriptContext *ctx) {
|
||||||
|
FieldSystem *field = ctx->fieldSystem;
|
||||||
|
u16 *var2 = ScriptGetVarPointer(ctx);
|
||||||
|
|
||||||
|
*var2 = HasEnoughAlivePokemonForDoubleBattle(SaveArray_Party_Get(ctx->fieldSystem->saveData));
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00EF(ScriptContext *ctx) {
|
||||||
|
FieldSystem *field = ctx->fieldSystem;
|
||||||
|
u32 *winFlag = FieldSysGetAttrAddr(field, SCRIPTENV_BATTLE_WIN_FLAG);
|
||||||
|
|
||||||
|
SetupAndStartTrainerBattle(ctx->taskManager, 1, 0, 0, HEAP_ID_FIELD, winFlag);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00F0(ScriptContext *ctx) {
|
||||||
|
LocalMapObject **lastInteracted = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_LAST_INTERACTED);
|
||||||
|
FieldSystem *field = MapObject_GetFieldSystem(*lastInteracted);
|
||||||
|
|
||||||
|
TrainerFieldSystem_FlagSet(field, MapObject_GetID(*lastInteracted));
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL ScrCmd_Unk00F1(ScriptContext *ctx) {
|
||||||
|
LocalMapObject **lastInteracted = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_LAST_INTERACTED);
|
||||||
|
u32 ptr = ScriptReadWord(ctx);
|
||||||
|
FieldSystem *field = MapObject_GetFieldSystem(*lastInteracted);
|
||||||
|
|
||||||
|
if (TrainerFieldSystem_FlagCheck(field, MapObject_GetID(*lastInteracted)) == TRUE) {
|
||||||
|
u8 *scriptPtr = (u8 *)ctx->scriptPtr;
|
||||||
|
|
||||||
|
scriptPtr += ptr;
|
||||||
|
|
||||||
|
ScriptJump(ctx, scriptPtr);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
@ -584,6 +584,27 @@ BOOL ScrCmd_SaveChatotCry(struct ScriptContext *ctx);
|
||||||
BOOL ScrCmd_Unk005D(struct ScriptContext *ctx);
|
BOOL ScrCmd_Unk005D(struct ScriptContext *ctx);
|
||||||
BOOL ScrCmd_SetVolume(struct ScriptContext *ctx);
|
BOOL ScrCmd_SetVolume(struct ScriptContext *ctx);
|
||||||
|
|
||||||
|
// scrcmd_7.c
|
||||||
|
BOOL ScrCmd_Unk00B6(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00B7(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00B8(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00B9(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00E4(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00E5(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk02A0(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00E7(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00E8(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00E9(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00EA(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00EB(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00EC(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00ED(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk02BC(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00EE(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00EF(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00F0(ScriptContext *ctx);
|
||||||
|
BOOL ScrCmd_Unk00F1(ScriptContext *ctx);
|
||||||
|
|
||||||
// scrcmd_union.c
|
// scrcmd_union.c
|
||||||
BOOL ScrCmd_UnionGroup(struct ScriptContext *ctx);
|
BOOL ScrCmd_UnionGroup(struct ScriptContext *ctx);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user