ScrCmd_cmdC7; merge pikalaxalt/trainer_tower into pikalaxalt/scrcmd

This commit is contained in:
scnorton 2019-01-06 13:43:01 -05:00
commit bc97743759
17 changed files with 531 additions and 1046 deletions

View File

@ -5,24 +5,6 @@
.text
thumb_func_start ScrCmd_cmdC7
ScrCmd_cmdC7: @ 806B7EC
ldr r2, _0806B804 @ =gUnknown_20370DC
ldr r3, _0806B808 @ =gUnknown_20370DA
ldrh r1, [r3]
strh r1, [r2]
ldr r1, [r0, 0x8]
ldrb r2, [r1]
strh r2, [r3]
adds r1, 0x1
str r1, [r0, 0x8]
movs r0, 0
bx lr
.align 2, 0
_0806B804: .4byte gUnknown_20370DC
_0806B808: .4byte gUnknown_20370DA
thumb_func_end ScrCmd_cmdC7
thumb_func_start ScrCmd_message
ScrCmd_message: @ 806B80C
push {r4,lr}

View File

@ -5,720 +5,6 @@
.text
thumb_func_start sub_815E068
sub_815E068: @ 815E068
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
adds r3, r0, 0
lsls r1, 24
lsrs r2, r1, 24
movs r5, 0
cmp r0, 0x1
beq _0815E0B4
cmp r0, 0x1
bgt _0815E084
cmp r0, 0
beq _0815E088
b _0815E0F8
_0815E084:
cmp r3, 0x2
bne _0815E0F8
_0815E088:
movs r4, 0
ldr r0, _0815E0B0 @ =gUnknown_8479ED8
ldrb r1, [r0, 0x1]
adds r3, r0, 0
cmp r1, r2
beq _0815E0A4
adds r1, r3, 0
_0815E096:
adds r1, 0x4
adds r4, 0x1
cmp r4, 0x52
bhi _0815E0A4
ldrb r0, [r1, 0x1]
cmp r0, r2
bne _0815E096
_0815E0A4:
cmp r4, 0x53
beq _0815E0F8
lsls r0, r4, 2
adds r0, r3
ldrb r5, [r0, 0x2]
b _0815E0F8
.align 2, 0
_0815E0B0: .4byte gUnknown_8479ED8
_0815E0B4:
movs r4, 0
ldr r1, _0815E0BC @ =gUnknown_847A024
b _0815E0C8
.align 2, 0
_0815E0BC: .4byte gUnknown_847A024
_0815E0C0:
adds r1, 0x8
adds r4, 0x1
cmp r4, 0x9
bhi _0815E0CE
_0815E0C8:
ldrb r0, [r1, 0x2]
cmp r0, r2
bne _0815E0C0
_0815E0CE:
cmp r4, 0xA
beq _0815E0F8
ldr r0, _0815E0E8 @ =0x00004003
bl VarGet
lsls r0, 16
cmp r0, 0
beq _0815E0F0
ldr r1, _0815E0EC @ =gUnknown_847A024
lsls r0, r4, 3
adds r0, r1
ldrb r5, [r0, 0x4]
b _0815E0F8
.align 2, 0
_0815E0E8: .4byte 0x00004003
_0815E0EC: .4byte gUnknown_847A024
_0815E0F0:
ldr r1, _0815E108 @ =gUnknown_847A024
lsls r0, r4, 3
adds r0, r1
ldrb r5, [r0, 0x3]
_0815E0F8:
ldr r2, _0815E10C @ =gUnknown_20370DC
ldr r1, _0815E110 @ =gUnknown_20370DA
ldrh r0, [r1]
strh r0, [r2]
strh r5, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0815E108: .4byte gUnknown_847A024
_0815E10C: .4byte gUnknown_20370DC
_0815E110: .4byte gUnknown_20370DA
thumb_func_end sub_815E068
thumb_func_start sub_815E114
sub_815E114: @ 815E114
push {lr}
ldr r0, _0815E120 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0815E120: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_end sub_815E114
thumb_func_start sub_815E124
sub_815E124: @ 815E124
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_80D08F8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0815E14C
ldr r0, _0815E154 @ =gMain
ldr r1, _0815E158 @ =sub_815E114
str r1, [r0, 0x8]
bl sub_80563F0
ldr r0, _0815E15C @ =sub_800FD9C
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
_0815E14C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815E154: .4byte gMain
_0815E158: .4byte sub_815E114
_0815E15C: .4byte sub_800FD9C
thumb_func_end sub_815E124
thumb_func_start sub_815E160
sub_815E160: @ 815E160
push {r4,lr}
ldr r4, _0815E1AC @ =gBattleTypeFlags
ldr r3, _0815E1B0 @ =0x00080008
str r3, [r4]
ldr r0, _0815E1B4 @ =gUnknown_203F458
ldr r1, [r0]
ldrb r2, [r1]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r1, r0
ldrb r0, [r1, 0xE]
cmp r0, 0x1
bne _0815E180
orrs r0, r3
str r0, [r4]
_0815E180:
ldr r1, _0815E1B8 @ =gTrainerBattleOpponent_A
movs r0, 0
strh r0, [r1]
bl sub_815E9FC
ldr r0, _0815E1BC @ =sub_815E124
movs r1, 0x1
bl CreateTask
movs r0, 0
bl PlayMapChosenOrBattleBGM
bl sub_8080060
lsls r0, 24
lsrs r0, 24
bl sub_80D08B8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815E1AC: .4byte gBattleTypeFlags
_0815E1B0: .4byte 0x00080008
_0815E1B4: .4byte gUnknown_203F458
_0815E1B8: .4byte gTrainerBattleOpponent_A
_0815E1BC: .4byte sub_815E124
thumb_func_end sub_815E160
thumb_func_start sub_815E1C0
sub_815E1C0: @ 815E1C0
push {lr}
ldr r0, _0815E1E4 @ =gSpecialVar_0x8005
ldrh r0, [r0]
cmp r0, 0
bne _0815E1DE
ldr r3, _0815E1E8 @ =gSpecialVar_Result
ldr r0, _0815E1EC @ =gUnknown_203F458
ldr r1, [r0]
ldrb r2, [r1]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r1, r0
ldrb r0, [r1, 0xE]
strh r0, [r3]
_0815E1DE:
pop {r0}
bx r0
.align 2, 0
_0815E1E4: .4byte gSpecialVar_0x8005
_0815E1E8: .4byte gSpecialVar_Result
_0815E1EC: .4byte gUnknown_203F458
thumb_func_end sub_815E1C0
thumb_func_start sub_815E1F0
sub_815E1F0: @ 815E1F0
ldr r0, _0815E210 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E214 @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
movs r0, 0xF5
lsls r0, 6
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
bx lr
.align 2, 0
_0815E210: .4byte gSaveBlock1Ptr
_0815E214: .4byte 0x00003d34
thumb_func_end sub_815E1F0
thumb_func_start sub_815E218
sub_815E218: @ 815E218
push {lr}
ldr r0, _0815E260 @ =gMapHeader
ldrh r0, [r0, 0x12]
mov r12, r0
ldr r3, _0815E264 @ =0xfffffed6
add r3, r12
ldr r0, _0815E268 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E26C @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
movs r0, 0xF5
lsls r0, 6
adds r1, r0
ldrb r1, [r1]
cmp r3, r1
bne _0815E27C
ldr r3, _0815E270 @ =0xfffffed7
add r3, r12
ldr r0, _0815E274 @ =gUnknown_203F458
ldr r1, [r0]
ldrb r2, [r1]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r1, r0
ldrb r1, [r1, 0xD]
cmp r3, r1
bgt _0815E27C
ldr r1, _0815E278 @ =gSpecialVar_Result
movs r0, 0
b _0815E280
.align 2, 0
_0815E260: .4byte gMapHeader
_0815E264: .4byte 0xfffffed6
_0815E268: .4byte gSaveBlock1Ptr
_0815E26C: .4byte 0x00003d34
_0815E270: .4byte 0xfffffed7
_0815E274: .4byte gUnknown_203F458
_0815E278: .4byte gSpecialVar_Result
_0815E27C:
ldr r1, _0815E288 @ =gSpecialVar_Result
movs r0, 0x1
_0815E280:
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0815E288: .4byte gSpecialVar_Result
thumb_func_end sub_815E218
thumb_func_start sub_815E28C
sub_815E28C: @ 815E28C
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r4, _0815E2D0 @ =gSaveBlock1Ptr
ldr r0, [r4]
ldr r5, _0815E2D4 @ =0x00003d34
adds r1, r0, r5
ldr r0, _0815E2D8 @ =gSpecialVar_0x8005
ldrh r0, [r0]
str r0, [r1]
cmp r0, 0x3
bls _0815E2A8
movs r0, 0
str r0, [r1]
_0815E2A8:
bl sub_815EC0C
bl sub_815D834
cmp r0, 0
bne _0815E2E0
ldr r1, [r4]
adds r0, r1, r5
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
ldr r0, _0815E2DC @ =0x00003d42
adds r1, r0
ldrb r0, [r1]
movs r2, 0x20
orrs r0, r2
b _0815E2FA
.align 2, 0
_0815E2D0: .4byte gSaveBlock1Ptr
_0815E2D4: .4byte 0x00003d34
_0815E2D8: .4byte gSpecialVar_0x8005
_0815E2DC: .4byte 0x00003d42
_0815E2E0:
ldr r1, [r4]
adds r0, r1, r5
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
ldr r0, _0815E384 @ =0x00003d42
adds r1, r0
ldrb r2, [r1]
movs r0, 0x21
negs r0, r0
ands r0, r2
_0815E2FA:
strb r0, [r1]
ldr r6, _0815E388 @ =gSaveBlock1Ptr
ldr r2, [r6]
ldr r5, _0815E38C @ =0x00003d34
adds r0, r2, r5
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, r0
movs r0, 0xF5
lsls r0, 6
adds r2, r0
movs r0, 0
mov r8, r0
mov r0, r8
strb r0, [r2]
ldr r0, [r6]
adds r1, r0, r5
ldr r2, [r1]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
ldr r4, _0815E390 @ =0x00003d38
adds r1, r4
adds r0, r1
bl SetVBlankCounter1Ptr
ldr r2, [r6]
adds r3, r2, r5
ldr r1, [r3]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r4, r2, r4
adds r4, r0
mov r0, r8
str r0, [r4]
ldr r1, [r3]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, r0
ldr r3, _0815E384 @ =0x00003d42
adds r2, r3
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
ldr r1, [r6]
adds r5, r1, r5
ldr r2, [r5]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
adds r1, r3
ldrb r2, [r1]
movs r0, 0x3
negs r0, r0
ands r0, r2
strb r0, [r1]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0815E384: .4byte 0x00003d42
_0815E388: .4byte gSaveBlock1Ptr
_0815E38C: .4byte 0x00003d34
_0815E390: .4byte 0x00003d38
thumb_func_end sub_815E28C
thumb_func_start sub_815E394
sub_815E394: @ 815E394
push {lr}
bl DisableVBlankCounter1
ldr r3, _0815E3F8 @ =gSpecialVar_Result
movs r0, 0
strh r0, [r3]
ldr r0, _0815E3FC @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _0815E400 @ =0x00003d34
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, r0
ldr r0, _0815E404 @ =0x00003d42
adds r2, r0
ldrb r0, [r2]
lsls r0, 29
cmp r0, 0
bge _0815E3C2
movs r0, 0x1
strh r0, [r3]
_0815E3C2:
ldrb r2, [r2]
lsls r0, r2, 31
cmp r0, 0
beq _0815E3D6
lsls r0, r2, 30
cmp r0, 0
bge _0815E3D6
ldrh r0, [r3]
adds r0, 0x1
strh r0, [r3]
_0815E3D6:
ldr r0, _0815E3FC @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E400 @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
ldr r0, _0815E404 @ =0x00003d42
adds r1, r0
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0815E3F8: .4byte gSpecialVar_Result
_0815E3FC: .4byte gSaveBlock1Ptr
_0815E400: .4byte 0x00003d34
_0815E404: .4byte 0x00003d42
thumb_func_end sub_815E394
thumb_func_start sub_815E408
sub_815E408: @ 815E408
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r1, _0815E444 @ =gUnknown_847A2B4
ldr r0, _0815E448 @ =gUnknown_203F458
ldr r0, [r0]
ldrb r0, [r0, 0xF]
lsls r0, 1
adds r0, r1
ldrh r4, [r0]
ldr r0, _0815E44C @ =gSaveBlock1Ptr
mov r8, r0
ldr r2, [r0]
ldr r7, _0815E450 @ =0x00003d34
adds r0, r2, r7
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, r0
ldr r6, _0815E454 @ =0x00003d42
adds r2, r6
ldrb r0, [r2]
lsls r0, 31
lsrs r5, r0, 31
cmp r5, 0
beq _0815E45C
ldr r1, _0815E458 @ =gSpecialVar_Result
movs r0, 0x2
b _0815E4A0
.align 2, 0
_0815E444: .4byte gUnknown_847A2B4
_0815E448: .4byte gUnknown_203F458
_0815E44C: .4byte gSaveBlock1Ptr
_0815E450: .4byte 0x00003d34
_0815E454: .4byte 0x00003d42
_0815E458: .4byte gSpecialVar_Result
_0815E45C:
adds r0, r4, 0
movs r1, 0x1
bl AddBagItem
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0815E49C
ldr r1, _0815E494 @ =gStringVar2
adds r0, r4, 0
bl sub_8099E90
mov r0, r8
ldr r1, [r0]
adds r0, r1, r7
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
adds r1, r6
ldrb r0, [r1]
movs r2, 0x1
orrs r0, r2
strb r0, [r1]
ldr r0, _0815E498 @ =gSpecialVar_Result
strh r5, [r0]
b _0815E4A2
.align 2, 0
_0815E494: .4byte gStringVar2
_0815E498: .4byte gSpecialVar_Result
_0815E49C:
ldr r1, _0815E4AC @ =gSpecialVar_Result
movs r0, 0x1
_0815E4A0:
strh r0, [r1]
_0815E4A2:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0815E4AC: .4byte gSpecialVar_Result
thumb_func_end sub_815E408
thumb_func_start sub_815E4B0
sub_815E4B0: @ 815E4B0
push {r4-r6,lr}
ldr r6, _0815E4D8 @ =gSaveBlock1Ptr
ldr r2, [r6]
ldr r1, _0815E4DC @ =0x00003d34
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r1, r0, 2
adds r0, r2, r1
ldr r3, _0815E4E0 @ =0x00003d42
adds r0, r3
ldrb r0, [r0]
lsls r0, 30
lsrs r5, r0, 31
cmp r5, 0
beq _0815E4E8
ldr r1, _0815E4E4 @ =gSpecialVar_Result
movs r0, 0x2
b _0815E534
.align 2, 0
_0815E4D8: .4byte gSaveBlock1Ptr
_0815E4DC: .4byte 0x00003d34
_0815E4E0: .4byte 0x00003d42
_0815E4E4: .4byte gSpecialVar_Result
_0815E4E8:
ldr r4, _0815E520 @ =0x00003d38
adds r0, r1, r4
adds r0, r2, r0
adds r0, 0x4
bl sub_815EDDC
ldr r3, [r6]
ldr r2, _0815E524 @ =0x00003d34
adds r1, r3, r2
ldr r2, [r1]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r4, r3, r4
adds r4, r1
ldr r4, [r4]
cmp r0, r4
bls _0815E530
adds r0, r1, r3
ldr r3, _0815E528 @ =0x00003d3c
adds r0, r3
adds r1, r4, 0
bl sub_815EDF4
ldr r0, _0815E52C @ =gSpecialVar_Result
strh r5, [r0]
b _0815E536
.align 2, 0
_0815E520: .4byte 0x00003d38
_0815E524: .4byte 0x00003d34
_0815E528: .4byte 0x00003d3c
_0815E52C: .4byte gSpecialVar_Result
_0815E530:
ldr r1, _0815E55C @ =gSpecialVar_Result
movs r0, 0x1
_0815E534:
strh r0, [r1]
_0815E536:
ldr r0, _0815E560 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E564 @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
ldr r3, _0815E568 @ =0x00003d42
adds r1, r3
ldrb r0, [r1]
movs r2, 0x2
orrs r0, r2
strb r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0815E55C: .4byte gSpecialVar_Result
_0815E560: .4byte gSaveBlock1Ptr
_0815E564: .4byte 0x00003d34
_0815E568: .4byte 0x00003d42
thumb_func_end sub_815E4B0
thumb_func_start sub_815E56C
sub_815E56C: @ 815E56C
push {r4,lr}
ldr r0, _0815E5A0 @ =gSaveBlock1Ptr
ldr r4, [r0]
ldr r1, _0815E5A4 @ =0x00003d34
adds r0, r4, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r3, r0, 2
adds r0, r4, r3
ldr r1, _0815E5A8 @ =0x00003d42
adds r0, r1
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _0815E5BA
subs r1, 0xA
adds r0, r4, r1
adds r2, r0, r3
ldr r1, [r2]
ldr r0, _0815E5AC @ =0x00034bbe
cmp r1, r0
bls _0815E5B0
adds r0, 0x1
str r0, [r2]
b _0815E5BA
.align 2, 0
_0815E5A0: .4byte gSaveBlock1Ptr
_0815E5A4: .4byte 0x00003d34
_0815E5A8: .4byte 0x00003d42
_0815E5AC: .4byte 0x00034bbe
_0815E5B0:
ldr r1, _0815E5C0 @ =0x00003d38
adds r0, r3, r1
adds r0, r4, r0
bl SetVBlankCounter1Ptr
_0815E5BA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815E5C0: .4byte 0x00003d38
thumb_func_end sub_815E56C
thumb_func_start sub_815E5C4
sub_815E5C4: @ 815E5C4
ldr r0, _0815E5E4 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E5E8 @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
ldr r0, _0815E5EC @ =0x00003d42
adds r1, r0
ldrb r0, [r1]
movs r2, 0x8
orrs r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_0815E5E4: .4byte gSaveBlock1Ptr
_0815E5E8: .4byte 0x00003d34
_0815E5EC: .4byte 0x00003d42
thumb_func_end sub_815E5C4
thumb_func_start sub_815E5F0
sub_815E5F0: @ 815E5F0
push {lr}
@ -1676,4 +962,59 @@ _0815EDD4: .4byte gUnknown_83FE998
_0815EDD8: .4byte gUnknown_83FE9C4
thumb_func_end sub_815EC8C
thumb_func_start sub_815EDDC
sub_815EDDC: @ 815EDDC
ldr r1, _0815EDF0 @ =gSaveBlock2Ptr
ldr r1, [r1]
movs r2, 0xF2
lsls r2, 4
adds r1, r2
ldr r0, [r0]
ldr r1, [r1]
eors r0, r1
bx lr
.align 2, 0
_0815EDF0: .4byte gSaveBlock2Ptr
thumb_func_end sub_815EDDC
thumb_func_start sub_815EDF4
sub_815EDF4: @ 815EDF4
ldr r2, _0815EE08 @ =gSaveBlock2Ptr
ldr r2, [r2]
movs r3, 0xF2
lsls r3, 4
adds r2, r3
ldr r2, [r2]
eors r2, r1
str r2, [r0]
bx lr
.align 2, 0
_0815EE08: .4byte gSaveBlock2Ptr
thumb_func_end sub_815EDF4
thumb_func_start sub_815EE0C
sub_815EE0C: @ 815EE0C
push {r4-r6,lr}
ldr r6, _0815EE30 @ =gSaveBlock1Ptr
ldr r5, _0815EE34 @ =0x00003d38
movs r4, 0x3
_0815EE14:
ldr r0, [r6]
adds r0, r5
adds r0, 0x4
ldr r1, _0815EE38 @ =0x00034bbf
bl sub_815EDF4
adds r5, 0xC
subs r4, 0x1
cmp r4, 0
bge _0815EE14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0815EE30: .4byte gSaveBlock1Ptr
_0815EE34: .4byte 0x00003d38
_0815EE38: .4byte 0x00034bbf
thumb_func_end sub_815EE0C
.align 2, 0 @ Don't pad with nop.

