summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/scrcmd.s18
-rw-r--r--asm/trainer_tower.s769
-rw-r--r--asm/unk_815EDDC.s55
-rw-r--r--data/trainer_tower.s20
-rw-r--r--data/trainer_tower/trainers.inc248
-rw-r--r--include/battle_2.h1
-rw-r--r--include/battle_setup.h1
-rw-r--r--include/battle_transition.h4
-rw-r--r--include/event_data.h3
-rw-r--r--include/global.h17
-rw-r--r--include/item.h1
-rw-r--r--include/main.h1
-rw-r--r--include/overworld.h2
-rw-r--r--include/pokemon.h2
-rw-r--r--src/load_save.c2
-rw-r--r--src/scrcmd.c257
-rw-r--r--src/trainer_tower.c176
17 files changed, 531 insertions, 1046 deletions
diff --git a/asm/scrcmd.s b/asm/scrcmd.s
index 36ccf0887..cec72ef73 100644
--- a/asm/scrcmd.s
+++ b/asm/scrcmd.s
@@ -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}
diff --git a/asm/trainer_tower.s b/asm/trainer_tower.s
index 8eef5eaf5..a1ca0da57 100644
--- a/asm/trainer_tower.s
+++ b/asm/trainer_tower.s
@@ -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.
diff --git a/asm/unk_815EDDC.s b/asm/unk_815EDDC.s
index 116458940..16db54083 100644
--- a/asm/unk_815EDDC.s
+++ b/asm/unk_815EDDC.s
@@ -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
diff --git a/data/trainer_tower.s b/data/trainer_tower.s
index f90d1dd2b..6065500b5 100644
--- a/data/trainer_tower.s
+++ b/data/trainer_tower.s
@@ -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
diff --git a/data/trainer_tower/trainers.inc b/data/trainer_tower/trainers.inc
index e2f7dd121..d304a799d 100644
--- a/data/trainer_tower/trainers.inc
+++ b/data/trainer_tower/trainers.inc
@@ -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
diff --git a/include/battle_2.h b/include/battle_2.h
index ca8b78805..1f7a2304d 100644
--- a/include/battle_2.h
+++ b/include/battle_2.h
@@ -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];
diff --git a/include/battle_setup.h b/include/battle_setup.h
index 2806295ca..86a84f471 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -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
diff --git a/include/battle_transition.h b/include/battle_transition.h
index eba76fd61..91e564790 100644
--- a/include/battle_transition.h
+++ b/include/battle_transition.h
@@ -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
diff --git a/include/event_data.h b/include/event_data.h
index 13e388bf2..34d103967 100644
--- a/include/event_data.h
+++ b/include/event_data.h
@@ -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
diff --git a/include/global.h b/include/global.h
index 858d95831..f418ff757 100644
--- a/include/global.h
+++ b/include/global.h
@@ -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;
diff --git a/include/item.h b/include/item.h
index 2d6bb9370..581693735 100644
--- a/include/item.h
+++ b/include/item.h
@@ -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
diff --git a/include/main.h b/include/main.h
index 3fb254c95..6e9d2a25d 100644
--- a/include/main.h
+++ b/include/main.h
@@ -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;
diff --git a/include/overworld.h b/include/overworld.h
index 6aa58baa9..53914b627 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -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;
diff --git a/include/pokemon.h b/include/pokemon.h
index e8782af98..4c6240cd4 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -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
diff --git a/src/load_save.c b/src/load_save.c
index da55869aa..6f388e451 100644
--- a/src/load_save.c
+++ b/src/load_save.c
@@ -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);
diff --git a/src/scrcmd.c b/src/scrcmd.c
index ce1519b94..4cd0fdad2 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -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;
+}
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index 74065445a..c968f24c3 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -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;
+}