View File

@ -5,61 +5,6 @@
.text
thumb_func_start sub_815EDDC
sub_815EDDC: @ 815EDDC
ldr r1, _0815EDF0 @ =gSaveBlock2Ptr
ldr r1, [r1]
movs r2, 0xF2
lsls r2, 4
adds r1, r2
ldr r0, [r0]
ldr r1, [r1]
eors r0, r1
bx lr
.align 2, 0
_0815EDF0: .4byte gSaveBlock2Ptr
thumb_func_end sub_815EDDC
thumb_func_start sub_815EDF4
sub_815EDF4: @ 815EDF4
ldr r2, _0815EE08 @ =gSaveBlock2Ptr
ldr r2, [r2]
movs r3, 0xF2
lsls r3, 4
adds r2, r3
ldr r2, [r2]
eors r2, r1
str r2, [r0]
bx lr
.align 2, 0
_0815EE08: .4byte gSaveBlock2Ptr
thumb_func_end sub_815EDF4
thumb_func_start sub_815EE0C
sub_815EE0C: @ 815EE0C
push {r4-r6,lr}
ldr r6, _0815EE30 @ =gSaveBlock1Ptr
ldr r5, _0815EE34 @ =0x00003d38
movs r4, 0x3
_0815EE14:
ldr r0, [r6]
adds r0, r5
adds r0, 0x4
ldr r1, _0815EE38 @ =0x00034bbf
bl sub_815EDF4
adds r5, 0xC
subs r4, 0x1
cmp r4, 0
bge _0815EE14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0815EE30: .4byte gSaveBlock1Ptr
_0815EE34: .4byte 0x00003d38
_0815EE38: .4byte 0x00034bbf
thumb_func_end sub_815EE0C
thumb_func_start sub_815EE3C
sub_815EE3C: @ 815EE3C
ldr r1, _0815EE50 @ =gSaveBlock2Ptr

View File

@ -1,5 +1,7 @@
#include "constants/items.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.include "constants/gba_constants.inc"
.include "constants/misc_constants.inc"
.section .rodata
@ -562,7 +564,21 @@ gUnknown_847A284:: @ 847A284
.2byte 0x0131, 0x0175, 0x017d
gUnknown_847A2B4:: @ 847A2B4
.2byte 0x3f, 0x40, 0x41, 0x42, 0x43, 0x46, 0xb3, 0xb4, 0xb9, 0xba, 0xbb, 0xc6, 0xc7, 0xc9, 0xda
.2byte ITEM_HP_UP
.2byte ITEM_PROTEIN
.2byte ITEM_IRON
.2byte ITEM_CARBOS
.2byte ITEM_CALCIUM
.2byte ITEM_ZINC
.2byte ITEM_BRIGHT_POWDER
.2byte ITEM_WHITE_HERB
.2byte ITEM_MENTAL_HERB
.2byte ITEM_CHOICE_BAND
.2byte ITEM_KINGS_ROCK
.2byte ITEM_SCOPE_LENS
.2byte ITEM_METAL_COAT
.2byte ITEM_DRAGON_SCALE
.2byte ITEM_UP_GRADE
gUnknown_847A2D2:: @ 847A2D2
.2byte 0x011d

View File

@ -22,8 +22,8 @@
.macro dummy_tower_team
.string "$", 11
.byte FACILITY_CLASS_AQUA_LEADER, 0x01, 0x00
.byte FACILITY_CLASS_AQUA_LEADER, 0x01
.align 1
.2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
.2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
.2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
@ -41,8 +41,8 @@
gUnknown_847ABAC::
.byte 0x01, 0x08, 0x00, 0x07
.string "COLE$", 11
.byte FACILITY_CLASS_YOUNGSTER_2, 0x01, 0x00
.byte FACILITY_CLASS_YOUNGSTER_2, 0x01
.align 1
.2byte EC_WORD_AHAHA, EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_GOING, EC_WORD_ANYWHERE, EC_WORD_EXCL
.2byte EC_WORD_ALL_RIGHT, EC_WORD_EXCL, EC_WORD_BYE_BYE, EC_WORD_EXCL, 0xFFFF, 0xFFFF
.2byte EC_WORD_HIYAH, EC_WORD_EXCL_EXCL, EC_WORD_DONE, EC_WORD_IN, EC_WORD_TOTALLY, EC_WORD_EXCL_EXCL
@ -128,8 +128,8 @@ gUnknown_847ABAC::
gUnknown_847AF8C::
.byte 0x02, 0x08, 0x00, 0x0d
.string "JAC$", 11
.byte FACILITY_CLASS_BURGLAR, 0x01, 0x00
.byte FACILITY_CLASS_BURGLAR, 0x01
.align 1
.2byte EC_WORD_I_AM, EC_WORD_A, EC_MOVE2(THIEF), EC_WORD_EXCL, EC_WORD_GIVE_ME, EC_WORD_SOMETHING
.2byte EC_WORD_YOU_VE, EC_WORD_GOT, EC_WORD_NOTHING, EC_WORD_THAT, EC_WORD_I, EC_WORD_WANT
.2byte EC_WORD_EEK, EC_WORD_EXCL_EXCL, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_I, EC_WORD_SURRENDER
@ -215,8 +215,8 @@ gUnknown_847AF8C::
gUnknown_847B36C::
.byte 0x03, 0x08, 0x00, 0x02
.string "MILY$", 11
.byte FACILITY_CLASS_PSYCHIC_4, 0x01, 0x00
.byte FACILITY_CLASS_PSYCHIC_4, 0x01
.align 1
.2byte EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_POKEMON, EC_MOVE2(SUPERPOWER), EC_WORD_EXCL
.2byte EC_WORD_ISN_T, EC_WORD_IT, EC_WORD_INCREDIBLE, EC_WORD_QUES, EC_WORD_POKEMON, EC_WORD_POWER
.2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWFUL, EC_MOVE(NIGHTMARE), EC_WORD_ELLIPSIS_EXCL
@ -302,8 +302,8 @@ gUnknown_847B36C::
gUnknown_847B74C::
.byte 0x04, 0x08, 0x01, 0x09
.string "JOS & ANNE$", 11
.byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00
.byte FACILITY_CLASS_COOL_COUPLE, 0x07
.align 1
.2byte EC_WORD_I, EC_WORD_CAN_T, EC_WORD_LOSE, EC_WORD_TO, EC_WORD_YOU, EC_WORD_HERE
.2byte EC_WORD_VERY, EC_WORD_WELL, EC_WORD_DONE, EC_WORD_EXCL, EC_WORD_GOOD, EC_WORD_BATTLE
.2byte EC_WORD_UNBELIEVABLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
@ -382,8 +382,8 @@ gUnknown_847B74C::
.byte 255 @ friendship
.string "JOS & ANNE$", 11
.byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00
.byte FACILITY_CLASS_COOL_COUPLE, 0x07
.align 1
.2byte EC_WORD_HERE_GOES, EC_WORD_EXCL_EXCL, EC_WORD_GET, EC_WORD_READY, EC_WORD_TO, EC_WORD_LOSE
.2byte EC_WORD_PERFECT, EC_WORD_EXCL, EC_WORD_WE, EC_WORD_GET, EC_WORD_THE, EC_WORD_WIN
.2byte EC_WORD_LOST, EC_WORD_QUES_EXCL, EC_WORD_YOU, EC_WORD_MUST_BE, EC_WORD_JOKING, EC_WORD_EXCL
@ -468,8 +468,8 @@ gUnknown_847B74C::
gUnknown_847BB2C::
.byte 0x05, 0x08, 0x01, 0x04
.string "EMY & ALEK$", 11
.byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01, 0x00
.byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01
.align 1
.2byte EC_WORD_I_AM, EC_WORD_SO, EC_WORD_LOST, EC_WORD_IN, EC_WORD_LOVEY_DOVEY, EC_WORD_HAPPINESS
.2byte EC_WORD_OH, EC_WORD_OH, EC_WORD_HE, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_AWESOME
.2byte EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_SERIOUS, EC_WORD_QUES
@ -548,8 +548,8 @@ gUnknown_847BB2C::
.byte 255 @ friendship
.string "EMY & ALEK$", 11
.byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01, 0x00
.byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x01
.align 1
.2byte EC_WORD_I_AM, EC_WORD_GIDDY, EC_WORD_WITH, EC_WORD_LOVEY_DOVEY, EC_WORD_JOY, EC_WORD_EXCL_EXCL
.2byte EC_WORD_SIGH, EC_WORD_ELLIPSIS, EC_WORD_MY, EC_WORD_GIRL, EC_WORD_IS, EC_WORD_CUTE
.2byte EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_SERIOUS
@ -634,8 +634,8 @@ gUnknown_847BB2C::
gUnknown_847BF0C::
.byte 0x06, 0x08, 0x01, 0x00
.string "JO & HALEY$", 11
.byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00
.byte FACILITY_CLASS_CRUSH_KIN, 0x05
.align 1
.2byte EC_WORD_WE_RE, EC_WORD_USING, EC_WORD_THAT, EC_WORD_STRATEGY, EC_WORD_OKAY, EC_WORD_QUES
.2byte EC_WORD_YAY, EC_WORD_WE, EC_WORD_WON, EC_WORD_EXCL, EC_WORD_SORRY, EC_WORD_EXCL
.2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_THAT_WAS, EC_WORD_REALLY, EC_WORD_TERRIBLE, EC_WORD_EXCL
@ -714,8 +714,8 @@ gUnknown_847BF0C::
.byte 255 @ friendship
.string "JO & HALEY$", 11
.byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00
.byte FACILITY_CLASS_CRUSH_KIN, 0x05
.align 1
.2byte EC_WORD_YOU, EC_WORD_YOU, EC_WORD_YOU, EC_WORD_BETTER, EC_WORD_NOT, EC_WORD_WIN
.2byte EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_JOKING, EC_WORD_QUES, EC_WORD_WE, EC_WORD_WON
.2byte EC_WORD_WIMPY, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_WERE, EC_WORD_WEAK, EC_WORD_ELLIPSIS
@ -800,8 +800,8 @@ gUnknown_847BF0C::
gUnknown_847C2EC::
.byte 0x07, 0x08, 0x02, 0x0c
.string "JORDY$", 11
.byte FACILITY_CLASS_BIKER, 0x03, 0x00
.byte FACILITY_CLASS_BIKER, 0x03
.align 1
.2byte EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_GIGGLE, EC_WORD_YOU, EC_WORD_PUSHOVER
.2byte EC_WORD_WHAT, EC_WORD_A_LITTLE, EC_WORD_PUSHOVER, EC_WORD_YOU, EC_WORD_ARE, EC_WORD_EXCL
.2byte EC_WORD_YOU, EC_WORD_WERE, EC_WORD_READY, EC_WORD_TO, EC_WORD_ROCK, EC_WORD_EXCL
@ -880,8 +880,8 @@ gUnknown_847C2EC::
.byte 0 @ friendship
.string "ERNEST$", 11
.byte FACILITY_CLASS_BIKER, 0x01, 0x00
.byte FACILITY_CLASS_BIKER, 0x01
.align 1
.2byte EC_WORD_IT_S, EC_WORD_SLEEP, EC_WORD_TIME, EC_WORD_FOR, EC_WORD_CHILDREN, EC_WORD_EXCL
.2byte EC_WORD_NOT, EC_WORD_GUTSY, EC_WORD_ENOUGH, 0xFFFF, 0xFFFF, 0xFFFF
.2byte EC_WORD_WHY, EC_WORD_DID, EC_WORD_YOU, EC_WORD_CRUSH, EC_WORD_ME, EC_WORD_QUES
@ -960,8 +960,8 @@ gUnknown_847C2EC::
.byte 0 @ friendship
.string "GABRIEL$", 11
.byte FACILITY_CLASS_CUE_BALL, 0x01, 0x00
.byte FACILITY_CLASS_CUE_BALL, 0x01
.align 1
.2byte EC_WORD_YAHOO, EC_WORD_EXCL, EC_WORD_HERE_I_COME, EC_WORD_TO, EC_WORD_SWARM, EC_WORD_YOU
.2byte EC_WORD_I_AM, EC_WORD_INVINCIBLE, EC_WORD_YOU, EC_WORD_GOT, EC_WORD_THAT, EC_WORD_QUES
.2byte EC_WORD_WHAT, EC_WORD_WAS, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF, 0xFFFF
@ -1045,8 +1045,8 @@ gUnknown_847C2EC::
gUnknown_847C6CC::
.byte 0x08, 0x08, 0x02, 0x0e
.string "MIKE$", 11
.byte FACILITY_CLASS_HIKER_2, 0x05, 0x00
.byte FACILITY_CLASS_HIKER_2, 0x05
.align 1
.2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_FULL, EC_WORD_OF, EC_WORD_POWER
.2byte EC_WORD_WHAT_S_UP_QUES, EC_WORD_WHERE, EC_WORD_IS, EC_WORD_YOUR, EC_WORD_POWER, EC_WORD_QUES
.2byte EC_WORD_YOU, EC_WORD_GOT, EC_WORD_ME, EC_WORD_WITH, EC_WORD_YOUR, EC_MOVE2(FAKE_OUT)
@ -1125,8 +1125,8 @@ gUnknown_847C6CC::
.byte 255 @ friendship
.string "REBECCA$", 11
.byte FACILITY_CLASS_CRUSH_GIRL, 0x05, 0x00
.byte FACILITY_CLASS_CRUSH_GIRL, 0x05
.align 1
.2byte EC_WORD_I, EC_WORD_WILL, EC_WORD_WIN, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF
.2byte EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_OVERWHELMING
.2byte EC_WORD_ARRGH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
@ -1205,8 +1205,8 @@ gUnknown_847C6CC::
.byte 255 @ friendship
.string "NICOLAS$", 11
.byte FACILITY_CLASS_BLACK_BELT_2, 0x05, 0x00
.byte FACILITY_CLASS_BLACK_BELT_2, 0x05
.align 1
.2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_WHERE, EC_WORD_YOU, EC_WORD_STOP, EC_WORD_EXCL
.2byte EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_EVER, EC_WORD_BEAT, EC_WORD_ME
.2byte EC_WORD_WHY, EC_WORD_COULDN_T, EC_WORD_I, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_QUES
@ -1290,8 +1290,8 @@ gUnknown_847C6CC::
gUnknown_847CAAC::
.byte 0x09, 0x08, 0x00, 0x00
.string "JOEY$", 11
.byte FACILITY_CLASS_CAMPER_2, 0x01, 0x00
.byte FACILITY_CLASS_CAMPER_2, 0x01
.align 1
.2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SCARY, EC_WORD_STRONG, EC_WORD_EXCL
.2byte EC_WORD_WERE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES
.2byte EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_WAY, EC_WORD_TOO_STRONG, EC_WORD_EXCL
@ -1377,8 +1377,8 @@ gUnknown_847CAAC::
gUnknown_847CE8C::
.byte 0x0a, 0x08, 0x00, 0x0c
.string "LILY$", 11
.byte FACILITY_CLASS_PKMN_BREEDER_3, 0x01, 0x00
.byte FACILITY_CLASS_PKMN_BREEDER_3, 0x01
.align 1
.2byte EC_WORD_I, EC_WORD_WANT, EC_WORD_SOMETHING, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_EXCL
.2byte EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_EXCL
.2byte EC_WORD_I, EC_WORD_NEED, EC_WORD_SOMETHING, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_ELLIPSIS
@ -1464,8 +1464,8 @@ gUnknown_847CE8C::
gUnknown_847D26C::
.byte 0x0b, 0x08, 0x00, 0x0e
.string "BRANDON$", 11
.byte FACILITY_CLASS_BUG_CATCHER_2, 0x01, 0x00
.byte FACILITY_CLASS_BUG_CATCHER_2, 0x01
.align 1
.2byte EC_WORD_POISON, EC_WORD_IS, EC_WORD_JUST, EC_WORD_SO, EC_WORD_AWFUL, EC_WORD_ISN_T_IT_QUES
.2byte EC_WORD_SEE, EC_WORD_QUES, EC_WORD_ISN_T, EC_WORD_POISON, EC_WORD_TERRIBLE, EC_WORD_QUES
.2byte EC_WORD_HUH_QUES, EC_WORD_OUR, EC_WORD_POISON, EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_QUES
@ -1551,8 +1551,8 @@ gUnknown_847D26C::
gUnknown_847D64C::
.byte 0x0c, 0x08, 0x01, 0x02
.string "RIC & RENE$", 11
.byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00
.byte FACILITY_CLASS_CRUSH_KIN, 0x05
.align 1
.2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_AWESOME
.2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_IS, EC_WORD_TOO, EC_WORD_AWESOME
.2byte EC_WORD_MY, EC_WORD_BIG, EC_WORD_BROTHER, EC_WORD_ISN_T, EC_WORD_AWESOME, EC_WORD_QUES
@ -1631,8 +1631,8 @@ gUnknown_847D64C::
.byte 255 @ friendship
.string "RIC & RENE$", 11
.byte FACILITY_CLASS_CRUSH_KIN, 0x05, 0x00
.byte FACILITY_CLASS_CRUSH_KIN, 0x05
.align 1
.2byte EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF, 0xFFFF
.2byte EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF, 0xFFFF
.2byte EC_WORD_HUH_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_NOT_VERY, EC_WORD_AWESOME, EC_WORD_QUES
@ -1717,8 +1717,8 @@ gUnknown_847D64C::
gUnknown_847DA2C::
.byte 0x0d, 0x08, 0x01, 0x0d
.string "JEN & KIRA$", 11
.byte FACILITY_CLASS_TWINS_2, 0x05, 0x00
.byte FACILITY_CLASS_TWINS_2, 0x05
.align 1
.2byte EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_TRY, EC_WORD_HARD, EC_WORD_EXCL
.2byte EC_WORD_EHEHE, EC_WORD_YAY, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
.2byte EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
@ -1797,8 +1797,8 @@ gUnknown_847DA2C::
.byte 255 @ friendship
.string "JEN & KIRA$", 11
.byte FACILITY_CLASS_TWINS_2, 0x03, 0x00
.byte FACILITY_CLASS_TWINS_2, 0x03
.align 1
.2byte EC_WORD_LET_S, EC_WORD_TRY, EC_WORD_HARD, EC_WORD_EXCL, 0xFFFF, 0xFFFF
.2byte EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
.2byte EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
@ -1883,8 +1883,8 @@ gUnknown_847DA2C::
gUnknown_847DE0C::
.byte 0x0e, 0x08, 0x01, 0x08
.string "ISAC & MAG$", 11
.byte FACILITY_CLASS_COOL_COUPLE, 0x01, 0x00
.byte FACILITY_CLASS_COOL_COUPLE, 0x01
.align 1
.2byte EC_WORD_OUR, EC_MOVE(EARTHQUAKE), EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_SHAKY
.2byte EC_WORD_FEELING, EC_WORD_SHAKY, EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF, 0xFFFF
.2byte EC_WORD_I_AM, EC_WORD_ALL, EC_WORD_SHAKY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF
@ -1963,8 +1963,8 @@ gUnknown_847DE0C::
.byte 255 @ friendship
.string "ISAC & MAG$", 11
.byte FACILITY_CLASS_COOL_COUPLE, 0x01, 0x00
.byte FACILITY_CLASS_COOL_COUPLE, 0x01
.align 1
.2byte EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_DOESN_T, EC_WORD_GET, EC_WORD_ALL, EC_WORD_SHAKY
.2byte EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_LIE, EC_WORD_EXCL
.2byte EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_SHAKY
@ -2049,8 +2049,8 @@ gUnknown_847DE0C::
gUnknown_847E1EC::
.byte 0x0f, 0x08, 0x02, 0x06
.string "CHELSEA$", 11
.byte FACILITY_CLASS_PKMN_RANGER_4, 0x07, 0x00
.byte FACILITY_CLASS_PKMN_RANGER_4, 0x07
.align 1
.2byte EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD, EC_WORD_IS, EC_WORD_IMPORTANT, EC_WORD_ISN_T_IT_QUES
.2byte EC_WORD_YOU, EC_WORD_TAKE, EC_WORD_THE, EC_WORD_LOSS, 0xFFFF, 0xFFFF
.2byte EC_WORD_BE, EC_WORD_KIND, EC_WORD_TO, EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD
@ -2129,8 +2129,8 @@ gUnknown_847E1EC::
.byte 255 @ friendship
.string "TRENTON$", 11
.byte FACILITY_CLASS_PKMN_RANGER_3, 0x07, 0x00
.byte FACILITY_CLASS_PKMN_RANGER_3, 0x07
.align 1
.2byte EC_WORD_I, EC_MOVE2(PROTECT), EC_WORD_THE, EC_WORD_GREAT, EC_WORD_GREEN, EC_WORD_WORLD
.2byte EC_WORD_TAKE_THAT, EC_WORD_EXCL, EC_WORD_THE, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_YOURS
.2byte EC_MOVE2(PROTECT), EC_WORD_THE, EC_WORD_GREEN, EC_WORD_WORLD, 0xFFFF, 0xFFFF
@ -2209,8 +2209,8 @@ gUnknown_847E1EC::
.byte 255 @ friendship
.string "ALBERT$", 11
.byte FACILITY_CLASS_COOLTRAINER_3, 0x07, 0x00
.byte FACILITY_CLASS_COOLTRAINER_3, 0x07
.align 1
.2byte EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_TIME, EC_WORD_HERE
.2byte EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_MAKE, EC_WORD_THINGS, EC_WORD_EXCITING
.2byte EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_THAT_WAS, EC_WORD_WILD, EC_WORD_AND, EC_WORD_EXCITING
@ -2294,8 +2294,8 @@ gUnknown_847E1EC::
gUnknown_847E5CC::
.byte 0x10, 0x08, 0x02, 0x04
.string "CAMRYN$", 11
.byte FACILITY_CLASS_PICNICKER_2, 0x01, 0x00
.byte FACILITY_CLASS_PICNICKER_2, 0x01
.align 1
.2byte EC_WORD_LET_S, EC_WORD_BATTLE, EC_WORD_I, EC_WORD_WON_T, EC_WORD_LOSE, EC_WORD_EXCL
.2byte EC_WORD_I, EC_WORD_SAID, EC_WORD_THAT, EC_WORD_I, EC_WORD_WOULD, EC_WORD_WIN
.2byte EC_WORD_OH_QUES, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_DID, EC_WORD_I, EC_WORD_LOSE, EC_WORD_QUES
@ -2374,8 +2374,8 @@ gUnknown_847E5CC::
.byte 255 @ friendship
.string "NATALIA$", 11
.byte FACILITY_CLASS_AROMA_LADY_2, 0x01, 0x00
.byte FACILITY_CLASS_AROMA_LADY_2, 0x01
.align 1
.2byte EC_WORD_THIS, EC_MOVE(SWEET_SCENT), EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_IT, EC_WORD_QUES
.2byte EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_NICE, EC_WORD_QUES, 0xFFFF, 0xFFFF
.2byte EC_WORD_THAT, EC_WORD_WASN_T, EC_WORD_GOOD, EC_WORD_QUES, 0xFFFF, 0xFFFF
@ -2454,8 +2454,8 @@ gUnknown_847E5CC::
.byte 255 @ friendship
.string "KATHLEEN$", 11
.byte FACILITY_CLASS_COOLTRAINER_4, 0x07, 0x00
.byte FACILITY_CLASS_COOLTRAINER_4, 0x07
.align 1
.2byte EC_WORD_TOO, EC_WORD_BAD, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_FOR, EC_WORD_YOU
.2byte EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
.2byte EC_WORD_THIS, EC_WORD_IS, EC_WORD_HARD, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_ELLIPSIS
@ -2539,8 +2539,8 @@ gUnknown_847E5CC::
gUnknown_847E9AC::
.byte 0x11, 0x08, 0x00, 0x03
.string "BRADEN$", 11
.byte FACILITY_CLASS_SWIMMER_MALE_2, 0x01, 0x00
.byte FACILITY_CLASS_SWIMMER_MALE_2, 0x01
.align 1
.2byte EC_WORD_I_AM, EC_WORD_PRETTY, EC_WORD_HAPPY, EC_WORD_WITH, EC_WORD_MY, EC_WORD_TOUGHNESS
.2byte EC_WORD_WROOOAAR_EXCL, 0xFFFF, EC_WORD_SERIOUSLY, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES
.2byte EC_WORD_YOU, EC_WORD_SHOCKED, EC_WORD_ME, EC_WORD_OUT, EC_WORD_OF, EC_WORD_HAPPINESS
@ -2626,8 +2626,8 @@ gUnknown_847E9AC::
gUnknown_847ED8C::
.byte 0x12, 0x08, 0x00, 0x0a
.string "ALLYSON$", 11
.byte FACILITY_CLASS_COOLTRAINER_4, 0x07, 0x00
.byte FACILITY_CLASS_COOLTRAINER_4, 0x07
.align 1
.2byte EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_ABOUT, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_TODAY
.2byte EC_WORD_YES, EC_WORD_EXCL_EXCL, EC_WORD_I, EC_WORD_ADORE, EC_WORD_MYSELF, EC_WORD_TODAY
.2byte EC_WORD_I_WAS, EC_WORD_CONFUSED, EC_WORD_ABOUT, EC_WORD_THINGS, EC_WORD_I, EC_WORD_THINK
@ -2713,8 +2713,8 @@ gUnknown_847ED8C::
gUnknown_847F16C::
.byte 0x13, 0x08, 0x00, 0x0e
.string "ALBERTO$", 11
.byte FACILITY_CLASS_SAILOR_2, 0x05, 0x00
.byte FACILITY_CLASS_SAILOR_2, 0x05
.align 1
.2byte EC_WORD_LET_S, EC_WORD_GET, EC_WORD_WITH, EC_WORD_IT, EC_WORD_RIGHT, EC_WORD_AWAY
.2byte EC_WORD_YO, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_NOW, EC_WORD_EH_QUES
.2byte EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_OVER, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SURRENDER
@ -2800,8 +2800,8 @@ gUnknown_847F16C::
gUnknown_847F54C::
.byte 0x14, 0x08, 0x01, 0x0c
.string "KAT & KIPP$", 11
.byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04, 0x00
.byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04
.align 1
.2byte EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_TRY, EC_WORD_MY, EC_WORD_BEST
.2byte EC_WORD_WAY, EC_WORD_TO, EC_WORD_GO, EC_WORD_MY, EC_WORD_AWESOME, EC_WORD_BROTHER
.2byte EC_WORD_SIGH, EC_WORD_ELLIPSIS, EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_IT, EC_WORD_GOES
@ -2880,8 +2880,8 @@ gUnknown_847F54C::
.byte 255 @ friendship
.string "KAT & KIPP$", 11
.byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04, 0x00
.byte FACILITY_CLASS_SIS_AND_BRO_2, 0x04
.align 1
.2byte EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_WORD_WE, EC_WORD_NEVER, EC_WORD_LOSE, EC_WORD_EXCL
.2byte EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, EC_WORD_WE_RE, EC_WORD_TOO_STRONG, EC_WORD_TO, EC_WORD_LOSE
.2byte EC_WORD_WHAT, EC_WORD_HUH_QUES, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_JOKING, EC_WORD_QUES
@ -2966,8 +2966,8 @@ gUnknown_847F54C::
gUnknown_847F92C::
.byte 0x15, 0x08, 0x01, 0x08
.string "GEB&MEGAN$", 11
.byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00
.byte FACILITY_CLASS_COOL_COUPLE, 0x07
.align 1
.2byte EC_WORD_YOU_RE, EC_WORD_OUR, EC_WORD_OPPONENT, EC_WORD_QUES, EC_WORD_PUSHOVER, EC_WORD_HAHAHA
.2byte EC_WORD_HAHAHA, EC_WORD_SORRY, EC_WORD_MY, EC_WORD_FRIEND, EC_WORD_TOUGH, EC_WORD_LOSS
.2byte EC_WORD_YOU_RE, EC_WORD_SERIOUS, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_FRIEND, EC_WORD_QUES
@ -3046,8 +3046,8 @@ gUnknown_847F92C::
.byte 255 @ friendship
.string "GEB&MEGAN$", 11
.byte FACILITY_CLASS_COOL_COUPLE, 0x07, 0x00
.byte FACILITY_CLASS_COOL_COUPLE, 0x07
.align 1
.2byte EC_WORD_YOU_RE, EC_WORD_OUR, EC_WORD_FOE, EC_WORD_QUES, EC_WORD_GIGGLE, EC_WORD_ELLIPSIS
.2byte EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, 0xFFFF
.2byte EC_WORD_MY, EC_WORD_WORD, EC_WORD_THIS, EC_WORD_IS, EC_WORD_JUST, EC_WORD_INCREDIBLE
@ -3132,8 +3132,8 @@ gUnknown_847F92C::
gUnknown_847FD0C::
.byte 0x16, 0x08, 0x01, 0x05
.string "LISA&LEAH$", 11
.byte FACILITY_CLASS_TWINS_2, 0x01, 0x00
.byte FACILITY_CLASS_TWINS_2, 0x01
.align 1
.2byte EC_WORD_ABSOLUTELY, EC_WORD_WE_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL
.2byte EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
.2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF
@ -3212,8 +3212,8 @@ gUnknown_847FD0C::
.byte 255 @ friendship
.string "LISA&LEAH$", 11
.byte FACILITY_CLASS_TWINS_2, 0x01, 0x00
.byte FACILITY_CLASS_TWINS_2, 0x01
.align 1
.2byte EC_WORD_CAN, EC_WORD_WE, EC_WORD_WIN, EC_WORD_QUES, EC_WORD_IT_S, EC_WORD_EXCITING
.2byte EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_HAPPY
.2byte EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, 0xFFFF
@ -3292,8 +3292,8 @@ gUnknown_847FD0C::
.byte 255 @ friendship
.string "$", 11
.byte FACILITY_CLASS_AQUA_LEADER, 0x01, 0x00
.byte FACILITY_CLASS_AQUA_LEADER, 0x01
.align 1
.2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
.2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
.2byte 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
@ -3377,8 +3377,8 @@ gUnknown_847FD0C::
gUnknown_84800EC::
.byte 0x17, 0x08, 0x02, 0x01
.string "PRISCILLA$", 11
.byte FACILITY_CLASS_TUBER_3, 0x01, 0x00
.byte FACILITY_CLASS_TUBER_3, 0x01
.align 1
.2byte EC_WORD_I_AM, EC_WORD_A_LITTLE, EC_WORD_POKEMON, EC_WORD_GIRL, EC_WORD_HERE_I_COME, EC_WORD_EXCL
.2byte EC_WORD_WAAAH, EC_WORD_EXCL, EC_WORD_DID, EC_WORD_I, EC_WORD_WIN, EC_WORD_QUES
.2byte EC_WORD_OH_DEAR, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_COULDN_T, EC_WORD_WIN, EC_WORD_ELLIPSIS
@ -3457,8 +3457,8 @@ gUnknown_84800EC::
.byte 0 @ friendship
.string "CHARLOTTE$", 11
.byte FACILITY_CLASS_LADY_2, 0x01, 0x00
.byte FACILITY_CLASS_LADY_2, 0x01
.align 1
.2byte EC_WORD_HELLO, EC_WORD_THERE, EC_WORD_I_AM, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_LADY
.2byte EC_WORD_OH, EC_WORD_MY, EC_WORD_MY, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_SORRY
.2byte EC_WORD_YOU_RE, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_LADY
@ -3537,8 +3537,8 @@ gUnknown_84800EC::
.byte 255 @ friendship
.string "SHANIA$", 11
.byte FACILITY_CLASS_SWIMMER_FEMALE_2, 0x01, 0x00
.byte FACILITY_CLASS_SWIMMER_FEMALE_2, 0x01
.align 1
.2byte EC_WORD_A, EC_WORD_POKEMON, EC_WORD_HEROINE, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM
.2byte EC_WORD_AHAHA, EC_WORD_NO, EC_WORD_WAY, EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_SERIOUSLY
.2byte EC_WORD_WHY, EC_WORD_QUES_EXCL, EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_LIE
@ -3622,8 +3622,8 @@ gUnknown_84800EC::
gUnknown_84804CC::
.byte 0x18, 0x08, 0x02, 0x0d
.string "BRENNAN$", 11
.byte FACILITY_CLASS_SAILOR_2, 0x01, 0x00
.byte FACILITY_CLASS_SAILOR_2, 0x01
.align 1
.2byte EC_WORD_TAKE, EC_WORD_THINGS, EC_WORD_EASY, EC_WORD_ELLIPSIS, EC_WORD_THAT_S, EC_WORD_IMPORTANT
.2byte EC_WORD_YOU, EC_WORD_LOSE, EC_WORD_IF, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_EXCL
.2byte EC_WORD_OOPS, EC_WORD_YOU, EC_WORD_GOT, EC_WORD_AN, EC_WORD_EASY, EC_WORD_WIN
@ -3702,8 +3702,8 @@ gUnknown_84804CC::
.byte 255 @ friendship
.string "KADEN$", 11
.byte FACILITY_CLASS_FISHERMAN_2, 0x01, 0x00
.byte FACILITY_CLASS_FISHERMAN_2, 0x01
.align 1
.2byte EC_WORD_MY, EC_WORD_FISHING, EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_IS, EC_WORD_FANTASTIC
.2byte EC_WORD_MY, EC_WORD_FANTASTIC, EC_WORD_FASHION, EC_WORD_APPEAL, EC_WORD_WINS, EC_WORD_OUT
.2byte EC_WORD_UH_OH, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SEE, EC_WORD_I, EC_WORD_LOST
@ -3782,8 +3782,8 @@ gUnknown_84804CC::
.byte 255 @ friendship
.string "EMANUEL$", 11
.byte FACILITY_CLASS_GENTLEMAN_2, 0x01, 0x00
.byte FACILITY_CLASS_GENTLEMAN_2, 0x01
.align 1
.2byte EC_WORD_HMM, EC_WORD_QUES, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_SKILLED, EC_WORD_QUES
.2byte EC_WORD_I, EC_WORD_SEE, EC_WORD_I, EC_WORD_WASN_T, EC_WORD_RIGHT, EC_WORD_ELLIPSIS
.2byte EC_WORD_YOU, EC_WORD_TRULY, EC_WORD_ARE, EC_WORD_A, EC_WORD_MASTER, EC_WORD_TRAINER
@ -3867,8 +3867,8 @@ gUnknown_84804CC::
gUnknown_84808AC::
.byte 0x19, 0x08, 0x00, 0x0c
.string "JARRETT$", 11
.byte FACILITY_CLASS_JUGGLER, 0x02, 0x00
.byte FACILITY_CLASS_JUGGLER, 0x02
.align 1
.2byte EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_AN, EC_MOVE2(EXPLOSION), EC_WORD_PARTY, EC_WORD_EXCL
.2byte EC_WORD_CONGRATS, EC_WORD_FOR, EC_WORD_YOUR, EC_WORD_LOSS, EC_WORD_PARTY, EC_WORD_KID
.2byte EC_WORD_NICE, EC_MOVE(SELF_DESTRUCT), EC_WORD_THERE, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_PERFECT
@ -3954,8 +3954,8 @@ gUnknown_84808AC::
gUnknown_8480C8C::
.byte 0x1a, 0x08, 0x00, 0x0d
.string "OWEN$", 11
.byte FACILITY_CLASS_SUPER_NERD, 0x02, 0x00
.byte FACILITY_CLASS_SUPER_NERD, 0x02
.align 1
.2byte EC_WORD_HERE_IT_IS, EC_MOVE2(THUNDER_WAVE), EC_WORD_DON_T, EC_MOVE2(WRAP), EC_WORD_ME, EC_WORD_EXCL
.2byte EC_WORD_ACCEPT, EC_WORD_MY, EC_MOVE2(PRESENT), EC_WORD_OF, EC_MOVE2(THUNDER_WAVE), EC_WORD_EXCL
.2byte EC_MOVE2(WRAP), EC_MOVE(BIND), EC_WORD_ELECTRIC, EC_MOVE2(WHIRLWIND), EC_WORD_SPIRALING, EC_WORD_AROUND
@ -4041,8 +4041,8 @@ gUnknown_8480C8C::
gUnknown_848106C::
.byte 0x1b, 0x08, 0x00, 0x01
.string "LORENZO$", 11
.byte FACILITY_CLASS_PSYCHIC_3, 0x01, 0x00
.byte FACILITY_CLASS_PSYCHIC_3, 0x01
.align 1
.2byte EC_WORD_THIS, EC_WORD_POWER, EC_WORD_IS, EC_WORD_NOW, EC_WORD_COMPLETE, EC_WORD_EXCL
.2byte EC_WORD_NO, EC_WORD_KEEN_EYE, EC_WORD_CAN, EC_WORD_STOP, EC_WORD_MY, EC_WORD_POWER
.2byte EC_WORD_HERE_IT_IS, EC_WORD_EXCL, EC_MOVE(KINESIS), EC_WORD_EXCL, EC_WORD_ELLIPSIS, EC_WORD_WHAT
@ -4128,8 +4128,8 @@ gUnknown_848106C::
gUnknown_848144C::
.byte 0x1c, 0x08, 0x01, 0x0b
.string "NIA & CARL$", 11
.byte FACILITY_CLASS_COOL_COUPLE, 0x04, 0x00
.byte FACILITY_CLASS_COOL_COUPLE, 0x04
.align 1
.2byte EC_WORD_HERE_GOES, EC_WORD_MY, EC_WORD_DIGITAL, EC_WORD_ROMANTIC, EC_WORD_HERO, EC_WORD_STRATEGY
.2byte EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_DIGITAL, EC_WORD_HYPER, EC_WORD_MODE, EC_WORD_POWER
.2byte EC_WORD_MY, EC_WORD_PERFECT, EC_WORD_STRATEGY, EC_WORD_WAS, EC_MOVE2(BEAT_UP), EC_WORD_QUES
@ -4208,8 +4208,8 @@ gUnknown_848144C::
.byte 255 @ friendship
.string "NIA & CARL$", 11
.byte FACILITY_CLASS_COOL_COUPLE, 0x04, 0x00
.byte FACILITY_CLASS_COOL_COUPLE, 0x04
.align 1
.2byte EC_WORD_MASTER, EC_WORD_COMPLETE, EC_WORD_FASHION, EC_WORD_SYSTEM, EC_WORD_START, EC_WORD_EXCL
.2byte EC_WORD_THAT_S_IT_EXCL, EC_WORD_THE, EC_WORD_POWER, EC_WORD_OF, EC_WORD_OUR, EC_WORD_SYSTEM
.2byte EC_WORD_OKAY, EC_WORD_EXCL, EC_MOVE(THUNDERBOLT), EC_WORD_RUN_AWAY, EC_WORD_SYSTEM, EC_WORD_START
@ -4294,8 +4294,8 @@ gUnknown_848144C::
gUnknown_848182C::
.byte 0x1d, 0x08, 0x01, 0x03
.string "AXE & REN$", 11
.byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02, 0x00
.byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02
.align 1
.2byte EC_WORD_IT_S, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GET, EC_WORD_AWFULLY, EC_WORD_COLD
.2byte EC_WORD_THAT_S, EC_WORD_THAT, EC_WORD_MAN, EC_WORD_I_AM, EC_WORD_COLD, EC_WORD_EXCL
.2byte EC_WORD_I, EC_WORD_CAN_T_WIN, EC_WORD_IN, EC_WORD_THIS, EC_MOVE(SHEER_COLD), EC_WORD_ELLIPSIS
@ -4374,8 +4374,8 @@ gUnknown_848182C::
.byte 255 @ friendship
.string "AXE & REN$", 11
.byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02, 0x00
.byte FACILITY_CLASS_SIS_AND_BRO_2, 0x02
.align 1
.2byte EC_WORD_OUR, EC_WORD_SWIFT_SWIM, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_COLD
.2byte EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_HOT
.2byte EC_WORD_I_AM, EC_WORD_HUNGRY, EC_WORD_FOR, EC_WORD_ANY, EC_WORD_HOT, EC_WORD_EATS
@ -4460,8 +4460,8 @@ gUnknown_848182C::
gUnknown_8481C0C::
.byte 0x1e, 0x08, 0x01, 0x05
.string "KATI & GEB$", 11
.byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02, 0x00
.byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02
.align 1
.2byte EC_WORD_WELCOME, EC_WORD_TO, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_MOVE2(THUNDER_WAVE), EC_MOVE(SANDSTORM)
.2byte EC_WORD_LALALA, EC_WORD_LALALA, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_WORD_LALALA, EC_WORD_LIFE
.2byte EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_MY, EC_MOVE2(FRUSTRATION)
@ -4540,8 +4540,8 @@ gUnknown_8481C0C::
.byte 255 @ friendship
.string "KATI & GEB$", 11
.byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02, 0x00
.byte FACILITY_CLASS_YOUNG_COUPLE_2, 0x02
.align 1
.2byte EC_WORD_I_AM, EC_WORD_PLUS, EC_WORD_YOU_RE, EC_WORD_MINUS, EC_WORD_LOVEY_DOVEY, EC_WORD_MAGNET_PULL
.2byte EC_WORD_DON_T, EC_WORD_STOP, EC_WORD_OUR, EC_WORD_LOVEY_DOVEY, EC_WORD_LOCOMOTIVE, EC_WORD_EXCL
.2byte EC_WORD_HIS, EC_WORD_CRY, EC_WORD_HAS, EC_WORD_CUTE_CHARM, EC_WORD_TOO, EC_WORD_EXCL
@ -4626,8 +4626,8 @@ gUnknown_8481C0C::
gUnknown_8481FEC::
.byte 0x1f, 0x08, 0x02, 0x07
.string "BEN$", 11
.byte FACILITY_CLASS_ROCKER, 0x01, 0x00
.byte FACILITY_CLASS_ROCKER, 0x01
.align 1
.2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER
.2byte EC_WORD_STATIC, EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_YES, EC_WORD_IT, EC_WORD_IS
.2byte EC_WORD_ELECTRIC, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_DIGITAL, EC_WORD_TELEVISION, EC_WORD_I_AM
@ -4706,8 +4706,8 @@ gUnknown_8481FEC::
.byte 255 @ friendship
.string "CAMDEN$", 11
.byte FACILITY_CLASS_ENGINEER, 0x01, 0x00
.byte FACILITY_CLASS_ENGINEER, 0x01
.align 1
.2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER
.2byte EC_WORD_A, EC_MOVE(THUNDERBOLT), EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_TOO, EC_WORD_EXCL
.2byte EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_ABOUT, EC_WORD_WIRELESS, EC_WORD_LINK
@ -4786,8 +4786,8 @@ gUnknown_8481FEC::
.byte 255 @ friendship
.string "ZACKERY$", 11
.byte FACILITY_CLASS_SCIENTIST, 0x01, 0x00
.byte FACILITY_CLASS_SCIENTIST, 0x01
.align 1
.2byte EC_WORD_LALALA, EC_WORD_LET_S, EC_MOVE(SING), EC_WORD_ABOUT, EC_WORD_ELECTRIC, EC_WORD_POWER
.2byte EC_MOVE2(THUNDER_SHOCK), EC_WORD_IS, EC_WORD_ELECTRIC, EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_QUES
.2byte EC_WORD_ELECTRIC, EC_WORD_EXCL, EC_MOVE2(FLASH), EC_MOVE2(FLASH), EC_MOVE2(FLASH), EC_WORD_EXCL_EXCL
@ -4871,8 +4871,8 @@ gUnknown_8481FEC::
gUnknown_84823CC::
.byte 0x20, 0x08, 0x02, 0x0e
.string "MAURA$", 11
.byte FACILITY_CLASS_BEAUTY_2, 0x02, 0x00
.byte FACILITY_CLASS_BEAUTY_2, 0x02
.align 1
.2byte EC_WORD_I_AM, EC_WORD_THE, EC_WORD_GROUP, EC_WORD_LEADER, EC_WORD_EXCL, 0xFFFF
.2byte EC_WORD_WHAT, EC_WORD_AM, EC_WORD_I, EC_WORD_LEADER, EC_WORD_OF, EC_WORD_QUES
.2byte EC_WORD_I_AM, EC_WORD_NO, EC_WORD_LEADER, EC_WORD_IT_S, EC_WORD_A_LITTLE, EC_WORD_LIE
@ -4951,8 +4951,8 @@ gUnknown_84823CC::
.byte 255 @ friendship
.string "MIKAELA$", 11
.byte FACILITY_CLASS_LASS_2, 0x01, 0x00
.byte FACILITY_CLASS_LASS_2, 0x01
.align 1
.2byte EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_THE, EC_WORD_NO_1, EC_WORD_TRAINER, EC_WORD_HERE
.2byte EC_WORD_NEVER, EC_WORD_SAID, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_AT
.2byte EC_WORD_NEXT, EC_WORD_TIME, EC_WORD_I, EC_WORD_WILL, EC_WORD_BE, EC_WORD_OVERWHELMING
@ -5031,8 +5031,8 @@ gUnknown_84823CC::
.byte 255 @ friendship
.string "FLINT$", 11
.byte FACILITY_CLASS_ENGINEER, 0x04, 0x00
.byte FACILITY_CLASS_ENGINEER, 0x04
.align 1
.2byte EC_WORD_I_AM, EC_WORD_THE, EC_MOVE2(MILK_DRINK), EC_WORD_WORLD, EC_WORD_LEADER, EC_WORD_EXCL
.2byte EC_WORD_I_VE, EC_WORD_WON, EC_WORD_THIS, EC_MOVE2(MILK_DRINK), EC_WORD_MATCH, EC_WORD_EXCL
.2byte EC_WORD_I, EC_WORD_CAN_T, EC_WORD_DRINK, EC_WORD_ANY, EC_WORD_MORE, EC_WORD_DRINKS

View File

@ -43,6 +43,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves);
void RunBattleScriptCommands_PopCallbacksStack(void);
void RunBattleScriptCommands(void);
bool8 TryRunFromBattle(u8 bank);
void sub_800FD9C(void);
extern const u8 gStatusConditionString_PoisonJpn[8];
extern const u8 gStatusConditionString_SleepJpn[8];

View File

@ -17,5 +17,6 @@ void BattleSetup_StartTrainerBattle(void);
u8 *BattleSetup_GetScriptAddrAfterBattle(void);
u8 *BattleSetup_GetTrainerPostBattleScript(void);
void sub_80803FC(void);
u8 sub_8080060(void);
#endif // GUARD_BATTLE_SETUP_H

View File

@ -3,6 +3,8 @@
#include "global.h"
void sub_8149DFC(u8 a1);
void sub_8149DFC(u8 a0);
bool8 sub_80D08F8(void);
void sub_80D08B8(u8 a0);
#endif // GUARD_BATTLE_TRANSITION_H

View File

@ -59,4 +59,7 @@ extern u16 gSpecialVar_0x8014;
extern u16 gSpecialVar_Result;
extern u16 gSpecialVar_0x8004;
extern u16 gUnknown_20370DA;
extern u16 gUnknown_20370DC;
#endif // GUARD_EVENT_DATA_H

View File

@ -709,6 +709,21 @@ struct MEventBuffers
/*0x344 0x3464*/ u32 unk_344[2][5];
}; // 0x36C 0x348C
struct TrainerTowerLog
{
u32 unk0;
u32 unk4;
u8 unk8;
u8 unk9;
u8 unkA_0:1;
u8 unkA_1:1;
u8 unkA_2:1;
u8 unkA_3:1;
u8 unkA_4:1;
u8 unkA_5:1;
u8 unkA_6:2;
};
struct SaveBlock1
{
/*0x0000*/ struct Coords16 pos;
@ -766,7 +781,7 @@ struct SaveBlock1
/*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS];
/*0x3A94*/ u8 filler3A94[0x2A0];
/*0x3D34*/ u32 unkArrayIdx;
/*0x3D38*/ u32 unkArray[4][3];
/*0x3D38*/ struct TrainerTowerLog unkArray[4];
};
extern struct SaveBlock1* gSaveBlock1Ptr;

View File

@ -64,5 +64,6 @@ void sub_809A2DC(void);
void sub_809A2A4(void);
void sub_8099E90(u16, u8 *);
void sub_809A824(u16 itemId);
bool8 AddBagItem(u16 itemId, u16 amount);
#endif // ITEM_H

View File

@ -66,6 +66,7 @@ void DoSoftReset(void);
void ClearPokemonCrySongs(void);
void RestoreSerialTimer3IntrHandlers(void);
void SetVBlankCounter1Ptr(u32 *ptr);
void DisableVBlankCounter1(void);
extern const char RomHeaderGameCode[4];
extern const char RomHeaderSoftwareVersion;

View File

@ -88,6 +88,8 @@ void SetCurrentMapLayout(u16 mapDataId);
void SetWarpDestinationToFixedHoleWarp(s16 x, s16 y);
void ResetInitialPlayerAvatarState(void);
void sub_8055D40(u16 mapDataId);
void sub_80563F0(void);
extern u8 gUnknown_2031DD8;
extern u8 gUnknown_2036E28;

View File

@ -670,4 +670,6 @@ void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry,
void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
void BattleAnimateBackSprite(struct Sprite* sprite, u16 species);
void PlayMapChosenOrBattleBGM(u16 songId);
#endif // GUARD_POKEMON_H

View File

@ -287,7 +287,7 @@ void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey)
int i;
for(i = 0; i < 4; i++)
ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->unkArray[i][1], encryptionKey);
ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->unkArray[i].unk4, encryptionKey);
sub_8054F38(encryptionKey);
ApplyNewEncryptionKeyToBagItems_(encryptionKey);

View File

@ -53,32 +53,32 @@ const u8 sScriptConditionTable[6][3] =
#define SCRCMD_DEF(name) bool8 name(struct ScriptContext *ctx)
#define SCRCMD_DEF(name) bool8 ScrCmd_##name(struct ScriptContext *ctx)
SCRCMD_DEF(ScrCmd_nop)
SCRCMD_DEF(nop)
{
return FALSE;
}
SCRCMD_DEF(ScrCmd_nop1)
SCRCMD_DEF(nop1)
{
return FALSE;
}
SCRCMD_DEF(ScrCmd_end)
SCRCMD_DEF(end)
{
StopScript(ctx);
return FALSE;
}
SCRCMD_DEF(ScrCmd_gotonative)
SCRCMD_DEF(gotonative)
{
bool8 (*func)(void) = (bool8 (*)(void))ScriptReadWord(ctx);
SetupNativeScript(ctx, func);
return TRUE;
}
SCRCMD_DEF(ScrCmd_special)
SCRCMD_DEF(special)
{
u16 (*const *specialPtr)(void) = gSpecials + ScriptReadHalfword(ctx);
if (specialPtr < gSpecialsEnd)
@ -88,7 +88,7 @@ SCRCMD_DEF(ScrCmd_special)
return FALSE;
}
SCRCMD_DEF(ScrCmd_specialvar)
SCRCMD_DEF(specialvar)
{
u16 * varPtr = GetVarPointer(ScriptReadHalfword(ctx));
u16 (*const *specialPtr)(void) = gSpecials + ScriptReadHalfword(ctx);
@ -99,40 +99,40 @@ SCRCMD_DEF(ScrCmd_specialvar)
return FALSE;
}
SCRCMD_DEF(ScrCmd_callnative)
SCRCMD_DEF(callnative)
{
void (*func )(void) = ((void (*)(void))ScriptReadWord(ctx));
func();
return FALSE;
}
SCRCMD_DEF(ScrCmd_waitstate)
SCRCMD_DEF(waitstate)
{
ScriptContext1_Stop();
return TRUE;
}
SCRCMD_DEF(ScrCmd_goto)
SCRCMD_DEF(goto)
{
const u8 * scrptr = (const u8 *)ScriptReadWord(ctx);
ScriptJump(ctx, scrptr);
return FALSE;
}
SCRCMD_DEF(ScrCmd_return)
SCRCMD_DEF(return)
{
ScriptReturn(ctx);
return FALSE;
}
SCRCMD_DEF(ScrCmd_call)
SCRCMD_DEF(call)
{
const u8 * scrptr = (const u8 *)ScriptReadWord(ctx);
ScriptCall(ctx, scrptr);
return FALSE;
}
SCRCMD_DEF(ScrCmd_goto_if)
SCRCMD_DEF(goto_if)
{
u8 condition = ScriptReadByte(ctx);
const u8 * scrptr = (const u8 *)ScriptReadWord(ctx);
@ -141,7 +141,7 @@ SCRCMD_DEF(ScrCmd_goto_if)
return FALSE;
}
SCRCMD_DEF(ScrCmd_call_if)
SCRCMD_DEF(call_if)
{
u8 condition = ScriptReadByte(ctx);
const u8 * scrptr = (const u8 *)ScriptReadWord(ctx);
@ -150,7 +150,7 @@ SCRCMD_DEF(ScrCmd_call_if)
return FALSE;
}
SCRCMD_DEF(ScrCmd_setvaddress)
SCRCMD_DEF(setvaddress)
{
u32 addr1 = (u32)ctx->scriptPtr - 1;
u32 addr2 = ScriptReadWord(ctx);
@ -159,21 +159,21 @@ SCRCMD_DEF(ScrCmd_setvaddress)
return FALSE;
}
SCRCMD_DEF(ScrCmd_vgoto)
SCRCMD_DEF(vgoto)
{
const u8 * scrptr = (const u8 *)ScriptReadWord(ctx);
ScriptJump(ctx, scrptr - gVScriptOffset);
return FALSE;
}
SCRCMD_DEF(ScrCmd_vcall)
SCRCMD_DEF(vcall)
{
const u8 * scrptr = (const u8 *)ScriptReadWord(ctx);
ScriptCall(ctx, scrptr - gVScriptOffset);
return FALSE;
}
SCRCMD_DEF(ScrCmd_vgoto_if)
SCRCMD_DEF(vgoto_if)
{
u8 condition = ScriptReadByte(ctx);
const u8 * scrptr = (const u8 *)ScriptReadWord(ctx) - gVScriptOffset;
@ -182,7 +182,7 @@ SCRCMD_DEF(ScrCmd_vgoto_if)
return FALSE;
}
SCRCMD_DEF(ScrCmd_vcall_if)
SCRCMD_DEF(vcall_if)
{
u8 condition = ScriptReadByte(ctx);
const u8 * scrptr = (const u8 *)ScriptReadWord(ctx) - gVScriptOffset;
@ -191,7 +191,7 @@ SCRCMD_DEF(ScrCmd_vcall_if)
return FALSE;
}
SCRCMD_DEF(ScrCmd_gotostd)
SCRCMD_DEF(gotostd)
{
u8 stdIdx = ScriptReadByte(ctx);
const u8 *const * script = gStdScripts + stdIdx;
@ -200,7 +200,7 @@ SCRCMD_DEF(ScrCmd_gotostd)
return FALSE;
}
SCRCMD_DEF(ScrCmd_callstd)
SCRCMD_DEF(callstd)
{
u8 stdIdx = ScriptReadByte(ctx);
const u8 *const * script = gStdScripts + stdIdx;
@ -209,7 +209,7 @@ SCRCMD_DEF(ScrCmd_callstd)
return FALSE;
}
SCRCMD_DEF(ScrCmd_gotostd_if)
SCRCMD_DEF(gotostd_if)
{
u8 condition = ScriptReadByte(ctx);
u8 stdIdx = ScriptReadByte(ctx);
@ -222,7 +222,7 @@ SCRCMD_DEF(ScrCmd_gotostd_if)
return FALSE;
}
SCRCMD_DEF(ScrCmd_callstd_if)
SCRCMD_DEF(callstd_if)
{
u8 condition = ScriptReadByte(ctx);
u8 stdIdx = ScriptReadByte(ctx);
@ -235,26 +235,26 @@ SCRCMD_DEF(ScrCmd_callstd_if)
return FALSE;
}
SCRCMD_DEF(ScrCmd_gotoram)
SCRCMD_DEF(gotoram)
{
ScriptJump(ctx, gRAMScriptPtr);
return FALSE;
}
SCRCMD_DEF(ScrCmd_killscript)
SCRCMD_DEF(killscript)
{
ClearRamScript();
StopScript(ctx);
return TRUE;
}
SCRCMD_DEF(ScrCmd_setmysteryeventstatus)
SCRCMD_DEF(setmysteryeventstatus)
{
SetMysteryEventScriptStatus(ScriptReadByte(ctx));
return FALSE;
}
SCRCMD_DEF(ScrCmd_cmdCF)
SCRCMD_DEF(cmdCF)
{
const u8 * script = sub_8069E48();
if (script != NULL)
@ -265,42 +265,42 @@ SCRCMD_DEF(ScrCmd_cmdCF)
return FALSE;
}
SCRCMD_DEF(ScrCmd_loadword)
SCRCMD_DEF(loadword)
{
u8 which = ScriptReadByte(ctx);
ctx->data[which] = ScriptReadWord(ctx);
return FALSE;
}
SCRCMD_DEF(ScrCmd_loadbytefromaddr)
SCRCMD_DEF(loadbytefromaddr)
{
u8 which = ScriptReadByte(ctx);
ctx->data[which] = *(const u8 *)ScriptReadWord(ctx);
return FALSE;
}
SCRCMD_DEF(ScrCmd_writebytetoaddr)
SCRCMD_DEF(writebytetoaddr)
{
u8 value = ScriptReadByte(ctx);
*(u8 *)ScriptReadWord(ctx) = value;
return FALSE;
}
SCRCMD_DEF(ScrCmd_loadbyte)
SCRCMD_DEF(loadbyte)
{
u8 which = ScriptReadByte(ctx);
ctx->data[which] = ScriptReadByte(ctx);
return FALSE;
}
SCRCMD_DEF(ScrCmd_setptrbyte)
SCRCMD_DEF(setptrbyte)
{
u8 which = ScriptReadByte(ctx);
*(u8 *)ScriptReadWord(ctx) = ctx->data[which];
return FALSE;
}
SCRCMD_DEF(ScrCmd_copylocal)
SCRCMD_DEF(copylocal)
{
u8 whichDst = ScriptReadByte(ctx);
u8 whichSrc = ScriptReadByte(ctx);
@ -308,21 +308,21 @@ SCRCMD_DEF(ScrCmd_copylocal)
return FALSE;
}
SCRCMD_DEF(ScrCmd_copybyte)
SCRCMD_DEF(copybyte)
{
u8 * dest = (u8 *)ScriptReadWord(ctx);
*dest = *(const u8 *)ScriptReadWord(ctx);
return FALSE;
}
SCRCMD_DEF(ScrCmd_setvar)
SCRCMD_DEF(setvar)
{
u16 * varPtr = GetVarPointer(ScriptReadHalfword(ctx));
*varPtr = ScriptReadHalfword(ctx);
return FALSE;
}
SCRCMD_DEF(ScrCmd_copyvar)
SCRCMD_DEF(copyvar)
{
u16 * destPtr = GetVarPointer(ScriptReadHalfword(ctx));
u16 * srcPtr = GetVarPointer(ScriptReadHalfword(ctx));
@ -330,7 +330,7 @@ SCRCMD_DEF(ScrCmd_copyvar)
return FALSE;
}
SCRCMD_DEF(ScrCmd_setorcopyvar)
SCRCMD_DEF(setorcopyvar)
{
u16 * destPtr = GetVarPointer(ScriptReadHalfword(ctx));
*destPtr = VarGet(ScriptReadHalfword(ctx));
@ -355,7 +355,7 @@ u8 compare_012(u16 left, u16 right)
}
// comparelocaltolocal
SCRCMD_DEF(ScrCmd_compare_local_to_local)
SCRCMD_DEF(compare_local_to_local)
{
const u8 value1 = ctx->data[ScriptReadByte(ctx)];
const u8 value2 = ctx->data[ScriptReadByte(ctx)];
@ -365,7 +365,7 @@ SCRCMD_DEF(ScrCmd_compare_local_to_local)
}
// comparelocaltoimm
SCRCMD_DEF(ScrCmd_compare_local_to_value)
SCRCMD_DEF(compare_local_to_value)
{
const u8 value1 = ctx->data[ScriptReadByte(ctx)];
const u8 value2 = ScriptReadByte(ctx);
@ -374,7 +374,7 @@ SCRCMD_DEF(ScrCmd_compare_local_to_value)
return FALSE;
}
SCRCMD_DEF(ScrCmd_compare_local_to_addr)
SCRCMD_DEF(compare_local_to_addr)
{
const u8 value1 = ctx->data[ScriptReadByte(ctx)];
const u8 value2 = *(const u8 *)ScriptReadWord(ctx);
@ -383,7 +383,7 @@ SCRCMD_DEF(ScrCmd_compare_local_to_addr)
return FALSE;
}
SCRCMD_DEF(ScrCmd_compare_addr_to_local)
SCRCMD_DEF(compare_addr_to_local)
{
const u8 value1 = *(const u8 *)ScriptReadWord(ctx);
const u8 value2 = ctx->data[ScriptReadByte(ctx)];
@ -392,7 +392,7 @@ SCRCMD_DEF(ScrCmd_compare_addr_to_local)
return FALSE;
}
SCRCMD_DEF(ScrCmd_compare_addr_to_value)
SCRCMD_DEF(compare_addr_to_value)
{
const u8 value1 = *(const u8 *)ScriptReadWord(ctx);
const u8 value2 = ScriptReadByte(ctx);
@ -401,7 +401,7 @@ SCRCMD_DEF(ScrCmd_compare_addr_to_value)
return FALSE;
}
SCRCMD_DEF(ScrCmd_compare_addr_to_addr)
SCRCMD_DEF(compare_addr_to_addr)
{
const u8 value1 = *(const u8 *)ScriptReadWord(ctx);
const u8 value2 = *(const u8 *)ScriptReadWord(ctx);
@ -410,7 +410,7 @@ SCRCMD_DEF(ScrCmd_compare_addr_to_addr)
return FALSE;
}
SCRCMD_DEF(ScrCmd_compare_var_to_value)
SCRCMD_DEF(compare_var_to_value)
{
const u16 value1 = *GetVarPointer(ScriptReadHalfword(ctx));
const u16 value2 = ScriptReadHalfword(ctx);
@ -419,7 +419,7 @@ SCRCMD_DEF(ScrCmd_compare_var_to_value)
return FALSE;
}
SCRCMD_DEF(ScrCmd_compare_var_to_var)
SCRCMD_DEF(compare_var_to_var)
{
const u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx));
const u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx));
@ -428,21 +428,21 @@ SCRCMD_DEF(ScrCmd_compare_var_to_var)
return FALSE;
}
SCRCMD_DEF(ScrCmd_addvar)
SCRCMD_DEF(addvar)
{
u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
*ptr += ScriptReadHalfword(ctx);
return FALSE;
}
SCRCMD_DEF(ScrCmd_subvar)
SCRCMD_DEF(subvar)
{
u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
*ptr -= VarGet(ScriptReadHalfword(ctx));
return FALSE;
}
SCRCMD_DEF(ScrCmd_random)
SCRCMD_DEF(random)
{
u16 max = VarGet(ScriptReadHalfword(ctx));
@ -450,7 +450,7 @@ SCRCMD_DEF(ScrCmd_random)
return FALSE;
}
SCRCMD_DEF(ScrCmd_giveitem)
SCRCMD_DEF(giveitem)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
@ -460,7 +460,7 @@ SCRCMD_DEF(ScrCmd_giveitem)
return FALSE;
}
SCRCMD_DEF(ScrCmd_takeitem)
SCRCMD_DEF(takeitem)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
@ -469,7 +469,7 @@ SCRCMD_DEF(ScrCmd_takeitem)
return FALSE;
}
SCRCMD_DEF(ScrCmd_checkitemspace)
SCRCMD_DEF(checkitemspace)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
@ -478,7 +478,7 @@ SCRCMD_DEF(ScrCmd_checkitemspace)
return FALSE;
}
SCRCMD_DEF(ScrCmd_checkitem)
SCRCMD_DEF(checkitem)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
@ -487,7 +487,7 @@ SCRCMD_DEF(ScrCmd_checkitem)
return FALSE;
}
SCRCMD_DEF(ScrCmd_checkitemtype)
SCRCMD_DEF(checkitemtype)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
@ -495,7 +495,7 @@ SCRCMD_DEF(ScrCmd_checkitemtype)
return FALSE;
}
SCRCMD_DEF(ScrCmd_givepcitem)
SCRCMD_DEF(givepcitem)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u16 quantity = VarGet(ScriptReadHalfword(ctx));
@ -504,7 +504,7 @@ SCRCMD_DEF(ScrCmd_givepcitem)
return FALSE;
}
SCRCMD_DEF(ScrCmd_checkpcitem)
SCRCMD_DEF(checkpcitem)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u16 quantity = VarGet(ScriptReadHalfword(ctx));
@ -513,7 +513,7 @@ SCRCMD_DEF(ScrCmd_checkpcitem)
return FALSE;
}
SCRCMD_DEF(ScrCmd_givedecoration)
SCRCMD_DEF(givedecoration)
{
u32 decorId = VarGet(ScriptReadHalfword(ctx));
@ -521,7 +521,7 @@ SCRCMD_DEF(ScrCmd_givedecoration)
return FALSE;
}
SCRCMD_DEF(ScrCmd_takedecoration)
SCRCMD_DEF(takedecoration)
{
u32 decorId = VarGet(ScriptReadHalfword(ctx));
@ -529,7 +529,7 @@ SCRCMD_DEF(ScrCmd_takedecoration)
return FALSE;
}
SCRCMD_DEF(ScrCmd_checkdecorspace)
SCRCMD_DEF(checkdecorspace)
{
u32 decorId = VarGet(ScriptReadHalfword(ctx));
@ -537,7 +537,7 @@ SCRCMD_DEF(ScrCmd_checkdecorspace)
return FALSE;
}
SCRCMD_DEF(ScrCmd_checkdecor)
SCRCMD_DEF(checkdecor)
{
u32 decorId = VarGet(ScriptReadHalfword(ctx));
@ -545,31 +545,31 @@ SCRCMD_DEF(ScrCmd_checkdecor)
return FALSE;
}
SCRCMD_DEF(ScrCmd_setflag)
SCRCMD_DEF(setflag)
{
FlagSet(ScriptReadHalfword(ctx));
return FALSE;
}
SCRCMD_DEF(ScrCmd_clearflag)
SCRCMD_DEF(clearflag)
{
FlagClear(ScriptReadHalfword(ctx));
return FALSE;
}
SCRCMD_DEF(ScrCmd_checkflag)
SCRCMD_DEF(checkflag)
{
ctx->comparisonResult = FlagGet(ScriptReadHalfword(ctx));
return FALSE;
}
SCRCMD_DEF(ScrCmd_incrementgamestat)
SCRCMD_DEF(incrementgamestat)
{
IncrementGameStat(ScriptReadByte(ctx));
return FALSE;
}
SCRCMD_DEF(ScrCmd_comparestattoword)
SCRCMD_DEF(comparestattoword)
{
u8 statIdx = ScriptReadByte(ctx);
u32 value = ScriptReadWord(ctx);
@ -584,7 +584,7 @@ SCRCMD_DEF(ScrCmd_comparestattoword)
return FALSE;
}
SCRCMD_DEF(ScrCmd_cmdD0)
SCRCMD_DEF(cmdD0)
{
u16 value = ScriptReadHalfword(ctx);
sub_8115748(value);
@ -592,14 +592,14 @@ SCRCMD_DEF(ScrCmd_cmdD0)
return FALSE;
}
SCRCMD_DEF(ScrCmd_animateflash)
SCRCMD_DEF(animateflash)
{
sub_807F028(ScriptReadByte(ctx));
ScriptContext1_Stop();
return TRUE;
}
SCRCMD_DEF(ScrCmd_setflashradius)
SCRCMD_DEF(setflashradius)
{
u16 flashLevel = VarGet(ScriptReadHalfword(ctx));
@ -615,14 +615,14 @@ static bool8 IsPaletteNotActive(void)
return FALSE;
}
SCRCMD_DEF(ScrCmd_fadescreen)
SCRCMD_DEF(fadescreen)
{
fade_screen(ScriptReadByte(ctx), 0);
SetupNativeScript(ctx, IsPaletteNotActive);
return TRUE;
}
SCRCMD_DEF(ScrCmd_fadescreenspeed)
SCRCMD_DEF(fadescreenspeed)
{
u8 mode = ScriptReadByte(ctx);
u8 speed = ScriptReadByte(ctx);
@ -642,14 +642,14 @@ static bool8 RunPauseTimer(void)
return FALSE;
}
SCRCMD_DEF(ScrCmd_delay)
SCRCMD_DEF(delay)
{
sPauseCounter = ScriptReadHalfword(ctx);
SetupNativeScript(ctx, RunPauseTimer);
return TRUE;
}
SCRCMD_DEF(ScrCmd_initclock)
SCRCMD_DEF(initclock)
{
// u8 hour = VarGet(ScriptReadHalfword(ctx));
// u8 minute = VarGet(ScriptReadHalfword(ctx));
@ -658,13 +658,13 @@ SCRCMD_DEF(ScrCmd_initclock)
return FALSE;
}
SCRCMD_DEF(ScrCmd_dodailyevents)
SCRCMD_DEF(dodailyevents)
{
// DoTimeBasedEvents();
return FALSE;
}
SCRCMD_DEF(ScrCmd_gettime)
SCRCMD_DEF(gettime)
{
// RtcCalcLocalTime();
// gSpecialVar_0x8000 = gLocalTime.hours;
@ -676,7 +676,7 @@ SCRCMD_DEF(ScrCmd_gettime)
return FALSE;
}
SCRCMD_DEF(ScrCmd_setweather)
SCRCMD_DEF(setweather)
{
u16 weather = VarGet(ScriptReadHalfword(ctx));
@ -684,25 +684,25 @@ SCRCMD_DEF(ScrCmd_setweather)
return FALSE;
}
SCRCMD_DEF(ScrCmd_resetweather)
SCRCMD_DEF(resetweather)
{
SetSav1WeatherFromCurrMapHeader();
return FALSE;
}
SCRCMD_DEF(ScrCmd_doweather)
SCRCMD_DEF(doweather)
{
DoCurrentWeather();
return FALSE;
}
SCRCMD_DEF(ScrCmd_setstepcallback)
SCRCMD_DEF(setstepcallback)
{
ActivatePerStepCallback(ScriptReadByte(ctx));
return FALSE;
}
SCRCMD_DEF(ScrCmd_setmaplayoutindex)
SCRCMD_DEF(setmaplayoutindex)
{
u16 value = VarGet(ScriptReadHalfword(ctx));
@ -710,7 +710,7 @@ SCRCMD_DEF(ScrCmd_setmaplayoutindex)
return FALSE;
}
SCRCMD_DEF(ScrCmd_warp)
SCRCMD_DEF(warp)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@ -724,7 +724,7 @@ SCRCMD_DEF(ScrCmd_warp)
return TRUE;
}
SCRCMD_DEF(ScrCmd_warpsilent)
SCRCMD_DEF(warpsilent)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@ -738,7 +738,7 @@ SCRCMD_DEF(ScrCmd_warpsilent)
return TRUE;
}
SCRCMD_DEF(ScrCmd_warpdoor)
SCRCMD_DEF(warpdoor)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@ -752,7 +752,7 @@ SCRCMD_DEF(ScrCmd_warpdoor)
return TRUE;
}
SCRCMD_DEF(ScrCmd_warphole)
SCRCMD_DEF(warphole)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@ -769,7 +769,7 @@ SCRCMD_DEF(ScrCmd_warphole)
return TRUE;
}
SCRCMD_DEF(ScrCmd_warpteleport)
SCRCMD_DEF(warpteleport)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@ -783,7 +783,7 @@ SCRCMD_DEF(ScrCmd_warpteleport)
return TRUE;
}
SCRCMD_DEF(ScrCmd_warpD1)
SCRCMD_DEF(warpD1)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@ -798,7 +798,7 @@ SCRCMD_DEF(ScrCmd_warpD1)
return TRUE;
}
SCRCMD_DEF(ScrCmd_setwarp)
SCRCMD_DEF(setwarp)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@ -810,7 +810,7 @@ SCRCMD_DEF(ScrCmd_setwarp)
return FALSE;
}
SCRCMD_DEF(ScrCmd_setdynamicwarp)
SCRCMD_DEF(setdynamicwarp)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@ -822,7 +822,7 @@ SCRCMD_DEF(ScrCmd_setdynamicwarp)
return FALSE;
}
SCRCMD_DEF(ScrCmd_setdivewarp)
SCRCMD_DEF(setdivewarp)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@ -834,7 +834,7 @@ SCRCMD_DEF(ScrCmd_setdivewarp)
return FALSE;
}
SCRCMD_DEF(ScrCmd_setholewarp)
SCRCMD_DEF(setholewarp)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@ -846,7 +846,7 @@ SCRCMD_DEF(ScrCmd_setholewarp)
return FALSE;
}
SCRCMD_DEF(ScrCmd_setescapewarp)
SCRCMD_DEF(setescapewarp)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
@ -858,7 +858,7 @@ SCRCMD_DEF(ScrCmd_setescapewarp)
return FALSE;
}
SCRCMD_DEF(ScrCmd_getplayerxy)
SCRCMD_DEF(getplayerxy)
{
u16 *pX = GetVarPointer(ScriptReadHalfword(ctx));
u16 *pY = GetVarPointer(ScriptReadHalfword(ctx));
@ -868,13 +868,13 @@ SCRCMD_DEF(ScrCmd_getplayerxy)
return FALSE;
}
SCRCMD_DEF(ScrCmd_getpartysize)
SCRCMD_DEF(getpartysize)
{
gSpecialVar_Result = CalculatePlayerPartyCount();
return FALSE;
}
SCRCMD_DEF(ScrCmd_playse)
SCRCMD_DEF(playse)
{
PlaySE(ScriptReadHalfword(ctx));
return FALSE;
@ -888,13 +888,13 @@ static bool8 WaitForSoundEffectFinish(void)
return FALSE;
}
SCRCMD_DEF(ScrCmd_waitse)
SCRCMD_DEF(waitse)
{
SetupNativeScript(ctx, WaitForSoundEffectFinish);
return TRUE;
}
SCRCMD_DEF(ScrCmd_playfanfare)
SCRCMD_DEF(playfanfare)
{
PlayFanfare(ScriptReadHalfword(ctx));
return FALSE;
@ -905,13 +905,13 @@ static bool8 WaitForFanfareFinish(void)
return IsFanfareTaskInactive();
}
SCRCMD_DEF(ScrCmd_waitfanfare)
SCRCMD_DEF(waitfanfare)
{
SetupNativeScript(ctx, WaitForFanfareFinish);
return TRUE;
}
SCRCMD_DEF(ScrCmd_playbgm)
SCRCMD_DEF(playbgm)
{
u16 songId = ScriptReadHalfword(ctx);
bool8 val = ScriptReadByte(ctx);
@ -924,13 +924,13 @@ SCRCMD_DEF(ScrCmd_playbgm)
return FALSE;
}
SCRCMD_DEF(ScrCmd_savebgm)
SCRCMD_DEF(savebgm)
{
Overworld_SetSavedMusic(ScriptReadHalfword(ctx));
return FALSE;
}
SCRCMD_DEF(ScrCmd_fadedefaultbgm)
SCRCMD_DEF(fadedefaultbgm)
{
if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3)
return FALSE;
@ -938,7 +938,7 @@ SCRCMD_DEF(ScrCmd_fadedefaultbgm)
return FALSE;
}
SCRCMD_DEF(ScrCmd_fadenewbgm)
SCRCMD_DEF(fadenewbgm)
{
u16 music = ScriptReadHalfword(ctx);
if (gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3)
@ -947,7 +947,7 @@ SCRCMD_DEF(ScrCmd_fadenewbgm)
return FALSE;
}
SCRCMD_DEF(ScrCmd_fadeoutbgm)
SCRCMD_DEF(fadeoutbgm)
{
u8 speed = ScriptReadByte(ctx);
@ -961,7 +961,7 @@ SCRCMD_DEF(ScrCmd_fadeoutbgm)
return TRUE;
}
SCRCMD_DEF(ScrCmd_fadeinbgm)
SCRCMD_DEF(fadeinbgm)
{
u8 speed = ScriptReadByte(ctx);
@ -974,7 +974,7 @@ SCRCMD_DEF(ScrCmd_fadeinbgm)
return FALSE;
}
SCRCMD_DEF(ScrCmd_applymovement)
SCRCMD_DEF(applymovement)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
const void *movementScript = (const void *)ScriptReadWord(ctx);
@ -984,7 +984,7 @@ SCRCMD_DEF(ScrCmd_applymovement)
return FALSE;
}
SCRCMD_DEF(ScrCmd_applymovement_at)
SCRCMD_DEF(applymovement_at)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
const void *movementScript = (const void *)ScriptReadWord(ctx);
@ -1001,7 +1001,7 @@ static bool8 WaitForMovementFinish(void)
return ScriptMovement_IsObjectMovementFinished(sMovingNpcId, sMovingNpcMapId, sMovingNpcMapBank);
}
SCRCMD_DEF(ScrCmd_waitmovement)
SCRCMD_DEF(waitmovement)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
@ -1013,7 +1013,7 @@ SCRCMD_DEF(ScrCmd_waitmovement)
return TRUE;
}
SCRCMD_DEF(ScrCmd_waitmovement_at)
SCRCMD_DEF(waitmovement_at)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 mapBank;
@ -1029,7 +1029,7 @@ SCRCMD_DEF(ScrCmd_waitmovement_at)
return TRUE;
}
SCRCMD_DEF(ScrCmd_removeobject)
SCRCMD_DEF(removeobject)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
@ -1037,7 +1037,7 @@ SCRCMD_DEF(ScrCmd_removeobject)
return FALSE;
}
SCRCMD_DEF(ScrCmd_removeobject_at)
SCRCMD_DEF(removeobject_at)
{
u16 objectId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
@ -1047,7 +1047,7 @@ SCRCMD_DEF(ScrCmd_removeobject_at)
return FALSE;
}
SCRCMD_DEF(ScrCmd_addobject)
SCRCMD_DEF(addobject)
{
u16 objectId = VarGet(ScriptReadHalfword(ctx));
@ -1055,7 +1055,7 @@ SCRCMD_DEF(ScrCmd_addobject)
return FALSE;
}
SCRCMD_DEF(ScrCmd_addobject_at)
SCRCMD_DEF(addobject_at)
{
u16 objectId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
@ -1065,7 +1065,7 @@ SCRCMD_DEF(ScrCmd_addobject_at)
return FALSE;
}
SCRCMD_DEF(ScrCmd_setobjectxy)
SCRCMD_DEF(setobjectxy)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u16 x = VarGet(ScriptReadHalfword(ctx));
@ -1075,7 +1075,7 @@ SCRCMD_DEF(ScrCmd_setobjectxy)
return FALSE;
}
SCRCMD_DEF(ScrCmd_setobjectxyperm)
SCRCMD_DEF(setobjectxyperm)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u16 x = VarGet(ScriptReadHalfword(ctx));
@ -1085,7 +1085,7 @@ SCRCMD_DEF(ScrCmd_setobjectxyperm)
return FALSE;
}
SCRCMD_DEF(ScrCmd_moveobjectoffscreen)
SCRCMD_DEF(moveobjectoffscreen)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
@ -1093,7 +1093,7 @@ SCRCMD_DEF(ScrCmd_moveobjectoffscreen)
return FALSE;
}
SCRCMD_DEF(ScrCmd_showobject_at)
SCRCMD_DEF(showobject_at)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
@ -1103,7 +1103,7 @@ SCRCMD_DEF(ScrCmd_showobject_at)
return FALSE;
}
SCRCMD_DEF(ScrCmd_hideobject_at)
SCRCMD_DEF(hideobject_at)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
@ -1113,7 +1113,7 @@ SCRCMD_DEF(ScrCmd_hideobject_at)
return FALSE;
}
SCRCMD_DEF(ScrCmd_setobjectpriority)
SCRCMD_DEF(setobjectpriority)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
@ -1124,7 +1124,7 @@ SCRCMD_DEF(ScrCmd_setobjectpriority)
return FALSE;
}
SCRCMD_DEF(ScrCmd_resetobjectpriority)
SCRCMD_DEF(resetobjectpriority)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
@ -1134,7 +1134,7 @@ SCRCMD_DEF(ScrCmd_resetobjectpriority)
return FALSE;
}
SCRCMD_DEF(ScrCmd_faceplayer)
SCRCMD_DEF(faceplayer)
{
if (gMapObjects[gSelectedEventObject].active)
{
@ -1144,7 +1144,7 @@ SCRCMD_DEF(ScrCmd_faceplayer)
return FALSE;
}
SCRCMD_DEF(ScrCmd_turnobject)
SCRCMD_DEF(turnobject)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 direction = ScriptReadByte(ctx);
@ -1153,7 +1153,7 @@ SCRCMD_DEF(ScrCmd_turnobject)
return FALSE;
}
SCRCMD_DEF(ScrCmd_setobjectmovementtype)
SCRCMD_DEF(setobjectmovementtype)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 movementType = ScriptReadByte(ctx);
@ -1162,7 +1162,7 @@ SCRCMD_DEF(ScrCmd_setobjectmovementtype)
return FALSE;
}
SCRCMD_DEF(ScrCmd_createvobject)
SCRCMD_DEF(createvobject)
{
u8 graphicsId = ScriptReadByte(ctx);
u8 v2 = ScriptReadByte(ctx);
@ -1175,7 +1175,7 @@ SCRCMD_DEF(ScrCmd_createvobject)
return FALSE;
}
SCRCMD_DEF(ScrCmd_turnvobject)
SCRCMD_DEF(turnvobject)
{
u8 v1 = ScriptReadByte(ctx);
u8 direction = ScriptReadByte(ctx);
@ -1184,7 +1184,7 @@ SCRCMD_DEF(ScrCmd_turnvobject)
return FALSE;
}
SCRCMD_DEF(ScrCmd_lockall)
SCRCMD_DEF(lockall)
{
if (is_c1_link_related_active())
{
@ -1198,7 +1198,7 @@ SCRCMD_DEF(ScrCmd_lockall)
}
}
SCRCMD_DEF(ScrCmd_lock)
SCRCMD_DEF(lock)
{
if (is_c1_link_related_active())
{
@ -1220,7 +1220,7 @@ SCRCMD_DEF(ScrCmd_lock)
}
}
SCRCMD_DEF(ScrCmd_releaseall)
SCRCMD_DEF(releaseall)
{
u8 playerObjectId;
@ -1232,7 +1232,7 @@ SCRCMD_DEF(ScrCmd_releaseall)
return FALSE;
}
SCRCMD_DEF(ScrCmd_release)
SCRCMD_DEF(release)
{
u8 playerObjectId;
@ -1245,3 +1245,10 @@ SCRCMD_DEF(ScrCmd_release)
UnfreezeMapObjects();
return FALSE;
}
SCRCMD_DEF(cmdC7)
{
gUnknown_20370DC = gUnknown_20370DA;
gUnknown_20370DA = ScriptReadByte(ctx);
return FALSE;
}

View File

@ -1,5 +1,6 @@
#include "global.h"
#include "main.h"
#include "task.h"
#include "constants/flags.h"
#include "constants/vars.h"
#include "malloc.h"
@ -11,7 +12,12 @@
#include "cereader_tool.h"
#include "easy_chat.h"
#include "text.h"
#include "battle_setup.h"
#include "battle_transition.h"
#include "battle.h"
#include "battle_2.h"
#include "overworld.h"
#include "item.h"
struct UnkStruct_8479D34
{
@ -28,7 +34,6 @@ struct UnkSubstruct_203F458_000C_004
/* 0x000 */ u8 unk_000[11];
/* 0x00B */ u8 unk_00B;
/* 0x00C */ u8 unk_00C;
/* 0x00D */ u8 unk_00D;
/* 0x00E */ u16 unk_00E[6];
/* 0x01A */ u16 unk_01A[6];
/* 0x026 */ u16 unk_026[6];
@ -38,7 +43,8 @@ struct UnkSubstruct_203F458_000C_004
struct UnkSubstruct_203F458_000C
{
/* 0x000 */ u8 filler_000[2];
/* 0x000 */ u8 unk_000;
/* 0x000 */ u8 unk_001;
/* 0x002 */ u8 unk_002;
/* 0x003 */ u8 unk_003;
/* 0x004 */ struct UnkSubstruct_203F458_000C_004 unk_004[3];
@ -122,15 +128,19 @@ void sub_815E8CC(void);
void sub_815E908(void);
void sub_815E948(void);
void sub_815E9C8(void);
void sub_815E9FC(void);
void sub_815EC0C(void);
u32 sub_815EDDC(u32 *);
void sub_815EDF4(u32 *, u32);
extern const struct UnkStruct_8479D34 gUnknown_8479D34[15];
extern const struct UnkStruct_8479ED8 gUnknown_8479ED8[83];
extern const struct UnkStruct_847A024 gUnknown_847A024[10];
extern void (*const gUnknown_847A230[])(void);
extern const struct Unk_203F458_Header gUnknown_84827AC;
extern const struct UnkSubstruct_203F458_000C *const gUnknown_84827B4[][8];
extern const u16 gUnknown_847A284[8][3];
extern const struct UnkStruct_8479ED8 gUnknown_8479ED8[83];
extern const struct UnkStruct_847A024 gUnknown_847A024[10];
extern const u16 gUnknown_847A2B4[];
bool32 sub_815D7BC(void * dest, void * buffer)
{
@ -280,7 +290,7 @@ void sub_815DA54(void)
gUnknown_203F45C->unk_3C = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002;
gUnknown_203F45C->unk_3D = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_00B;
gUnknown_203F45C->unk_3E = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_004[r10].unk_00C;
SetVBlankCounter1Ptr(gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx]);
SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0);
sub_815DD2C();
}
@ -692,3 +702,159 @@ void sub_815DF54(void)
"_0815E064: .4byte gStringVar4");
}
#endif // NONMATCHING
void sub_815E068(u8 battleType, u8 facilityClass)
{
u16 r5 = FALSE;
s32 r4;
switch (battleType)
{
case 0:
case 2:
for (r4 = 0; r4 < NELEMS(gUnknown_8479ED8); r4++)
{
if (gUnknown_8479ED8[r4].unk1 == facilityClass)
break;
}
if (r4 != NELEMS(gUnknown_8479ED8))
r5 = gUnknown_8479ED8[r4].unk2;
break;
case 1:
for (r4 = 0; r4 < NELEMS(gUnknown_847A024); r4++)
{
if (gUnknown_847A024[r4].unk2 == facilityClass)
break;
}
if (r4 != NELEMS(gUnknown_847A024))
{
if (VarGet(VAR_0x4003))
r5 = gUnknown_847A024[r4].unk4;
else
r5 = gUnknown_847A024[r4].unk3;
}
break;
}
gUnknown_20370DC = gUnknown_20370DA;
gUnknown_20370DA = r5;
}
void sub_815E114(void)
{
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
}
void sub_815E124(u8 taskId)
{
if (sub_80D08F8() == TRUE)
{
gMain.savedCallback = sub_815E114;
sub_80563F0();
SetMainCallback2(sub_800FD9C);
DestroyTask(taskId);
}
}
void sub_815E160(void)
{
gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_FACTORY;
if (gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002 == 1)
gBattleTypeFlags |= BATTLE_TYPE_DOUBLE;
gTrainerBattleOpponent_A = 0;
sub_815E9FC();
CreateTask(sub_815E124, 1);
PlayMapChosenOrBattleBGM(0);
sub_80D08B8(sub_8080060());
}
void sub_815E1C0(void)
{
if (!gSpecialVar_0x8005)
gSpecialVar_Result = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002;
}
void sub_815E1F0(void)
{
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8++;
}
void sub_815E218(void)
{
u16 mapDataId = gMapHeader.mapDataId;
if (mapDataId - 0x12A == gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8 && mapDataId - 0x129 <= gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_001)
gSpecialVar_Result = FALSE;
else
gSpecialVar_Result = TRUE;
}
void sub_815E28C(void)
{
gSaveBlock1Ptr->unkArrayIdx = gSpecialVar_0x8005;
if (gSaveBlock1Ptr->unkArrayIdx >= NELEMS(gSaveBlock1Ptr->unkArray))
gSaveBlock1Ptr->unkArrayIdx = 0;
sub_815EC0C();
if (!sub_815D834())
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_5 = TRUE;
else
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_5 = FALSE;
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8 = 0;
SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0);
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 = 0;
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2 = FALSE;
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1 = FALSE;
}
void sub_815E394(void)
{
DisableVBlankCounter1();
gSpecialVar_Result = 0;
if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2)
gSpecialVar_Result++;
if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 && gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1)
gSpecialVar_Result++;
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2 = TRUE;
}
void sub_815E408(void)
{
u16 itemId = gUnknown_847A2B4[gUnknown_203F458->unk_0004.unk_0008->unk_003];
if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0)
gSpecialVar_Result = 2;
else if (AddBagItem(itemId, 1) == 1)
{
sub_8099E90(itemId, gStringVar2);
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_0 = TRUE;
gSpecialVar_Result = 0;
}
else
gSpecialVar_Result = 1;
}
void sub_815E4B0(void)
{
if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1)
gSpecialVar_Result = 2;
else if (sub_815EDDC(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk4) > gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0)
{
sub_815EDF4(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk4, gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0);
gSpecialVar_Result = 0;
}
else
gSpecialVar_Result = 1;
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_1 = TRUE;
}
void sub_815E56C(void)
{
if (!gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_2)
{
if (gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 >= 215999)
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0 = 215999;
else
SetVBlankCounter1Ptr(&gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk0);
}
}
void sub_815E5C4(void)
{
gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unkA_3 = 1;
}