summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2019-10-26 10:23:13 -0400
committerPikalaxALT <PikalaxALT@gmail.com>2019-10-26 10:23:13 -0400
commit93f0703fcdda810062071fde4febe111146c18cc (patch)
tree241164c7e5fd5e71a9e3eca6eb8d6a918566d963
parentfd78afa5a7d4441fe0d76693e301deb6bc2557dc (diff)
parent1f569f0136952135a0e17fe22cf180c0e87dd007 (diff)
Merge branch 'master' of github.com:pret/pokefirered into script_menu
-rw-r--r--asm/battle_2.s13887
-rw-r--r--asm/battle_anim.s8
-rw-r--r--asm/battle_anim_effects_2.s8
-rw-r--r--asm/battle_anim_effects_3.s24
-rw-r--r--asm/battle_bg.s (renamed from asm/battle_1.s)20
-rw-r--r--asm/battle_controller_oak.s7887
-rw-r--r--asm/battle_controller_pokedude.s206
-rw-r--r--asm/battle_interface.s4
-rw-r--r--asm/battle_message.s24
-rw-r--r--asm/battle_setup.s2183
-rw-r--r--asm/battle_tower.s4
-rw-r--r--asm/cable_club.s8
-rw-r--r--asm/evolution_scene.s26
-rw-r--r--asm/field_control_avatar.s6
-rw-r--r--asm/field_effect.s28
-rw-r--r--asm/field_effect_helpers.s6
-rw-r--r--asm/field_ground_effect.s8
-rw-r--r--asm/field_map_obj.s12
-rw-r--r--asm/field_player_avatar.s4
-rw-r--r--asm/field_screen_effect.s2
-rw-r--r--asm/item_menu.s2
-rw-r--r--asm/link_rfu_2.s6
-rw-r--r--asm/link_rfu_3.s4
-rw-r--r--asm/map_obj_80688E4.s6
-rw-r--r--asm/overworld.s18
-rw-r--r--asm/party_menu.s8
-rw-r--r--asm/pokemon_summary_screen.s8
-rw-r--r--asm/post_battle_event_funcs.s4
-rw-r--r--asm/trade.s18
-rw-r--r--asm/trainer_see.s14
-rw-r--r--asm/wild_encounter.s14
-rw-r--r--common_syms/battle_main.txt9
-rw-r--r--data/battle_scripts_1.s30
-rw-r--r--data/battle_scripts_2.s8
-rw-r--r--data/data.s70
-rw-r--r--data/data_835B488.s24
-rw-r--r--data/data_83F5738.s28
-rw-r--r--data/data_83FECCC.s3
-rw-r--r--data/event_scripts.s957
-rw-r--r--data/maps/CeladonCity_GameCorner/scripts.inc2
-rw-r--r--data/maps/CeladonCity_Gym/scripts.inc16
-rw-r--r--data/maps/CeruleanCity/scripts.inc10
-rw-r--r--data/maps/CeruleanCity_Gym/scripts.inc6
-rw-r--r--data/maps/CinnabarIsland_Gym/scripts.inc28
-rw-r--r--data/maps/FiveIsland_LostCave_Room1/scripts.inc2
-rw-r--r--data/maps/FiveIsland_LostCave_Room10/scripts.inc2
-rw-r--r--data/maps/FiveIsland_LostCave_Room4/scripts.inc2
-rw-r--r--data/maps/FiveIsland_Meadow/scripts.inc6
-rw-r--r--data/maps/FiveIsland_RocketWarehouse/scripts.inc12
-rw-r--r--data/maps/FourIsland_IcefallCave_Back/scripts.inc2
-rw-r--r--data/maps/FuchsiaCity_Gym/scripts.inc14
-rw-r--r--data/maps/MtEmber_Exterior/scripts.inc10
-rw-r--r--data/maps/MtMoon_1F/scripts.inc14
-rw-r--r--data/maps/MtMoon_B2F/scripts.inc10
-rw-r--r--data/maps/PalletTown_ProfessorOaksLab/scripts.inc6
-rw-r--r--data/maps/PewterCity_Gym/scripts.inc4
-rw-r--r--data/maps/PokemonLeague_AgathasRoom/scripts.inc4
-rw-r--r--data/maps/PokemonLeague_BrunosRoom/scripts.inc4
-rw-r--r--data/maps/PokemonLeague_ChampionsRoom/scripts.inc12
-rw-r--r--data/maps/PokemonLeague_LancesRoom/scripts.inc4
-rw-r--r--data/maps/PokemonLeague_LoreleisRoom/scripts.inc4
-rw-r--r--data/maps/PokemonMansion_1F/scripts.inc4
-rw-r--r--data/maps/PokemonMansion_2F/scripts.inc2
-rw-r--r--data/maps/PokemonMansion_3F/scripts.inc4
-rw-r--r--data/maps/PokemonMansion_B1F/scripts.inc4
-rw-r--r--data/maps/PokemonTower_2F/scripts.inc6
-rw-r--r--data/maps/PokemonTower_3F/scripts.inc6
-rw-r--r--data/maps/PokemonTower_4F/scripts.inc6
-rw-r--r--data/maps/PokemonTower_5F/scripts.inc8
-rw-r--r--data/maps/PokemonTower_6F/scripts.inc6
-rw-r--r--data/maps/PokemonTower_7F/scripts.inc6
-rw-r--r--data/maps/RockTunnel_1F/scripts.inc14
-rw-r--r--data/maps/RockTunnel_B1F/scripts.inc16
-rw-r--r--data/maps/RocketHideout_B1F/scripts.inc10
-rw-r--r--data/maps/RocketHideout_B2F/scripts.inc2
-rw-r--r--data/maps/RocketHideout_B3F/scripts.inc4
-rw-r--r--data/maps/RocketHideout_B4F/scripts.inc8
-rw-r--r--data/maps/Route22/scripts.inc12
-rw-r--r--data/maps/Route24/scripts.inc2
-rw-r--r--data/maps/SSAnne_1F_Room2/scripts.inc4
-rw-r--r--data/maps/SSAnne_1F_Room5/scripts.inc2
-rw-r--r--data/maps/SSAnne_1F_Room7/scripts.inc2
-rw-r--r--data/maps/SSAnne_2F_Corridor/scripts.inc6
-rw-r--r--data/maps/SSAnne_2F_Room2/scripts.inc4
-rw-r--r--data/maps/SSAnne_2F_Room4/scripts.inc4
-rw-r--r--data/maps/SSAnne_B1F_Room1/scripts.inc4
-rw-r--r--data/maps/SSAnne_B1F_Room2/scripts.inc2
-rw-r--r--data/maps/SSAnne_B1F_Room3/scripts.inc2
-rw-r--r--data/maps/SSAnne_B1F_Room4/scripts.inc4
-rw-r--r--data/maps/SSAnne_Deck/scripts.inc4
-rw-r--r--data/maps/SaffronCity_Dojo/scripts.inc10
-rw-r--r--data/maps/SaffronCity_Gym/scripts.inc16
-rw-r--r--data/maps/SilphCo_10F/scripts.inc4
-rw-r--r--data/maps/SilphCo_11F/scripts.inc6
-rw-r--r--data/maps/SilphCo_2F/scripts.inc8
-rw-r--r--data/maps/SilphCo_3F/scripts.inc4
-rw-r--r--data/maps/SilphCo_4F/scripts.inc6
-rw-r--r--data/maps/SilphCo_5F/scripts.inc8
-rw-r--r--data/maps/SilphCo_6F/scripts.inc6
-rw-r--r--data/maps/SilphCo_7F/scripts.inc14
-rw-r--r--data/maps/SilphCo_8F/scripts.inc6
-rw-r--r--data/maps/SilphCo_9F/scripts.inc6
-rw-r--r--data/maps/SixIsland_OutcastIsland/scripts.inc2
-rw-r--r--data/maps/SixIsland_PatternBush/scripts.inc24
-rw-r--r--data/maps/ThreeIsland/scripts.inc8
-rw-r--r--data/maps/VermilionCity_Gym/scripts.inc8
-rw-r--r--data/maps/VictoryRoad_1F/scripts.inc4
-rw-r--r--data/maps/VictoryRoad_2F/scripts.inc10
-rw-r--r--data/maps/VictoryRoad_3F/scripts.inc12
-rw-r--r--data/maps/ViridianCity_Gym/scripts.inc18
-rw-r--r--data/maps/ViridianForest/scripts.inc10
-rw-r--r--data/specials.inc4
-rw-r--r--include/battle.h248
-rw-r--r--include/battle_anim.h11
-rw-r--r--include/battle_bg.h9
-rw-r--r--include/battle_controllers.h8
-rw-r--r--include/battle_main.h75
-rw-r--r--include/battle_message.h8
-rw-r--r--include/battle_script_commands.h7
-rw-r--r--include/battle_scripts.h8
-rw-r--r--include/battle_setup.h40
-rw-r--r--include/berry.h2
-rw-r--r--include/constants/abilities.h2
-rw-r--r--include/constants/battle.h69
-rw-r--r--include/constants/battle_setup.h15
-rw-r--r--include/constants/map_types.h15
-rw-r--r--include/constants/trainers.h2
-rw-r--r--include/data.h3
-rw-r--r--include/event_scripts.h9
-rw-r--r--include/evolution_scene.h4
-rw-r--r--include/field_control_avatar.h3
-rw-r--r--include/field_map_obj.h3
-rw-r--r--include/field_player_avatar.h4
-rw-r--r--include/global.fieldmap.h31
-rw-r--r--include/global.h7
-rw-r--r--include/item.h1
-rw-r--r--include/item_menu.h1
-rw-r--r--include/link_rfu.h2
-rw-r--r--include/map_obj_80688E4.h2
-rw-r--r--include/metatile_behavior.h12
-rw-r--r--include/overworld.h3
-rw-r--r--include/party_menu.h2
-rw-r--r--include/pokemon.h33
-rw-r--r--include/quest_log.h4
-rw-r--r--include/quest_log_battle.h9
-rw-r--r--include/safari_zone.h2
-rw-r--r--include/script_pokemon_util_80A0058.h1
-rw-r--r--include/strings.h12
-rw-r--r--include/vs_seeker.h3
-rw-r--r--ld_script.txt14
-rw-r--r--src/battle_ai_script_commands.c2
-rw-r--r--src/battle_anim_mons.c10
-rw-r--r--src/battle_controller_oak_old_man.c2295
-rw-r--r--src/battle_controller_opponent.c6
-rw-r--r--src/battle_controller_player.c3
-rw-r--r--src/battle_controllers.c18
-rw-r--r--src/battle_main.c4412
-rw-r--r--src/battle_script_commands.c10
-rw-r--r--src/battle_setup.c1060
-rw-r--r--src/battle_transition.c4
-rw-r--r--src/battle_util2.c1
-rw-r--r--src/berry.c4
-rw-r--r--src/dark.c2
-rw-r--r--src/data/text/abilities.h242
-rw-r--r--src/fame_checker.c3
-rw-r--r--src/field_fadetransition.c18
-rw-r--r--src/fldeff_rocksmash.c1
-rw-r--r--src/ground.c3
-rw-r--r--src/item.c2
-rw-r--r--src/item_use.c5
-rw-r--r--src/link.c2
-rw-r--r--src/map_obj_lock.c2
-rw-r--r--src/metatile_behavior.c12
-rw-r--r--src/mystery_gift_menu.c4
-rw-r--r--src/pokemon.c33
-rw-r--r--src/psychic.c4
-rw-r--r--src/quest_log.c71
-rw-r--r--src/quest_log_8150454.c4
-rw-r--r--src/quest_log_battle.c37
-rw-r--r--src/reshow_battle_screen.c6
-rw-r--r--src/scrcmd.c2
-rw-r--r--src/start_menu.c2
-rw-r--r--src/teachy_tv.c2
-rw-r--r--src/trainer_tower.c2
-rw-r--r--src/unk_8159F40.c4
-rw-r--r--src/vs_seeker.c24
-rw-r--r--sym_common.txt31
-rw-r--r--sym_ewram.txt383
188 files changed, 9467 insertions, 26055 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s
deleted file mode 100644
index 5e342a50f..000000000
--- a/asm/battle_2.s
+++ /dev/null
@@ -1,13887 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_800FD9C
-sub_800FD9C: @ 800FD9C
- push {r4,lr}
- bl MoveSaveBlocks_ResetHeap
- bl AllocateBattleResources
- bl AllocateBattleSpritesData
- bl AllocateMonSpritesGfx
- ldr r4, _0800FDCC @ =gBattleTypeFlags
- ldr r0, [r4]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800FDD8
- bl HandleLinkBattleSetup
- ldr r0, _0800FDD0 @ =sub_80109C8
- bl SetMainCallback2
- ldr r1, _0800FDD4 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1]
- b _0800FE1C
- .align 2, 0
-_0800FDCC: .4byte gBattleTypeFlags
-_0800FDD0: .4byte sub_80109C8
-_0800FDD4: .4byte gBattleCommunication
-_0800FDD8:
- bl sub_800FE24
- ldr r1, [r4]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0800FE1C
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800FE06
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0800FDFE
- movs r0, 0x19
- bl HelpSystem_SetSomeVariable2
- b _0800FE1C
-_0800FDFE:
- movs r0, 0x18
- bl HelpSystem_SetSomeVariable2
- b _0800FE1C
-_0800FE06:
- movs r0, 0x80
- ands r1, r0
- cmp r1, 0
- beq _0800FE16
- movs r0, 0x1A
- bl HelpSystem_SetSomeVariable2
- b _0800FE1C
-_0800FE16:
- movs r0, 0x17
- bl HelpSystem_SetSomeVariable2
-_0800FE1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_800FD9C
-
- thumb_func_start sub_800FE24
-sub_800FE24: @ 800FE24
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- str r0, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _0800FF28 @ =0x05006000
- mov r0, sp
- bl CpuSet
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- ldr r4, _0800FF2C @ =0x00005051
- movs r0, 0x44
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- ldr r1, _0800FF30 @ =gBattle_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r0, _0800FF34 @ =gBattle_WIN0V
- strh r4, [r0]
- bl ScanlineEffect_Clear
- ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers
- movs r3, 0xF0
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r0, r1
- movs r1, 0x4F
-_0800FE88:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0800FE88
- movs r1, 0x50
- ldr r4, _0800FF3C @ =gUnknown_824EFE4
- ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers
- ldr r3, _0800FF40 @ =0x0000ff10
- movs r5, 0x82
- lsls r5, 4
- adds r2, r0, r5
- adds r0, 0xA0
-_0800FEA6:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _0800FEA6
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- ldr r2, [r4, 0x8]
- bl ScanlineEffect_SetParams
- bl ResetPaletteFade
- ldr r0, _0800FF44 @ =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0800FF48 @ =gBattle_BG0_Y
- strh r1, [r0]
- ldr r0, _0800FF4C @ =gBattle_BG1_X
- strh r1, [r0]
- ldr r0, _0800FF50 @ =gBattle_BG1_Y
- strh r1, [r0]
- ldr r0, _0800FF54 @ =gBattle_BG2_X
- strh r1, [r0]
- ldr r0, _0800FF58 @ =gBattle_BG2_Y
- strh r1, [r0]
- ldr r0, _0800FF5C @ =gBattle_BG3_X
- strh r1, [r0]
- ldr r0, _0800FF60 @ =gBattle_BG3_Y
- strh r1, [r0]
- bl sub_807FC5C
- ldr r1, _0800FF64 @ =gBattleTerrain
- strb r0, [r1]
- bl sub_800F34C
- bl LoadBattleTextboxAndBackground
- bl ResetSpriteData
- bl ResetTasks
- bl sub_800FAE0
- bl FreeAllSpritePalettes
- ldr r1, _0800FF68 @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _0800FF6C @ =VBlankCB_Battle
- bl SetVBlankCallback
- bl SetUpBattleVars
- ldr r0, _0800FF70 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800FF78
- ldr r0, _0800FF74 @ =sub_8010BA0
- bl SetMainCallback2
- b _0800FF7E
- .align 2, 0
-_0800FF28: .4byte 0x05006000
-_0800FF2C: .4byte 0x00005051
-_0800FF30: .4byte gBattle_WIN0H
-_0800FF34: .4byte gBattle_WIN0V
-_0800FF38: .4byte gScanlineEffectRegBuffers
-_0800FF3C: .4byte gUnknown_824EFE4
-_0800FF40: .4byte 0x0000ff10
-_0800FF44: .4byte gBattle_BG0_X
-_0800FF48: .4byte gBattle_BG0_Y
-_0800FF4C: .4byte gBattle_BG1_X
-_0800FF50: .4byte gBattle_BG1_Y
-_0800FF54: .4byte gBattle_BG2_X
-_0800FF58: .4byte gBattle_BG2_Y
-_0800FF5C: .4byte gBattle_BG3_X
-_0800FF60: .4byte gBattle_BG3_Y
-_0800FF64: .4byte gBattleTerrain
-_0800FF68: .4byte gReservedSpritePaletteCount
-_0800FF6C: .4byte VBlankCB_Battle
-_0800FF70: .4byte gBattleTypeFlags
-_0800FF74: .4byte sub_8010BA0
-_0800FF78:
- ldr r0, _0800FFCC @ =sub_8010508
- bl SetMainCallback2
-_0800FF7E:
- ldr r0, _0800FFD0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0800FF98
- ldr r0, _0800FFD4 @ =gEnemyParty
- ldr r1, _0800FFD8 @ =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl sub_80112E0
- bl SetWildMonHeldItem
-_0800FF98:
- ldr r0, _0800FFDC @ =gMain
- ldr r1, _0800FFE0 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r4, _0800FFE4 @ =gPlayerParty
- movs r0, 0xFA
- lsls r0, 1
- adds r5, r4, r0
-_0800FFAE:
- adds r0, r4, 0
- movs r1, 0x3
- bl AdjustFriendship
- adds r4, 0x64
- cmp r4, r5
- ble _0800FFAE
- movs r1, 0
- ldr r0, _0800FFE8 @ =gBattleCommunication
- strb r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FFCC: .4byte sub_8010508
-_0800FFD0: .4byte gBattleTypeFlags
-_0800FFD4: .4byte gEnemyParty
-_0800FFD8: .4byte gTrainerBattleOpponent_A
-_0800FFDC: .4byte gMain
-_0800FFE0: .4byte 0x00000439
-_0800FFE4: .4byte gPlayerParty
-_0800FFE8: .4byte gBattleCommunication
- thumb_func_end sub_800FE24
-
- thumb_func_start sub_800FFEC
-sub_800FFEC: @ 800FFEC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- mov r9, r6
- movs r0, 0xCE
- lsls r0, 1
- mov r10, r0
- mov r8, r6
-_08010002:
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _080100B0 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _0801007E
- cmp r5, r10
- beq _0801004A
- cmp r7, 0
- beq _0801004A
- cmp r1, 0
- bne _0801004A
- movs r0, 0x1
- mov r2, r8
- lsls r0, r2
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0801004A:
- cmp r5, 0
- beq _0801007E
- cmp r7, 0
- beq _08010066
- cmp r5, r10
- beq _0801005A
- cmp r1, 0
- beq _08010066
-_0801005A:
- movs r0, 0x2
- mov r1, r8
- lsls r0, r1
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_08010066:
- cmp r5, 0
- beq _0801007E
- cmp r5, r10
- beq _0801007E
- cmp r7, 0
- bne _0801007E
- movs r0, 0x3
- mov r2, r8
- lsls r0, r2
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0801007E:
- movs r0, 0x2
- add r8, r0
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x5
- ble _08010002
- ldr r1, _080100B4 @ =gBattleStruct
- ldr r0, [r1]
- movs r2, 0xC3
- lsls r2, 1
- adds r0, r2
- strb r6, [r0]
- ldr r0, [r1]
- adds r2, 0x1
- adds r1, r0, r2
- lsrs r0, r6, 8
- strb r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080100B0: .4byte gPlayerParty
-_080100B4: .4byte gBattleStruct
- thumb_func_end sub_800FFEC
-
- thumb_func_start sub_80100B8
-sub_80100B8: @ 80100B8
- push {r4-r7,lr}
- ldr r0, _08010120 @ =gBattleStruct
- ldr r5, [r0]
- movs r0, 0xC4
- lsls r0, 1
- adds r4, r5, r0
- bl IsEnigmaBerryValid
- cmp r0, 0x1
- bne _08010134
- movs r2, 0
- ldr r7, _08010124 @ =gSaveBlock1Ptr
- movs r1, 0xC8
- lsls r1, 1
- adds r5, r1
- adds r6, r7, 0
- ldr r3, _08010128 @ =0x000030ec
-_080100DA:
- adds r0, r4, r2
- ldr r1, [r6]
- adds r1, r3
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x5
- ble _080100DA
- adds r1, r4, r2
- movs r0, 0xFF
- strb r0, [r1]
- movs r2, 0
- adds r3, r5, 0
- ldr r6, _08010124 @ =gSaveBlock1Ptr
- ldr r5, _0801012C @ =0x00003108
-_080100FA:
- adds r0, r3, r2
- ldr r1, [r6]
- adds r1, r5
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x11
- ble _080100FA
- ldr r0, [r7]
- ldr r1, _08010130 @ =0x0000311a
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4, 0x7]
- ldr r0, [r7]
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- b _08010174
- .align 2, 0
-_08010120: .4byte gBattleStruct
-_08010124: .4byte gSaveBlock1Ptr
-_08010128: .4byte 0x000030ec
-_0801012C: .4byte 0x00003108
-_08010130: .4byte 0x0000311a
-_08010134:
- movs r0, 0xAF
- bl ItemIdToBerryType
- lsls r0, 24
- lsrs r0, 24
- bl sub_809C8A0
- adds r3, r0, 0
- movs r2, 0
- movs r0, 0xC8
- lsls r0, 1
- adds r5, r0
-_0801014C:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x5
- ble _0801014C
- adds r1, r4, r2
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r5, 0
- movs r2, 0
- adds r1, r0, 0
- adds r1, 0x11
-_08010168:
- strb r2, [r1]
- subs r1, 0x1
- cmp r1, r0
- bge _08010168
- movs r0, 0
- strb r0, [r4, 0x7]
-_08010174:
- strb r0, [r4, 0x1A]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80100B8
-
- thumb_func_start sub_801017C
-sub_801017C: @ 801017C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08010234 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08010194
- b _080102C0
-_08010194:
- bl IsEnigmaBerryValid
- cmp r0, 0x1
- bne _08010250
- movs r5, 0
- ldr r3, _08010238 @ =gEnigmaBerries
- ldr r0, _0801023C @ =gSaveBlock1Ptr
- mov r8, r0
- adds r6, r3, 0
- mov r4, r8
- ldr r2, _08010240 @ =0x000030ec
- adds r7, r3, 0
- adds r7, 0x38
-_080101AE:
- adds r1, r5, r6
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r5, r7
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x5
- ble _080101AE
- adds r1, r5, r3
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x38
- adds r0, r5, r0
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- movs r5, 0
- adds r7, r3, 0
- adds r7, 0x8
- ldr r4, _0801023C @ =gSaveBlock1Ptr
- ldr r2, _08010244 @ =0x00003108
- adds r6, r3, 0
- adds r6, 0x40
-_080101EC:
- adds r1, r5, r7
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r5, r6
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x11
- ble _080101EC
- mov r1, r8
- ldr r0, [r1]
- ldr r2, _08010248 @ =0x0000311a
- adds r0, r2
- ldrb r1, [r0]
- strb r1, [r3, 0x7]
- ldrb r0, [r0]
- adds r1, r3, 0
- adds r1, 0x3F
- strb r0, [r1]
- mov r4, r8
- ldr r0, [r4]
- ldr r1, _0801024C @ =0x0000311b
- adds r0, r1
- ldrb r1, [r0]
- strb r1, [r3, 0x1A]
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r0, 0x52
- strb r1, [r0]
- b _080103FC
- .align 2, 0
-_08010234: .4byte gBattleTypeFlags
-_08010238: .4byte gEnigmaBerries
-_0801023C: .4byte gSaveBlock1Ptr
-_08010240: .4byte 0x000030ec
-_08010244: .4byte 0x00003108
-_08010248: .4byte 0x0000311a
-_0801024C: .4byte 0x0000311b
-_08010250:
- movs r0, 0xAF
- bl ItemIdToBerryType
- lsls r0, 24
- lsrs r0, 24
- bl sub_809C8A0
- adds r6, r0, 0
- movs r5, 0
- ldr r4, _080102BC @ =gEnigmaBerries
- adds r7, r4, 0
- adds r7, 0x38
- adds r3, r4, 0
-_0801026A:
- adds r1, r5, r4
- adds r2, r6, r5
- ldrb r0, [r2]
- strb r0, [r1]
- adds r1, r5, r7
- ldrb r0, [r2]
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x5
- ble _0801026A
- adds r1, r5, r3
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x38
- adds r0, r5, r0
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- movs r5, 0
- adds r4, r3, 0
- adds r4, 0x8
- movs r1, 0
- adds r2, r3, 0
- adds r2, 0x40
-_0801029C:
- adds r0, r5, r4
- strb r1, [r0]
- adds r0, r5, r2
- strb r1, [r0]
- adds r5, 0x1
- cmp r5, 0x11
- ble _0801029C
- movs r1, 0
- strb r1, [r3, 0x7]
- adds r0, r3, 0
- adds r0, 0x3F
- strb r1, [r0]
- strb r1, [r3, 0x1A]
- adds r0, 0x13
- strb r1, [r0]
- b _080103FC
- .align 2, 0
-_080102BC: .4byte gEnigmaBerries
-_080102C0:
- movs r0, 0x40
- ands r1, r0
- cmp r1, 0
- beq _0801034C
- movs r5, 0
- ldr r3, _08010340 @ =gEnigmaBerries
- ldr r2, _08010344 @ =gLinkPlayers
- mov r9, r2
- adds r6, r3, 0
- movs r4, 0x8
- adds r4, r6
- mov r8, r4
-_080102D8:
- lsls r0, r5, 8
- ldr r1, _08010348 @ =gBlockRecvBuffer + 4
- adds r7, r0, r1
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r3, [r0, 0x18]
- movs r4, 0
- adds r5, 0x1
- mov r10, r5
- lsls r1, r3, 3
- subs r0, r1, r3
- adds r5, r1, 0
- lsls r0, 2
- adds r1, r0, r6
-_080102F8:
- adds r0, r7, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r4, 0x1
- cmp r4, 0x5
- ble _080102F8
- subs r0, r5, r3
- lsls r0, 2
- adds r1, r4, r0
- adds r1, r6
- movs r2, 0xFF
- strb r2, [r1]
- movs r4, 0
- mov r2, r8
- adds r1, r0, r2
- adds r2, r7, 0
- adds r2, 0x8
-_0801031C:
- adds r0, r2, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r4, 0x1
- cmp r4, 0x11
- ble _0801031C
- subs r0, r5, r3
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r7, 0x7]
- strb r1, [r0, 0x7]
- ldrb r1, [r7, 0x1A]
- strb r1, [r0, 0x1A]
- mov r5, r10
- cmp r5, 0x3
- ble _080102D8
- b _080103FC
- .align 2, 0
-_08010340: .4byte gEnigmaBerries
-_08010344: .4byte gLinkPlayers
-_08010348: .4byte gBlockRecvBuffer + 4
-_0801034C:
- movs r5, 0
- ldr r4, _0801040C @ =gEnigmaBerries
- mov r9, r4
-_08010352:
- lsls r0, r5, 8
- ldr r1, _08010410 @ =gBlockRecvBuffer + 4
- adds r7, r0, r1
- movs r4, 0
- adds r2, r5, 0x1
- mov r10, r2
- lsls r0, r5, 3
- mov r8, r0
- adds r1, r5, 0x2
- mov r12, r1
- subs r1, r0, r5
- mov r2, r12
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r2, r9
- adds r3, r0, r2
- lsls r1, 2
- adds r2, r1, r2
-_08010378:
- adds r0, r7, r4
- ldrb r1, [r0]
- strb r1, [r2]
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- adds r4, 0x1
- cmp r4, 0x5
- ble _08010378
- mov r0, r8
- subs r3, r0, r5
- lsls r3, 2
- adds r1, r4, r3
- add r1, r9
- ldrb r0, [r1]
- movs r2, 0xFF
- orrs r0, r2
- strb r0, [r1]
- mov r0, r12
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r1, r4, r2
- add r1, r9
- ldrb r0, [r1]
- movs r4, 0xFF
- orrs r0, r4
- strb r0, [r1]
- movs r4, 0
- ldr r0, _0801040C @ =gEnigmaBerries
- adds r0, 0x8
- adds r2, r0
- adds r3, r0
- adds r6, r7, 0
- adds r6, 0x8
-_080103C0:
- adds r0, r6, r4
- ldrb r1, [r0]
- strb r1, [r3]
- ldrb r0, [r0]
- strb r0, [r2]
- adds r2, 0x1
- adds r3, 0x1
- adds r4, 0x1
- cmp r4, 0x11
- ble _080103C0
- mov r0, r8
- subs r2, r0, r5
- lsls r2, 2
- add r2, r9
- ldrb r0, [r7, 0x7]
- strb r0, [r2, 0x7]
- mov r1, r12
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r7, 0x7]
- strb r1, [r0, 0x7]
- ldrb r1, [r7, 0x1A]
- strb r1, [r2, 0x1A]
- ldrb r1, [r7, 0x1A]
- strb r1, [r0, 0x1A]
- mov r5, r10
- cmp r5, 0x1
- ble _08010352
-_080103FC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801040C: .4byte gEnigmaBerries
-_08010410: .4byte gBlockRecvBuffer + 4
- thumb_func_end sub_801017C
-
- thumb_func_start sub_8010414
-sub_8010414: @ 8010414
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- movs r6, 0
- ldr r0, _08010440 @ =gBlockRecvBuffer
- ldrh r2, [r0]
- movs r1, 0x80
- lsls r1, 1
- mov r12, r0
- cmp r2, r1
- bne _08010458
- cmp r3, 0
- bne _08010448
- ldr r0, _08010444 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0xC
- b _0801044E
- .align 2, 0
-_08010440: .4byte gBlockRecvBuffer
-_08010444: .4byte gBattleTypeFlags
-_08010448:
- ldr r0, _0801048C @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0x8
-_0801044E:
- orrs r1, r2
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08010458:
- cmp r6, 0
- bne _080104FC
- movs r2, 0
- cmp r2, r4
- bge _0801047C
- ldr r1, _08010490 @ =gBlockRecvBuffer
- mov r8, r1
- movs r5, 0x80
- lsls r5, 1
-_0801046A:
- adds r1, r5
- adds r2, 0x1
- cmp r2, r4
- bge _0801047C
- mov r7, r8
- ldrh r0, [r7]
- ldrh r7, [r1]
- cmp r0, r7
- beq _0801046A
-_0801047C:
- cmp r2, r4
- bne _080104A4
- cmp r3, 0
- bne _08010494
- ldr r0, _0801048C @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0xC
- b _0801049A
- .align 2, 0
-_0801048C: .4byte gBattleTypeFlags
-_08010490: .4byte gBlockRecvBuffer
-_08010494:
- ldr r0, _080104EC @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0x8
-_0801049A:
- orrs r1, r2
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080104A4:
- cmp r6, 0
- bne _080104FC
- movs r2, 0
- ldr r5, _080104EC @ =gBattleTypeFlags
- cmp r2, r4
- bge _080104E2
- mov r0, r12
- ldrh r1, [r0]
- ldr r0, _080104F0 @ =0x00000201
- cmp r1, r0
- beq _080104DA
-_080104BA:
- lsls r0, r2, 8
- add r0, r12
- ldrh r0, [r0]
- ldr r1, _080104F0 @ =0x00000201
- cmp r0, r1
- bls _080104CA
- cmp r2, r3
- bne _080104E2
-_080104CA:
- adds r2, 0x1
- cmp r2, r4
- bge _080104E2
- lsls r0, r2, 8
- add r0, r12
- ldrh r0, [r0]
- cmp r0, r1
- bne _080104BA
-_080104DA:
- cmp r2, r3
- beq _080104BA
- cmp r2, r3
- bge _080104BA
-_080104E2:
- cmp r2, r4
- bne _080104F4
- ldr r0, [r5]
- movs r1, 0xC
- b _080104F8
- .align 2, 0
-_080104EC: .4byte gBattleTypeFlags
-_080104F0: .4byte 0x00000201
-_080104F4:
- ldr r0, [r5]
- movs r1, 0x8
-_080104F8:
- orrs r0, r1
- str r0, [r5]
-_080104FC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8010414
-
- thumb_func_start sub_8010508
-sub_8010508: @ 8010508
- push {r4-r6,lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08010540 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xB5
- strb r4, [r0]
- movs r0, 0x1
- adds r5, r4, 0
- eors r5, r0
- ldr r0, _08010544 @ =gBattleCommunication
- ldrb r0, [r0]
- cmp r0, 0x10
- bls _08010536
- b _080108B8
-_08010536:
- lsls r0, 2
- ldr r1, _08010548 @ =_0801054C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08010540: .4byte gBattleStruct
-_08010544: .4byte gBattleCommunication
-_08010548: .4byte _0801054C
- .align 2, 0
-_0801054C:
- .4byte _08010590
- .4byte _080105D4
- .4byte _08010670
- .4byte _080106F4
- .4byte _0801071C
- .4byte _08010898
- .4byte _080108A4
- .4byte _0801074C
- .4byte _08010774
- .4byte _08010898
- .4byte _080108A4
- .4byte _080107A4
- .4byte _080107CC
- .4byte _08010898
- .4byte _080108A4
- .4byte _08010834
- .4byte _0801084C
-_08010590:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _080105BC
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- bl sub_80357C8
- ldr r1, _080105CC @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1]
-_080105BC:
- ldr r0, _080105D0 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _080105C6
- b _080108B8
-_080105C6:
- bl LoadWirelessStatusIndicatorSpriteGfx
- b _080108B8
- .align 2, 0
-_080105CC: .4byte gBattleCommunication
-_080105D0: .4byte gWirelessCommType
-_080105D4:
- ldr r2, _08010640 @ =gBattleTypeFlags
- ldr r1, [r2]
- movs r6, 0x2
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _08010658
- ldr r0, _08010644 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080105EC
- b _080108B8
-_080105EC:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _0801062A
- ldr r4, _08010648 @ =gBattleStruct
- ldr r0, [r4]
- movs r5, 0xC2
- lsls r5, 1
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _0801064C @ =0x00000185
- adds r0, r1
- strb r6, [r0]
- bl sub_800FFEC
- bl sub_80100B8
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, r5
- movs r2, 0x20
- bl SendBlock
- ldr r0, _08010650 @ =gBattleCommunication
- strb r6, [r0]
-_0801062A:
- ldr r0, _08010654 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010634
- b _080108B8
-_08010634:
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
- b _080108B8
- .align 2, 0
-_08010640: .4byte gBattleTypeFlags
-_08010644: .4byte gReceivedRemoteLinkPlayers
-_08010648: .4byte gBattleStruct
-_0801064C: .4byte 0x00000185
-_08010650: .4byte gBattleCommunication
-_08010654: .4byte gWirelessCommType
-_08010658:
- movs r0, 0x4
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801066C @ =gBattleCommunication
- movs r0, 0xF
- strb r0, [r1]
- bl sub_801017C
- b _080108B8
- .align 2, 0
-_0801066C: .4byte gBattleCommunication
-_08010670:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0801067E
- b _080108B8
-_0801067E:
- bl ResetBlockReceivedFlags
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_8010414
- bl sub_801017C
- ldr r0, _080106E0 @ =sub_800F6FC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080106E4 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- movs r1, 0
- movs r0, 0x87
- lsls r0, 1
- strh r0, [r2, 0xA]
- movs r0, 0x5A
- strh r0, [r2, 0xC]
- strh r1, [r2, 0x12]
- ldr r0, _080106E8 @ =gBattleStruct
- ldr r3, [r0]
- movs r4, 0xC3
- lsls r4, 1
- adds r0, r3, r4
- ldrb r1, [r0]
- adds r4, 0x1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2, 0xE]
- ldr r0, _080106EC @ =gBlockRecvBuffer
- lsls r1, r5, 8
- adds r0, 0x2
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2, 0x10]
- bl SetDeoxysStats
- ldr r1, _080106F0 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_080106E0: .4byte sub_800F6FC
-_080106E4: .4byte gTasks
-_080106E8: .4byte gBattleStruct
-_080106EC: .4byte gBlockRecvBuffer
-_080106F0: .4byte gBattleCommunication
-_080106F4:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010700
- b _080108B8
-_08010700:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08010714 @ =gPlayerParty
- movs r2, 0xC8
- bl SendBlock
- ldr r1, _08010718 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_08010714: .4byte gPlayerParty
-_08010718: .4byte gBattleCommunication
-_0801071C:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0801072A
- b _080108B8
-_0801072A:
- bl ResetBlockReceivedFlags
- ldr r0, _08010740 @ =gEnemyParty
- lsls r1, r5, 8
- ldr r2, _08010744 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl memcpy
- ldr r1, _08010748 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_08010740: .4byte gEnemyParty
-_08010744: .4byte gBlockRecvBuffer
-_08010748: .4byte gBattleCommunication
-_0801074C:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010758
- b _080108B8
-_08010758:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0801076C @ =gUnknown_202434C
- movs r2, 0xC8
- bl SendBlock
- ldr r1, _08010770 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_0801076C: .4byte gUnknown_202434C
-_08010770: .4byte gBattleCommunication
-_08010774:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _08010782
- b _080108B8
-_08010782:
- bl ResetBlockReceivedFlags
- ldr r0, _08010798 @ =gUnknown_20240F4
- lsls r1, r5, 8
- ldr r2, _0801079C @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl memcpy
- ldr r1, _080107A0 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_08010798: .4byte gUnknown_20240F4
-_0801079C: .4byte gBlockRecvBuffer
-_080107A0: .4byte gBattleCommunication
-_080107A4:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _080107B0
- b _080108B8
-_080107B0:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080107C4 @ =gUnknown_2024414
- movs r2, 0xC8
- bl SendBlock
- ldr r1, _080107C8 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_080107C4: .4byte gUnknown_2024414
-_080107C8: .4byte gBattleCommunication
-_080107CC:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- bne _080108B8
- bl ResetBlockReceivedFlags
- ldr r4, _08010820 @ =gUnknown_20241BC
- lsls r1, r5, 8
- ldr r0, _08010824 @ =gBlockRecvBuffer
- adds r1, r0
- adds r0, r4, 0
- movs r2, 0xC8
- bl memcpy
- ldr r1, _08010828 @ =0xfffffe70
- adds r0, r4, r1
- bl sub_8011D0C
- ldr r1, _0801082C @ =0xfffffed4
- adds r0, r4, r1
- bl sub_8011D0C
- adds r0, r4, 0
- subs r0, 0xC8
- bl sub_8011D0C
- adds r0, r4, 0
- subs r0, 0x64
- bl sub_8011D0C
- adds r0, r4, 0
- bl sub_8011D0C
- adds r0, r4, 0
- adds r0, 0x64
- bl sub_8011D0C
- ldr r1, _08010830 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_08010820: .4byte gUnknown_20241BC
-_08010824: .4byte gBlockRecvBuffer
-_08010828: .4byte 0xfffffe70
-_0801082C: .4byte 0xfffffed4
-_08010830: .4byte gBattleCommunication
-_08010834:
- bl sub_800D30C
- ldr r0, _08010848 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r2, [r0, 0x2]
- b _080108B8
- .align 2, 0
-_08010848: .4byte gBattleCommunication
-_0801084C:
- ldr r0, _08010880 @ =gUnknown_2023E83
- adds r1, r0, 0x1
- bl BattleInitAllSprites
- lsls r0, 24
- cmp r0, 0
- beq _080108B8
- ldr r2, _08010884 @ =gPreBattleCallback1
- ldr r1, _08010888 @ =gMain
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, _0801088C @ =sub_80123E4
- str r0, [r1]
- ldr r0, _08010890 @ =BattleMainCB2
- bl SetMainCallback2
- ldr r2, _08010894 @ =gBattleTypeFlags
- ldr r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080108B8
- movs r0, 0x20
- orrs r1, r0
- str r1, [r2]
- b _080108B8
- .align 2, 0
-_08010880: .4byte gUnknown_2023E83
-_08010884: .4byte gPreBattleCallback1
-_08010888: .4byte gMain
-_0801088C: .4byte sub_80123E4
-_08010890: .4byte BattleMainCB2
-_08010894: .4byte gBattleTypeFlags
-_08010898:
- ldr r0, _080108C0 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- movs r1, 0x1
- strb r1, [r0, 0x1]
-_080108A4:
- ldr r1, _080108C0 @ =gBattleCommunication
- ldrb r0, [r1, 0x1]
- subs r0, 0x1
- strb r0, [r1, 0x1]
- lsls r0, 24
- cmp r0, 0
- bne _080108B8
-_080108B2:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080108B8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080108C0: .4byte gBattleCommunication
- thumb_func_end sub_8010508
-
- thumb_func_start sub_80108C4
-sub_80108C4: @ 80108C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r8, r0
- ldr r1, _080109BC @ =gUnknown_2022B58
- mov r9, r1
- movs r0, 0x18
- add r0, r9
- mov r10, r0
-_080108DC:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r0, _080109C0 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, r8
- lsls r5, r1, 5
- mov r1, r9
- adds r6, r5, r1
- strh r0, [r6]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- strh r0, [r6, 0x2]
- mov r0, r9
- adds r0, 0x4
- adds r7, r5, r0
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r7, 0
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- strb r0, [r6, 0xF]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r6, 0x10]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r6, 0x12]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- mov r1, r9
- adds r1, 0x14
- adds r1, r5, r1
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- add r5, r10
- str r0, [r5]
- adds r0, r4, 0
- bl GetMonGender
- strb r0, [r6, 0x1C]
- adds r0, r7, 0
- bl StripExtCtrlCodes
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- mov r4, r8
- adds r4, 0x1
- cmp r0, 0x1
- beq _08010994
- adds r2, r7, 0
- movs r1, 0
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _0801097E
-_08010974:
- adds r1, 0x1
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08010974
-_0801097E:
- cmp r1, 0x5
- bgt _0801098E
- movs r3, 0
-_08010984:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0x5
- ble _08010984
-_0801098E:
- adds r1, r2, r1
- movs r0, 0xFF
- strb r0, [r1]
-_08010994:
- mov r8, r4
- cmp r4, 0x2
- ble _080108DC
- ldr r0, _080109C4 @ =gBattleStruct
- ldr r0, [r0]
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r1
- ldr r1, _080109BC @ =gUnknown_2022B58
- movs r2, 0x60
- bl memcpy
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080109BC: .4byte gUnknown_2022B58
-_080109C0: .4byte gPlayerParty
-_080109C4: .4byte gBattleStruct
- thumb_func_end sub_80108C4
-
- thumb_func_start sub_80109C8
-sub_80109C8: @ 80109C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _08010A0C @ =gBattleStruct
- ldr r0, [r4]
- adds r0, 0xB5
- strb r6, [r0]
- ldr r0, [r4]
- movs r1, 0xB0
- adds r1, r0
- mov r9, r1
- adds r0, 0xAE
- mov r8, r0
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r5, _08010A10 @ =gBattleCommunication
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _08010A5C
- cmp r0, 0x1
- bgt _08010A14
- cmp r0, 0
- beq _08010A20
- b _08010B82
- .align 2, 0
-_08010A0C: .4byte gBattleStruct
-_08010A10: .4byte gBattleCommunication
-_08010A14:
- cmp r0, 0x2
- beq _08010AFC
- cmp r0, 0x3
- bne _08010A1E
- b _08010B2A
-_08010A1E:
- b _08010B82
-_08010A20:
- ldr r0, _08010A58 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010A2A
- b _08010B82
-_08010A2A:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010A36
- b _08010B82
-_08010A36:
- bl sub_80108C4
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- movs r2, 0xC2
- lsls r2, 1
- adds r1, r2
- movs r2, 0x60
- bl SendBlock
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08010B82
- .align 2, 0
-_08010A58: .4byte gReceivedRemoteLinkPlayers
-_08010A5C:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _08010A6A
- b _08010B82
-_08010A6A:
- bl ResetBlockReceivedFlags
- movs r4, 0
- lsls r0, r6, 3
- subs r0, r6
- lsls r5, r0, 2
- movs r7, 0
-_08010A78:
- cmp r4, r6
- beq _08010ABA
- ldr r2, _08010A9C @ =gLinkPlayers
- adds r0, r7, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08010AA0
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010AAC
- b _08010ABA
- .align 2, 0
-_08010A9C: .4byte gLinkPlayers
-_08010AA0:
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010ABA
-_08010AAC:
- lsls r1, r4, 8
- ldr r0, _08010AE4 @ =gBlockRecvBuffer
- adds r1, r0
- ldr r0, _08010AE8 @ =gUnknown_2022B58
- movs r2, 0x60
- bl memcpy
-_08010ABA:
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _08010A78
- ldr r1, _08010AEC @ =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08010AF0 @ =gMain
- ldr r0, [r1, 0x8]
- mov r2, r9
- str r0, [r2]
- ldr r0, _08010AF4 @ =gBattleTypeFlags
- ldr r0, [r0]
- mov r2, r8
- strh r0, [r2]
- ldr r0, _08010AF8 @ =sub_80109C8
- str r0, [r1, 0x8]
- bl sub_8128198
- b _08010B82
- .align 2, 0
-_08010AE4: .4byte gBlockRecvBuffer
-_08010AE8: .4byte gUnknown_2022B58
-_08010AEC: .4byte gBattleCommunication
-_08010AF0: .4byte gMain
-_08010AF4: .4byte gBattleTypeFlags
-_08010AF8: .4byte sub_80109C8
-_08010AFC:
- ldr r0, _08010B1C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08010B82
- movs r0, 0x3
- strb r0, [r5]
- ldr r0, _08010B20 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _08010B24
- bl sub_800AB9C
- b _08010B82
- .align 2, 0
-_08010B1C: .4byte gPaletteFade
-_08010B20: .4byte gWirelessCommType
-_08010B24:
- bl sub_800AAC0
- b _08010B82
-_08010B2A:
- ldr r0, _08010B54 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _08010B64
- bl IsRfuTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08010B82
- ldr r1, _08010B58 @ =gBattleTypeFlags
- mov r2, r8
- ldrh r0, [r2]
- str r0, [r1]
- ldr r1, _08010B5C @ =gMain
- mov r2, r9
- ldr r0, [r2]
- str r0, [r1, 0x8]
- ldr r0, _08010B60 @ =sub_800FE24
- bl SetMainCallback2
- b _08010B82
- .align 2, 0
-_08010B54: .4byte gWirelessCommType
-_08010B58: .4byte gBattleTypeFlags
-_08010B5C: .4byte gMain
-_08010B60: .4byte sub_800FE24
-_08010B64:
- ldr r0, _08010B90 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010B82
- ldr r1, _08010B94 @ =gBattleTypeFlags
- mov r2, r8
- ldrh r0, [r2]
- str r0, [r1]
- ldr r1, _08010B98 @ =gMain
- mov r2, r9
- ldr r0, [r2]
- str r0, [r1, 0x8]
- ldr r0, _08010B9C @ =sub_800FE24
- bl SetMainCallback2
-_08010B82:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010B90: .4byte gReceivedRemoteLinkPlayers
-_08010B94: .4byte gBattleTypeFlags
-_08010B98: .4byte gMain
-_08010B9C: .4byte sub_800FE24
- thumb_func_end sub_80109C8
-
- thumb_func_start sub_8010BA0
-sub_8010BA0: @ 8010BA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08010BD8 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xB5
- strb r7, [r0]
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _08010BDC @ =gBattleCommunication
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _08010BCC
- b _080110F0
-_08010BCC:
- lsls r0, 2
- ldr r1, _08010BE0 @ =_08010BE4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08010BD8: .4byte gBattleStruct
-_08010BDC: .4byte gBattleCommunication
-_08010BE0: .4byte _08010BE4
- .align 2, 0
-_08010BE4:
- .4byte _08010C18
- .4byte _08010C5C
- .4byte _08010CD4
- .4byte _08010DB6
- .4byte _08010DE0
- .4byte _080110D0
- .4byte _080110DC
- .4byte _08010ED8
- .4byte _08010F00
- .4byte _080110D0
- .4byte _080110DC
- .4byte _0801106C
- .4byte _08011084
-_08010C18:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08010C44
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- bl sub_80357C8
- ldr r1, _08010C54 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1]
-_08010C44:
- ldr r0, _08010C58 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010C4E
- b _080110F0
-_08010C4E:
- bl LoadWirelessStatusIndicatorSpriteGfx
- b _080110F0
- .align 2, 0
-_08010C54: .4byte gBattleCommunication
-_08010C58: .4byte gWirelessCommType
-_08010C5C:
- ldr r0, _08010CC0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010C66
- b _080110F0
-_08010C66:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08010CAA
- ldr r4, _08010CC4 @ =gBattleStruct
- ldr r0, [r4]
- movs r5, 0xC2
- lsls r5, 1
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r2, _08010CC8 @ =0x00000185
- adds r1, r0, r2
- movs r0, 0x2
- strb r0, [r1]
- bl sub_800FFEC
- bl sub_80100B8
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, r5
- movs r2, 0x20
- bl SendBlock
- ldr r1, _08010CCC @ =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08010CAA:
- ldr r0, _08010CD0 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010CB4
- b _080110F0
-_08010CB4:
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
- b _080110F0
- .align 2, 0
-_08010CC0: .4byte gReceivedRemoteLinkPlayers
-_08010CC4: .4byte gBattleStruct
-_08010CC8: .4byte 0x00000185
-_08010CCC: .4byte gBattleCommunication
-_08010CD0: .4byte gWirelessCommType
-_08010CD4:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _08010CE2
- b _080110F0
-_08010CE2:
- bl ResetBlockReceivedFlags
- movs r0, 0x4
- adds r1, r7, 0
- bl sub_8010414
- bl sub_801017C
- bl SetDeoxysStats
- ldr r0, _08010D4C @ =gDecompressionBuffer
- ldr r1, _08010D50 @ =gPlayerParty
- movs r2, 0x96
- lsls r2, 1
- bl memcpy
- ldr r0, _08010D54 @ =sub_800F6FC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08010D58 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x87
- lsls r0, 1
- strh r0, [r1, 0xA]
- movs r0, 0x5A
- strh r0, [r1, 0xC]
- strh r2, [r1, 0x12]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
- adds r2, r1, 0
- ldr r0, _08010D5C @ =gBlockRecvBuffer
- adds r3, r0, 0x2
- ldr r5, _08010D60 @ =gLinkPlayers
- movs r4, 0x3F
- movs r7, 0x80
- lsls r7, 1
- movs r6, 0x3
-_08010D3A:
- ldrh r0, [r5, 0x18]
- cmp r0, 0x1
- beq _08010D76
- cmp r0, 0x1
- bgt _08010D64
- cmp r0, 0
- beq _08010D6E
- b _08010D9C
- .align 2, 0
-_08010D4C: .4byte gDecompressionBuffer
-_08010D50: .4byte gPlayerParty
-_08010D54: .4byte sub_800F6FC
-_08010D58: .4byte gTasks
-_08010D5C: .4byte gBlockRecvBuffer
-_08010D60: .4byte gLinkPlayers
-_08010D64:
- cmp r0, 0x2
- beq _08010D7E
- cmp r0, 0x3
- beq _08010D8E
- b _08010D9C
-_08010D6E:
- ldrh r0, [r3]
- adds r1, r4, 0
- ands r1, r0
- b _08010D86
-_08010D76:
- ldrh r0, [r3]
- adds r1, r4, 0
- ands r1, r0
- b _08010D96
-_08010D7E:
- ldrh r0, [r3]
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 6
-_08010D86:
- ldrh r0, [r2, 0xE]
- orrs r1, r0
- strh r1, [r2, 0xE]
- b _08010D9C
-_08010D8E:
- ldrh r0, [r3]
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 6
-_08010D96:
- ldrh r0, [r2, 0x10]
- orrs r1, r0
- strh r1, [r2, 0x10]
-_08010D9C:
- adds r3, r7
- adds r5, 0x1C
- subs r6, 0x1
- cmp r6, 0
- bge _08010D3A
- bl ZeroPlayerPartyMons
- bl ZeroEnemyPartyMons
- ldr r1, _08010DD8 @ =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08010DB6:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010DC2
- b _080110F0
-_08010DC2:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08010DDC @ =gDecompressionBuffer
- movs r2, 0xC8
- bl SendBlock
- ldr r1, _08010DD8 @ =gBattleCommunication
- b _080110EA
- .align 2, 0
-_08010DD8: .4byte gBattleCommunication
-_08010DDC: .4byte gDecompressionBuffer
-_08010DE0:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _08010DEE
- b _080110F0
-_08010DEE:
- bl ResetBlockReceivedFlags
- movs r6, 0
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- mov r8, r0
- ldr r4, _08010E18 @ =gBlockRecvBuffer
- movs r5, 0
-_08010E00:
- cmp r6, r7
- bne _08010E34
- ldr r0, _08010E1C @ =gLinkPlayers
- adds r0, r5, r0
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _08010E20
- cmp r0, 0x1
- bge _08010E2C
- cmp r0, 0
- beq _08010E24
- b _08010EBE
- .align 2, 0
-_08010E18: .4byte gBlockRecvBuffer
-_08010E1C: .4byte gLinkPlayers
-_08010E20:
- cmp r0, 0x3
- bne _08010EBE
-_08010E24:
- ldr r0, _08010E28 @ =gPlayerParty
- b _08010EA4
- .align 2, 0
-_08010E28: .4byte gPlayerParty
-_08010E2C:
- ldr r0, _08010E30 @ =gUnknown_20243B0
- b _08010EA4
- .align 2, 0
-_08010E30: .4byte gUnknown_20243B0
-_08010E34:
- ldr r2, _08010E54 @ =gLinkPlayers
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08010E58
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010E66
- b _08010E8C
- .align 2, 0
-_08010E54: .4byte gLinkPlayers
-_08010E58:
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010E8C
-_08010E66:
- adds r0, r5, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _08010E78
- cmp r2, 0x1
- bge _08010E84
- cmp r2, 0
- beq _08010E7C
- b _08010EBE
-_08010E78:
- cmp r2, 0x3
- bne _08010EBE
-_08010E7C:
- ldr r0, _08010E80 @ =gPlayerParty
- b _08010EA4
- .align 2, 0
-_08010E80: .4byte gPlayerParty
-_08010E84:
- ldr r0, _08010E88 @ =gUnknown_20243B0
- b _08010EA4
- .align 2, 0
-_08010E88: .4byte gUnknown_20243B0
-_08010E8C:
- adds r0, r5, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _08010E9E
- cmp r2, 0x1
- bge _08010EB4
- cmp r2, 0
- beq _08010EA2
- b _08010EBE
-_08010E9E:
- cmp r2, 0x3
- bne _08010EBE
-_08010EA2:
- ldr r0, _08010EB0 @ =gEnemyParty
-_08010EA4:
- adds r1, r4, 0
- movs r2, 0xC8
- bl memcpy
- b _08010EBE
- .align 2, 0
-_08010EB0: .4byte gEnemyParty
-_08010EB4:
- ldr r0, _08010ED0 @ =gUnknown_2024158
- adds r1, r4, 0
- movs r2, 0xC8
- bl memcpy
-_08010EBE:
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _08010E00
- ldr r1, _08010ED4 @ =gBattleCommunication
- b _080110EA
- .align 2, 0
-_08010ED0: .4byte gUnknown_2024158
-_08010ED4: .4byte gBattleCommunication
-_08010ED8:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010EE4
- b _080110F0
-_08010EE4:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08010EF8 @ =gDecompressionBuffer + 0x0C8
- movs r2, 0x64
- bl SendBlock
- ldr r1, _08010EFC @ =gBattleCommunication
- b _080110EA
- .align 2, 0
-_08010EF8: .4byte gDecompressionBuffer + 0x0C8
-_08010EFC: .4byte gBattleCommunication
-_08010F00:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _08010F0E
- b _080110F0
-_08010F0E:
- bl ResetBlockReceivedFlags
- movs r6, 0
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- mov r8, r0
- ldr r4, _08010F38 @ =gBlockRecvBuffer
- movs r5, 0
-_08010F20:
- cmp r6, r7
- bne _08010F54
- ldr r0, _08010F3C @ =gLinkPlayers
- adds r0, r5, r0
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _08010F40
- cmp r0, 0x1
- bge _08010F4C
- cmp r0, 0
- beq _08010F44
- b _08010FDE
- .align 2, 0
-_08010F38: .4byte gBlockRecvBuffer
-_08010F3C: .4byte gLinkPlayers
-_08010F40:
- cmp r0, 0x3
- bne _08010FDE
-_08010F44:
- ldr r0, _08010F48 @ =gUnknown_202434C
- b _08010FC4
- .align 2, 0
-_08010F48: .4byte gUnknown_202434C
-_08010F4C:
- ldr r0, _08010F50 @ =gUnknown_2024478
- b _08010FC4
- .align 2, 0
-_08010F50: .4byte gUnknown_2024478
-_08010F54:
- ldr r2, _08010F74 @ =gLinkPlayers
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08010F78
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010F86
- b _08010FAC
- .align 2, 0
-_08010F74: .4byte gLinkPlayers
-_08010F78:
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010FAC
-_08010F86:
- adds r0, r5, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _08010F98
- cmp r2, 0x1
- bge _08010FA4
- cmp r2, 0
- beq _08010F9C
- b _08010FDE
-_08010F98:
- cmp r2, 0x3
- bne _08010FDE
-_08010F9C:
- ldr r0, _08010FA0 @ =gUnknown_202434C
- b _08010FC4
- .align 2, 0
-_08010FA0: .4byte gUnknown_202434C
-_08010FA4:
- ldr r0, _08010FA8 @ =gUnknown_2024478
- b _08010FC4
- .align 2, 0
-_08010FA8: .4byte gUnknown_2024478
-_08010FAC:
- adds r0, r5, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _08010FBE
- cmp r2, 0x1
- bge _08010FD4
- cmp r2, 0
- beq _08010FC2
- b _08010FDE
-_08010FBE:
- cmp r2, 0x3
- bne _08010FDE
-_08010FC2:
- ldr r0, _08010FD0 @ =gUnknown_20240F4
-_08010FC4:
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- b _08010FDE
- .align 2, 0
-_08010FD0: .4byte gUnknown_20240F4
-_08010FD4:
- ldr r0, _0801105C @ =gUnknown_2024220
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
-_08010FDE:
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _08010F20
- ldr r4, _08011060 @ =gPlayerParty
- adds r0, r4, 0
- bl sub_8011D0C
- adds r0, r4, 0
- adds r0, 0x64
- bl sub_8011D0C
- adds r0, r4, 0
- adds r0, 0xC8
- bl sub_8011D0C
- movs r1, 0x96
- lsls r1, 1
- adds r0, r4, r1
- bl sub_8011D0C
- movs r2, 0xC8
- lsls r2, 1
- adds r0, r4, r2
- bl sub_8011D0C
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r4, r1
- bl sub_8011D0C
- ldr r4, _08011064 @ =gEnemyParty
- adds r0, r4, 0
- bl sub_8011D0C
- adds r0, r4, 0
- adds r0, 0x64
- bl sub_8011D0C
- adds r0, r4, 0
- adds r0, 0xC8
- bl sub_8011D0C
- movs r2, 0x96
- lsls r2, 1
- adds r0, r4, r2
- bl sub_8011D0C
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r4, r1
- bl sub_8011D0C
- movs r2, 0xFA
- lsls r2, 1
- adds r0, r4, r2
- bl sub_8011D0C
- ldr r1, _08011068 @ =gBattleCommunication
- b _080110EA
- .align 2, 0
-_0801105C: .4byte gUnknown_2024220
-_08011060: .4byte gPlayerParty
-_08011064: .4byte gEnemyParty
-_08011068: .4byte gBattleCommunication
-_0801106C:
- bl sub_800D30C
- ldr r0, _08011080 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r2, [r0, 0x2]
- b _080110F0
- .align 2, 0
-_08011080: .4byte gBattleCommunication
-_08011084:
- ldr r0, _080110B8 @ =gUnknown_2023E83
- adds r1, r0, 0x1
- bl BattleInitAllSprites
- lsls r0, 24
- cmp r0, 0
- beq _080110F0
- ldr r2, _080110BC @ =gPreBattleCallback1
- ldr r1, _080110C0 @ =gMain
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, _080110C4 @ =sub_80123E4
- str r0, [r1]
- ldr r0, _080110C8 @ =BattleMainCB2
- bl SetMainCallback2
- ldr r2, _080110CC @ =gBattleTypeFlags
- ldr r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080110F0
- movs r0, 0x20
- orrs r1, r0
- str r1, [r2]
- b _080110F0
- .align 2, 0
-_080110B8: .4byte gUnknown_2023E83
-_080110BC: .4byte gPreBattleCallback1
-_080110C0: .4byte gMain
-_080110C4: .4byte sub_80123E4
-_080110C8: .4byte BattleMainCB2
-_080110CC: .4byte gBattleTypeFlags
-_080110D0:
- ldr r0, _080110FC @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- movs r1, 0x1
- strb r1, [r0, 0x1]
-_080110DC:
- ldr r1, _080110FC @ =gBattleCommunication
- ldrb r0, [r1, 0x1]
- subs r0, 0x1
- strb r0, [r1, 0x1]
- lsls r0, 24
- cmp r0, 0
- bne _080110F0
-_080110EA:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080110F0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080110FC: .4byte gBattleCommunication
- thumb_func_end sub_8010BA0
-
- thumb_func_start BattleMainCB2
-BattleMainCB2: @ 8011100
- push {lr}
- sub sp, 0x4
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- bl RunTasks
- ldr r0, _08011160 @ =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08011158
- ldr r0, _08011164 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 9
- ands r0, r1
- cmp r0, 0
- beq _08011158
- ldr r2, _08011168 @ =gSpecialVar_Result
- ldr r1, _0801116C @ =gBattleOutcome
- movs r0, 0x3
- strb r0, [r1]
- movs r0, 0x3
- strh r0, [r2]
- bl ResetPaletteFadeControl
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08011170 @ =CB2_QuitRecordedBattle
- bl SetMainCallback2
-_08011158:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08011160: .4byte gMain
-_08011164: .4byte gBattleTypeFlags
-_08011168: .4byte gSpecialVar_Result
-_0801116C: .4byte gBattleOutcome
-_08011170: .4byte CB2_QuitRecordedBattle
- thumb_func_end BattleMainCB2
-
- thumb_func_start FreeRestoreBattleData
-FreeRestoreBattleData: @ 8011174
- push {lr}
- ldr r1, _080111AC @ =gMain
- ldr r0, _080111B0 @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _080111B4 @ =gScanlineEffect
- movs r0, 0x3
- strb r0, [r2, 0x15]
- ldr r0, _080111B8 @ =0x00000439
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl ZeroEnemyPartyMons
- movs r0, 0x53
- bl m4aSongNumStop
- bl FreeMonSpritesGfx
- bl FreeBattleSpritesData
- bl FreeBattleResources
- pop {r0}
- bx r0
- .align 2, 0
-_080111AC: .4byte gMain
-_080111B0: .4byte gPreBattleCallback1
-_080111B4: .4byte gScanlineEffect
-_080111B8: .4byte 0x00000439
- thumb_func_end FreeRestoreBattleData
-
- thumb_func_start CB2_QuitRecordedBattle
-CB2_QuitRecordedBattle: @ 80111BC
- push {lr}
- bl UpdatePaletteFade
- ldr r0, _080111E4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080111DE
- bl FreeRestoreBattleData
- bl FreeAllWindowBuffers
- ldr r0, _080111E8 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_080111DE:
- pop {r0}
- bx r0
- .align 2, 0
-_080111E4: .4byte gPaletteFade
-_080111E8: .4byte gMain
- thumb_func_end CB2_QuitRecordedBattle
-
- thumb_func_start sub_80111EC
-sub_80111EC: @ 80111EC
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, _080111F8 @ =sub_80111FC
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080111F8: .4byte sub_80111FC
- thumb_func_end sub_80111EC
-
- thumb_func_start sub_80111FC
-sub_80111FC: @ 80111FC
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r0, 0x2E
- ldrsh r6, [r5, r0]
- cmp r6, 0x1
- beq _08011236
- cmp r6, 0x1
- bgt _08011212
- cmp r6, 0
- beq _08011218
- b _080112D0
-_08011212:
- cmp r6, 0x2
- beq _080112A0
- b _080112D0
-_08011218:
- ldr r4, _08011298 @ =gUnknown_2022BC0
- movs r0, 0x80
- lsls r0, 5
- bl AllocZeroed
- str r0, [r4]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- strh r6, [r5, 0x30]
- ldr r0, _0801129C @ =0x00000281
- strh r0, [r5, 0x32]
- strh r6, [r5, 0x34]
- movs r0, 0x1
- strh r0, [r5, 0x36]
-_08011236:
- ldrh r0, [r5, 0x36]
- subs r0, 0x1
- strh r0, [r5, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _080112D0
- movs r0, 0x2
- strh r0, [r5, 0x36]
- movs r1, 0x30
- ldrsh r2, [r5, r1]
- movs r3, 0x34
- ldrsh r0, [r5, r3]
- lsls r0, 5
- adds r2, r0
- movs r3, 0x32
- ldrsh r1, [r5, r3]
- subs r1, r0
- movs r3, 0
- ldr r0, _08011298 @ =gUnknown_2022BC0
- mov r12, r0
- lsls r7, r2, 1
- movs r4, 0x3D
- lsls r6, r1, 1
-_08011264:
- mov r1, r12
- ldr r0, [r1]
- lsls r2, r3, 1
- adds r1, r7, r0
- adds r1, r2, r1
- strh r4, [r1]
- adds r0, r6, r0
- adds r2, r0
- strh r4, [r2]
- adds r3, 0x2
- cmp r3, 0x1D
- ble _08011264
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080112D0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r0, 0x20
- strh r0, [r5, 0x30]
- b _080112D0
- .align 2, 0
-_08011298: .4byte gUnknown_2022BC0
-_0801129C: .4byte 0x00000281
-_080112A0:
- ldrh r0, [r5, 0x30]
- subs r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080112D0
- ldr r4, _080112D8 @ =gUnknown_2022BC0
- ldr r0, [r4]
- cmp r0, 0
- beq _080112CA
- movs r2, 0x80
- lsls r2, 5
- movs r1, 0
- bl memset
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
-_080112CA:
- ldr r0, _080112DC @ =sub_800FD9C
- bl SetMainCallback2
-_080112D0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080112D8: .4byte gUnknown_2022BC0
-_080112DC: .4byte sub_800FD9C
- thumb_func_end sub_80111FC
-
- thumb_func_start sub_80112E0
-sub_80112E0: @ 80112E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r0, [sp, 0x10]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r0, 0
- mov r9, r0
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08011304
- movs r0, 0
- b _080116AC
-_08011304:
- ldr r0, _08011334 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _08011338 @ =0x00080908
- ands r0, r1
- ldr r1, [sp, 0x14]
- lsls r1, 2
- str r1, [sp, 0x20]
- cmp r0, 0x8
- beq _08011318
- b _0801169C
-_08011318:
- bl ZeroEnemyPartyMons
- movs r2, 0
- str r2, [sp, 0x18]
- ldr r2, _0801133C @ =gTrainers
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- adds r0, 0x20
- ldr r4, [sp, 0x18]
- b _0801167E
- .align 2, 0
-_08011334: .4byte gBattleTypeFlags
-_08011338: .4byte 0x00080908
-_0801133C: .4byte gTrainers
-_08011340:
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrb r0, [r1, 0x18]
- cmp r0, 0x1
- bne _08011354
- movs r4, 0x80
- mov r10, r4
- b _08011366
-_08011354:
- ldrb r1, [r1, 0x2]
- movs r0, 0x80
- ands r0, r1
- movs r1, 0x88
- mov r10, r1
- cmp r0, 0
- beq _08011366
- movs r2, 0x78
- mov r10, r2
-_08011366:
- movs r6, 0
- ldr r0, _080113BC @ =gTrainers
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r1, r2, r3
- lsls r1, 3
- adds r3, r0, 0x4
- adds r1, r3
- ldrb r1, [r1]
- adds r4, r0, 0
- ldr r0, [sp, 0x18]
- adds r0, 0x1
- str r0, [sp, 0x1C]
- cmp r1, 0xFF
- beq _0801139E
-_08011384:
- ldr r0, [sp, 0x14]
- adds r1, r2, r0
- lsls r1, 3
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08011384
-_0801139E:
- adds r2, r4, 0
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r1, r0, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08011454
- cmp r0, 0x1
- bgt _080113C0
- cmp r0, 0
- beq _080113CE
- b _0801166C
- .align 2, 0
-_080113BC: .4byte gTrainers
-_080113C0:
- cmp r0, 0x2
- bne _080113C6
- b _08011514
-_080113C6:
- cmp r0, 0x3
- bne _080113CC
- b _080115A8
-_080113CC:
- b _0801166C
-_080113CE:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _08011450 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _08011410
- adds r3, r1, 0
- movs r7, 0xB
-_080113F4:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080113F4
-_08011410:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r4, r5, r4
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r1, 0x64
- adds r0, r3, 0
- muls r0, r1
- ldr r2, [sp, 0x10]
- adds r0, r2, r0
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r3, 0x1
- str r3, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r3, 0x2
- str r3, [sp, 0x8]
- movs r3, 0
- str r3, [sp, 0xC]
- adds r3, r6, 0
- bl CreateMon
- b _0801166C
- .align 2, 0
-_08011450: .4byte gSpeciesNames
-_08011454:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0801150C @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _08011496
- adds r3, r1, 0
- movs r4, 0xB
-_0801147A:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0801147A
-_08011496:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r4, r3, r7
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r5, r0, 0
- muls r5, r1
- ldr r2, [sp, 0x10]
- adds r5, r2, r5
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r3, r6, 0
- bl CreateMon
- movs r6, 0
- mov r0, r8
- adds r0, 0x6
- adds r4, r7, r0
-_080114E0:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- adds r2, r4, 0
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _08011510 @ =gBattleMoves+0x4
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _080114E0
- b _0801166C
- .align 2, 0
-_0801150C: .4byte gSpeciesNames
-_08011510: .4byte gBattleMoves+0x4
-_08011514:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080115A4 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _08011556
- adds r3, r1, 0
- movs r7, 0xB
-_0801153A:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0801153A
-_08011556:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r5, r4
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r1, [sp, 0x10]
- adds r4, r1, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- b _0801166C
- .align 2, 0
-_080115A4: .4byte gSpeciesNames
-_080115A8:
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080116BC @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _080115EA
- adds r3, r1, 0
- movs r4, 0xB
-_080115CE:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080115CE
-_080115EA:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r5, r3, r7
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r2, [sp, 0x10]
- adds r4, r2, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- movs r6, 0
- adds r5, r4, 0
- mov r0, r8
- adds r0, 0x8
- adds r4, r7, r0
-_08011642:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- adds r2, r4, 0
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _080116C0 @ =gBattleMoves+0x4
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08011642
-_0801166C:
- ldr r4, [sp, 0x1C]
- str r4, [sp, 0x18]
- ldr r2, _080116C4 @ =gTrainers
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- adds r0, 0x20
-_0801167E:
- ldrb r0, [r0]
- cmp r4, r0
- bge _08011686
- b _08011340
-_08011686:
- ldr r2, _080116C8 @ =gBattleTypeFlags
- ldr r1, _080116C4 @ =gTrainers
- ldr r4, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r4, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x18]
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
-_0801169C:
- ldr r0, _080116C4 @ =gTrainers
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x14]
- adds r1, r4, r2
- lsls r1, 3
- adds r1, r0
- adds r1, 0x20
- ldrb r0, [r1]
-_080116AC:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080116BC: .4byte gSpeciesNames
-_080116C0: .4byte gBattleMoves+0x4
-_080116C4: .4byte gTrainers
-_080116C8: .4byte gBattleTypeFlags
- thumb_func_end sub_80112E0
-
- thumb_func_start sub_80116CC
-sub_80116CC: @ 80116CC
- push {lr}
- ldr r0, _080116EC @ =0x04000006
- ldrh r0, [r0]
- subs r0, 0x6F
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x30
- bhi _080116E6
- ldr r1, _080116F0 @ =0x04000008
- movs r2, 0x98
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
-_080116E6:
- pop {r0}
- bx r0
- .align 2, 0
-_080116EC: .4byte 0x04000006
-_080116F0: .4byte 0x04000008
- thumb_func_end sub_80116CC
-
- thumb_func_start VBlankCB_Battle
-VBlankCB_Battle: @ 80116F4
- push {lr}
- bl Random
- ldr r0, _08011788 @ =gBattle_BG0_X
- ldrh r1, [r0]
- movs r0, 0x10
- bl SetGpuReg
- ldr r0, _0801178C @ =gBattle_BG0_Y
- ldrh r1, [r0]
- movs r0, 0x12
- bl SetGpuReg
- ldr r0, _08011790 @ =gBattle_BG1_X
- ldrh r1, [r0]
- movs r0, 0x14
- bl SetGpuReg
- ldr r0, _08011794 @ =gBattle_BG1_Y
- ldrh r1, [r0]
- movs r0, 0x16
- bl SetGpuReg
- ldr r0, _08011798 @ =gBattle_BG2_X
- ldrh r1, [r0]
- movs r0, 0x18
- bl SetGpuReg
- ldr r0, _0801179C @ =gBattle_BG2_Y
- ldrh r1, [r0]
- movs r0, 0x1A
- bl SetGpuReg
- ldr r0, _080117A0 @ =gBattle_BG3_X
- ldrh r1, [r0]
- movs r0, 0x1C
- bl SetGpuReg
- ldr r0, _080117A4 @ =gBattle_BG3_Y
- ldrh r1, [r0]
- movs r0, 0x1E
- bl SetGpuReg
- ldr r0, _080117A8 @ =gBattle_WIN0H
- ldrh r1, [r0]
- movs r0, 0x40
- bl SetGpuReg
- ldr r0, _080117AC @ =gBattle_WIN0V
- ldrh r1, [r0]
- movs r0, 0x44
- bl SetGpuReg
- ldr r0, _080117B0 @ =gUnknown_2022988
- ldrh r1, [r0]
- movs r0, 0x42
- bl SetGpuReg
- ldr r0, _080117B4 @ =gUnknown_202298A
- ldrh r1, [r0]
- movs r0, 0x46
- bl SetGpuReg
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl ScanlineEffect_InitHBlankDmaTransfer
- pop {r0}
- bx r0
- .align 2, 0
-_08011788: .4byte gBattle_BG0_X
-_0801178C: .4byte gBattle_BG0_Y
-_08011790: .4byte gBattle_BG1_X
-_08011794: .4byte gBattle_BG1_Y
-_08011798: .4byte gBattle_BG2_X
-_0801179C: .4byte gBattle_BG2_Y
-_080117A0: .4byte gBattle_BG3_X
-_080117A4: .4byte gBattle_BG3_Y
-_080117A8: .4byte gBattle_WIN0H
-_080117AC: .4byte gBattle_WIN0V
-_080117B0: .4byte gUnknown_2022988
-_080117B4: .4byte gUnknown_202298A
- thumb_func_end VBlankCB_Battle
-
- thumb_func_start nullsub_9
-nullsub_9: @ 80117B8
- bx lr
- thumb_func_end nullsub_9
-
- thumb_func_start sub_80117BC
-sub_80117BC: @ 80117BC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080117DC
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- lsrs r0, 8
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _080117EE
-_080117DC:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- asrs r0, 8
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x20]
-_080117EE:
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08011822
- ldr r4, _08011828 @ =0x00002710
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl FreeSpriteOamMatrix
- adds r0, r5, 0
- bl DestroySprite
-_08011822:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011828: .4byte 0x00002710
- thumb_func_end sub_80117BC
-
- thumb_func_start sub_801182C
-sub_801182C: @ 801182C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _08011848 @ =sub_80117BC
- str r0, [r4, 0x1C]
- movs r0, 0x61
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011848: .4byte sub_80117BC
- thumb_func_end sub_801182C
-
- thumb_func_start sub_801184C
-sub_801184C: @ 801184C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- ldr r0, _08011894 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xB5
- ldrb r2, [r0]
- ldr r0, _08011898 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080118BC
- ldr r1, _0801189C @ =gLinkPlayers
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _080118A8
- cmp r0, 0x1
- bgt _080118A0
- cmp r0, 0
- beq _080118BC
- b _080118C4
- .align 2, 0
-_08011894: .4byte gBattleStruct
-_08011898: .4byte gBattleTypeFlags
-_0801189C: .4byte gLinkPlayers
-_080118A0:
- cmp r0, 0x2
- beq _080118BC
- cmp r0, 0x3
- bne _080118C4
-_080118A8:
- ldr r0, _080118B4 @ =gEnemyParty
- str r0, [sp, 0x4]
- ldr r1, _080118B8 @ =gPlayerParty
- str r1, [sp, 0x8]
- b _080118C4
- .align 2, 0
-_080118B4: .4byte gEnemyParty
-_080118B8: .4byte gPlayerParty
-_080118BC:
- ldr r2, _08011A10 @ =gPlayerParty
- str r2, [sp, 0x4]
- ldr r3, _08011A14 @ =gEnemyParty
- str r3, [sp, 0x8]
-_080118C4:
- movs r7, 0
- movs r0, 0
- mov r8, r0
- ldr r1, [sp]
- lsls r1, 2
- str r1, [sp, 0xC]
- movs r2, 0xCE
- lsls r2, 1
- mov r10, r2
- mov r9, r0
-_080118D8:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r3, [sp, 0x4]
- adds r4, r3, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _08011948
- cmp r5, r10
- beq _0801191C
- cmp r6, 0
- beq _0801191C
- cmp r1, 0
- bne _0801191C
- movs r0, 0x1
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_0801191C:
- cmp r5, 0
- beq _08011948
- cmp r6, 0
- beq _08011934
- cmp r5, r10
- beq _0801192C
- cmp r1, 0
- beq _08011934
-_0801192C:
- movs r0, 0x2
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_08011934:
- cmp r5, 0
- beq _08011948
- cmp r5, r10
- beq _08011948
- cmp r6, 0
- bne _08011948
- movs r0, 0x3
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_08011948:
- movs r2, 0x2
- add r9, r2
- movs r3, 0x1
- add r8, r3
- mov r0, r8
- cmp r0, 0x5
- ble _080118D8
- ldr r1, _08011A18 @ =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0xE]
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r1, 0xCE
- lsls r1, 1
- mov r10, r1
- mov r9, r0
-_08011972:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r2, [sp, 0x8]
- adds r4, r2, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _080119E2
- cmp r5, r10
- beq _080119B6
- cmp r6, 0
- beq _080119B6
- cmp r1, 0
- bne _080119B6
- movs r0, 0x1
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_080119B6:
- cmp r5, 0
- beq _080119E2
- cmp r6, 0
- beq _080119CE
- cmp r5, r10
- beq _080119C6
- cmp r1, 0
- beq _080119CE
-_080119C6:
- movs r0, 0x2
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_080119CE:
- cmp r5, 0
- beq _080119E2
- cmp r5, r10
- beq _080119E2
- cmp r6, 0
- bne _080119E2
- movs r0, 0x3
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_080119E2:
- movs r3, 0x2
- add r9, r3
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _08011972
- ldr r1, _08011A18 @ =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x10]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011A10: .4byte gPlayerParty
-_08011A14: .4byte gEnemyParty
-_08011A18: .4byte gTasks
- thumb_func_end sub_801184C
-
- thumb_func_start sub_8011A1C
-sub_8011A1C: @ 8011A1C
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- str r0, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _08011B40 @ =0x05006000
- mov r0, sp
- bl CpuSet
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- ldr r4, _08011B44 @ =0x00005051
- movs r0, 0x44
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- ldr r1, _08011B48 @ =gBattle_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r0, _08011B4C @ =gBattle_WIN0V
- strh r4, [r0]
- bl ScanlineEffect_Clear
- ldr r0, _08011B50 @ =gScanlineEffectRegBuffers
- movs r3, 0xF0
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r0, r1
- movs r1, 0x4F
-_08011A80:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _08011A80
- movs r1, 0x50
- ldr r0, _08011B50 @ =gScanlineEffectRegBuffers
- ldr r3, _08011B54 @ =0x0000ff10
- movs r4, 0x82
- lsls r4, 4
- adds r2, r0, r4
- adds r0, 0xA0
-_08011A9C:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _08011A9C
- bl ResetPaletteFade
- ldr r0, _08011B58 @ =gBattle_BG0_X
- movs r4, 0
- strh r4, [r0]
- ldr r0, _08011B5C @ =gBattle_BG0_Y
- strh r4, [r0]
- ldr r0, _08011B60 @ =gBattle_BG1_X
- strh r4, [r0]
- ldr r0, _08011B64 @ =gBattle_BG1_Y
- strh r4, [r0]
- ldr r0, _08011B68 @ =gBattle_BG2_X
- strh r4, [r0]
- ldr r0, _08011B6C @ =gBattle_BG2_Y
- strh r4, [r0]
- ldr r0, _08011B70 @ =gBattle_BG3_X
- strh r4, [r0]
- ldr r0, _08011B74 @ =gBattle_BG3_Y
- strh r4, [r0]
- bl sub_800F34C
- ldr r0, _08011B78 @ =gBattleTextboxPalette
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- bl sub_800F380
- bl ResetSpriteData
- bl ResetTasks
- bl sub_800FAE0
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- bl FreeAllSpritePalettes
- ldr r1, _08011B7C @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _08011B80 @ =VBlankCB_Battle
- bl SetVBlankCallback
- ldr r0, _08011B84 @ =sub_800F6FC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08011B88 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x87
- lsls r2, 1
- strh r2, [r1, 0xA]
- movs r2, 0x5A
- strh r2, [r1, 0xC]
- movs r2, 0x1
- strh r2, [r1, 0x12]
- bl sub_801184C
- ldr r0, _08011B8C @ =sub_8011B94
- bl SetMainCallback2
- ldr r0, _08011B90 @ =gBattleCommunication
- strb r4, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011B40: .4byte 0x05006000
-_08011B44: .4byte 0x00005051
-_08011B48: .4byte gBattle_WIN0H
-_08011B4C: .4byte gBattle_WIN0V
-_08011B50: .4byte gScanlineEffectRegBuffers
-_08011B54: .4byte 0x0000ff10
-_08011B58: .4byte gBattle_BG0_X
-_08011B5C: .4byte gBattle_BG0_Y
-_08011B60: .4byte gBattle_BG1_X
-_08011B64: .4byte gBattle_BG1_Y
-_08011B68: .4byte gBattle_BG2_X
-_08011B6C: .4byte gBattle_BG2_Y
-_08011B70: .4byte gBattle_BG3_X
-_08011B74: .4byte gBattle_BG3_Y
-_08011B78: .4byte gBattleTextboxPalette
-_08011B7C: .4byte gReservedSpritePaletteCount
-_08011B80: .4byte VBlankCB_Battle
-_08011B84: .4byte sub_800F6FC
-_08011B88: .4byte gTasks
-_08011B8C: .4byte sub_8011B94
-_08011B90: .4byte gBattleCommunication
- thumb_func_end sub_8011A1C
-
- thumb_func_start sub_8011B94
-sub_8011B94: @ 8011B94
- push {lr}
- bl sub_8011BB0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_8011B94
-
- thumb_func_start sub_8011BB0
-sub_8011BB0: @ 8011BB0
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08011BC8 @ =gBattleCommunication
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08011BEA
- cmp r0, 0x1
- bgt _08011BCC
- cmp r0, 0
- beq _08011BD2
- b _08011C34
- .align 2, 0
-_08011BC8: .4byte gBattleCommunication
-_08011BCC:
- cmp r0, 0x2
- beq _08011C10
- b _08011C34
-_08011BD2:
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0xFF
- strb r0, [r4, 0x1]
- b _08011C08
-_08011BEA:
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08011C34
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_08011C08:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08011C34
-_08011C10:
- ldr r0, _08011C3C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08011C34
- ldr r0, _08011C40 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- bl sub_812C224
- bl FreeMonSpritesGfx
- bl FreeBattleSpritesData
- bl FreeBattleResources
-_08011C34:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011C3C: .4byte gPaletteFade
-_08011C40: .4byte gMain
- thumb_func_end sub_8011BB0
-
- thumb_func_start sub_8011C44
-sub_8011C44: @ 8011C44
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- cmp r1, 0x6
- bhi _08011D04
- lsls r0, r1, 2
- ldr r1, _08011C60 @ =_08011C64
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08011C60: .4byte _08011C64
- .align 2, 0
-_08011C64:
- .4byte _08011C80
- .4byte _08011C94
- .4byte _08011CA8
- .4byte _08011CBC
- .4byte _08011CD0
- .4byte _08011CE4
- .4byte _08011CF8
-_08011C80:
- ldr r0, _08011C90 @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- lsrs r0, 30
- b _08011D04
- .align 2, 0
-_08011C90: .4byte gUnknown_8248320
-_08011C94:
- ldr r0, _08011CA4 @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 28
- lsrs r0, 30
- b _08011D04
- .align 2, 0
-_08011CA4: .4byte gUnknown_8248320
-_08011CA8:
- ldr r0, _08011CB8 @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldrh r0, [r1]
- lsls r0, 23
- lsrs r0, 27
- b _08011D04
- .align 2, 0
-_08011CB8: .4byte gUnknown_8248320
-_08011CBC:
- ldr r0, _08011CCC @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 29
- lsrs r0, 30
- b _08011D04
- .align 2, 0
-_08011CCC: .4byte gUnknown_8248320
-_08011CD0:
- ldr r0, _08011CE0 @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 28
- lsrs r0, 31
- b _08011D04
- .align 2, 0
-_08011CE0: .4byte gUnknown_8248320
-_08011CE4:
- ldr r0, _08011CF4 @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 26
- lsrs r0, 30
- b _08011D04
- .align 2, 0
-_08011CF4: .4byte gUnknown_8248320
-_08011CF8:
- ldr r0, _08011D08 @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldr r0, [r1]
- lsls r0, 8
- lsrs r0, 22
-_08011D04:
- pop {r1}
- bx r1
- .align 2, 0
-_08011D08: .4byte gUnknown_8248320
- thumb_func_end sub_8011C44
-
- thumb_func_start sub_8011D0C
-sub_8011D0C: @ 8011D0C
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- add r5, sp, 0xC
- movs r0, 0x1
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _08011D5C @ =0x0000012f
- cmp r0, r1
- bne _08011D54
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- ldrb r1, [r5]
- cmp r0, r1
- beq _08011D54
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r1, _08011D60 @ =gUnknown_824F008
- mov r0, sp
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _08011D54
- adds r0, r4, 0
- movs r1, 0x3
- adds r2, r5, 0
- bl SetMonData
-_08011D54:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011D5C: .4byte 0x0000012f
-_08011D60: .4byte gUnknown_824F008
- thumb_func_end sub_8011D0C
-
- thumb_func_start oac_poke_opponent
-oac_poke_opponent: @ 8011D64
- push {lr}
- sub sp, 0x4
- ldr r1, _08011D8C @ =sub_8011D94
- str r1, [r0, 0x1C]
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- movs r0, 0x80
- lsls r0, 10
- ldr r1, _08011D90 @ =0x00002108
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xA
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08011D8C: .4byte sub_8011D94
-_08011D90: .4byte 0x00002108
- thumb_func_end oac_poke_opponent
-
- thumb_func_start sub_8011D94
-sub_8011D94: @ 8011D94
- push {lr}
- adds r2, r0, 0
- ldr r0, _08011DC0 @ =gIntroSlideFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08011DBC
- ldrh r0, [r2, 0x24]
- adds r0, 0x2
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _08011DBC
- ldr r0, _08011DC4 @ =sub_8011DC8
- str r0, [r2, 0x1C]
- ldrh r0, [r2, 0x32]
- movs r1, 0x19
- bl PlayCry1
-_08011DBC:
- pop {r0}
- bx r0
- .align 2, 0
-_08011DC0: .4byte gIntroSlideFlags
-_08011DC4: .4byte sub_8011DC8
- thumb_func_end sub_8011D94
-
- thumb_func_start sub_8011DC8
-sub_8011DC8: @ 8011DC8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08011E10
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl sub_804BD94
- ldr r1, _08011E18 @ =gHealthboxSpriteIds
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- ldr r0, _08011E1C @ =nullsub_10
- str r0, [r4, 0x1C]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- movs r0, 0x80
- lsls r0, 10
- ldr r1, _08011E20 @ =0x00002108
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl BeginNormalPaletteFade
-_08011E10:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011E18: .4byte gHealthboxSpriteIds
-_08011E1C: .4byte nullsub_10
-_08011E20: .4byte 0x00002108
- thumb_func_end sub_8011DC8
-
- thumb_func_start nullsub_10
-nullsub_10: @ 8011E24
- bx lr
- thumb_func_end nullsub_10
-
- thumb_func_start sub_8011E28
-sub_8011E28: @ 8011E28
- movs r1, 0x6
- strh r1, [r0, 0x34]
- movs r1, 0x1
- strh r1, [r0, 0x36]
- ldr r1, _08011E38 @ =sub_8011E3C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_08011E38: .4byte sub_8011E3C
- thumb_func_end sub_8011E28
-
- thumb_func_start sub_8011E3C
-sub_8011E3C: @ 8011E3C
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08011E90
- movs r0, 0x8
- strh r0, [r3, 0x36]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r4, 0x5
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _08011E90
- ldrb r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r0, _08011E98 @ =nullsub_10
- str r0, [r3, 0x1C]
- ldr r0, _08011E9C @ =gUnknown_2022AE8
- str r2, [r0]
-_08011E90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011E98: .4byte nullsub_10
-_08011E9C: .4byte gUnknown_2022AE8
- thumb_func_end sub_8011E3C
-
- thumb_func_start SpriteCB_FaintOpponentMon
-SpriteCB_FaintOpponentMon: @ 8011EA0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08011EC4 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r6, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _08011EC8
- adds r4, r0, 0
- b _08011ECC
- .align 2, 0
-_08011EC4: .4byte gBattleSpritesDataPtr
-_08011EC8:
- mov r0, r9
- ldrh r4, [r0, 0x32]
-_08011ECC:
- ldr r1, _08011F34 @ =gBattlerPartyIndexes
- lsls r0, r6, 1
- adds r5, r0, r1
- ldrh r0, [r5]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r7, _08011F38 @ =gEnemyParty
- adds r0, r7
- movs r1, 0
- bl GetMonData
- cmp r4, 0xC9
- bne _08011F50
- ldrh r0, [r5]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _08011F3C
- movs r0, 0xC9
- b _08011F46
- .align 2, 0
-_08011F34: .4byte gBattlerPartyIndexes
-_08011F38: .4byte gEnemyParty
-_08011F3C:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_08011F46:
- ldr r1, _08011F4C @ =gMonFrontPicCoords
- lsls r0, 2
- b _08011F88
- .align 2, 0
-_08011F4C: .4byte gMonFrontPicCoords
-_08011F50:
- ldr r0, _08011F68 @ =0x00000181 @ SPECIES_CASTFORM
- cmp r4, r0
- bne _08011F74
- ldr r0, _08011F6C @ =gCastformFrontSpriteCoords
- ldr r1, _08011F70 @ =gBattleMonForms
- adds r1, r6, r1
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _08011F8C
- .align 2, 0
-_08011F68: .4byte 0x00000181
-_08011F6C: .4byte gCastformFrontSpriteCoords
-_08011F70: .4byte gBattleMonForms
-_08011F74:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08011F84
- ldr r0, _08011F80 @ =gMonFrontPicCoords
- b _08011F8A
- .align 2, 0
-_08011F80: .4byte gMonFrontPicCoords
-_08011F84:
- ldr r1, _08011FAC @ =gMonFrontPicCoords
- lsls r0, r4, 2
-_08011F88:
- adds r0, r1
-_08011F8A:
- ldrb r0, [r0, 0x1]
-_08011F8C:
- lsrs r1, r0, 3
- movs r0, 0x8
- subs r0, r1
- mov r1, r9
- strh r0, [r1, 0x34]
- movs r0, 0x1
- strh r0, [r1, 0x36]
- ldr r0, _08011FB0 @ =sub_8011FB4
- str r0, [r1, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011FAC: .4byte gMonFrontPicCoords
-_08011FB0: .4byte sub_8011FB4
- thumb_func_end SpriteCB_FaintOpponentMon
-
- thumb_func_start sub_8011FB4
-sub_8011FB4: @ 8011FB4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x36]
- subs r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08012034
- movs r0, 0x2
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x26]
- adds r0, 0x8
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- cmp r0, 0
- bge _08011FE8
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _08012034
-_08011FE8:
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerPosition
- ldr r1, _0801203C @ =gMonSpritesGfxPtr
- ldr r1, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r1, 0x4
- adds r1, r0
- ldr r2, _08012040 @ =gBattleMonForms
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 11
- ldr r1, [r1]
- adds r1, r0
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- lsls r0, 8
- adds r1, r0
- movs r2, 0
- movs r0, 0xFF
-_0801201A:
- strb r2, [r1]
- adds r1, 0x1
- subs r0, 0x1
- cmp r0, 0
- bge _0801201A
- ldr r0, _08012040 @ =gBattleMonForms
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- adds r1, r0
- ldrb r1, [r1]
- adds r0, r4, 0
- bl StartSpriteAnim
-_08012034:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801203C: .4byte gMonSpritesGfxPtr
-_08012040: .4byte gBattleMonForms
- thumb_func_end sub_8011FB4
-
- thumb_func_start sub_8012044
-sub_8012044: @ 8012044
- movs r1, 0x8
- strh r1, [r0, 0x34]
- adds r1, r0, 0
- adds r1, 0x3E
- ldrb r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r0, 0x36]
- ldr r1, _0801205C @ =sub_8012060
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0801205C: .4byte sub_8012060
- thumb_func_end sub_8012044
-
- thumb_func_start sub_8012060
-sub_8012060: @ 8012060
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _08012092
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0x8
- strh r0, [r3, 0x34]
-_08012092:
- pop {r0}
- bx r0
- thumb_func_end sub_8012060
-
- thumb_func_start sub_8012098
-sub_8012098: @ 8012098
- movs r1, 0x3E
- adds r1, r0
- mov r12, r1
- movs r1, 0x1
- ldrh r2, [r0, 0x36]
- ands r2, r1
- lsls r2, 2
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0
- strh r1, [r0, 0x36]
- ldr r1, _080120C0 @ =nullsub_10
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080120C0: .4byte nullsub_10
- thumb_func_end sub_8012098
-
- thumb_func_start sub_80120C4
-sub_80120C4: @ 80120C4
- ldr r1, _080120CC @ =oac_poke_ally_
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080120CC: .4byte oac_poke_ally_
- thumb_func_end sub_80120C4
-
- thumb_func_start oac_poke_ally_
-oac_poke_ally_: @ 80120D0
- push {lr}
- adds r2, r0, 0
- ldr r0, _080120F8 @ =gIntroSlideFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080120F4
- ldrh r0, [r2, 0x24]
- subs r0, 0x2
- strh r0, [r2, 0x24]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080120F4
- ldr r0, _080120FC @ =nullsub_11
- str r0, [r2, 0x1C]
- strh r1, [r2, 0x30]
-_080120F4:
- pop {r0}
- bx r0
- .align 2, 0
-_080120F8: .4byte gIntroSlideFlags
-_080120FC: .4byte nullsub_11
- thumb_func_end oac_poke_ally_
-
- thumb_func_start sub_8012100
-sub_8012100: @ 8012100
- ldr r1, _08012108 @ =nullsub_11
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_08012108: .4byte nullsub_11
- thumb_func_end sub_8012100
-
- thumb_func_start nullsub_11
-nullsub_11: @ 801210C
- bx lr
- thumb_func_end nullsub_11
-
- thumb_func_start sub_8012110
-sub_8012110: @ 8012110
- push {lr}
- adds r2, r0, 0
- ldr r0, _08012134 @ =gIntroSlideFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08012130
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
-_08012130:
- pop {r0}
- bx r0
- .align 2, 0
-_08012134: .4byte gIntroSlideFlags
- thumb_func_end sub_8012110
-
- thumb_func_start DoBounceEffect
-DoBounceEffect: @ 8012138
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- cmp r1, 0
- beq _08012174
- ldr r0, _08012170 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r2, r4, 1
- adds r0, r2, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- b _08012186
- .align 2, 0
-_08012170: .4byte gBattleSpritesDataPtr
-_08012174:
- ldr r0, _080121D0 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r2, r4, 1
- adds r0, r2, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
-_08012186:
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- bne _0801223C
- ldr r0, _080121D4 @ =SpriteCB_HealthBoxBounce
- bl CreateInvisibleSpriteWithCallback
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- cmp r0, 0x1
- bne _080121E0
- ldr r0, _080121D8 @ =gHealthboxSpriteIds
- adds r0, r4, r0
- ldrb r7, [r0]
- ldr r2, _080121D0 @ =gBattleSpritesDataPtr
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r1, r6, r4
- lsls r1, 2
- adds r0, r1, r0
- strb r5, [r0, 0x2]
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- ldr r2, _080121DC @ =gSprites
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0x80
- b _0801220E
- .align 2, 0
-_080121D0: .4byte gBattleSpritesDataPtr
-_080121D4: .4byte SpriteCB_HealthBoxBounce
-_080121D8: .4byte gHealthboxSpriteIds
-_080121DC: .4byte gSprites
-_080121E0:
- ldr r0, _0801224C @ =gBattlerSpriteIds
- adds r0, r4, r0
- ldrb r7, [r0]
- ldr r2, _08012250 @ =gBattleSpritesDataPtr
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r1, r6, r4
- lsls r1, 2
- adds r0, r1, r0
- strb r5, [r0, 0x3]
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r2, _08012254 @ =gSprites
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0xC0
-_0801220E:
- strh r1, [r0, 0x2E]
- adds r4, r2, 0
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r4
- mov r2, r9
- lsls r0, r2, 24
- asrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x30]
- mov r3, r10
- lsls r0, r3, 24
- asrs r0, 24
- strh r0, [r1, 0x32]
- strh r7, [r1, 0x34]
- mov r0, r8
- strh r0, [r1, 0x36]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x24]
- strh r2, [r0, 0x26]
-_0801223C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801224C: .4byte gBattlerSpriteIds
-_08012250: .4byte gBattleSpritesDataPtr
-_08012254: .4byte gSprites
- thumb_func_end DoBounceEffect
-
- thumb_func_start EndBounceEffect
-EndBounceEffect: @ 8012258
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- bne _080122AC
- ldr r6, _080122A4 @ =gBattleSpritesDataPtr
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r5, r0, 2
- adds r3, r5, r1
- ldrb r1, [r3]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080122FA
- ldr r2, _080122A8 @ =gSprites
- ldrb r1, [r3, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x34]
- lsls r1, 24
- lsrs r4, r1, 24
- bl DestroySprite
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- adds r1, r5, r1
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- b _080122E6
- .align 2, 0
-_080122A4: .4byte gBattleSpritesDataPtr
-_080122A8: .4byte gSprites
-_080122AC:
- ldr r6, _08012300 @ =gBattleSpritesDataPtr
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r5, r0, 2
- adds r3, r5, r1
- ldrb r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080122FA
- ldr r2, _08012304 @ =gSprites
- ldrb r1, [r3, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x34]
- lsls r1, 24
- lsrs r4, r1, 24
- bl DestroySprite
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- adds r1, r5, r1
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
-_080122E6:
- ands r0, r2
- strb r0, [r1]
- ldr r0, _08012304 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x24]
- strh r0, [r1, 0x26]
-_080122FA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08012300: .4byte gBattleSpritesDataPtr
-_08012304: .4byte gSprites
- thumb_func_end EndBounceEffect
-
- thumb_func_start SpriteCB_HealthBoxBounce
-SpriteCB_HealthBoxBounce: @ 8012308
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08012320
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- b _08012324
-_08012320:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
-_08012324:
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- ldr r2, _08012350 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08012350: .4byte gSprites
- thumb_func_end SpriteCB_HealthBoxBounce
-
- thumb_func_start sub_8012354
-sub_8012354: @ 8012354
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _08012368 @ =sub_8012398
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08012368: .4byte sub_8012398
- thumb_func_end sub_8012354
-
- thumb_func_start sub_801236C
-sub_801236C: @ 801236C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _0801238E
- ldr r1, _08012394 @ =gUnknown_824F048
- adds r0, r2, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- adds r0, 0x28
- strb r1, [r0]
-_0801238E:
- pop {r0}
- bx r0
- .align 2, 0
-_08012394: .4byte gUnknown_824F048
- thumb_func_end sub_801236C
-
- thumb_func_start sub_8012398
-sub_8012398: @ 8012398
- push {r4,lr}
- adds r4, r0, 0
- bl sub_801236C
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080123B2
- ldr r0, _080123B8 @ =nullsub_11
- str r0, [r4, 0x1C]
-_080123B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080123B8: .4byte nullsub_11
- thumb_func_end sub_8012398
-
- thumb_func_start nullsub_12
-nullsub_12: @ 80123BC
- bx lr
- thumb_func_end nullsub_12
-
- thumb_func_start BeginBattleIntro
-BeginBattleIntro: @ 80123C0
- push {lr}
- bl sub_8012434
- ldr r1, _080123D8 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x1]
- ldr r1, _080123DC @ =gBattleMainFunc
- ldr r0, _080123E0 @ =BattleIntroGetMonsData
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080123D8: .4byte gBattleCommunication
-_080123DC: .4byte gBattleMainFunc
-_080123E0: .4byte BattleIntroGetMonsData
- thumb_func_end BeginBattleIntro
-
- thumb_func_start sub_80123E4
-sub_80123E4: @ 80123E4
- push {r4,r5,lr}
- ldr r0, _08012424 @ =gBattleMainFunc
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _08012428 @ =gActiveBattler
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0801242C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801241E
- ldr r5, _08012430 @ =gBattlerControllerFuncs
- adds r4, r1, 0
-_08012400:
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- bl _call_via_r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0801242C @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08012400
-_0801241E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08012424: .4byte gBattleMainFunc
-_08012428: .4byte gActiveBattler
-_0801242C: .4byte gBattlersCount
-_08012430: .4byte gBattlerControllerFuncs
- thumb_func_end sub_80123E4
-
- thumb_func_start sub_8012434
-sub_8012434: @ 8012434
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- bl TurnValuesCleanUp
- bl SpecialStatusesClear
- movs r2, 0
- movs r3, 0
- ldr r0, _080126CC @ =gLastResultingMoves
- mov r10, r0
- ldr r1, _080126D0 @ =gLastHitByType
- mov r12, r1
- ldr r0, _080126D4 @ =gLastLandedMoves
- mov r9, r0
- ldr r1, _080126D8 @ =gLastMoves
- mov r8, r1
- ldr r4, _080126DC @ =gDisableStructs
- movs r5, 0
- ldr r7, _080126E0 @ =gLastPrintedMoves
- ldr r6, _080126E4 @ =gLockedMoves
-_08012464:
- ldr r0, _080126E8 @ =gStatuses3
- adds r0, r5, r0
- str r3, [r0]
- movs r1, 0
-_0801246C:
- adds r0, r4, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0x1B
- bls _0801246C
- movs r0, 0x2
- strb r0, [r4, 0x16]
- ldr r1, _080126EC @ =gUnknown_2023DD4
- adds r0, r2, r1
- strb r3, [r0]
- mov r0, r8
- strh r3, [r0]
- mov r1, r9
- strh r3, [r1]
- mov r0, r12
- strh r3, [r0]
- mov r1, r10
- strh r3, [r1]
- ldr r0, _080126F0 @ =gLastHitBy
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- strh r3, [r6]
- strh r3, [r7]
- ldr r1, _080126F4 @ =gBattleResources
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r0, r5
- str r3, [r0]
- movs r0, 0x2
- add r10, r0
- add r12, r0
- add r9, r0
- add r8, r0
- adds r4, 0x1C
- adds r5, 0x4
- adds r7, 0x2
- adds r6, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _08012464
- movs r5, 0
- ldr r3, _080126F8 @ =gSideTimers
- ldr r4, _080126FC @ =gSideStatuses
- movs r2, 0x1
-_080124C6:
- strh r5, [r4]
- movs r1, 0
-_080124CA:
- adds r0, r3, r1
- strb r5, [r0]
- adds r1, 0x1
- cmp r1, 0xB
- bls _080124CA
- adds r3, 0xC
- adds r4, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080124C6
- movs r1, 0
- ldr r2, _08012700 @ =gBattlerAttacker
- strb r1, [r2]
- ldr r0, _08012704 @ =gBattlerTarget
- strb r1, [r0]
- ldr r2, _08012708 @ =gBattleWeather
- strh r1, [r2]
- ldr r1, _0801270C @ =gWishFutureKnock
- movs r2, 0
- movs r3, 0
-_080124F2:
- adds r0, r1, r2
- strb r3, [r0]
- adds r2, 0x1
- cmp r2, 0x2B
- bls _080124F2
- movs r0, 0
- ldr r1, _08012710 @ =gHitMarker
- str r0, [r1]
- ldr r2, _08012714 @ =gBattleTypeFlags
- ldr r0, [r2]
- ldr r1, _08012718 @ =0x00010002
- ands r0, r1
- cmp r0, 0
- bne _08012522
- ldr r1, _0801271C @ =gSaveBlock2Ptr
- ldr r0, [r1]
- ldrb r1, [r0, 0x15]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08012522
- movs r0, 0x80
- ldr r2, _08012710 @ =gHitMarker
- str r0, [r2]
-_08012522:
- ldr r1, _0801271C @ =gSaveBlock2Ptr
- ldr r0, [r1]
- ldrb r0, [r0, 0x15]
- lsls r0, 30
- lsrs r0, 31
- movs r1, 0
- ldr r2, _08012720 @ =gBattleScripting
- strb r0, [r2, 0x1D]
- ldr r0, _08012724 @ =gMultiHitCounter
- strb r1, [r0]
- ldr r2, _08012728 @ =gBattleOutcome
- strb r1, [r2]
- ldr r0, _0801272C @ =gBattleControllerExecFlags
- str r1, [r0]
- movs r2, 0
- ldr r0, _08012730 @ =gPaydayMoney
- strh r1, [r0]
- ldr r1, _080126F4 @ =gBattleResources
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- adds r0, 0x20
- strb r2, [r0]
- ldr r0, [r1]
- ldr r0, [r0, 0xC]
- adds r0, 0x20
- strb r2, [r0]
- ldr r1, _08012734 @ =gBattleCommunication
- movs r2, 0
- adds r0, r1, 0x7
-_0801255C:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _0801255C
- movs r2, 0
- mov r9, r2
- ldr r0, _08012738 @ =gPauseCounterBattle
- strh r2, [r0]
- movs r0, 0
- ldr r1, _0801273C @ =gBattleMoveDamage
- str r0, [r1]
- ldr r2, _08012740 @ =gIntroSlideFlags
- strh r0, [r2]
- mov r1, r9
- ldr r0, _08012720 @ =gBattleScripting
- strb r1, [r0, 0x18]
- strb r1, [r0, 0x19]
- ldr r2, _08012744 @ =gLeveledUpInBattle
- strb r1, [r2]
- ldr r0, _08012748 @ =gAbsentBattlerFlags
- strb r1, [r0]
- ldr r7, _0801274C @ =gBattleStruct
- ldr r0, [r7]
- adds r0, 0x6C
- strb r1, [r0]
- ldr r0, [r7]
- adds r0, 0x79
- strb r1, [r0]
- ldr r0, [r7]
- adds r0, 0x7A
- strb r1, [r0]
- ldr r0, _08012750 @ =gEnemyParty
- movs r1, 0xB
- bl GetMonData
- ldr r4, [r7]
- adds r4, 0x7C
- ldr r1, _08012754 @ =gBaseStats
- mov r8, r1
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x8]
- movs r5, 0x64
- muls r0, r5
- ldr r6, _08012758 @ =0x000004fb
- adds r1, r6, 0
- bl __divsi3
- strb r0, [r4]
- ldr r0, _08012750 @ =gEnemyParty
- movs r1, 0xB
- bl GetMonData
- ldr r4, [r7]
- adds r4, 0x7B
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x18]
- muls r0, r5
- adds r1, r6, 0
- bl __divsi3
- strb r0, [r4]
- ldr r0, [r7]
- adds r1, r0, 0
- adds r1, 0x7B
- ldrb r0, [r1]
- cmp r0, 0x1
- bhi _080125F2
- movs r0, 0x2
- strb r0, [r1]
-_080125F2:
- ldr r0, [r7]
- mov r2, r9
- strb r2, [r0, 0x12]
- ldr r0, [r7]
- adds r0, 0x4A
- movs r1, 0x1
- strb r1, [r0]
- movs r2, 0
- adds r4, r7, 0
- ldr r5, _0801275C @ =gBattleResults
- adds r3, r4, 0
- movs r1, 0
-_0801260A:
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0x98
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xB8
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xC8
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xD0
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xE0
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xE8
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xF0
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xF8
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _0801260A
- ldr r0, [r4]
- adds r0, 0x92
- movs r1, 0x6
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x93
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xDF
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0801275C @ =gBattleResults
- movs r1, 0
- movs r2, 0xA
- adds r0, 0x40
-_0801266E:
- strb r1, [r0]
- subs r0, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _0801266E
- movs r1, 0
- strb r1, [r5, 0x13]
- strb r1, [r5]
- strb r1, [r5, 0x1]
- strb r1, [r5, 0x2]
- strb r1, [r5, 0x3]
- strb r1, [r5, 0x4]
- ldrb r2, [r5, 0x5]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- movs r2, 0x3
- negs r2, r2
- ands r0, r2
- strb r0, [r5, 0x5]
- strh r1, [r5, 0x20]
- strh r1, [r5, 0x22]
- strh r1, [r5, 0x24]
- strh r1, [r5, 0x6]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x28]
- movs r2, 0
- adds r4, r5, 0
- adds r4, 0x8
- movs r3, 0
- adds r1, r5, 0
- adds r1, 0x14
-_080126AE:
- adds r0, r2, r4
- strb r3, [r0]
- strb r3, [r1]
- strb r3, [r1, 0x16]
- adds r1, 0x1
- adds r2, 0x1
- cmp r2, 0x9
- ble _080126AE
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080126CC: .4byte gLastResultingMoves
-_080126D0: .4byte gLastHitByType
-_080126D4: .4byte gLastLandedMoves
-_080126D8: .4byte gLastMoves
-_080126DC: .4byte gDisableStructs
-_080126E0: .4byte gLastPrintedMoves
-_080126E4: .4byte gLockedMoves
-_080126E8: .4byte gStatuses3
-_080126EC: .4byte gUnknown_2023DD4
-_080126F0: .4byte gLastHitBy
-_080126F4: .4byte gBattleResources
-_080126F8: .4byte gSideTimers
-_080126FC: .4byte gSideStatuses
-_08012700: .4byte gBattlerAttacker
-_08012704: .4byte gBattlerTarget
-_08012708: .4byte gBattleWeather
-_0801270C: .4byte gWishFutureKnock
-_08012710: .4byte gHitMarker
-_08012714: .4byte gBattleTypeFlags
-_08012718: .4byte 0x00010002
-_0801271C: .4byte gSaveBlock2Ptr
-_08012720: .4byte gBattleScripting
-_08012724: .4byte gMultiHitCounter
-_08012728: .4byte gBattleOutcome
-_0801272C: .4byte gBattleControllerExecFlags
-_08012730: .4byte gPaydayMoney
-_08012734: .4byte gBattleCommunication
-_08012738: .4byte gPauseCounterBattle
-_0801273C: .4byte gBattleMoveDamage
-_08012740: .4byte gIntroSlideFlags
-_08012744: .4byte gLeveledUpInBattle
-_08012748: .4byte gAbsentBattlerFlags
-_0801274C: .4byte gBattleStruct
-_08012750: .4byte gEnemyParty
-_08012754: .4byte gBaseStats
-_08012758: .4byte 0x000004fb
-_0801275C: .4byte gBattleResults
- thumb_func_end sub_8012434
-
- thumb_func_start SwitchInClearSetData
-SwitchInClearSetData: @ 8012760
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r4, _080128C4 @ =gDisableStructs
- ldr r5, _080128C8 @ =gActiveBattler
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r1, sp
- adds r0, r4
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _080128CC @ =gBattleMoves
- ldr r3, _080128D0 @ =gCurrentMove
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- mov r9, r4
- mov r12, r5
- ldr r6, _080128D4 @ =gStatuses3
- mov r10, r6
- cmp r0, 0x7F
- beq _08012838
- movs r5, 0
- mov r4, r12
- movs r3, 0x58
- ldr r2, _080128D8 @ =gBattleMons
- adds r2, 0x18
- movs r1, 0x6
-_080127B0:
- ldrb r0, [r4]
- muls r0, r3
- adds r0, r5, r0
- adds r0, r2
- strb r1, [r0]
- adds r5, 0x1
- cmp r5, 0x7
- ble _080127B0
- movs r5, 0
- ldr r7, _080128DC @ =gBattlersCount
- ldrb r7, [r7]
- cmp r5, r7
- bge _08012824
- ldr r0, _080128E0 @ =gUnknown_2023C34
- mov r8, r0
- ldr r3, _080128C4 @ =gDisableStructs
- ldr r4, _080128D4 @ =gStatuses3
-_080127D2:
- movs r0, 0x58
- muls r0, r5
- mov r1, r8
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 19
- ands r0, r1
- cmp r0, 0
- beq _080127F6
- ldrb r0, [r3, 0x14]
- ldr r6, _080128C8 @ =gActiveBattler
- ldrb r6, [r6]
- cmp r0, r6
- bne _080127F6
- ldr r0, _080128E4 @ =0xfbffffff
- ands r1, r0
- str r1, [r2]
-_080127F6:
- ldr r1, [r4]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08012816
- ldrb r0, [r3, 0x15]
- ldr r7, _080128C8 @ =gActiveBattler
- ldrb r7, [r7]
- cmp r0, r7
- bne _08012816
- movs r0, 0x19
- negs r0, r0
- ands r1, r0
- str r1, [r4]
- movs r0, 0
- strb r0, [r3, 0x15]
-_08012816:
- adds r3, 0x1C
- adds r4, 0x4
- adds r5, 0x1
- ldr r0, _080128DC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _080127D2
-_08012824:
- ldr r1, _080128D0 @ =gCurrentMove
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _080128CC @ =gBattleMoves
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x7F
- bne _080128F0
-_08012838:
- mov r3, r12
- ldrb r1, [r3]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- ldr r0, _080128D8 @ =gBattleMons
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _080128E8 @ =0x15100007
- ands r0, r1
- str r0, [r2]
- ldrb r1, [r3]
- lsls r1, 2
- add r1, r10
- ldr r0, [r1]
- ldr r2, _080128EC @ =0x0003043f
- ands r0, r2
- str r0, [r1]
- movs r5, 0
- ldr r6, _080128DC @ =gBattlersCount
- ldrb r6, [r6]
- cmp r5, r6
- bge _0801290C
- mov r7, r12
- movs r6, 0
-_0801286C:
- ldrb r0, [r7]
- bl GetBattlerSide
- adds r4, r0, 0
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080128AC
- ldr r1, _080128D4 @ =gStatuses3
- lsls r0, r5, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _080128AC
- ldr r0, _080128C4 @ =gDisableStructs
- adds r0, r6, r0
- ldrb r0, [r0, 0x15]
- ldrb r3, [r7]
- cmp r0, r3
- bne _080128AC
- movs r0, 0x19
- negs r0, r0
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- str r1, [r2]
-_080128AC:
- adds r6, 0x1C
- adds r5, 0x1
- ldr r0, _080128DC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801286C
- ldr r6, _080128C4 @ =gDisableStructs
- mov r9, r6
- ldr r7, _080128C8 @ =gActiveBattler
- mov r12, r7
- b _0801290C
- .align 2, 0
-_080128C4: .4byte gDisableStructs
-_080128C8: .4byte gActiveBattler
-_080128CC: .4byte gBattleMoves
-_080128D0: .4byte gCurrentMove
-_080128D4: .4byte gStatuses3
-_080128D8: .4byte gBattleMons
-_080128DC: .4byte gBattlersCount
-_080128E0: .4byte gUnknown_2023C34
-_080128E4: .4byte 0xfbffffff
-_080128E8: .4byte 0x15100007
-_080128EC: .4byte 0x0003043f
-_080128F0:
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _08012B7C @ =gBattleMons
- adds r1, 0x50
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- mov r2, r12
- ldrb r0, [r2]
- lsls r0, 2
- add r0, r10
- str r1, [r0]
-_0801290C:
- movs r5, 0
- ldr r7, _08012B80 @ =gBattleStruct
- ldr r3, _08012B84 @ =gActionSelectionCursor
- mov r10, r3
- ldr r6, _08012B88 @ =gBattlersCount
- ldrb r6, [r6]
- cmp r5, r6
- bge _0801296C
- ldr r0, _08012B8C @ =gUnknown_2023C34
- mov r8, r0
- ldr r6, _08012B90 @ =gBitTable
- ldr r4, _08012B94 @ =gActiveBattler
-_08012924:
- movs r0, 0x58
- muls r0, r5
- mov r1, r8
- adds r3, r0, r1
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r2, r0, 16
- ldr r1, [r3]
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08012944
- bics r1, r2
- str r1, [r3]
-_08012944:
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08012962
- ldr r0, [r7]
- adds r0, r5, r0
- ldrb r0, [r0, 0x14]
- ldrb r2, [r4]
- cmp r0, r2
- bne _08012962
- ldr r0, _08012B98 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
-_08012962:
- adds r5, 0x1
- ldr r3, _08012B88 @ =gBattlersCount
- ldrb r3, [r3]
- cmp r5, r3
- blt _08012924
-_0801296C:
- mov r6, r12
- ldrb r0, [r6]
- add r0, r10
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r6]
- ldr r2, _08012B9C @ =gMoveSelectionCursor
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r3, r9
- adds r1, r0, r3
- movs r5, 0
- movs r2, 0
-_0801298E:
- adds r0, r1, r5
- strb r2, [r0]
- adds r5, 0x1
- cmp r5, 0x1B
- bls _0801298E
- ldr r6, _08012BA0 @ =gCurrentMove
- ldrh r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08012BA4 @ =gBattleMoves
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x7F
- bne _08012A1A
- mov r2, r12
- ldrb r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- mov r1, sp
- ldrb r1, [r1, 0xA]
- strb r1, [r0, 0xA]
- ldrb r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- mov r1, sp
- ldrb r1, [r1, 0x15]
- strb r1, [r0, 0x15]
- ldrb r0, [r2]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r9
- mov r0, sp
- ldrb r2, [r0, 0xF]
- lsls r2, 28
- movs r4, 0xF
- lsrs r2, 28
- ldrb r3, [r1, 0xF]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xF]
- mov r3, r12
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- mov r1, sp
- ldrb r1, [r1, 0xF]
- lsrs r1, 4
- lsls r1, 4
- ldrb r2, [r0, 0xF]
- ands r4, r2
- orrs r4, r1
- strb r4, [r0, 0xF]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- mov r1, sp
- ldrb r1, [r1, 0x14]
- strb r1, [r0, 0x14]
-_08012A1A:
- movs r0, 0
- ldr r6, _08012BA8 @ =gMoveResultFlags
- strb r0, [r6]
- mov r0, r12
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- movs r2, 0
- movs r1, 0x2
- strb r1, [r0, 0x16]
- mov r1, r12
- ldrb r0, [r1]
- lsls r0, 1
- ldr r3, _08012BAC @ =gLastMoves
- adds r0, r3
- movs r3, 0
- strh r2, [r0]
- ldrb r0, [r1]
- lsls r0, 1
- ldr r6, _08012BB0 @ =gLastLandedMoves
- adds r0, r6
- strh r2, [r0]
- ldrb r0, [r1]
- lsls r0, 1
- ldr r1, _08012BB4 @ =gLastHitByType
- adds r0, r1
- strh r2, [r0]
- mov r6, r12
- ldrb r0, [r6]
- lsls r0, 1
- ldr r1, _08012BB8 @ =gLastResultingMoves
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r6]
- lsls r0, 1
- ldr r6, _08012BBC @ =gLastPrintedMoves
- adds r0, r6
- strh r2, [r0]
- mov r1, r12
- ldrb r0, [r1]
- ldr r2, _08012BC0 @ =gLastHitBy
- adds r0, r2
- movs r1, 0xFF
- strb r1, [r0]
- mov r6, r12
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 1
- adds r0, r1
- adds r0, 0x98
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 1
- adds r0, r1
- adds r0, 0x99
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE0
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE1
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE2
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE3
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE4
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE5
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE6
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE7
- strb r3, [r0]
- movs r5, 0
- ldr r0, _08012B88 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- bge _08012B3C
- adds r4, r7, 0
-_08012AFC:
- ldrb r1, [r6]
- cmp r5, r1
- beq _08012B14
- ldr r0, [r4]
- lsls r1, r5, 1
- adds r0, r1, r0
- adds r0, 0x98
- strb r3, [r0]
- ldr r0, [r4]
- adds r1, r0
- adds r1, 0x99
- strb r3, [r1]
-_08012B14:
- ldrb r0, [r6]
- ldr r1, [r4]
- lsls r0, 1
- lsls r2, r5, 3
- adds r0, r2
- adds r0, r1
- adds r0, 0xE0
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r4]
- lsls r0, 1
- adds r0, r2
- adds r0, r1
- adds r0, 0xE1
- strb r3, [r0]
- adds r5, 0x1
- ldr r2, _08012B88 @ =gBattlersCount
- ldrb r2, [r2]
- cmp r5, r2
- blt _08012AFC
-_08012B3C:
- mov r3, r12
- ldrb r0, [r3]
- ldr r1, [r7]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC8
- movs r2, 0
- strb r2, [r0]
- ldrb r0, [r3]
- ldr r1, [r7]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC9
- strb r2, [r0]
- ldr r6, _08012BC4 @ =gBattleResources
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- ldrb r0, [r3]
- lsls r0, 2
- adds r1, r0
- movs r0, 0
- str r0, [r1]
- ldr r7, _08012BA0 @ =gCurrentMove
- strh r0, [r7]
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08012B7C: .4byte gBattleMons
-_08012B80: .4byte gBattleStruct
-_08012B84: .4byte gActionSelectionCursor
-_08012B88: .4byte gBattlersCount
-_08012B8C: .4byte gUnknown_2023C34
-_08012B90: .4byte gBitTable
-_08012B94: .4byte gActiveBattler
-_08012B98: .4byte 0xffff1fff
-_08012B9C: .4byte gMoveSelectionCursor
-_08012BA0: .4byte gCurrentMove
-_08012BA4: .4byte gBattleMoves
-_08012BA8: .4byte gMoveResultFlags
-_08012BAC: .4byte gLastMoves
-_08012BB0: .4byte gLastLandedMoves
-_08012BB4: .4byte gLastHitByType
-_08012BB8: .4byte gLastResultingMoves
-_08012BBC: .4byte gLastPrintedMoves
-_08012BC0: .4byte gLastHitBy
-_08012BC4: .4byte gBattleResources
- thumb_func_end SwitchInClearSetData
-
- thumb_func_start FaintClearSetData
-FaintClearSetData: @ 8012BC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r3, 0
- ldr r7, _08012F5C @ =gActiveBattler
- ldr r6, _08012F60 @ =gStatuses3
- ldr r0, _08012F64 @ =gActionSelectionCursor
- mov r8, r0
- ldr r1, _08012F68 @ =gMoveSelectionCursor
- mov r9, r1
- ldr r2, _08012F6C @ =gProtectStructs
- mov r12, r2
- adds r5, r7, 0
- movs r4, 0x58
- ldr r2, _08012F70 @ =gBattleMons
- adds r2, 0x18
- movs r1, 0x6
-_08012BEE:
- ldrb r0, [r5]
- muls r0, r4
- adds r0, r3, r0
- adds r0, r2
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x7
- ble _08012BEE
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- ldr r2, _08012F70 @ =gBattleMons
- adds r2, 0x50
- adds r0, r2
- movs r1, 0
- str r1, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r6
- str r1, [r0]
- movs r3, 0
- ldr r0, _08012F74 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r3, r0
- bge _08012C8A
- adds r4, r2, 0
- movs r5, 0
- ldr r6, _08012F78 @ =gBitTable
-_08012C26:
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 19
- ands r0, r1
- cmp r0, 0
- beq _08012C44
- ldr r2, _08012F7C @ =gDisableStructs
- adds r0, r5, r2
- ldrb r0, [r0, 0x14]
- ldrb r2, [r7]
- cmp r0, r2
- bne _08012C44
- ldr r0, _08012F80 @ =0xfbffffff
- ands r1, r0
- str r1, [r4]
-_08012C44:
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r2, r0, 16
- ldr r1, [r4]
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08012C5C
- bics r1, r2
- str r1, [r4]
-_08012C5C:
- ldr r1, [r4]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08012C7C
- ldr r2, _08012F84 @ =gBattleStruct
- ldr r0, [r2]
- adds r0, r3, r0
- ldrb r0, [r0, 0x14]
- ldrb r2, [r7]
- cmp r0, r2
- bne _08012C7C
- ldr r0, _08012F88 @ =0xffff1fff
- ands r1, r0
- str r1, [r4]
-_08012C7C:
- adds r4, 0x58
- adds r5, 0x1C
- adds r3, 0x1
- ldr r0, _08012F74 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r3, r0
- blt _08012C26
-_08012C8A:
- ldrb r0, [r7]
- add r0, r8
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- add r0, r9
- strb r1, [r0]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r2, _08012F7C @ =gDisableStructs
- adds r1, r0, r2
- movs r3, 0
- movs r2, 0
-_08012CA8:
- adds r0, r1, r3
- strb r2, [r0]
- adds r3, 0x1
- cmp r3, 0x1B
- bls _08012CA8
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- mov r9, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- mov r8, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r6, 0x5
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- mov r10, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r5, 0x21
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r4, 0x41
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1, 0x1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1, 0x1]
- mov r0, r8
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1, 0x1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x1]
- ands r5, r1
- strb r5, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x1]
- ands r3, r1
- strb r3, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x2]
- mov r2, r9
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x2]
- mov r2, r8
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x2]
- ands r6, r1
- strb r6, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x2]
- mov r2, r10
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _08012F7C @ =gDisableStructs
- adds r0, r1
- movs r2, 0
- movs r1, 0x2
- strb r1, [r0, 0x16]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08012F8C @ =gLastMoves
- adds r0, r1
- movs r3, 0
- strh r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08012F90 @ =gLastLandedMoves
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08012F94 @ =gLastHitByType
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08012F98 @ =gLastResultingMoves
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08012F9C @ =gLastPrintedMoves
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r7]
- ldr r2, _08012FA0 @ =gLastHitBy
- adds r0, r2
- movs r1, 0xFF
- strb r1, [r0]
- ldrb r0, [r7]
- ldr r2, _08012F84 @ =gBattleStruct
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC8
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC9
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0x98
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0x99
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE0
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE1
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE2
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE3
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE4
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE5
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE6
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE7
- strb r3, [r0]
- movs r3, 0
- ldr r0, _08012F74 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r3, r0
- bge _08012F04
- adds r6, r7, 0
- adds r5, r2, 0
- movs r4, 0
-_08012EC4:
- ldrb r1, [r6]
- cmp r3, r1
- beq _08012EDC
- ldr r0, [r5]
- lsls r1, r3, 1
- adds r0, r1, r0
- adds r0, 0x98
- strb r4, [r0]
- ldr r0, [r5]
- adds r1, r0
- adds r1, 0x99
- strb r4, [r1]
-_08012EDC:
- ldrb r0, [r6]
- ldr r1, [r5]
- lsls r0, 1
- lsls r2, r3, 3
- adds r0, r2
- adds r0, r1
- adds r0, 0xE0
- strb r4, [r0]
- ldrb r0, [r6]
- ldr r1, [r5]
- lsls r0, 1
- adds r0, r2
- adds r0, r1
- adds r0, 0xE1
- strb r4, [r0]
- adds r3, 0x1
- ldr r2, _08012F74 @ =gBattlersCount
- ldrb r2, [r2]
- cmp r3, r2
- blt _08012EC4
-_08012F04:
- ldr r1, _08012FA4 @ =gBattleResources
- ldr r0, [r1]
- ldr r1, [r0, 0x4]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, r0
- movs r0, 0
- str r0, [r1]
- ldrb r0, [r7]
- movs r3, 0x58
- adds r1, r0, 0
- muls r1, r3
- ldr r2, _08012F70 @ =gBattleMons
- adds r1, r2
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- ldr r2, _08012FA8 @ =gBaseStats
- adds r0, r2
- ldrb r0, [r0, 0x6]
- adds r1, 0x21
- strb r0, [r1]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r3
- ldr r0, _08012F70 @ =gBattleMons
- adds r1, r0
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- ldr r2, _08012FA8 @ =gBaseStats
- adds r0, r2
- ldrb r0, [r0, 0x7]
- adds r1, 0x22
- strb r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08012F5C: .4byte gActiveBattler
-_08012F60: .4byte gStatuses3
-_08012F64: .4byte gActionSelectionCursor
-_08012F68: .4byte gMoveSelectionCursor
-_08012F6C: .4byte gProtectStructs
-_08012F70: .4byte gBattleMons
-_08012F74: .4byte gBattlersCount
-_08012F78: .4byte gBitTable
-_08012F7C: .4byte gDisableStructs
-_08012F80: .4byte 0xfbffffff
-_08012F84: .4byte gBattleStruct
-_08012F88: .4byte 0xffff1fff
-_08012F8C: .4byte gLastMoves
-_08012F90: .4byte gLastLandedMoves
-_08012F94: .4byte gLastHitByType
-_08012F98: .4byte gLastResultingMoves
-_08012F9C: .4byte gLastPrintedMoves
-_08012FA0: .4byte gLastHitBy
-_08012FA4: .4byte gBattleResources
-_08012FA8: .4byte gBaseStats
- thumb_func_end FaintClearSetData
-
- thumb_func_start BattleIntroGetMonsData
-BattleIntroGetMonsData: @ 8012FAC
- push {r4,r5,lr}
- ldr r5, _08012FBC @ =gBattleCommunication
- ldrb r0, [r5]
- cmp r0, 0
- beq _08012FC0
- cmp r0, 0x1
- beq _08012FE4
- b _0801301A
- .align 2, 0
-_08012FBC: .4byte gBattleCommunication
-_08012FC0:
- ldr r4, _08012FE0 @ =gActiveBattler
- ldrb r0, [r5, 0x1]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl BtlController_EmitGetMonData
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0801301A
- .align 2, 0
-_08012FE0: .4byte gActiveBattler
-_08012FE4:
- ldr r0, _08013008 @ =gBattleControllerExecFlags
- ldr r2, [r0]
- cmp r2, 0
- bne _0801301A
- ldrb r0, [r5, 0x1]
- adds r0, 0x1
- strb r0, [r5, 0x1]
- ldr r1, _0801300C @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08013018
- ldr r1, _08013010 @ =gBattleMainFunc
- ldr r0, _08013014 @ =BattleIntroPrepareBackgroundSlide
- str r0, [r1]
- b _0801301A
- .align 2, 0
-_08013008: .4byte gBattleControllerExecFlags
-_0801300C: .4byte gBattlersCount
-_08013010: .4byte gBattleMainFunc
-_08013014: .4byte BattleIntroPrepareBackgroundSlide
-_08013018:
- strb r2, [r5]
-_0801301A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleIntroGetMonsData
-
- thumb_func_start BattleIntroPrepareBackgroundSlide
-BattleIntroPrepareBackgroundSlide: @ 8013020
- push {r4,r5,lr}
- ldr r0, _08013058 @ =gBattleControllerExecFlags
- ldr r5, [r0]
- cmp r5, 0
- bne _08013050
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r4, _0801305C @ =gActiveBattler
- strb r0, [r4]
- ldr r0, _08013060 @ =gBattleTerrain
- ldrb r1, [r0]
- movs r0, 0
- bl BtlController_EmitIntroSlide
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r1, _08013064 @ =gBattleMainFunc
- ldr r0, _08013068 @ =sub_8013070
- str r0, [r1]
- ldr r0, _0801306C @ =gBattleCommunication
- strb r5, [r0]
- strb r5, [r0, 0x1]
-_08013050:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08013058: .4byte gBattleControllerExecFlags
-_0801305C: .4byte gActiveBattler
-_08013060: .4byte gBattleTerrain
-_08013064: .4byte gBattleMainFunc
-_08013068: .4byte sub_8013070
-_0801306C: .4byte gBattleCommunication
- thumb_func_end BattleIntroPrepareBackgroundSlide
-
- thumb_func_start sub_8013070
-sub_8013070: @ 8013070
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _080130D4 @ =gBattleControllerExecFlags
- ldr r1, [r0]
- cmp r1, 0
- beq _08013084
- b _08013314
-_08013084:
- ldr r2, _080130D8 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _080130DC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08013092
- b _0801330E
-_08013092:
- movs r7, 0x58
- ldr r0, _080130E0 @ =gBattleMons
- mov r8, r0
- mov r9, r2
- movs r1, 0x48
- add r1, r8
- mov r10, r1
-_080130A0:
- ldr r0, _080130E4 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080130E8
- ldr r4, _080130D8 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080130E8
- ldrb r0, [r4]
- muls r0, r7
- mov r2, r8
- adds r3, r0, r2
- movs r2, 0
- movs r1, 0
-_080130C6:
- adds r0, r3, r2
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _080130C6
- b _080131B6
- .align 2, 0
-_080130D4: .4byte gBattleControllerExecFlags
-_080130D8: .4byte gActiveBattler
-_080130DC: .4byte gBattlersCount
-_080130E0: .4byte gBattleMons
-_080130E4: .4byte gBattleTypeFlags
-_080130E8:
- mov r1, r9
- ldrb r0, [r1]
- muls r0, r7
- mov r2, r8
- adds r3, r0, r2
- movs r2, 0
- ldr r6, _08013230 @ =gBaseStats
- ldr r5, _08013234 @ =gBattleBufferB
- ldr r4, _08013238 @ =gActiveBattler
-_080130FA:
- adds r0, r3, r2
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _080130FA
- mov r1, r9
- ldrb r0, [r1]
- adds r2, r0, 0
- muls r2, r7
- add r2, r8
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x6]
- adds r2, 0x21
- strb r0, [r2]
- mov r2, r9
- ldrb r0, [r2]
- adds r2, r0, 0
- muls r2, r7
- add r2, r8
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x7]
- adds r2, 0x22
- strb r0, [r2]
- mov r1, r9
- ldrb r0, [r1]
- adds r1, r0, 0
- muls r1, r7
- add r1, r8
- ldrh r0, [r1]
- ldrb r1, [r1, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- mov r2, r9
- ldrb r1, [r2]
- muls r1, r7
- add r1, r8
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r2]
- bl GetBattlerSide
- ldr r1, _0801323C @ =gBattleStruct
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0xA8
- ldr r1, [r1]
- adds r1, r0
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r7
- add r0, r8
- ldrh r0, [r0, 0x28]
- strh r0, [r1]
- movs r2, 0
- ldr r4, _08013238 @ =gActiveBattler
- movs r5, 0x58
- ldr r1, _08013240 @ =gUnknown_2023BFC
- adds r6, r4, 0
- movs r0, 0x18
- negs r0, r0
- adds r0, r1
- mov r12, r0
- movs r3, 0x6
-_08013196:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r2, r0
- adds r0, r1
- strb r3, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08013196
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r7
- mov r0, r12
- adds r0, 0x50
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_080131B6:
- ldr r4, _08013238 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- bne _080131D0
- movs r0, 0
- bl BtlController_EmitDrawTrainerPic
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_080131D0:
- ldr r5, _08013244 @ =gBattleTypeFlags
- ldr r0, [r5]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801324C
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080131F6
- movs r0, 0
- bl BtlController_EmitDrawTrainerPic
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_080131F6:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080132C2
- ldr r0, [r5]
- ldr r1, _08013248 @ =0x0001aa02
- ands r0, r1
- cmp r0, 0
- bne _080132C2
- ldrb r0, [r4]
- muls r0, r7
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r4]
- muls r1, r7
- add r1, r10
- ldr r2, [r1]
- movs r1, 0x2
- bl HandleSetPokedexFlag
- b _080132C2
- .align 2, 0
-_08013230: .4byte gBaseStats
-_08013234: .4byte gBattleBufferB
-_08013238: .4byte gActiveBattler
-_0801323C: .4byte gBattleStruct
-_08013240: .4byte gUnknown_2023BFC
-_08013244: .4byte gBattleTypeFlags
-_08013248: .4byte 0x0001aa02
-_0801324C:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080132C2
- ldr r1, [r5]
- movs r2, 0xA0
- lsls r2, 8
- ands r2, r1
- cmp r2, 0
- beq _0801328E
- movs r0, 0x80
- lsls r0, 8
- cmp r2, r0
- beq _080132B4
- ldrb r0, [r4]
- muls r0, r7
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r4]
- muls r1, r7
- add r1, r10
- ldr r2, [r1]
- movs r1, 0x2
- bl HandleSetPokedexFlag
- b _080132B4
-_0801328E:
- ldr r0, _08013324 @ =0x0001aa02
- ands r1, r0
- cmp r1, 0
- bne _080132B4
- ldrb r0, [r4]
- muls r0, r7
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r4]
- muls r1, r7
- add r1, r10
- ldr r2, [r1]
- movs r1, 0x2
- bl HandleSetPokedexFlag
-_080132B4:
- movs r0, 0
- bl BtlController_EmitLoadMonSprite
- mov r1, r9
- ldrb r0, [r1]
- bl MarkBattlerForControllerExec
-_080132C2:
- ldr r0, _08013328 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080132F8
- ldr r4, _0801332C @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080132EC
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080132F8
-_080132EC:
- movs r0, 0
- bl BtlController_EmitDrawTrainerPic
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_080132F8:
- mov r2, r9
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r1, _08013330 @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0801330E
- b _080130A0
-_0801330E:
- ldr r1, _08013334 @ =gBattleMainFunc
- ldr r0, _08013338 @ =BattleIntroDrawPartySummaryScreens
- str r0, [r1]
-_08013314:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013324: .4byte 0x0001aa02
-_08013328: .4byte gBattleTypeFlags
-_0801332C: .4byte gActiveBattler
-_08013330: .4byte gBattlersCount
-_08013334: .4byte gBattleMainFunc
-_08013338: .4byte BattleIntroDrawPartySummaryScreens
- thumb_func_end sub_8013070
-
- thumb_func_start BattleIntroDrawPartySummaryScreens
-BattleIntroDrawPartySummaryScreens: @ 801333C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- ldr r0, _08013394 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- beq _0801334E
- b _080134C8
-_0801334E:
- ldr r0, _08013398 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0801335C
- b _08013468
-_0801335C:
- movs r7, 0
- add r0, sp, 0x4
- mov r8, r0
- mov r6, r8
- mov r5, sp
-_08013366:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _0801339C @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0801338C
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _080133A4
-_0801338C:
- ldr r0, _080133A0 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _080133B6
- .align 2, 0
-_08013394: .4byte gBattleControllerExecFlags
-_08013398: .4byte gBattleTypeFlags
-_0801339C: .4byte gEnemyParty
-_080133A0: .4byte 0x0000ffff
-_080133A4:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_080133B6:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _08013366
- movs r0, 0x1
- bl GetBattlerAtPosition
- ldr r4, _08013410 @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- mov r1, sp
- movs r2, 0x80
- bl BtlController_EmitDrawPartyStatusSummary
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- movs r7, 0
- mov r6, r8
- mov r5, sp
-_080133E2:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08013414 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08013408
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _0801341C
-_08013408:
- ldr r0, _08013418 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _0801342E
- .align 2, 0
-_08013410: .4byte gActiveBattler
-_08013414: .4byte gPlayerParty
-_08013418: .4byte 0x0000ffff
-_0801341C:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_0801342E:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _080133E2
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r4, _0801345C @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- mov r1, sp
- movs r2, 0x80
- bl BtlController_EmitDrawPartyStatusSummary
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r1, _08013460 @ =gBattleMainFunc
- ldr r0, _08013464 @ =BattleIntroPrintTrainerWantsToBattle
- b _080134C6
- .align 2, 0
-_0801345C: .4byte gActiveBattler
-_08013460: .4byte gBattleMainFunc
-_08013464: .4byte BattleIntroPrintTrainerWantsToBattle
-_08013468:
- movs r7, 0
- add r6, sp, 0x4
- mov r5, sp
-_0801346E:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _0801349C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08013494
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _080134A4
-_08013494:
- ldr r0, _080134A0 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _080134B6
- .align 2, 0
-_0801349C: .4byte gPlayerParty
-_080134A0: .4byte 0x0000ffff
-_080134A4:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_080134B6:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _0801346E
- ldr r1, _080134D4 @ =gBattleMainFunc
- ldr r0, _080134D8 @ =sub_8013514
-_080134C6:
- str r0, [r1]
-_080134C8:
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080134D4: .4byte gBattleMainFunc
-_080134D8: .4byte sub_8013514
- thumb_func_end BattleIntroDrawPartySummaryScreens
-
- thumb_func_start BattleIntroPrintTrainerWantsToBattle
-BattleIntroPrintTrainerWantsToBattle: @ 80134DC
- push {lr}
- ldr r0, _08013504 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _080134FE
- movs r0, 0x1
- bl GetBattlerAtPosition
- ldr r1, _08013508 @ =gActiveBattler
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0
- bl PrepareStringBattle
- ldr r1, _0801350C @ =gBattleMainFunc
- ldr r0, _08013510 @ =sub_8013568
- str r0, [r1]
-_080134FE:
- pop {r0}
- bx r0
- .align 2, 0
-_08013504: .4byte gBattleControllerExecFlags
-_08013508: .4byte gActiveBattler
-_0801350C: .4byte gBattleMainFunc
-_08013510: .4byte sub_8013568
- thumb_func_end BattleIntroPrintTrainerWantsToBattle
-
- thumb_func_start sub_8013514
-sub_8013514: @ 8013514
- push {lr}
- ldr r0, _08013550 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _0801354A
- ldr r1, _08013554 @ =gBattleMainFunc
- ldr r0, _08013558 @ =sub_80136E4
- str r0, [r1]
- movs r0, 0
- movs r1, 0
- bl PrepareStringBattle
- ldr r0, _0801355C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0xA0
- lsls r1, 8
- ands r0, r1
- cmp r0, r1
- bne _0801354A
- movs r0, 0x1
- bl GetBattlerAtPosition
- ldr r1, _08013560 @ =gBattleScripting
- strb r0, [r1, 0x17]
- ldr r0, _08013564 @ =gUnknown_81D91A1
- bl BattleScriptExecute
-_0801354A:
- pop {r0}
- bx r0
- .align 2, 0
-_08013550: .4byte gBattleControllerExecFlags
-_08013554: .4byte gBattleMainFunc
-_08013558: .4byte sub_80136E4
-_0801355C: .4byte gBattleTypeFlags
-_08013560: .4byte gBattleScripting
-_08013564: .4byte gUnknown_81D91A1
- thumb_func_end sub_8013514
-
- thumb_func_start sub_8013568
-sub_8013568: @ 8013568
- push {lr}
- ldr r0, _08013590 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _0801358A
- movs r0, 0x1
- bl GetBattlerAtPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl PrepareStringBattle
- ldr r1, _08013594 @ =gBattleMainFunc
- ldr r0, _08013598 @ =sub_801359C
- str r0, [r1]
-_0801358A:
- pop {r0}
- bx r0
- .align 2, 0
-_08013590: .4byte gBattleControllerExecFlags
-_08013594: .4byte gBattleMainFunc
-_08013598: .4byte sub_801359C
- thumb_func_end sub_8013568
-
- thumb_func_start sub_801359C
-sub_801359C: @ 801359C
- push {r4,lr}
- ldr r0, _08013614 @ =gBattleControllerExecFlags
- ldr r1, [r0]
- cmp r1, 0
- bne _0801360C
- ldr r2, _08013618 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _0801361C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08013606
- adds r4, r2, 0
-_080135B4:
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080135CE
- movs r0, 0
- bl BtlController_EmitIntroTrainerBallThrow
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_080135CE:
- ldr r0, _08013620 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080135F4
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080135F4
- movs r0, 0
- bl BtlController_EmitIntroTrainerBallThrow
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_080135F4:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0801361C @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080135B4
-_08013606:
- ldr r1, _08013624 @ =gBattleMainFunc
- ldr r0, _08013628 @ =sub_801362C
- str r0, [r1]
-_0801360C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08013614: .4byte gBattleControllerExecFlags
-_08013618: .4byte gActiveBattler
-_0801361C: .4byte gBattlersCount
-_08013620: .4byte gBattleTypeFlags
-_08013624: .4byte gBattleMainFunc
-_08013628: .4byte sub_801362C
- thumb_func_end sub_801359C
-
- thumb_func_start sub_801362C
-sub_801362C: @ 801362C
- push {r4-r7,lr}
- ldr r0, _080136A4 @ =gBattleControllerExecFlags
- ldr r1, [r0]
- cmp r1, 0
- bne _0801369C
- ldr r2, _080136A8 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _080136AC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08013696
- adds r4, r2, 0
- ldr r6, _080136B0 @ =gBattleMons
- movs r5, 0x58
- adds r7, r6, 0
- adds r7, 0x48
-_0801364C:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08013684
- ldr r0, _080136B4 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _080136B8 @ =0x0001aa02
- ands r0, r1
- cmp r0, 0
- bne _08013684
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r4]
- muls r1, r5
- adds r1, r7
- ldr r2, [r1]
- movs r1, 0x2
- bl HandleSetPokedexFlag
-_08013684:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080136AC @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801364C
-_08013696:
- ldr r1, _080136BC @ =gBattleMainFunc
- ldr r0, _080136C0 @ =sub_80136E4
- str r0, [r1]
-_0801369C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080136A4: .4byte gBattleControllerExecFlags
-_080136A8: .4byte gActiveBattler
-_080136AC: .4byte gBattlersCount
-_080136B0: .4byte gBattleMons
-_080136B4: .4byte gBattleTypeFlags
-_080136B8: .4byte 0x0001aa02
-_080136BC: .4byte gBattleMainFunc
-_080136C0: .4byte sub_80136E4
- thumb_func_end sub_801362C
-
- thumb_func_start sub_80136C4
-sub_80136C4: @ 80136C4
- push {lr}
- ldr r0, _080136D8 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _080136D4
- ldr r1, _080136DC @ =gBattleMainFunc
- ldr r0, _080136E0 @ =sub_80136E4
- str r0, [r1]
-_080136D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080136D8: .4byte gBattleControllerExecFlags
-_080136DC: .4byte gBattleMainFunc
-_080136E0: .4byte sub_80136E4
- thumb_func_end sub_80136C4
-
- thumb_func_start sub_80136E4
-sub_80136E4: @ 80136E4
- push {lr}
- ldr r0, _08013718 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08013712
- ldr r0, _0801371C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0801370C
- movs r0, 0
- bl GetBattlerAtPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl PrepareStringBattle
-_0801370C:
- ldr r1, _08013720 @ =gBattleMainFunc
- ldr r0, _08013724 @ =sub_8013728
- str r0, [r1]
-_08013712:
- pop {r0}
- bx r0
- .align 2, 0
-_08013718: .4byte gBattleControllerExecFlags
-_0801371C: .4byte gBattleTypeFlags
-_08013720: .4byte gBattleMainFunc
-_08013724: .4byte sub_8013728
- thumb_func_end sub_80136E4
-
- thumb_func_start sub_8013728
-sub_8013728: @ 8013728
- push {r4,lr}
- ldr r0, _080137B4 @ =gBattleControllerExecFlags
- ldr r1, [r0]
- cmp r1, 0
- bne _080137AC
- ldr r2, _080137B8 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _080137BC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08013790
- adds r4, r2, 0
-_08013740:
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- bne _08013758
- movs r0, 0
- bl BtlController_EmitIntroTrainerBallThrow
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_08013758:
- ldr r0, _080137C0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801377E
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801377E
- movs r0, 0
- bl BtlController_EmitIntroTrainerBallThrow
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_0801377E:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080137BC @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08013740
-_08013790:
- ldr r2, _080137C4 @ =gBattleStruct
- ldr r0, [r2]
- adds r0, 0x4C
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xD9
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xB6
- strb r1, [r0]
- ldr r1, _080137C8 @ =gBattleMainFunc
- ldr r0, _080137CC @ =sub_801385C
- str r0, [r1]
-_080137AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080137B4: .4byte gBattleControllerExecFlags
-_080137B8: .4byte gActiveBattler
-_080137BC: .4byte gBattlersCount
-_080137C0: .4byte gBattleTypeFlags
-_080137C4: .4byte gBattleStruct
-_080137C8: .4byte gBattleMainFunc
-_080137CC: .4byte sub_801385C
- thumb_func_end sub_8013728
-
- thumb_func_start sub_80137D0
-sub_80137D0: @ 80137D0
- push {r4,r5,lr}
- ldr r0, _08013840 @ =gBattleControllerExecFlags
- ldr r1, [r0]
- cmp r1, 0
- bne _0801383A
- ldr r2, _08013844 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _08013848 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcs _0801381E
- adds r4, r2, 0
- ldr r5, _0801384C @ =gBattlerPartyIndexes
-_080137EA:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0801380C
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- bl BtlController_EmitSwitchInAnim
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_0801380C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08013848 @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080137EA
-_0801381E:
- ldr r2, _08013850 @ =gBattleStruct
- ldr r0, [r2]
- adds r0, 0x4C
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xD9
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xB6
- strb r1, [r0]
- ldr r1, _08013854 @ =gBattleMainFunc
- ldr r0, _08013858 @ =sub_801385C
- str r0, [r1]
-_0801383A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08013840: .4byte gBattleControllerExecFlags
-_08013844: .4byte gActiveBattler
-_08013848: .4byte gBattlersCount
-_0801384C: .4byte gBattlerPartyIndexes
-_08013850: .4byte gBattleStruct
-_08013854: .4byte gBattleMainFunc
-_08013858: .4byte sub_801385C
- thumb_func_end sub_80137D0
-
- thumb_func_start sub_801385C
-sub_801385C: @ 801385C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0
- mov r9, r0
- ldr r0, _080138A0 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- beq _08013874
- b _08013ADA
-_08013874:
- ldr r0, _080138A4 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x4C
- ldrb r0, [r0]
- cmp r0, 0
- bne _080138FA
- movs r5, 0
- ldr r1, _080138A8 @ =gBattlersCount
- adds r3, r1, 0
- ldrb r0, [r1]
- cmp r5, r0
- bge _0801389A
- ldr r2, _080138AC @ =gBattlerByTurnOrder
-_0801388E:
- adds r0, r5, r2
- strb r5, [r0]
- adds r5, 0x1
- ldrb r0, [r1]
- cmp r5, r0
- blt _0801388E
-_0801389A:
- movs r5, 0
- b _080138F0
- .align 2, 0
-_080138A0: .4byte gBattleControllerExecFlags
-_080138A4: .4byte gBattleStruct
-_080138A8: .4byte gBattlersCount
-_080138AC: .4byte gBattlerByTurnOrder
-_080138B0:
- adds r4, r5, 0x1
- mov r8, r4
- ldrb r1, [r1]
- cmp r8, r1
- bge _080138EE
- ldr r6, _08013924 @ =gBattlerByTurnOrder
- ldr r3, _08013928 @ =gBattlersCount
- lsls r7, r5, 24
-_080138C0:
- adds r0, r5, r6
- ldrb r0, [r0]
- adds r1, r4, r6
- ldrb r1, [r1]
- movs r2, 0x1
- str r3, [sp, 0x4]
- bl GetWhoStrikesFirst
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _080138E4
- lsls r1, r4, 24
- lsrs r1, 24
- lsrs r0, r7, 24
- bl SwapTurnOrder
- ldr r3, [sp, 0x4]
-_080138E4:
- adds r4, 0x1
- ldr r0, _08013928 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- blt _080138C0
-_080138EE:
- mov r5, r8
-_080138F0:
- adds r1, r3, 0
- ldrb r0, [r3]
- subs r0, 0x1
- cmp r5, r0
- blt _080138B0
-_080138FA:
- ldr r4, _0801392C @ =gBattleStruct
- ldr r0, [r4]
- adds r0, 0xB6
- ldrb r0, [r0]
- cmp r0, 0
- bne _08013930
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08013930
- ldr r0, [r4]
- adds r0, 0xB6
- movs r1, 0x1
- strb r1, [r0]
- b _08013ADA
- .align 2, 0
-_08013924: .4byte gBattlerByTurnOrder
-_08013928: .4byte gBattlersCount
-_0801392C: .4byte gBattleStruct
-_08013930:
- ldr r2, _08013AE8 @ =gBattleStruct
- ldr r0, [r2]
- adds r0, 0x4C
- ldr r1, _08013AEC @ =gBattlersCount
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0801398A
- ldr r5, _08013AF0 @ =gBattlerByTurnOrder
- adds r4, r2, 0
-_08013944:
- ldr r0, [r4]
- adds r0, 0x4C
- ldrb r0, [r0]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _0801396A
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801396A:
- ldr r1, [r4]
- adds r1, 0x4C
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r9
- cmp r1, 0
- beq _0801397C
- b _08013ADA
-_0801397C:
- ldr r0, [r4]
- adds r0, 0x4C
- ldr r1, _08013AEC @ =gBattlersCount
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08013944
-_0801398A:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080139A4
- b _08013ADA
-_080139A4:
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080139BA
- b _08013ADA
-_080139BA:
- ldr r2, _08013AE8 @ =gBattleStruct
- ldr r0, [r2]
- adds r0, 0xD9
- ldr r1, _08013AEC @ =gBattlersCount
- ldrb r0, [r0]
- adds r3, r1, 0
- ldrb r1, [r3]
- cmp r0, r1
- bcs _08013A14
- ldr r5, _08013AF0 @ =gBattlerByTurnOrder
- adds r4, r2, 0
-_080139D0:
- ldr r0, [r4]
- adds r0, 0xD9
- ldrb r0, [r0]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- str r3, [sp, 0x4]
- bl ItemBattleEffects
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _080139F6
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080139F6:
- ldr r1, [r4]
- adds r1, 0xD9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r0, r9
- cmp r0, 0
- bne _08013ADA
- ldr r0, [r4]
- adds r0, 0xD9
- ldr r1, _08013AEC @ =gBattlersCount
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080139D0
-_08013A14:
- ldrb r0, [r3]
- cmp r0, 0
- beq _08013A22
- adds r5, r0, 0
-_08013A1C:
- subs r5, 0x1
- cmp r5, 0
- bne _08013A1C
-_08013A22:
- movs r5, 0
- ldr r1, _08013AE8 @ =gBattleStruct
- mov r8, r1
- movs r7, 0x6
- ldr r6, _08013AF4 @ =gChosenActionByBattler
- ldr r2, _08013AF8 @ =gChosenMoveByBattler
- movs r4, 0xFF
- movs r3, 0
-_08013A32:
- mov r1, r8
- ldr r0, [r1]
- adds r0, r5, r0
- adds r0, 0x5C
- strb r7, [r0]
- adds r1, r5, r6
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- strh r3, [r2]
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _08013A32
- movs r0, 0
- bl TurnValuesCleanUp
- bl SpecialStatusesClear
- ldr r0, _08013AE8 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x91
- ldr r1, _08013AFC @ =gAbsentBattlerFlags
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r1, _08013B00 @ =gBattleMainFunc
- ldr r0, _08013B04 @ =sub_8014040
- str r0, [r1]
- bl ResetSentPokesToOpponentValue
- ldr r1, _08013B08 @ =gBattleCommunication
- movs r2, 0
- adds r0, r1, 0x7
-_08013A74:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08013A74
- movs r5, 0
- ldr r3, _08013AEC @ =gBattlersCount
- ldr r2, _08013AE8 @ =gBattleStruct
- ldr r6, _08013B0C @ =gBattleScripting
- ldr r7, _08013B10 @ =gMoveResultFlags
- ldrb r0, [r3]
- cmp r5, r0
- bge _08013AA6
- ldr r0, _08013B14 @ =gBattleMons
- movs r4, 0x9
- negs r4, r4
- adds r1, r0, 0
- adds r1, 0x50
-_08013A96:
- ldr r0, [r1]
- ands r0, r4
- str r0, [r1]
- adds r1, 0x58
- adds r5, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- blt _08013A96
-_08013AA6:
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x1]
- ldr r0, [r2]
- movs r3, 0xC0
- lsls r3, 1
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- adds r3, 0x1
- adds r0, r3
- strb r1, [r0]
- movs r1, 0
- strb r1, [r6, 0x14]
- ldr r0, [r2]
- adds r0, 0x4D
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x3]
- strb r1, [r7]
- bl Random
- ldr r1, _08013B18 @ =gUnknown_2023E80
- strh r0, [r1]
-_08013ADA:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013AE8: .4byte gBattleStruct
-_08013AEC: .4byte gBattlersCount
-_08013AF0: .4byte gBattlerByTurnOrder
-_08013AF4: .4byte gChosenActionByBattler
-_08013AF8: .4byte gChosenMoveByBattler
-_08013AFC: .4byte gAbsentBattlerFlags
-_08013B00: .4byte gBattleMainFunc
-_08013B04: .4byte sub_8014040
-_08013B08: .4byte gBattleCommunication
-_08013B0C: .4byte gBattleScripting
-_08013B10: .4byte gMoveResultFlags
-_08013B14: .4byte gBattleMons
-_08013B18: .4byte gUnknown_2023E80
- thumb_func_end sub_801385C
-
- thumb_func_start sub_8013B1C
-sub_8013B1C: @ 8013B1C
- push {r4-r6,lr}
- ldr r0, _08013BB4 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08013BAC
- ldr r1, _08013BB8 @ =gBattleMainFunc
- ldr r0, _08013BBC @ =BattleTurnPassed
- str r0, [r1]
- ldr r3, _08013BC0 @ =gBattlersCount
- ldr r1, _08013BC4 @ =gBattleCommunication
- movs r2, 0
- adds r0, r1, 0x7
-_08013B34:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08013B34
- movs r4, 0
- ldrb r3, [r3]
- cmp r4, r3
- bge _08013B86
- ldr r5, _08013BC8 @ =gBattleMons
- adds r6, r5, 0
- adds r6, 0x4C
-_08013B4A:
- movs r0, 0x58
- adds r2, r4, 0
- muls r2, r0
- adds r1, r5, 0
- adds r1, 0x50
- adds r1, r2, r1
- ldr r3, [r1]
- subs r0, 0x61
- ands r3, r0
- str r3, [r1]
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08013B7C
- movs r0, 0x80
- lsls r0, 5
- ands r3, r0
- cmp r3, 0
- beq _08013B7C
- lsls r0, r4, 24
- lsrs r0, 24
- bl CancelMultiTurnMoves
-_08013B7C:
- adds r4, 0x1
- ldr r0, _08013BC0 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- blt _08013B4A
-_08013B86:
- ldr r2, _08013BCC @ =gBattleStruct
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x1]
- ldr r0, [r2]
- movs r3, 0xC0
- lsls r3, 1
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- adds r3, 0x1
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x3]
- ldr r0, _08013BD0 @ =gMoveResultFlags
- strb r1, [r0]
-_08013BAC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08013BB4: .4byte gBattleControllerExecFlags
-_08013BB8: .4byte gBattleMainFunc
-_08013BBC: .4byte BattleTurnPassed
-_08013BC0: .4byte gBattlersCount
-_08013BC4: .4byte gBattleCommunication
-_08013BC8: .4byte gBattleMons
-_08013BCC: .4byte gBattleStruct
-_08013BD0: .4byte gMoveResultFlags
- thumb_func_end sub_8013B1C
-
- thumb_func_start BattleTurnPassed
-BattleTurnPassed: @ 8013BD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0x1
- bl TurnValuesCleanUp
- ldr r0, _08013C78 @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0
- bne _08013C04
- bl DoFieldEndTurnEffects
- lsls r0, 24
- cmp r0, 0
- beq _08013BF8
- b _08013D20
-_08013BF8:
- bl DoBattlerEndTurnEffects
- lsls r0, 24
- cmp r0, 0
- beq _08013C04
- b _08013D20
-_08013C04:
- bl HandleFaintedMonActions
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08013C12
- b _08013D20
-_08013C12:
- ldr r0, _08013C7C @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x4D
- strb r1, [r0]
- bl HandleWishPerishSongOnTurnEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08013D20
- movs r0, 0
- bl TurnValuesCleanUp
- ldr r2, _08013C80 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08013C84 @ =0xfffffdff
- ands r0, r1
- ldr r1, _08013C88 @ =0xfff7ffff
- ands r0, r1
- ldr r1, _08013C8C @ =0xffbfffff
- ands r0, r1
- ldr r1, _08013C90 @ =0xffefffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _08013C94 @ =gBattleScripting
- strb r4, [r0, 0x18]
- strb r4, [r0, 0x19]
- strb r4, [r0, 0x14]
- ldr r0, _08013C98 @ =gBattleMoveDamage
- str r4, [r0]
- ldr r0, _08013C9C @ =gMoveResultFlags
- strb r4, [r0]
- ldr r1, _08013CA0 @ =gBattleCommunication
- movs r2, 0
- adds r0, r1, 0x4
-_08013C58:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08013C58
- ldr r0, _08013C78 @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0
- beq _08013CB0
- ldr r1, _08013CA4 @ =gCurrentActionFuncId
- movs r0, 0xC
- strb r0, [r1]
- ldr r1, _08013CA8 @ =gBattleMainFunc
- ldr r0, _08013CAC @ =RunTurnActionsFunctions
- str r0, [r1]
- b _08013D20
- .align 2, 0
-_08013C78: .4byte gBattleOutcome
-_08013C7C: .4byte gBattleStruct
-_08013C80: .4byte gHitMarker
-_08013C84: .4byte 0xfffffdff
-_08013C88: .4byte 0xfff7ffff
-_08013C8C: .4byte 0xffbfffff
-_08013C90: .4byte 0xffefffff
-_08013C94: .4byte gBattleScripting
-_08013C98: .4byte gBattleMoveDamage
-_08013C9C: .4byte gMoveResultFlags
-_08013CA0: .4byte gBattleCommunication
-_08013CA4: .4byte gCurrentActionFuncId
-_08013CA8: .4byte gBattleMainFunc
-_08013CAC: .4byte RunTurnActionsFunctions
-_08013CB0:
- ldr r1, _08013D30 @ =gBattleResults
- ldrb r0, [r1, 0x13]
- cmp r0, 0xFE
- bhi _08013CBC
- adds r0, 0x1
- strb r0, [r1, 0x13]
-_08013CBC:
- movs r2, 0
- ldr r4, _08013D34 @ =gBattlersCount
- ldr r0, _08013D38 @ =gBattleStruct
- mov r8, r0
- ldr r1, _08013D3C @ =gBattleMainFunc
- mov r10, r1
- ldr r0, _08013D40 @ =gAbsentBattlerFlags
- mov r12, r0
- ldr r1, _08013D44 @ =sub_8014040
- mov r9, r1
- ldrb r0, [r4]
- cmp r2, r0
- bge _08013CF2
- ldr r7, _08013D48 @ =gChosenActionByBattler
- movs r6, 0xFF
- movs r5, 0
- ldr r3, _08013D4C @ =gChosenMoveByBattler
-_08013CDE:
- adds r1, r2, r7
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- strh r5, [r3]
- adds r3, 0x2
- adds r2, 0x1
- ldrb r1, [r4]
- cmp r2, r1
- blt _08013CDE
-_08013CF2:
- movs r2, 0
- ldr r3, _08013D38 @ =gBattleStruct
- movs r1, 0x6
-_08013CF8:
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0x5C
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _08013CF8
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0x91
- mov r2, r12
- ldrb r1, [r2]
- strb r1, [r0]
- mov r0, r9
- mov r1, r10
- str r0, [r1]
- bl Random
- ldr r1, _08013D50 @ =gUnknown_2023E80
- strh r0, [r1]
-_08013D20:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013D30: .4byte gBattleResults
-_08013D34: .4byte gBattlersCount
-_08013D38: .4byte gBattleStruct
-_08013D3C: .4byte gBattleMainFunc
-_08013D40: .4byte gAbsentBattlerFlags
-_08013D44: .4byte sub_8014040
-_08013D48: .4byte gChosenActionByBattler
-_08013D4C: .4byte gChosenMoveByBattler
-_08013D50: .4byte gUnknown_2023E80
- thumb_func_end BattleTurnPassed
-
- thumb_func_start IsRunningFromBattleImpossible
-IsRunningFromBattleImpossible: @ 8013D54
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _08013D78 @ =gBattleMons
- ldr r0, _08013D7C @ =gActiveBattler
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08013D84
- ldr r1, _08013D80 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x7]
- b _08013D8E
- .align 2, 0
-_08013D78: .4byte gBattleMons
-_08013D7C: .4byte gActiveBattler
-_08013D80: .4byte gEnigmaBerries
-_08013D84:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r2, r0, 24
-_08013D8E:
- ldr r1, _08013EA4 @ =gPotentialItemEffectBattler
- ldr r3, _08013EA8 @ =gActiveBattler
- ldrb r0, [r3]
- strb r0, [r1]
- cmp r2, 0x25
- bne _08013D9C
- b _08013F18
-_08013D9C:
- ldr r0, _08013EAC @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08013DAA
- b _08013F18
-_08013DAA:
- ldr r1, _08013EB0 @ =gBattleMons
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x32
- bne _08013DBE
- b _08013F18
-_08013DBE:
- adds r0, r2, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r0, _08013EB4 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- bge _08013E52
- movs r7, 0
-_08013DD4:
- lsrs r4, r7, 24
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08013DF8
- ldr r1, _08013EB0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r5
- adds r0, r1
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0x17
- bne _08013DF8
- b _08013F20
-_08013DF8:
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08013E42
- ldr r3, _08013EB0 @ =gBattleMons
- ldr r0, _08013EA8 @ =gActiveBattler
- ldrb r0, [r0]
- movs r2, 0x58
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- beq _08013E42
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08013E42
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08013E42
- adds r0, r5, 0
- muls r0, r2
- adds r0, r3
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0x47
- bne _08013E42
- b _08013F3C
-_08013E42:
- movs r0, 0x80
- lsls r0, 17
- adds r7, r0
- adds r5, 0x1
- ldr r0, _08013EB4 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _08013DD4
-_08013E52:
- ldr r4, _08013EA8 @ =gActiveBattler
- ldrb r1, [r4]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- movs r2, 0x2A
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _08013EC4
- ldr r6, _08013EB0 @ =gBattleMons
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _08013E8A
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08013EC4
-_08013E8A:
- ldr r0, _08013EB8 @ =gBattleScripting
- subs r1, r5, 0x1
- strb r1, [r0, 0x17]
- ldr r2, _08013EBC @ =gLastUsedAbility
- adds r0, r1, 0
- muls r0, r3
- adds r0, r6
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r1, _08013EC0 @ =gBattleCommunication
- movs r0, 0x2
- b _08013F5C
- .align 2, 0
-_08013EA4: .4byte gPotentialItemEffectBattler
-_08013EA8: .4byte gActiveBattler
-_08013EAC: .4byte gBattleTypeFlags
-_08013EB0: .4byte gBattleMons
-_08013EB4: .4byte gBattlersCount
-_08013EB8: .4byte gBattleScripting
-_08013EBC: .4byte gLastUsedAbility
-_08013EC0: .4byte gBattleCommunication
-_08013EC4:
- ldr r1, _08013EF8 @ =gBattleMons
- ldr r0, _08013EFC @ =gActiveBattler
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08013F00 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _08013EEE
- ldr r1, _08013F04 @ =gStatuses3
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _08013F0C
-_08013EEE:
- ldr r1, _08013F08 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0x1
- b _08013F5E
- .align 2, 0
-_08013EF8: .4byte gBattleMons
-_08013EFC: .4byte gActiveBattler
-_08013F00: .4byte 0x0400e000
-_08013F04: .4byte gStatuses3
-_08013F08: .4byte gBattleCommunication
-_08013F0C:
- ldr r0, _08013F1C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08013F58
-_08013F18:
- movs r0, 0
- b _08013F5E
- .align 2, 0
-_08013F1C: .4byte gBattleTypeFlags
-_08013F20:
- ldr r0, _08013F30 @ =gBattleScripting
- strb r5, [r0, 0x17]
- ldr r1, _08013F34 @ =gLastUsedAbility
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r1, _08013F38 @ =gBattleCommunication
- movs r0, 0x2
- b _08013F5C
- .align 2, 0
-_08013F30: .4byte gBattleScripting
-_08013F34: .4byte gLastUsedAbility
-_08013F38: .4byte gBattleCommunication
-_08013F3C:
- ldr r0, _08013F4C @ =gBattleScripting
- strb r5, [r0, 0x17]
- ldr r1, _08013F50 @ =gLastUsedAbility
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r1, _08013F54 @ =gBattleCommunication
- movs r0, 0x2
- b _08013F5C
- .align 2, 0
-_08013F4C: .4byte gBattleScripting
-_08013F50: .4byte gLastUsedAbility
-_08013F54: .4byte gBattleCommunication
-_08013F58:
- ldr r1, _08013F68 @ =gBattleCommunication
- movs r0, 0x1
-_08013F5C:
- strb r0, [r1, 0x5]
-_08013F5E:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08013F68: .4byte gBattleCommunication
- thumb_func_end IsRunningFromBattleImpossible
-
- thumb_func_start sub_8013F6C
-sub_8013F6C: @ 8013F6C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r0, _08014008 @ =gBattlerPartyIndexes
- mov r8, r0
- ldr r1, _0801400C @ =gUnknown_203B0DC
- mov r12, r1
- ldr r7, _08014010 @ =gBattleStruct
- lsls r0, r5, 1
- adds r4, r0, r5
- adds r6, r0, 0
-_08013F88:
- mov r0, r12
- adds r2, r3, r0
- ldr r1, [r7]
- adds r0, r4, r3
- adds r0, r1
- adds r0, 0x60
- ldrb r0, [r0]
- strb r0, [r2]
- adds r3, 0x1
- cmp r3, 0x2
- ble _08013F88
- mov r1, r8
- adds r0, r6, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r7, _08014010 @ =gBattleStruct
- ldr r0, [r7]
- adds r0, r5, r0
- adds r0, 0x5C
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8127FF4
- ldr r0, _08014014 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08014018
- movs r3, 0
- adds r4, r7, 0
- adds r6, r5
- movs r0, 0x2
- adds r1, r5, 0
- eors r1, r0
- ldr r7, _0801400C @ =gUnknown_203B0DC
- lsls r0, r1, 1
- adds r5, r0, r1
-_08013FE6:
- ldr r0, [r4]
- adds r1, r6, r3
- adds r1, r0
- adds r1, 0x60
- adds r2, r3, r7
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r1, [r4]
- adds r0, r5, r3
- adds r0, r1
- adds r0, 0x60
- ldrb r1, [r2]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x2
- ble _08013FE6
- b _08014032
- .align 2, 0
-_08014008: .4byte gBattlerPartyIndexes
-_0801400C: .4byte gUnknown_203B0DC
-_08014010: .4byte gBattleStruct
-_08014014: .4byte gBattleTypeFlags
-_08014018:
- movs r3, 0
- adds r2, r6, r5
- ldr r4, _0801403C @ =gUnknown_203B0DC
-_0801401E:
- ldr r0, [r7]
- adds r1, r2, r3
- adds r1, r0
- adds r1, 0x60
- adds r0, r3, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0x2
- ble _0801401E
-_08014032:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801403C: .4byte gUnknown_203B0DC
- thumb_func_end sub_8013F6C
-
- thumb_func_start sub_8014040
-sub_8014040: @ 8014040
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _0801408C @ =gBattleCommunication
- movs r1, 0
- strb r1, [r0, 0x4]
- ldr r0, _08014090 @ =gActiveBattler
- strb r1, [r0]
- ldr r0, _08014094 @ =gBattlersCount
- adds r2, r0, 0
- ldrb r0, [r2]
- cmp r1, r0
- bcc _08014064
- bl _08014C68
-_08014064:
- ldr r4, _08014090 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0801408C @ =gBattleCommunication
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08014080
- bl _08014C4E
-_08014080:
- lsls r0, 2
- ldr r1, _08014098 @ =_0801409C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801408C: .4byte gBattleCommunication
-_08014090: .4byte gActiveBattler
-_08014094: .4byte gBattlersCount
-_08014098: .4byte _0801409C
- .align 2, 0
-_0801409C:
- .4byte _080140B8
- .4byte _080141DC
- .4byte _08014764
- .4byte _08014AA0
- .4byte _08014B44
- .4byte _08014B88
- .4byte _08014C20
-_080140B8:
- ldr r0, _08014150 @ =gActiveBattler
- ldrb r1, [r0]
- ldr r4, _08014154 @ =gBattleStruct
- ldr r0, [r4]
- adds r1, r0
- adds r1, 0x5C
- movs r0, 0x6
- strb r0, [r1]
- ldr r0, _08014158 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08014114
- movs r1, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _08014114
- eors r5, r1
- adds r0, r5, 0
- bl GetBattlerAtPosition
- ldr r1, [r4]
- adds r1, 0x91
- ldrb r1, [r1]
- ldr r2, _0801415C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08014114
- ldr r4, _08014160 @ =gBattleCommunication
- adds r0, r5, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _08014114
- bl _08014C4E
-_08014114:
- ldr r0, _08014154 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x91
- ldrb r3, [r0]
- ldr r1, _0801415C @ =gBitTable
- ldr r4, _08014150 @ =gActiveBattler
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ands r3, r0
- cmp r3, 0
- beq _0801417C
- ldr r0, _08014164 @ =gChosenActionByBattler
- adds r0, r2, r0
- movs r1, 0xD
- strb r1, [r0]
- ldr r0, _08014158 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08014168
- ldr r0, _08014160 @ =gBattleCommunication
- ldrb r1, [r4]
- adds r1, r0
- movs r0, 0x4
- strb r0, [r1]
- bl _08014C4E
- .align 2, 0
-_08014150: .4byte gActiveBattler
-_08014154: .4byte gBattleStruct
-_08014158: .4byte gBattleTypeFlags
-_0801415C: .4byte gBitTable
-_08014160: .4byte gBattleCommunication
-_08014164: .4byte gChosenActionByBattler
-_08014168:
- ldr r0, _08014178 @ =gBattleCommunication
- ldrb r1, [r4]
- adds r1, r0
- movs r0, 0x3
- strb r0, [r1]
- bl _08014C4E
- .align 2, 0
-_08014178: .4byte gBattleCommunication
-_0801417C:
- ldr r1, _080141B0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- bne _0801419C
- movs r0, 0x80
- lsls r0, 15
- ands r1, r0
- cmp r1, 0
- beq _080141BC
-_0801419C:
- ldr r0, _080141B4 @ =gChosenActionByBattler
- adds r0, r2, r0
- strb r3, [r0]
- ldr r1, _080141B8 @ =gBattleCommunication
- ldrb r0, [r4]
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bl _08014C4E
- .align 2, 0
-_080141B0: .4byte gBattleMons
-_080141B4: .4byte gChosenActionByBattler
-_080141B8: .4byte gBattleCommunication
-_080141BC:
- ldr r0, _080141D4 @ =gChosenActionByBattler
- ldrb r1, [r0]
- ldr r0, _080141D8 @ =gBattleBufferB
- ldrb r2, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r2, r0
- movs r0, 0
- bl BtlController_EmitChooseAction
- bl _08014B26
- .align 2, 0
-_080141D4: .4byte gChosenActionByBattler
-_080141D8: .4byte gBattleBufferB
-_080141DC:
- ldr r4, _08014234 @ =gBattleControllerExecFlags
- ldr r1, _08014238 @ =gBitTable
- ldr r3, _0801423C @ =gActiveBattler
- ldrb r5, [r3]
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r1, [r4]
- ands r1, r0
- mov r8, r3
- cmp r1, 0
- beq _0801420A
- bl _08014C4E
-_0801420A:
- ldr r2, _08014240 @ =gChosenActionByBattler
- adds r2, r5, r2
- ldr r1, _08014244 @ =gBattleBufferB
- lsls r0, r5, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldrb r0, [r3]
- lsls r0, 9
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _08014228
- b _080146AC
-_08014228:
- lsls r0, 2
- ldr r1, _08014248 @ =_0801424C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08014234: .4byte gBattleControllerExecFlags
-_08014238: .4byte gBitTable
-_0801423C: .4byte gActiveBattler
-_08014240: .4byte gChosenActionByBattler
-_08014244: .4byte gBattleBufferB
-_08014248: .4byte _0801424C
- .align 2, 0
-_0801424C:
- .4byte _08014280
- .4byte _080143D4
- .4byte _08014450
- .4byte _080146AC
- .4byte _080146AC
- .4byte _08014620
- .4byte _080146AC
- .4byte _080146AC
- .4byte _080146AC
- .4byte _080146AC
- .4byte _080146AC
- .4byte _080146AC
- .4byte _08014670
-_08014280:
- bl AreAllMovesUnusable
- lsls r0, 24
- cmp r0, 0
- beq _080142D8
- ldr r0, _080142C8 @ =gBattleCommunication
- ldr r3, _080142CC @ =gActiveBattler
- ldrb r1, [r3]
- adds r1, r0
- movs r4, 0
- movs r0, 0x5
- strb r0, [r1]
- ldrb r1, [r3]
- ldr r2, _080142D0 @ =gBattleStruct
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x54
- strb r4, [r1]
- ldrb r1, [r3]
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x84
- movs r0, 0x3
- strb r0, [r1]
- ldrb r1, [r3]
- ldr r2, [r2]
- adds r2, r1, r2
- ldr r0, _080142D4 @ =gBattleBufferB
- lsls r1, 9
- adds r0, 0x3
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2, 0xC]
- bl _08014C78
- .align 2, 0
-_080142C8: .4byte gBattleCommunication
-_080142CC: .4byte gActiveBattler
-_080142D0: .4byte gBattleStruct
-_080142D4: .4byte gBattleBufferB
-_080142D8:
- ldr r3, _08014318 @ =gDisableStructs
- ldr r5, _0801431C @ =gActiveBattler
- ldrb r4, [r5]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r3
- ldrh r2, [r0, 0x6]
- cmp r2, 0
- beq _0801432C
- ldr r1, _08014320 @ =gChosenMoveByBattler
- lsls r0, r4, 1
- adds r0, r1
- strh r2, [r0]
- ldrb r2, [r5]
- ldr r0, _08014324 @ =gBattleStruct
- ldr r1, [r0]
- adds r1, r2, r1
- adds r1, 0x80
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0xC]
- strb r0, [r1]
- ldr r1, _08014328 @ =gBattleCommunication
- ldrb r0, [r5]
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bl _08014C78
- .align 2, 0
-_08014318: .4byte gDisableStructs
-_0801431C: .4byte gActiveBattler
-_08014320: .4byte gChosenMoveByBattler
-_08014324: .4byte gBattleStruct
-_08014328: .4byte gBattleCommunication
-_0801432C:
- add r2, sp, 0x4
- ldr r3, _080143CC @ =gBattleMons
- movs r1, 0x58
- adds r0, r4, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- ldrb r0, [r5]
- muls r0, r1
- adds r0, r3
- adds r0, 0x21
- ldrb r0, [r0]
- strb r0, [r2, 0x12]
- ldrb r0, [r5]
- muls r0, r1
- adds r0, r3
- adds r0, 0x22
- ldrb r0, [r0]
- strb r0, [r2, 0x13]
- movs r4, 0
- mov r1, sp
- adds r1, 0xC
- str r1, [sp, 0x18]
- add r2, sp, 0x10
- mov r10, r2
- mov r8, r3
- adds r7, r5, 0
- movs r6, 0x58
- movs r3, 0xC
- add r3, r8
- mov r9, r3
- add r5, sp, 0x4
-_0801436E:
- lsls r2, r4, 1
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r2, r0
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r5]
- ldr r0, [sp, 0x18]
- adds r3, r0, r4
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r2, r1
- add r2, r9
- ldrh r0, [r2]
- add r1, r8
- adds r1, 0x3B
- ldrb r1, [r1]
- lsls r2, r4, 24
- lsrs r2, 24
- bl CalculatePPWithBonus
- mov r2, r10
- adds r1, r2, r4
- strb r0, [r1]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0801436E
- ldr r0, _080143D0 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x1
- ands r1, r0
- movs r0, 0
- movs r2, 0
- add r3, sp, 0x4
- bl BtlController_EmitChooseMove
- b _0801460E
- .align 2, 0
-_080143CC: .4byte gBattleMons
-_080143D0: .4byte gBattleTypeFlags
-_080143D4:
- ldr r0, _08014410 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _08014414 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _08014428
- ldr r1, _08014418 @ =gSelectionBattleScripts
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801441C @ =gUnknown_81D96A4
- str r1, [r0]
- ldr r0, _08014420 @ =gBattleCommunication
- ldrb r1, [r3]
- adds r1, r0
- movs r3, 0
- movs r0, 0x5
- strb r0, [r1]
- mov r0, r8
- ldrb r1, [r0]
- ldr r2, _08014424 @ =gBattleStruct
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x54
- strb r3, [r1]
- mov r1, r8
- ldrb r0, [r1]
- b _0801472C
- .align 2, 0
-_08014410: .4byte gBattleTypeFlags
-_08014414: .4byte 0x00000902
-_08014418: .4byte gSelectionBattleScripts
-_0801441C: .4byte gUnknown_81D96A4
-_08014420: .4byte gBattleCommunication
-_08014424: .4byte gBattleStruct
-_08014428:
- ldr r2, _08014448 @ =gBattleStruct
- ldr r4, _0801444C @ =gActiveBattler
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x60
- ldr r1, [r2]
- adds r1, r0
- movs r0, 0
- bl BtlController_EmitChooseItem
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- b _080146AC
- .align 2, 0
-_08014448: .4byte gBattleStruct
-_0801444C: .4byte gActiveBattler
-_08014450:
- ldr r5, _080144A8 @ =gActiveBattler
- ldrb r0, [r5]
- ldr r3, _080144AC @ =gBattleStruct
- ldr r1, [r3]
- adds r1, r0, r1
- adds r1, 0x58
- ldr r2, _080144B0 @ =gBattlerPartyIndexes
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r7, _080144B4 @ =gBattleMons
- ldrb r2, [r5]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080144B8 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _08014492
- ldr r0, _080144BC @ =gStatuses3
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- lsls r0, 3
- ands r1, r0
- cmp r1, 0
- beq _080144C0
-_08014492:
- lsls r1, r2, 1
- adds r1, r2
- adds r1, 0x60
- ldr r0, [r3]
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x6
- b _080145DE
- .align 2, 0
-_080144A8: .4byte gActiveBattler
-_080144AC: .4byte gBattleStruct
-_080144B0: .4byte gBattlerPartyIndexes
-_080144B4: .4byte gBattleMons
-_080144B8: .4byte 0x0400e000
-_080144BC: .4byte gStatuses3
-_080144C0:
- str r1, [sp]
- movs r0, 0xC
- adds r1, r2, 0
- movs r2, 0x17
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08014548
- ldrb r1, [r5]
- str r4, [sp]
- movs r0, 0xC
- movs r2, 0x47
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08014510
- ldrb r0, [r5]
- muls r0, r6
- adds r1, r0, r7
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08014510
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08014510
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- bne _08014548
-_08014510:
- ldr r5, _08014574 @ =gActiveBattler
- ldrb r1, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- movs r2, 0x2A
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08014584
- ldr r2, _08014578 @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _08014548
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08014584
-_08014548:
- subs r1, r4, 0x1
- lsls r1, 4
- movs r0, 0x4
- orrs r1, r0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0801457C @ =gLastUsedAbility
- ldrb r3, [r0]
- ldr r4, _08014580 @ =gBattleStruct
- ldr r0, _08014574 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r2, r0, 1
- adds r2, r0
- adds r2, 0x60
- ldr r0, [r4]
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r2, 0x6
- bl BtlController_EmitChoosePokemon
- b _0801460E
- .align 2, 0
-_08014574: .4byte gActiveBattler
-_08014578: .4byte gBattleMons
-_0801457C: .4byte gLastUsedAbility
-_08014580: .4byte gBattleStruct
-_08014584:
- ldr r0, _080145A8 @ =gActiveBattler
- ldrb r1, [r0]
- mov r8, r0
- cmp r1, 0x2
- bne _080145B4
- ldr r0, _080145AC @ =gChosenActionByBattler
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080145B4
- ldr r0, _080145B0 @ =gBattleStruct
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x5C
- ldrb r2, [r0]
- mov r0, r8
- ldrb r1, [r0]
- b _080145D0
- .align 2, 0
-_080145A8: .4byte gActiveBattler
-_080145AC: .4byte gChosenActionByBattler
-_080145B0: .4byte gBattleStruct
-_080145B4:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _080145F0
- ldr r0, _080145E8 @ =gChosenActionByBattler
- ldrb r0, [r0, 0x1]
- cmp r0, 0x2
- bne _080145F0
- ldr r0, _080145EC @ =gBattleStruct
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x5D
- ldrb r2, [r0]
- ldrb r1, [r1]
-_080145D0:
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x60
- adds r3, r0
- str r3, [sp]
- movs r0, 0
- movs r1, 0
-_080145DE:
- movs r3, 0
- bl BtlController_EmitChoosePokemon
- b _0801460E
- .align 2, 0
-_080145E8: .4byte gChosenActionByBattler
-_080145EC: .4byte gBattleStruct
-_080145F0:
- ldr r2, _08014618 @ =gBattleStruct
- ldr r0, _0801461C @ =gActiveBattler
- ldrb r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0x60
- ldr r0, [r2]
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x6
- movs r3, 0
- bl BtlController_EmitChoosePokemon
-_0801460E:
- ldr r0, _0801461C @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBattlerForControllerExec
- b _080146AC
- .align 2, 0
-_08014618: .4byte gBattleStruct
-_0801461C: .4byte gActiveBattler
-_08014620:
- bl IsPlayerPartyAndPokemonStorageFull
- lsls r0, 24
- cmp r0, 0
- beq _080146AC
- ldr r1, _0801465C @ =gSelectionBattleScripts
- ldr r3, _08014660 @ =gActiveBattler
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08014664 @ =gUnknown_81D8949
- str r1, [r0]
- ldr r0, _08014668 @ =gBattleCommunication
- ldrb r1, [r3]
- adds r1, r0
- movs r4, 0
- movs r0, 0x5
- strb r0, [r1]
- ldrb r1, [r3]
- ldr r2, _0801466C @ =gBattleStruct
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x54
- strb r4, [r1]
- ldrb r0, [r3]
- ldr r1, [r2]
- adds r0, r1
- adds r0, 0x84
- strb r4, [r0]
- b _08014C78
- .align 2, 0
-_0801465C: .4byte gSelectionBattleScripts
-_08014660: .4byte gActiveBattler
-_08014664: .4byte gUnknown_81D8949
-_08014668: .4byte gBattleCommunication
-_0801466C: .4byte gBattleStruct
-_08014670:
- ldr r4, _080146A8 @ =gBattleCommunication
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r4
- movs r5, 0
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r2]
- bl GetBattlerPosition
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- strb r5, [r0]
- movs r0, 0
- bl BtlController_EmitEndBounceEffect
- mov r3, r8
- ldrb r0, [r3]
- bl MarkBattlerForControllerExec
- b _08014C78
- .align 2, 0
-_080146A8: .4byte gBattleCommunication
-_080146AC:
- ldr r0, _080146D8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0xA
- ands r0, r1
- cmp r0, 0x8
- bne _080146EC
- ldr r0, _080146DC @ =gBattleBufferB
- ldr r4, _080146E0 @ =gActiveBattler
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _080146EC
- ldr r0, _080146E4 @ =gUnknown_81D8924
- bl BattleScriptExecute
- ldr r1, _080146E8 @ =gBattleCommunication
- ldrb r0, [r4]
- adds r0, r1
- b _08014926
- .align 2, 0
-_080146D8: .4byte gBattleTypeFlags
-_080146DC: .4byte gBattleBufferB
-_080146E0: .4byte gActiveBattler
-_080146E4: .4byte gUnknown_81D8924
-_080146E8: .4byte gBattleCommunication
-_080146EC:
- bl IsRunningFromBattleImpossible
- lsls r0, 24
- cmp r0, 0
- beq _08014750
- ldr r0, _08014738 @ =gBattleBufferB
- ldr r4, _0801473C @ =gActiveBattler
- ldrb r2, [r4]
- lsls r1, r2, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _08014750
- ldr r1, _08014740 @ =gSelectionBattleScripts
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, _08014744 @ =gUnknown_81D8943
- str r1, [r0]
- ldr r0, _08014748 @ =gBattleCommunication
- ldrb r1, [r4]
- adds r1, r0
- movs r3, 0
- movs r0, 0x5
- strb r0, [r1]
- ldrb r1, [r4]
- ldr r2, _0801474C @ =gBattleStruct
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x54
- strb r3, [r1]
- ldrb r0, [r4]
-_0801472C:
- ldr r1, [r2]
- adds r0, r1
- adds r0, 0x84
- strb r3, [r0]
- b _08014C78
- .align 2, 0
-_08014738: .4byte gBattleBufferB
-_0801473C: .4byte gActiveBattler
-_08014740: .4byte gSelectionBattleScripts
-_08014744: .4byte gUnknown_81D8943
-_08014748: .4byte gBattleCommunication
-_0801474C: .4byte gBattleStruct
-_08014750:
- ldr r2, _0801475C @ =gBattleCommunication
- ldr r0, _08014760 @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_0801475C: .4byte gBattleCommunication
-_08014760: .4byte gActiveBattler
-_08014764:
- ldr r4, _080147A8 @ =gBattleControllerExecFlags
- ldr r1, _080147AC @ =gBitTable
- ldr r3, _080147B0 @ =gActiveBattler
- ldrb r5, [r3]
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r1, [r4]
- ands r1, r0
- mov r8, r3
- cmp r1, 0
- beq _08014790
- b _08014C4E
-_08014790:
- ldr r1, _080147B4 @ =gChosenActionByBattler
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x9
- bls _0801479E
- b _08014C4E
-_0801479E:
- lsls r0, 2
- ldr r1, _080147B8 @ =_080147BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080147A8: .4byte gBattleControllerExecFlags
-_080147AC: .4byte gBitTable
-_080147B0: .4byte gActiveBattler
-_080147B4: .4byte gChosenActionByBattler
-_080147B8: .4byte _080147BC
- .align 2, 0
-_080147BC:
- .4byte _080147E4
- .4byte _080148D8
- .4byte _08014910
- .4byte _08014A08
- .4byte _08014A2C
- .4byte _08014A40
- .4byte _08014A54
- .4byte _08014A54
- .4byte _08014A68
- .4byte _08014A8C
-_080147E4:
- ldr r0, _08014804 @ =gBattleBufferB
- mov r1, r8
- ldrb r4, [r1]
- lsls r1, r4, 9
- adds r2, r0, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r7, r0, 0
- cmp r1, 0x9
- bgt _08014808
- cmp r1, 0x3
- blt _08014808
- adds r0, r4, r3
- strb r1, [r0]
- b _08014C78
- .align 2, 0
-_08014804: .4byte gBattleBufferB
-_08014808:
- adds r3, r7, 0
- mov r5, r8
- ldrb r4, [r5]
- lsls r1, r4, 9
- adds r6, r3, 0x2
- adds r0, r1, r6
- ldrb r2, [r0]
- adds r3, 0x3
- mov r9, r3
- add r1, r9
- ldrb r0, [r1]
- lsls r0, 8
- orrs r2, r0
- ldr r0, _08014830 @ =0x0000ffff
- cmp r2, r0
- bne _08014838
- ldr r0, _08014834 @ =gBattleCommunication
- adds r0, r4, r0
- b _08014926
- .align 2, 0
-_08014830: .4byte 0x0000ffff
-_08014834: .4byte gBattleCommunication
-_08014838:
- bl TrySetCantSelectMoveBattleScript
- lsls r0, 24
- cmp r0, 0
- beq _0801487C
- ldr r0, _08014874 @ =gBattleCommunication
- ldrb r1, [r5]
- adds r1, r0
- movs r3, 0
- movs r0, 0x5
- strb r0, [r1]
- ldrb r1, [r5]
- ldr r2, _08014878 @ =gBattleStruct
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x54
- strb r3, [r1]
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, r7, 0x1
- adds r0, r1
- strb r3, [r0]
- ldrb r1, [r5]
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x84
- movs r0, 0x1
- strb r0, [r1]
- b _08014C78
- .align 2, 0
-_08014874: .4byte gBattleCommunication
-_08014878: .4byte gBattleStruct
-_0801487C:
- mov r2, r8
- ldrb r0, [r2]
- ldr r4, _080148C8 @ =gBattleStruct
- ldr r1, [r4]
- adds r1, r0, r1
- adds r1, 0x80
- lsls r0, 9
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080148CC @ =gChosenMoveByBattler
- ldrb r2, [r2]
- lsls r5, r2, 1
- adds r5, r0
- ldr r3, _080148D0 @ =gBattleMons
- ldr r4, [r4]
- adds r0, r2, r4
- adds r0, 0x80
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r5]
- mov r3, r8
- ldrb r0, [r3]
- adds r4, r0, r4
- lsls r0, 9
- add r0, r9
- ldrb r0, [r0]
- strb r0, [r4, 0xC]
- ldr r0, _080148D4 @ =gBattleCommunication
- ldrb r1, [r3]
- b _08014B30
- .align 2, 0
-_080148C8: .4byte gBattleStruct
-_080148CC: .4byte gChosenMoveByBattler
-_080148D0: .4byte gBattleMons
-_080148D4: .4byte gBattleCommunication
-_080148D8:
- ldr r2, _08014900 @ =gBattleBufferB
- ldr r5, _08014904 @ =gActiveBattler
- ldrb r4, [r5]
- lsls r1, r4, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- bne _080148F6
- b _08014C48
-_080148F6:
- ldr r0, _08014908 @ =gLastUsedItem
- strh r3, [r0]
- ldr r0, _0801490C @ =gBattleCommunication
- ldrb r1, [r5]
- b _08014B30
- .align 2, 0
-_08014900: .4byte gBattleBufferB
-_08014904: .4byte gActiveBattler
-_08014908: .4byte gLastUsedItem
-_0801490C: .4byte gBattleCommunication
-_08014910:
- ldr r6, _0801492C @ =gBattleBufferB
- ldr r7, _08014930 @ =gActiveBattler
- ldrb r2, [r7]
- lsls r0, r2, 9
- adds r1, r6, 0x1
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0x6
- bne _08014938
- ldr r0, _08014934 @ =gBattleCommunication
- adds r0, r2, r0
-_08014926:
- movs r1, 0
- strb r1, [r0]
- b _08014C4E
- .align 2, 0
-_0801492C: .4byte gBattleBufferB
-_08014930: .4byte gActiveBattler
-_08014934: .4byte gBattleCommunication
-_08014938:
- ldr r0, _080149FC @ =gBattleStruct
- mov r12, r0
- ldr r0, [r0]
- adds r0, r2, r0
- adds r0, 0x5C
- strb r1, [r0]
- ldr r0, _08014A00 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080149F6
- ldrb r0, [r7]
- mov r1, r12
- ldr r2, [r1]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r2
- adds r1, 0x60
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- mov r2, r12
- ldr r1, [r2]
- lsls r2, r0, 1
- adds r2, r0
- adds r2, r1
- adds r2, 0x60
- lsls r0, 9
- adds r5, r6, 0x2
- adds r0, r5
- ldrb r1, [r0]
- movs r3, 0xF0
- adds r0, r3, 0
- ands r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r7]
- mov r0, r12
- ldr r2, [r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r0, r2
- adds r0, 0x61
- lsls r1, 9
- adds r6, 0x3
- adds r1, r6
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r0, [r7]
- movs r4, 0x2
- eors r0, r4
- mov r1, r12
- ldr r2, [r1]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r2
- adds r1, 0x60
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- eors r0, r4
- mov r1, r12
- ldr r2, [r1]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r2
- adds r1, 0x60
- ldrb r0, [r7]
- lsls r0, 9
- adds r0, r5
- ldrb r0, [r0]
- ands r3, r0
- lsrs r3, 4
- ldrb r0, [r1]
- orrs r3, r0
- strb r3, [r1]
- ldrb r0, [r7]
- eors r4, r0
- mov r2, r12
- ldr r0, [r2]
- lsls r1, r4, 1
- adds r1, r4
- adds r1, r0
- adds r1, 0x62
- ldrb r0, [r7]
- lsls r0, 9
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
-_080149F6:
- ldr r0, _08014A04 @ =gBattleCommunication
- ldrb r1, [r7]
- b _08014B30
- .align 2, 0
-_080149FC: .4byte gBattleStruct
-_08014A00: .4byte gBattleTypeFlags
-_08014A04: .4byte gBattleCommunication
-_08014A08:
- ldr r2, _08014A20 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08014A24 @ =gBattleCommunication
- ldr r0, _08014A28 @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_08014A20: .4byte gHitMarker
-_08014A24: .4byte gBattleCommunication
-_08014A28: .4byte gActiveBattler
-_08014A2C:
- ldr r2, _08014A38 @ =gBattleCommunication
- ldr r0, _08014A3C @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_08014A38: .4byte gBattleCommunication
-_08014A3C: .4byte gActiveBattler
-_08014A40:
- ldr r2, _08014A4C @ =gBattleCommunication
- ldr r0, _08014A50 @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_08014A4C: .4byte gBattleCommunication
-_08014A50: .4byte gActiveBattler
-_08014A54:
- ldr r2, _08014A60 @ =gBattleCommunication
- ldr r0, _08014A64 @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_08014A60: .4byte gBattleCommunication
-_08014A64: .4byte gActiveBattler
-_08014A68:
- ldr r2, _08014A80 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08014A84 @ =gBattleCommunication
- ldr r0, _08014A88 @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_08014A80: .4byte gHitMarker
-_08014A84: .4byte gBattleCommunication
-_08014A88: .4byte gActiveBattler
-_08014A8C:
- ldr r2, _08014A98 @ =gBattleCommunication
- ldr r0, _08014A9C @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_08014A98: .4byte gBattleCommunication
-_08014A9C: .4byte gActiveBattler
-_08014AA0:
- ldr r3, _08014B08 @ =gBattleControllerExecFlags
- ldr r4, _08014B0C @ =gBitTable
- ldr r0, _08014B10 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- beq _08014ACA
- b _08014C4E
-_08014ACA:
- ldr r0, _08014B14 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _08014AFE
- movs r1, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- bne _08014AFE
- adds r0, r5, 0
- eors r0, r1
- bl GetBattlerAtPosition
- ldr r1, _08014B18 @ =gBattleStruct
- ldr r1, [r1]
- adds r1, 0x91
- ldrb r1, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08014B1C
-_08014AFE:
- movs r0, 0
- movs r1, 0
- bl BtlController_EmitLinkStandbyMsg
- b _08014B24
- .align 2, 0
-_08014B08: .4byte gBattleControllerExecFlags
-_08014B0C: .4byte gBitTable
-_08014B10: .4byte gActiveBattler
-_08014B14: .4byte gBattleTypeFlags
-_08014B18: .4byte gBattleStruct
-_08014B1C:
- movs r0, 0
- movs r1, 0x1
- bl BtlController_EmitLinkStandbyMsg
-_08014B24:
- ldr r4, _08014B3C @ =gActiveBattler
-_08014B26:
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r0, _08014B40 @ =gBattleCommunication
- ldrb r1, [r4]
-_08014B30:
- adds r1, r0
-_08014B32:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08014C4E
- .align 2, 0
-_08014B3C: .4byte gActiveBattler
-_08014B40: .4byte gBattleCommunication
-_08014B44:
- ldr r3, _08014B78 @ =gBattleControllerExecFlags
- ldr r1, _08014B7C @ =gBitTable
- ldr r0, _08014B80 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- bne _08014C4E
- ldr r1, _08014B84 @ =gBattleCommunication
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08014C4E
- .align 2, 0
-_08014B78: .4byte gBattleControllerExecFlags
-_08014B7C: .4byte gBitTable
-_08014B80: .4byte gActiveBattler
-_08014B84: .4byte gBattleCommunication
-_08014B88:
- ldr r5, _08014BA8 @ =gActiveBattler
- ldrb r2, [r5]
- ldr r0, _08014BAC @ =gBattleStruct
- ldr r0, [r0]
- adds r1, r2, r0
- adds r0, r1, 0
- adds r0, 0x54
- ldrb r0, [r0]
- cmp r0, 0
- beq _08014BB4
- ldr r0, _08014BB0 @ =gBattleCommunication
- adds r0, r2, r0
- adds r1, 0x84
- ldrb r1, [r1]
- strb r1, [r0]
- b _08014C4E
- .align 2, 0
-_08014BA8: .4byte gActiveBattler
-_08014BAC: .4byte gBattleStruct
-_08014BB0: .4byte gBattleCommunication
-_08014BB4:
- ldr r0, _08014C08 @ =gBattlerAttacker
- strb r2, [r0]
- ldr r7, _08014C0C @ =gBattlescriptCurrInstr
- ldr r6, _08014C10 @ =gSelectionBattleScripts
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r4, [r0]
- str r4, [r7]
- ldr r3, _08014C14 @ =gBattleControllerExecFlags
- ldr r1, _08014C18 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- bne _08014BFA
- ldr r0, _08014C1C @ =gBattleScriptingCommandsTable
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_08014BFA:
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r7]
- str r1, [r0]
- b _08014C4E
- .align 2, 0
-_08014C08: .4byte gBattlerAttacker
-_08014C0C: .4byte gBattlescriptCurrInstr
-_08014C10: .4byte gSelectionBattleScripts
-_08014C14: .4byte gBattleControllerExecFlags
-_08014C18: .4byte gBitTable
-_08014C1C: .4byte gBattleScriptingCommandsTable
-_08014C20:
- ldr r3, _08014C88 @ =gBattleControllerExecFlags
- ldr r1, _08014C8C @ =gBitTable
- ldr r0, _08014C90 @ =gActiveBattler
- ldrb r4, [r0]
- lsls r0, r4, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r3, [r3]
- ands r3, r0
- cmp r3, 0
- bne _08014C4E
-_08014C48:
- ldr r0, _08014C94 @ =gBattleCommunication
- adds r0, r4, r0
- strb r3, [r0]
-_08014C4E:
- ldr r0, _08014C90 @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08014C98 @ =gBattlersCount
- lsls r1, 24
- lsrs r1, 24
- adds r2, r0, 0
- ldrb r3, [r2]
- cmp r1, r3
- bcs _08014C68
- bl _08014064
-_08014C68:
- ldr r0, _08014C94 @ =gBattleCommunication
- ldrb r0, [r0, 0x4]
- ldrb r2, [r2]
- cmp r0, r2
- bne _08014C78
- ldr r1, _08014C9C @ =gBattleMainFunc
- ldr r0, _08014CA0 @ =sub_80150A8
- str r0, [r1]
-_08014C78:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08014C88: .4byte gBattleControllerExecFlags
-_08014C8C: .4byte gBitTable
-_08014C90: .4byte gActiveBattler
-_08014C94: .4byte gBattleCommunication
-_08014C98: .4byte gBattlersCount
-_08014C9C: .4byte gBattleMainFunc
-_08014CA0: .4byte sub_80150A8
- thumb_func_end sub_8014040
-
- thumb_func_start SwapTurnOrder
-SwapTurnOrder: @ 8014CA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08014CD0 @ =gActionsByTurnOrder
- adds r4, r0, r2
- ldrb r5, [r4]
- adds r2, r1, r2
- ldrb r3, [r2]
- strb r3, [r4]
- strb r5, [r2]
- ldr r2, _08014CD4 @ =gBattlerByTurnOrder
- adds r0, r2
- ldrb r5, [r0]
- adds r1, r2
- ldrb r2, [r1]
- strb r2, [r0]
- strb r5, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08014CD0: .4byte gActionsByTurnOrder
-_08014CD4: .4byte gBattlerByTurnOrder
- thumb_func_end SwapTurnOrder
-
- thumb_func_start GetWhoStrikesFirst
-GetWhoStrikesFirst: @ 8014CD8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08014DA0
- ldr r1, [sp, 0x8]
- str r1, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08014DA0
- ldr r1, _08014D58 @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x21
- bne _08014D44
- ldr r0, _08014D5C @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08014D54
-_08014D44:
- cmp r3, 0x22
- bne _08014D60
- ldr r0, _08014D5C @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08014D60
-_08014D54:
- movs r3, 0x2
- b _08014D62
- .align 2, 0
-_08014D58: .4byte gBattleMons
-_08014D5C: .4byte gBattleWeather
-_08014D60:
- movs r3, 0x1
-_08014D62:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r2, _08014D98 @ =gBattleMons
- adds r0, r2
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x21
- bne _08014D82
- ldr r0, _08014D9C @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08014D92
-_08014D82:
- cmp r2, 0x22
- bne _08014DA2
- ldr r0, _08014D9C @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08014DA2
-_08014D92:
- movs r7, 0x2
- b _08014DA4
- .align 2, 0
-_08014D98: .4byte gBattleMons
-_08014D9C: .4byte gBattleWeather
-_08014DA0:
- movs r3, 0x1
-_08014DA2:
- movs r7, 0x1
-_08014DA4:
- ldr r1, _08014DE8 @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r4, r0, r1
- ldrh r0, [r4, 0x6]
- muls r3, r0
- ldr r2, _08014DEC @ =gStatStageRatios
- movs r1, 0x1B
- ldrsb r1, [r4, r1]
- lsls r1, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- muls r0, r3
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl __divsi3
- mov r8, r0
- ldrh r0, [r4, 0x2E]
- cmp r0, 0xAF
- bne _08014DF4
- ldr r1, _08014DF0 @ =gEnigmaBerries
- mov r3, r9
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- ldrb r5, [r0, 0x1A]
- b _08014E08
- .align 2, 0
-_08014DE8: .4byte gBattleMons
-_08014DEC: .4byte gStatStageRatios
-_08014DF0: .4byte gEnigmaBerries
-_08014DF4:
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r5, r0, 24
-_08014E08:
- ldr r0, _08014EC4 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08014E3C
- ldr r0, _08014EC8 @ =0x00000822
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08014E3C
- mov r0, r9
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08014E3C
- movs r0, 0x6E
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x64
- bl __udivsi3
- mov r8, r0
-_08014E3C:
- cmp r6, 0x18
- bne _08014E46
- mov r2, r8
- lsrs r2, 1
- mov r8, r2
-_08014E46:
- ldr r1, _08014ECC @ =gBattleMons
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08014E64
- mov r0, r8
- lsrs r0, 2
- mov r8, r0
-_08014E64:
- cmp r6, 0x1A
- bne _08014E80
- ldr r0, _08014ED0 @ =gUnknown_2023E80
- ldrh r4, [r0]
- lsls r0, r5, 16
- subs r0, r5
- movs r1, 0x64
- bl __divsi3
- cmp r4, r0
- bge _08014E80
- movs r1, 0x1
- negs r1, r1
- mov r8, r1
-_08014E80:
- ldr r1, _08014ECC @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r4, r0, r1
- ldrh r0, [r4, 0x6]
- adds r3, r0, 0
- muls r3, r7
- ldr r2, _08014ED4 @ =gStatStageRatios
- movs r1, 0x1B
- ldrsb r1, [r4, r1]
- lsls r1, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- muls r0, r3
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl __divsi3
- adds r7, r0, 0
- ldrh r0, [r4, 0x2E]
- cmp r0, 0xAF
- bne _08014EDC
- ldr r1, _08014ED8 @ =gEnigmaBerries
- mov r3, r10
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- ldrb r5, [r0, 0x1A]
- b _08014EF0
- .align 2, 0
-_08014EC4: .4byte gBattleTypeFlags
-_08014EC8: .4byte 0x00000822
-_08014ECC: .4byte gBattleMons
-_08014ED0: .4byte gUnknown_2023E80
-_08014ED4: .4byte gStatStageRatios
-_08014ED8: .4byte gEnigmaBerries
-_08014EDC:
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r5, r0, 24
-_08014EF0:
- ldr r0, _08014F68 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08014F20
- ldr r0, _08014F6C @ =0x00000822
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08014F20
- mov r0, r10
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08014F20
- movs r0, 0x6E
- muls r0, r7
- movs r1, 0x64
- bl __udivsi3
- adds r7, r0, 0
-_08014F20:
- cmp r6, 0x18
- bne _08014F26
- lsrs r7, 1
-_08014F26:
- ldr r2, _08014F70 @ =gBattleMons
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08014F42
- lsrs r7, 2
-_08014F42:
- cmp r6, 0x1A
- bne _08014F5C
- ldr r0, _08014F74 @ =gUnknown_2023E80
- ldrh r4, [r0]
- lsls r0, r5, 16
- subs r0, r5
- movs r1, 0x64
- bl __divsi3
- cmp r4, r0
- bge _08014F5C
- movs r7, 0x1
- negs r7, r7
-_08014F5C:
- ldr r2, [sp, 0x4]
- cmp r2, 0
- beq _08014F78
- movs r3, 0
- b _08015014
- .align 2, 0
-_08014F68: .4byte gBattleTypeFlags
-_08014F6C: .4byte 0x00000822
-_08014F70: .4byte gBattleMons
-_08014F74: .4byte gUnknown_2023E80
-_08014F78:
- ldr r0, _08014F98 @ =gChosenActionByBattler
- mov r3, r9
- adds r1, r3, r0
- ldrb r1, [r1]
- adds r2, r0, 0
- cmp r1, 0
- bne _08014FC8
- ldr r0, _08014F9C @ =gProtectStructs
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _08014FA0
- movs r3, 0xA5
- b _08014FCA
- .align 2, 0
-_08014F98: .4byte gChosenActionByBattler
-_08014F9C: .4byte gProtectStructs
-_08014FA0:
- ldr r0, _08014FC0 @ =gBattleStruct
- ldr r0, [r0]
- add r0, r9
- adds r0, 0x80
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- mov r3, r9
- muls r3, r1
- adds r1, r3, 0
- adds r0, r1
- ldr r1, _08014FC4 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldrh r3, [r0]
- b _08014FCA
- .align 2, 0
-_08014FC0: .4byte gBattleStruct
-_08014FC4: .4byte gBattleMons
-_08014FC8:
- movs r3, 0
-_08014FCA:
- mov r1, r10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015014
- ldr r0, _08014FE8 @ =gProtectStructs
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _08014FEC
- movs r2, 0xA5
- b _08015016
- .align 2, 0
-_08014FE8: .4byte gProtectStructs
-_08014FEC:
- ldr r0, _0801500C @ =gBattleStruct
- ldr r0, [r0]
- add r0, r10
- adds r0, 0x80
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- mov r2, r10
- muls r2, r1
- adds r1, r2, 0
- adds r0, r1
- ldr r1, _08015010 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldrh r2, [r0]
- b _08015016
- .align 2, 0
-_0801500C: .4byte gBattleStruct
-_08015010: .4byte gBattleMons
-_08015014:
- movs r2, 0
-_08015016:
- ldr r4, _08015060 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- movs r1, 0x7
- ldrsb r1, [r0, r1]
- lsls r3, r2, 1
- cmp r1, 0
- bne _0801503A
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08015078
-_0801503A:
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _0801506E
- cmp r8, r7
- bne _08015064
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08015064
- movs r3, 0x2
- b _08015094
- .align 2, 0
-_08015060: .4byte gBattleMoves
-_08015064:
- cmp r8, r7
- bcs _08015096
- movs r0, 0x1
- str r0, [sp, 0x8]
- b _08015096
-_0801506E:
- cmp r1, r0
- bge _08015096
- movs r1, 0x1
- str r1, [sp, 0x8]
- b _08015096
-_08015078:
- cmp r8, r7
- bne _0801508E
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0801508E
- movs r2, 0x2
- str r2, [sp, 0x8]
- b _08015096
-_0801508E:
- cmp r8, r7
- bcs _08015096
- movs r3, 0x1
-_08015094:
- str r3, [sp, 0x8]
-_08015096:
- ldr r0, [sp, 0x8]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetWhoStrikesFirst
-
- thumb_func_start sub_80150A8
-sub_80150A8: @ 80150A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r3, 0
- ldr r0, _080150FC @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08015114
- ldr r0, _08015100 @ =gActiveBattler
- strb r3, [r0]
- ldr r4, _08015104 @ =gBattlersCount
- mov r8, r0
- ldrb r0, [r4]
- cmp r3, r0
- bcc _080150D0
- b _080152FA
-_080150D0:
- ldr r7, _08015108 @ =gActionsByTurnOrder
- ldr r6, _0801510C @ =gChosenActionByBattler
- mov r2, r8
- ldr r5, _08015110 @ =gBattlerByTurnOrder
-_080150D8:
- adds r1, r3, r7
- ldrb r0, [r2]
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r3, r5
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- cmp r0, r1
- bcc _080150D8
- b _080152FA
- .align 2, 0
-_080150FC: .4byte gBattleTypeFlags
-_08015100: .4byte gActiveBattler
-_08015104: .4byte gBattlersCount
-_08015108: .4byte gActionsByTurnOrder
-_0801510C: .4byte gChosenActionByBattler
-_08015110: .4byte gBattlerByTurnOrder
-_08015114:
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _08015164
- ldr r0, _08015158 @ =gActiveBattler
- strb r3, [r0]
- ldr r1, _0801515C @ =gBattlersCount
- mov r8, r0
- adds r2, r1, 0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _08015174
- ldr r0, _08015160 @ =gChosenActionByBattler
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x3
- beq _08015172
-_08015136:
- mov r7, r8
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0801515C @ =gBattlersCount
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08015174
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08015136
- b _08015172
- .align 2, 0
-_08015158: .4byte gActiveBattler
-_0801515C: .4byte gBattlersCount
-_08015160: .4byte gChosenActionByBattler
-_08015164:
- ldr r0, _080151D8 @ =gChosenActionByBattler
- ldrb r0, [r0]
- ldr r2, _080151DC @ =gActiveBattler
- mov r8, r2
- cmp r0, 0x3
- bne _08015174
- strb r3, [r2]
-_08015172:
- movs r3, 0x5
-_08015174:
- cmp r3, 0x5
- bne _080151F8
- ldr r6, _080151E0 @ =gActionsByTurnOrder
- ldr r1, _080151D8 @ =gChosenActionByBattler
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r6]
- ldr r2, _080151E4 @ =gBattlerByTurnOrder
- ldrb r0, [r3]
- strb r0, [r2]
- movs r3, 0x1
- movs r5, 0
- adds r4, r1, 0
- ldr r7, _080151E8 @ =gBattleMainFunc
- mov r10, r7
- ldr r0, _080151EC @ =CheckFocusPunch_ClearVarsBeforeTurnStarts
- mov r12, r0
- ldr r1, _080151F0 @ =gBattleStruct
- mov r9, r1
- ldr r7, _080151F4 @ =gBattlersCount
- ldrb r7, [r7]
- cmp r5, r7
- bge _080151CC
- adds r7, r6, 0
- adds r6, r4, 0
- adds r4, r2, 0
- ldr r2, _080151F4 @ =gBattlersCount
-_080151AE:
- mov r0, r8
- ldrb r0, [r0]
- cmp r5, r0
- beq _080151C4
- adds r1, r3, r7
- adds r0, r5, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, r4
- strb r5, [r0]
- adds r3, 0x1
-_080151C4:
- adds r5, 0x1
- ldrb r1, [r2]
- cmp r5, r1
- blt _080151AE
-_080151CC:
- mov r2, r12
- mov r3, r10
- str r2, [r3]
- mov r7, r9
- ldr r0, [r7]
- b _08015304
- .align 2, 0
-_080151D8: .4byte gChosenActionByBattler
-_080151DC: .4byte gActiveBattler
-_080151E0: .4byte gActionsByTurnOrder
-_080151E4: .4byte gBattlerByTurnOrder
-_080151E8: .4byte gBattleMainFunc
-_080151EC: .4byte CheckFocusPunch_ClearVarsBeforeTurnStarts
-_080151F0: .4byte gBattleStruct
-_080151F4: .4byte gBattlersCount
-_080151F8:
- movs r0, 0
- mov r1, r8
- strb r0, [r1]
- ldr r2, _08015288 @ =gBattlersCount
- ldrb r0, [r2]
- cmp r0, 0
- beq _0801523E
- ldr r6, _0801528C @ =gChosenActionByBattler
- mov r2, r8
- ldr r5, _08015290 @ =gActionsByTurnOrder
- ldr r4, _08015294 @ =gBattlerByTurnOrder
-_0801520E:
- ldrb r0, [r2]
- adds r0, r6
- ldrb r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0801522C
- adds r0, r3, r5
- strb r1, [r0]
- adds r1, r3, r4
- mov r7, r8
- ldrb r0, [r7]
- strb r0, [r1]
- adds r3, 0x1
-_0801522C:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08015288 @ =gBattlersCount
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801520E
-_0801523E:
- movs r0, 0
- mov r2, r8
- strb r0, [r2]
- ldr r7, _08015288 @ =gBattlersCount
- ldrb r0, [r7]
- cmp r0, 0
- beq _08015282
- ldr r6, _0801528C @ =gChosenActionByBattler
- ldr r5, _08015290 @ =gActionsByTurnOrder
- ldr r4, _08015294 @ =gBattlerByTurnOrder
-_08015252:
- ldrb r0, [r2]
- adds r0, r6
- ldrb r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08015270
- adds r0, r3, r5
- strb r1, [r0]
- adds r1, r3, r4
- mov r7, r8
- ldrb r0, [r7]
- strb r0, [r1]
- adds r3, 0x1
-_08015270:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08015288 @ =gBattlersCount
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08015252
-_08015282:
- movs r5, 0
- b _080152F0
- .align 2, 0
-_08015288: .4byte gBattlersCount
-_0801528C: .4byte gChosenActionByBattler
-_08015290: .4byte gActionsByTurnOrder
-_08015294: .4byte gBattlerByTurnOrder
-_08015298:
- adds r4, r5, 0x1
- adds r7, r4, 0
- ldrb r1, [r1]
- cmp r7, r1
- bge _080152EE
- ldr r6, _08015318 @ =gActionsByTurnOrder
- lsls r2, r5, 24
- mov r8, r2
-_080152A8:
- ldr r0, _0801531C @ =gBattlerByTurnOrder
- adds r1, r5, r0
- ldrb r3, [r1]
- adds r0, r4, r0
- ldrb r1, [r0]
- adds r0, r5, r6
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _080152E4
- adds r0, r4, r6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080152E4
- cmp r2, 0x2
- beq _080152E4
- cmp r0, 0x2
- beq _080152E4
- adds r0, r3, 0
- movs r2, 0
- bl GetWhoStrikesFirst
- lsls r0, 24
- cmp r0, 0
- beq _080152E4
- lsls r1, r4, 24
- lsrs r1, 24
- mov r3, r8
- lsrs r0, r3, 24
- bl SwapTurnOrder
-_080152E4:
- adds r4, 0x1
- ldr r0, _08015320 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- blt _080152A8
-_080152EE:
- adds r5, r7, 0
-_080152F0:
- ldr r1, _08015320 @ =gBattlersCount
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _08015298
-_080152FA:
- ldr r1, _08015324 @ =gBattleMainFunc
- ldr r0, _08015328 @ =CheckFocusPunch_ClearVarsBeforeTurnStarts
- str r0, [r1]
- ldr r0, _0801532C @ =gBattleStruct
- ldr r0, [r0]
-_08015304:
- adds r0, 0x48
- movs r1, 0
- strb r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08015318: .4byte gActionsByTurnOrder
-_0801531C: .4byte gBattlerByTurnOrder
-_08015320: .4byte gBattlersCount
-_08015324: .4byte gBattleMainFunc
-_08015328: .4byte CheckFocusPunch_ClearVarsBeforeTurnStarts
-_0801532C: .4byte gBattleStruct
- thumb_func_end sub_80150A8
-
- thumb_func_start TurnValuesCleanUp
-TurnValuesCleanUp: @ 8015330
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _08015388 @ =gActiveBattler
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0801538C @ =gBattlersCount
- ldrb r2, [r0]
- adds r5, r1, 0
- cmp r2, 0
- beq _08015428
- ldr r7, _08015390 @ =gProtectStructs
- adds r6, r5, 0
- ldr r0, _08015394 @ =gUnknown_2023C34
- mov r12, r0
- ldr r1, _08015398 @ =gDisableStructs
- mov r8, r1
- mov r10, r8
-_0801535E:
- mov r2, r9
- cmp r2, 0
- beq _0801539C
- ldrb r1, [r6]
- lsls r1, 4
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r6]
- lsls r1, 4
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _080153F8
- .align 2, 0
-_08015388: .4byte gActiveBattler
-_0801538C: .4byte gBattlersCount
-_08015390: .4byte gProtectStructs
-_08015394: .4byte gUnknown_2023C34
-_08015398: .4byte gDisableStructs
-_0801539C:
- ldrb r0, [r6]
- lsls r0, 4
- adds r2, r0, r7
- movs r1, 0
- mov r4, r10
- movs r3, 0
-_080153A8:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0xF
- bls _080153A8
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x16]
- cmp r0, 0
- beq _080153C6
- subs r0, 0x1
- strb r0, [r1, 0x16]
-_080153C6:
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x19]
- cmp r0, 0
- beq _080153F8
- subs r0, 0x1
- strb r0, [r1, 0x19]
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x19]
- cmp r0, 0
- bne _080153F8
- movs r0, 0x58
- muls r2, r0
- add r2, r12
- ldr r0, [r2]
- ldr r1, _08015440 @ =0xffbfffff
- ands r0, r1
- str r0, [r2]
-_080153F8:
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- bne _08015416
- movs r0, 0x58
- muls r2, r0
- add r2, r12
- ldr r0, [r2]
- ldr r1, _08015444 @ =0xfeffffff
- ands r0, r1
- str r0, [r2]
-_08015416:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08015448 @ =gBattlersCount
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801535E
-_08015428:
- movs r0, 0
- ldr r2, _0801544C @ =gSideTimers
- strb r0, [r2, 0x8]
- strb r0, [r2, 0x14]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08015440: .4byte 0xffbfffff
-_08015444: .4byte 0xfeffffff
-_08015448: .4byte gBattlersCount
-_0801544C: .4byte gSideTimers
- thumb_func_end TurnValuesCleanUp
-
- thumb_func_start SpecialStatusesClear
-SpecialStatusesClear: @ 8015450
- push {r4-r6,lr}
- ldr r2, _08015494 @ =gActiveBattler
- movs r0, 0
- strb r0, [r2]
- ldr r0, _08015498 @ =gBattlersCount
- ldrb r1, [r0]
- adds r6, r0, 0
- cmp r1, 0
- beq _0801548E
- adds r3, r2, 0
- movs r4, 0
- ldr r5, _0801549C @ =gSpecialStatuses
-_08015468:
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r5
- movs r1, 0
-_08015474:
- adds r0, r2, r1
- strb r4, [r0]
- adds r1, 0x1
- cmp r1, 0x13
- bls _08015474
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6]
- cmp r0, r1
- bcc _08015468
-_0801548E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08015494: .4byte gActiveBattler
-_08015498: .4byte gBattlersCount
-_0801549C: .4byte gSpecialStatuses
- thumb_func_end SpecialStatusesClear
-
- thumb_func_start CheckFocusPunch_ClearVarsBeforeTurnStarts
-CheckFocusPunch_ClearVarsBeforeTurnStarts: @ 80154A0
- push {r4-r7,lr}
- ldr r0, _08015528 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _0801555E
- ldr r2, _0801552C @ =gBattleStruct
- ldr r0, [r2]
- adds r0, 0x48
- ldr r1, _08015530 @ =gBattlersCount
- ldrb r0, [r0]
- mov r12, r2
- adds r6, r1, 0
- ldrb r1, [r6]
- cmp r0, r1
- bcs _0801555E
- ldr r5, _08015534 @ =gActiveBattler
- ldr r4, _08015538 @ =gBattlerAttacker
- movs r7, 0x84
- lsls r7, 1
-_080154CC:
- ldr r1, [r2]
- adds r1, 0x48
- ldrb r0, [r1]
- strb r0, [r4]
- strb r0, [r5]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _0801553C @ =gChosenMoveByBattler
- ldrb r3, [r5]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- bne _08015550
- ldr r1, _08015540 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08015550
- ldr r2, _08015544 @ =gDisableStructs
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _08015550
- ldr r0, _08015548 @ =gProtectStructs
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- blt _08015550
- ldr r0, _0801554C @ =gUnknown_81D9015
- bl BattleScriptExecute
- b _08015598
- .align 2, 0
-_08015528: .4byte gHitMarker
-_0801552C: .4byte gBattleStruct
-_08015530: .4byte gBattlersCount
-_08015534: .4byte gActiveBattler
-_08015538: .4byte gBattlerAttacker
-_0801553C: .4byte gChosenMoveByBattler
-_08015540: .4byte gBattleMons
-_08015544: .4byte gDisableStructs
-_08015548: .4byte gProtectStructs
-_0801554C: .4byte gUnknown_81D9015
-_08015550:
- mov r2, r12
- ldr r0, [r2]
- adds r0, 0x48
- ldrb r0, [r0]
- ldrb r1, [r6]
- cmp r0, r1
- bcc _080154CC
-_0801555E:
- bl TryClearRageStatuses
- ldr r1, _080155A0 @ =gCurrentTurnActionNumber
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080155A4 @ =gCurrentActionFuncId
- ldr r0, _080155A8 @ =gActionsByTurnOrder
- movs r3, 0
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080155AC @ =gDynamicBasePower
- movs r2, 0
- strh r3, [r0]
- ldr r0, _080155B0 @ =gBattleStruct
- ldr r0, [r0]
- strb r2, [r0, 0x13]
- ldr r1, _080155B4 @ =gBattleMainFunc
- ldr r0, _080155B8 @ =RunTurnActionsFunctions
- str r0, [r1]
- ldr r0, _080155BC @ =gBattleCommunication
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x4]
- ldr r0, _080155C0 @ =gBattleScripting
- strb r2, [r0, 0x16]
- ldr r0, _080155C4 @ =gBattleResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- adds r0, 0x20
- strb r2, [r0]
-_08015598:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080155A0: .4byte gCurrentTurnActionNumber
-_080155A4: .4byte gCurrentActionFuncId
-_080155A8: .4byte gActionsByTurnOrder
-_080155AC: .4byte gDynamicBasePower
-_080155B0: .4byte gBattleStruct
-_080155B4: .4byte gBattleMainFunc
-_080155B8: .4byte RunTurnActionsFunctions
-_080155BC: .4byte gBattleCommunication
-_080155C0: .4byte gBattleScripting
-_080155C4: .4byte gBattleResources
- thumb_func_end CheckFocusPunch_ClearVarsBeforeTurnStarts
-
- thumb_func_start RunTurnActionsFunctions
-RunTurnActionsFunctions: @ 80155C8
- push {r4-r6,lr}
- ldr r6, _0801561C @ =gBattleOutcome
- ldrb r0, [r6]
- ldr r2, _08015620 @ =gCurrentActionFuncId
- cmp r0, 0
- beq _080155D8
- movs r0, 0xC
- strb r0, [r2]
-_080155D8:
- ldr r5, _08015624 @ =gBattleStruct
- ldr r0, [r5]
- adds r0, 0x4B
- ldr r4, _08015628 @ =gCurrentTurnActionNumber
- ldrb r1, [r4]
- strb r1, [r0]
- ldr r1, _0801562C @ =gUnknown_8250038
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08015630 @ =gBattlersCount
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08015644
- ldr r2, _08015634 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08015638 @ =0xffefffff
- ands r0, r1
- str r0, [r2]
- ldr r3, _0801563C @ =gBattleMainFunc
- ldr r2, _08015640 @ =gUnknown_8250070
- ldrb r1, [r6]
- movs r0, 0x7F
- ands r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- b _0801565C
- .align 2, 0
-_0801561C: .4byte gBattleOutcome
-_08015620: .4byte gCurrentActionFuncId
-_08015624: .4byte gBattleStruct
-_08015628: .4byte gCurrentTurnActionNumber
-_0801562C: .4byte gUnknown_8250038
-_08015630: .4byte gBattlersCount
-_08015634: .4byte gHitMarker
-_08015638: .4byte 0xffefffff
-_0801563C: .4byte gBattleMainFunc
-_08015640: .4byte gUnknown_8250070
-_08015644:
- ldr r0, [r5]
- adds r0, 0x4B
- ldrb r0, [r0]
- cmp r0, r1
- beq _0801565C
- ldr r2, _08015664 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08015668 @ =0xfffffdff
- ands r0, r1
- ldr r1, _0801566C @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
-_0801565C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08015664: .4byte gHitMarker
-_08015668: .4byte 0xfffffdff
-_0801566C: .4byte 0xfff7ffff
- thumb_func_end RunTurnActionsFunctions
-
- thumb_func_start sub_8015670
-sub_8015670: @ 8015670
- push {r4,lr}
- ldr r1, _080156A8 @ =gCurrentActionFuncId
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080156AC @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080156C4
- ldr r1, _080156B0 @ =gBattleTextBuff1
- ldr r4, _080156B4 @ =gBattleOutcome
- ldrb r0, [r4]
- strb r0, [r1]
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r1, _080156B8 @ =gBattlerAttacker
- strb r0, [r1]
- ldr r1, _080156BC @ =gBattlescriptCurrInstr
- ldr r0, _080156C0 @ =gUnknown_81D88CC
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4]
- b _0801576E
- .align 2, 0
-_080156A8: .4byte gCurrentActionFuncId
-_080156AC: .4byte gBattleTypeFlags
-_080156B0: .4byte gBattleTextBuff1
-_080156B4: .4byte gBattleOutcome
-_080156B8: .4byte gBattlerAttacker
-_080156BC: .4byte gBattlescriptCurrInstr
-_080156C0: .4byte gUnknown_81D88CC
-_080156C4:
- ldr r0, _080156E0 @ =0x00080900
- ands r0, r1
- cmp r0, 0
- beq _080156EC
- bl BattleStopLowHpSound
- movs r0, 0x9B
- lsls r0, 1
- bl PlayBGM
- ldr r1, _080156E4 @ =gBattlescriptCurrInstr
- ldr r0, _080156E8 @ =gUnknown_81D88D7
- b _0801576C
- .align 2, 0
-_080156E0: .4byte 0x00080900
-_080156E4: .4byte gBattlescriptCurrInstr
-_080156E8: .4byte gUnknown_81D88D7
-_080156EC:
- movs r0, 0xA
- ands r1, r0
- cmp r1, 0x8
- bne _08015768
- bl BattleStopLowHpSound
- ldr r1, _08015720 @ =gBattlescriptCurrInstr
- ldr r0, _08015724 @ =gUnknown_81D87EF
- str r0, [r1]
- ldr r2, _08015728 @ =gTrainers
- ldr r0, _0801572C @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- subs r0, 0x53
- cmp r0, 0x7
- bhi _0801575E
- lsls r0, 2
- ldr r1, _08015730 @ =_08015734
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08015720: .4byte gBattlescriptCurrInstr
-_08015724: .4byte gUnknown_81D87EF
-_08015728: .4byte gTrainers
-_0801572C: .4byte gTrainerBattleOpponent_A
-_08015730: .4byte _08015734
- .align 2, 0
-_08015734:
- .4byte _0801575E
- .4byte _08015754
- .4byte _0801575E
- .4byte _0801575E
- .4byte _0801575E
- .4byte _0801575E
- .4byte _0801575E
- .4byte _08015754
-_08015754:
- movs r0, 0x9C
- lsls r0, 1
- bl PlayBGM
- b _0801576E
-_0801575E:
- movs r0, 0x9B
- lsls r0, 1
- bl PlayBGM
- b _0801576E
-_08015768:
- ldr r1, _0801577C @ =gBattlescriptCurrInstr
- ldr r0, _08015780 @ =gUnknown_81D8803
-_0801576C:
- str r0, [r1]
-_0801576E:
- ldr r1, _08015784 @ =gBattleMainFunc
- ldr r0, _08015788 @ =sub_8015910
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801577C: .4byte gBattlescriptCurrInstr
-_08015780: .4byte gUnknown_81D8803
-_08015784: .4byte gBattleMainFunc
-_08015788: .4byte sub_8015910
- thumb_func_end sub_8015670
-
- thumb_func_start sub_801578C
-sub_801578C: @ 801578C
- push {r4,lr}
- ldr r1, _080157C4 @ =gCurrentActionFuncId
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080157C8 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r4, 0x2
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- beq _080157E0
- ldr r1, _080157CC @ =gBattleTextBuff1
- ldr r4, _080157D0 @ =gBattleOutcome
- ldrb r0, [r4]
- strb r0, [r1]
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r1, _080157D4 @ =gBattlerAttacker
- strb r0, [r1]
- ldr r1, _080157D8 @ =gBattlescriptCurrInstr
- ldr r0, _080157DC @ =gUnknown_81D88CC
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4]
- b _08015830
- .align 2, 0
-_080157C4: .4byte gCurrentActionFuncId
-_080157C8: .4byte gBattleTypeFlags
-_080157CC: .4byte gBattleTextBuff1
-_080157D0: .4byte gBattleOutcome
-_080157D4: .4byte gBattlerAttacker
-_080157D8: .4byte gBattlescriptCurrInstr
-_080157DC: .4byte gUnknown_81D88CC
-_080157E0:
- movs r0, 0x8
- ands r1, r0
- cmp r1, 0
- beq _08015824
- bl ScrSpecial_GetTrainerBattleMode
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bne _08015824
- bl sub_80803D8
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0801580C
- ldr r1, _08015808 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08015810
- .align 2, 0
-_08015808: .4byte gBattleCommunication
-_0801580C:
- ldr r0, _0801581C @ =gBattleCommunication
- strb r4, [r0, 0x5]
-_08015810:
- movs r0, 0x1
- bl GetBattlerAtPosition
- ldr r1, _08015820 @ =gBattlerAttacker
- strb r0, [r1]
- b _0801582A
- .align 2, 0
-_0801581C: .4byte gBattleCommunication
-_08015820: .4byte gBattlerAttacker
-_08015824:
- ldr r1, _0801583C @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
-_0801582A:
- ldr r1, _08015840 @ =gBattlescriptCurrInstr
- ldr r0, _08015844 @ =gUnknown_81D8806
- str r0, [r1]
-_08015830:
- ldr r1, _08015848 @ =gBattleMainFunc
- ldr r0, _0801584C @ =sub_8015910
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801583C: .4byte gBattleCommunication
-_08015840: .4byte gBattlescriptCurrInstr
-_08015844: .4byte gUnknown_81D8806
-_08015848: .4byte gBattleMainFunc
-_0801584C: .4byte sub_8015910
- thumb_func_end sub_801578C
-
- thumb_func_start sub_8015850
-sub_8015850: @ 8015850
- push {lr}
- ldr r1, _08015878 @ =gCurrentActionFuncId
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0801587C @ =gProtectStructs
- ldr r0, _08015880 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 27
- lsrs r0, 30
- cmp r0, 0x1
- beq _0801588C
- cmp r0, 0x2
- beq _0801589C
- ldr r1, _08015884 @ =gBattlescriptCurrInstr
- ldr r0, _08015888 @ =gUnknown_81D8916
- b _080158A0
- .align 2, 0
-_08015878: .4byte gCurrentActionFuncId
-_0801587C: .4byte gProtectStructs
-_08015880: .4byte gBattlerAttacker
-_08015884: .4byte gBattlescriptCurrInstr
-_08015888: .4byte gUnknown_81D8916
-_0801588C:
- ldr r1, _08015894 @ =gBattlescriptCurrInstr
- ldr r0, _08015898 @ =gUnknown_81D8901
- b _080158A0
- .align 2, 0
-_08015894: .4byte gBattlescriptCurrInstr
-_08015898: .4byte gUnknown_81D8901
-_0801589C:
- ldr r1, _080158AC @ =gBattlescriptCurrInstr
- ldr r0, _080158B0 @ =gUnknown_81D890F
-_080158A0:
- str r0, [r1]
- ldr r1, _080158B4 @ =gBattleMainFunc
- ldr r0, _080158B8 @ =sub_8015910
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080158AC: .4byte gBattlescriptCurrInstr
-_080158B0: .4byte gUnknown_81D890F
-_080158B4: .4byte gBattleMainFunc
-_080158B8: .4byte sub_8015910
- thumb_func_end sub_8015850
-
- thumb_func_start sub_80158BC
-sub_80158BC: @ 80158BC
- ldr r1, _080158F0 @ =gCurrentActionFuncId
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080158F4 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- ldr r2, _080158F8 @ =gBattlerAttacker
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _080158FC @ =gBattlerPartyIndexes
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08015900 @ =gBattlescriptCurrInstr
- ldr r0, _08015904 @ =gUnknown_81D891D
- str r0, [r1]
- ldr r1, _08015908 @ =gBattleMainFunc
- ldr r0, _0801590C @ =sub_8015910
- str r0, [r1]
- bx lr
- .align 2, 0
-_080158F0: .4byte gCurrentActionFuncId
-_080158F4: .4byte gBattleTextBuff1
-_080158F8: .4byte gBattlerAttacker
-_080158FC: .4byte gBattlerPartyIndexes
-_08015900: .4byte gBattlescriptCurrInstr
-_08015904: .4byte gUnknown_81D891D
-_08015908: .4byte gBattleMainFunc
-_0801590C: .4byte sub_8015910
- thumb_func_end sub_80158BC
-
- thumb_func_start sub_8015910
-sub_8015910: @ 8015910
- push {r4-r7,lr}
- ldr r0, _08015974 @ =gCurrentActionFuncId
- ldrb r0, [r0]
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08015A04
- ldr r0, _08015978 @ =gBattleTypeFlags
- ldr r1, [r0]
- ldr r0, _0801597C @ =0x00080b92
- ands r1, r0
- cmp r1, 0
- bne _080159BC
- ldr r2, _08015980 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _08015984 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcs _080159BC
- adds r4, r2, 0
- ldr r6, _08015988 @ =gBattleMons
- movs r5, 0x58
- adds r7, r6, 0
- adds r7, 0x30
-_08015942:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080159AA
- ldr r2, _0801598C @ =gBattleResults
- ldrh r0, [r2, 0x6]
- cmp r0, 0
- bne _08015990
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- adds r0, r2, 0
- adds r0, 0x8
- bl StringCopy
- b _080159AA
- .align 2, 0
-_08015974: .4byte gCurrentActionFuncId
-_08015978: .4byte gBattleTypeFlags
-_0801597C: .4byte 0x00080b92
-_08015980: .4byte gActiveBattler
-_08015984: .4byte gBattlersCount
-_08015988: .4byte gBattleMons
-_0801598C: .4byte gBattleResults
-_08015990:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r2, 0x26]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- adds r0, r2, 0
- adds r0, 0x14
- bl StringCopy
-_080159AA:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080159EC @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08015942
-_080159BC:
- bl sub_812BFDC
- ldr r0, _080159F0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080159D0
- bl sub_810CB90
-_080159D0:
- movs r0, 0x3
- bl BeginFastPaletteFade
- movs r0, 0x5
- bl FadeOutMapMusic
- ldr r1, _080159F4 @ =gBattleMainFunc
- ldr r0, _080159F8 @ =sub_8015A30
- str r0, [r1]
- ldr r1, _080159FC @ =gUnknown_300537C
- ldr r0, _08015A00 @ =BattleMainCB2
- str r0, [r1]
- b _08015A1E
- .align 2, 0
-_080159EC: .4byte gBattlersCount
-_080159F0: .4byte gBattleTypeFlags
-_080159F4: .4byte gBattleMainFunc
-_080159F8: .4byte sub_8015A30
-_080159FC: .4byte gUnknown_300537C
-_08015A00: .4byte BattleMainCB2
-_08015A04:
- ldr r0, _08015A24 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08015A1E
- ldr r1, _08015A28 @ =gBattleScriptingCommandsTable
- ldr r0, _08015A2C @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08015A1E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08015A24: .4byte gBattleControllerExecFlags
-_08015A28: .4byte gBattleScriptingCommandsTable
-_08015A2C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8015910
-
- thumb_func_start sub_8015A30
-sub_8015A30: @ 8015A30
- push {lr}
- ldr r0, _08015A58 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08015A8E
- bl ResetSpriteData
- ldr r0, _08015A5C @ =gLeveledUpInBattle
- ldrb r0, [r0]
- cmp r0, 0
- beq _08015A52
- ldr r0, _08015A60 @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08015A6C
-_08015A52:
- ldr r1, _08015A64 @ =gBattleMainFunc
- ldr r0, _08015A68 @ =ReturnFromBattleToOverworld
- b _08015A70
- .align 2, 0
-_08015A58: .4byte gPaletteFade
-_08015A5C: .4byte gLeveledUpInBattle
-_08015A60: .4byte gBattleOutcome
-_08015A64: .4byte gBattleMainFunc
-_08015A68: .4byte ReturnFromBattleToOverworld
-_08015A6C:
- ldr r1, _08015A94 @ =gBattleMainFunc
- ldr r0, _08015A98 @ =sub_8015AA0
-_08015A70:
- str r0, [r1]
- bl FreeAllWindowBuffers
- ldr r0, _08015A9C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08015A8E
- bl FreeMonSpritesGfx
- bl FreeBattleSpritesData
- bl FreeBattleResources
-_08015A8E:
- pop {r0}
- bx r0
- .align 2, 0
-_08015A94: .4byte gBattleMainFunc
-_08015A98: .4byte sub_8015AA0
-_08015A9C: .4byte gBattleTypeFlags
- thumb_func_end sub_8015A30
-
- thumb_func_start sub_8015AA0
-sub_8015AA0: @ 8015AA0
- push {r4,r5,lr}
- ldr r0, _08015AF4 @ =gLeveledUpInBattle
- ldrb r1, [r0]
- adds r3, r0, 0
- cmp r1, 0
- beq _08015B16
-_08015AAC:
- movs r5, 0
-_08015AAE:
- ldrb r2, [r3]
- ldr r0, _08015AF8 @ =gBitTable
- lsls r1, r5, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08015B08
- bics r2, r1
- strb r2, [r3]
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08015AFC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08015B08
- ldr r0, _08015B00 @ =gBattleMainFunc
- ldr r1, _08015B04 @ =sub_8015B30
- str r1, [r0]
- lsls r3, r5, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r2, 0
- movs r2, 0x81
- bl EvolutionScene
- b _08015B1C
- .align 2, 0
-_08015AF4: .4byte gLeveledUpInBattle
-_08015AF8: .4byte gBitTable
-_08015AFC: .4byte gPlayerParty
-_08015B00: .4byte gBattleMainFunc
-_08015B04: .4byte sub_8015B30
-_08015B08:
- adds r5, 0x1
- ldr r3, _08015B24 @ =gLeveledUpInBattle
- cmp r5, 0x5
- ble _08015AAE
- ldrb r0, [r3]
- cmp r0, 0
- bne _08015AAC
-_08015B16:
- ldr r1, _08015B28 @ =gBattleMainFunc
- ldr r0, _08015B2C @ =ReturnFromBattleToOverworld
- str r0, [r1]
-_08015B1C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08015B24: .4byte gLeveledUpInBattle
-_08015B28: .4byte gBattleMainFunc
-_08015B2C: .4byte ReturnFromBattleToOverworld
- thumb_func_end sub_8015AA0
-
- thumb_func_start sub_8015B30
-sub_8015B30: @ 8015B30
- push {lr}
- ldr r0, _08015B48 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08015B4C @ =BattleMainCB2
- cmp r1, r0
- bne _08015B42
- ldr r1, _08015B50 @ =gBattleMainFunc
- ldr r0, _08015B54 @ =sub_8015AA0
- str r0, [r1]
-_08015B42:
- pop {r0}
- bx r0
- .align 2, 0
-_08015B48: .4byte gMain
-_08015B4C: .4byte BattleMainCB2
-_08015B50: .4byte gBattleMainFunc
-_08015B54: .4byte sub_8015AA0
- thumb_func_end sub_8015B30
-
- thumb_func_start ReturnFromBattleToOverworld
-ReturnFromBattleToOverworld: @ 8015B58
- push {r4-r6,lr}
- ldr r6, _08015BDC @ =gBattleTypeFlags
- ldr r0, [r6]
- movs r5, 0x2
- ands r0, r5
- cmp r0, 0
- bne _08015B74
- ldr r4, _08015BE0 @ =gPlayerParty
- adds r0, r4, 0
- bl sub_8043A68
- adds r0, r4, 0
- bl sub_8043B40
-_08015B74:
- ldr r4, [r6]
- adds r0, r4, 0
- ands r0, r5
- cmp r0, 0
- beq _08015B86
- ldr r0, _08015BE4 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015BD4
-_08015B86:
- ldr r1, _08015BE8 @ =gSpecialVar_Result
- ldr r5, _08015BEC @ =gBattleOutcome
- ldrb r0, [r5]
- strh r0, [r1]
- ldr r3, _08015BF0 @ =gMain
- ldr r0, _08015BF4 @ =0x00000439
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08015BF8 @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r3]
- movs r0, 0x80
- lsls r0, 3
- ands r4, r0
- cmp r4, 0
- beq _08015BC6
- ldr r0, _08015BFC @ =gEnemyParty
- bl UpdateRoamerHPStatus
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08015BC2
- cmp r1, 0x7
- bne _08015BC6
-_08015BC2:
- bl SetRoamerInactive
-_08015BC6:
- movs r0, 0x53
- bl m4aSongNumStop
- ldr r0, _08015BF0 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_08015BD4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08015BDC: .4byte gBattleTypeFlags
-_08015BE0: .4byte gPlayerParty
-_08015BE4: .4byte gReceivedRemoteLinkPlayers
-_08015BE8: .4byte gSpecialVar_Result
-_08015BEC: .4byte gBattleOutcome
-_08015BF0: .4byte gMain
-_08015BF4: .4byte 0x00000439
-_08015BF8: .4byte gPreBattleCallback1
-_08015BFC: .4byte gEnemyParty
- thumb_func_end ReturnFromBattleToOverworld
-
- thumb_func_start RunBattleScriptCommands_PopCallbacksStack
-RunBattleScriptCommands_PopCallbacksStack: @ 8015C00
- push {lr}
- ldr r0, _08015C3C @ =gCurrentActionFuncId
- ldrb r0, [r0]
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08015C48
- ldr r3, _08015C40 @ =gBattleResources
- ldr r0, [r3]
- ldr r0, [r0, 0xC]
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _08015C24
- subs r0, 0x1
- strb r0, [r1]
-_08015C24:
- ldr r2, _08015C44 @ =gBattleMainFunc
- ldr r0, [r3]
- ldr r1, [r0, 0xC]
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- b _08015C62
- .align 2, 0
-_08015C3C: .4byte gCurrentActionFuncId
-_08015C40: .4byte gBattleResources
-_08015C44: .4byte gBattleMainFunc
-_08015C48:
- ldr r0, _08015C68 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08015C62
- ldr r1, _08015C6C @ =gBattleScriptingCommandsTable
- ldr r0, _08015C70 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08015C62:
- pop {r0}
- bx r0
- .align 2, 0
-_08015C68: .4byte gBattleControllerExecFlags
-_08015C6C: .4byte gBattleScriptingCommandsTable
-_08015C70: .4byte gBattlescriptCurrInstr
- thumb_func_end RunBattleScriptCommands_PopCallbacksStack
-
- thumb_func_start RunBattleScriptCommands
-RunBattleScriptCommands: @ 8015C74
- push {lr}
- ldr r0, _08015C94 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08015C90
- ldr r1, _08015C98 @ =gBattleScriptingCommandsTable
- ldr r0, _08015C9C @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08015C90:
- pop {r0}
- bx r0
- .align 2, 0
-_08015C94: .4byte gBattleControllerExecFlags
-_08015C98: .4byte gBattleScriptingCommandsTable
-_08015C9C: .4byte gBattlescriptCurrInstr
- thumb_func_end RunBattleScriptCommands
-
- thumb_func_start sub_8015CA0
-sub_8015CA0: @ 8015CA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0x4
- str r0, [sp]
- ldr r6, _08015CE0 @ =gBattlerAttacker
- ldr r1, _08015CE4 @ =gBattlerByTurnOrder
- ldr r0, _08015CE8 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r6]
- ldr r1, _08015CEC @ =gBattleStruct
- ldr r3, [r1]
- adds r0, r3, 0
- adds r0, 0x91
- ldrb r2, [r0]
- ldr r1, _08015CF0 @ =gBitTable
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _08015CF8
- ldr r1, _08015CF4 @ =gCurrentActionFuncId
- movs r0, 0xC
- b _0801634C
- .align 2, 0
-_08015CE0: .4byte gBattlerAttacker
-_08015CE4: .4byte gBattlerByTurnOrder
-_08015CE8: .4byte gCurrentTurnActionNumber
-_08015CEC: .4byte gBattleStruct
-_08015CF0: .4byte gBitTable
-_08015CF4: .4byte gCurrentActionFuncId
-_08015CF8:
- ldr r1, _08015D6C @ =gCritMultiplier
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _08015D70 @ =gBattleScripting
- movs r0, 0x1
- strb r0, [r1, 0xE]
- adds r0, r3, 0
- adds r0, 0xB7
- strb r2, [r0]
- ldr r0, _08015D74 @ =gMoveResultFlags
- strb r2, [r0]
- ldr r0, _08015D78 @ =gMultiHitCounter
- strb r2, [r0]
- ldr r0, _08015D7C @ =gBattleCommunication
- strb r2, [r0, 0x6]
- ldr r2, _08015D80 @ =gCurrMovePos
- ldr r3, _08015D84 @ =gChosenMovePos
- mov r9, r3
- ldrb r0, [r6]
- ldr r4, _08015D88 @ =gBattleStruct
- ldr r1, [r4]
- adds r0, r1
- adds r0, 0x80
- ldrb r0, [r0]
- strb r0, [r3]
- strb r0, [r2]
- ldr r1, _08015D8C @ =gProtectStructs
- ldrb r4, [r6]
- lsls r0, r4, 4
- adds r3, r0, r1
- ldrb r1, [r3]
- lsls r0, r1, 29
- mov r8, r2
- cmp r0, 0
- bge _08015D9C
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r2, _08015D90 @ =gCurrentMove
- ldr r1, _08015D94 @ =gChosenMove
- movs r0, 0xA5
- strh r0, [r1]
- strh r0, [r2]
- ldr r2, _08015D98 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 4
- orrs r0, r1
- str r0, [r2]
- movs r0, 0xA5
- movs r1, 0
- bl GetMoveTarget
- ldrb r1, [r6]
- ldr r3, _08015D88 @ =gBattleStruct
- ldr r2, [r3]
- b _08015EF6
- .align 2, 0
-_08015D6C: .4byte gCritMultiplier
-_08015D70: .4byte gBattleScripting
-_08015D74: .4byte gMoveResultFlags
-_08015D78: .4byte gMultiHitCounter
-_08015D7C: .4byte gBattleCommunication
-_08015D80: .4byte gCurrMovePos
-_08015D84: .4byte gChosenMovePos
-_08015D88: .4byte gBattleStruct
-_08015D8C: .4byte gProtectStructs
-_08015D90: .4byte gCurrentMove
-_08015D94: .4byte gChosenMove
-_08015D98: .4byte gHitMarker
-_08015D9C:
- ldr r0, _08015DD4 @ =gBattleMons
- movs r1, 0x58
- adds r5, r4, 0
- muls r5, r1
- adds r1, r0, 0
- adds r1, 0x50
- adds r1, r5, r1
- ldr r2, [r1]
- movs r1, 0x80
- lsls r1, 5
- ands r1, r2
- mov r10, r0
- cmp r1, 0
- bne _08015DC2
- movs r7, 0x80
- lsls r7, 15
- ands r7, r2
- cmp r7, 0
- beq _08015DE4
-_08015DC2:
- ldr r3, _08015DD8 @ =gCurrentMove
- ldr r2, _08015DDC @ =gChosenMove
- ldr r1, _08015DE0 @ =gLockedMoves
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- strh r0, [r3]
- b _08015F18
- .align 2, 0
-_08015DD4: .4byte gBattleMons
-_08015DD8: .4byte gCurrentMove
-_08015DDC: .4byte gChosenMove
-_08015DE0: .4byte gLockedMoves
-_08015DE4:
- ldr r3, _08015E38 @ =gDisableStructs
- mov r12, r3
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- add r0, r12
- ldrh r4, [r0, 0x6]
- adds r2, r4, 0
- cmp r2, 0
- beq _08015EBC
- ldrb r3, [r0, 0xC]
- lsls r0, r3, 1
- adds r0, r5
- mov r5, r10
- adds r5, 0xC
- adds r0, r5
- ldrh r1, [r0]
- cmp r2, r1
- bne _08015E48
- ldr r2, _08015E3C @ =gCurrentMove
- ldr r0, _08015E40 @ =gChosenMove
- strh r4, [r0]
- strh r4, [r2]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xC]
- mov r4, r9
- strb r0, [r4]
- mov r1, r8
- strb r0, [r1]
- ldrh r0, [r2]
- movs r1, 0
- bl GetMoveTarget
- ldrb r1, [r6]
- ldr r3, _08015E44 @ =gBattleStruct
- ldr r2, [r3]
- b _08015EF6
- .align 2, 0
-_08015E38: .4byte gDisableStructs
-_08015E3C: .4byte gCurrentMove
-_08015E40: .4byte gChosenMove
-_08015E44: .4byte gBattleStruct
-_08015E48:
- cmp r2, 0
- beq _08015EBC
- cmp r2, r1
- beq _08015EBC
- mov r4, r9
- strb r3, [r4]
- mov r0, r8
- strb r3, [r0]
- ldr r3, _08015EB0 @ =gCurrentMove
- ldr r2, _08015EB4 @ =gChosenMove
- ldrb r0, [r0]
- lsls r0, 1
- ldrb r1, [r6]
- movs r4, 0x58
- muls r1, r4
- adds r0, r1
- adds r0, r5
- ldrh r0, [r0]
- strh r0, [r2]
- strh r0, [r3]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- movs r2, 0
- strh r7, [r0, 0x6]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- strb r2, [r0, 0xC]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r12
- ldrb r2, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xE]
- ldrh r0, [r3]
- movs r1, 0
- bl GetMoveTarget
- ldrb r1, [r6]
- ldr r3, _08015EB8 @ =gBattleStruct
- ldr r2, [r3]
- b _08015EF6
- .align 2, 0
-_08015EB0: .4byte gCurrentMove
-_08015EB4: .4byte gChosenMove
-_08015EB8: .4byte gBattleStruct
-_08015EBC:
- mov r4, r8
- ldrb r0, [r4]
- lsls r0, 1
- ldr r4, _08015EFC @ =gBattlerAttacker
- ldrb r2, [r4]
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- mov r1, r10
- adds r1, 0xC
- adds r0, r1
- ldr r1, _08015F00 @ =gChosenMoveByBattler
- lsls r2, 1
- adds r2, r1
- ldrh r3, [r0]
- ldrh r2, [r2]
- cmp r3, r2
- beq _08015F10
- ldr r1, _08015F04 @ =gCurrentMove
- ldr r0, _08015F08 @ =gChosenMove
- strh r3, [r0]
- strh r3, [r1]
- ldrh r0, [r1]
- movs r1, 0
- bl GetMoveTarget
- ldrb r1, [r4]
- ldr r2, _08015F0C @ =gBattleStruct
- ldr r2, [r2]
-_08015EF6:
- adds r1, r2
- strb r0, [r1, 0xC]
- b _08015F18
- .align 2, 0
-_08015EFC: .4byte gBattlerAttacker
-_08015F00: .4byte gChosenMoveByBattler
-_08015F04: .4byte gCurrentMove
-_08015F08: .4byte gChosenMove
-_08015F0C: .4byte gBattleStruct
-_08015F10:
- ldr r1, _08015F30 @ =gCurrentMove
- ldr r0, _08015F34 @ =gChosenMove
- strh r3, [r0]
- strh r3, [r1]
-_08015F18:
- ldr r0, _08015F38 @ =gBattlerAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08015F40
- ldr r0, _08015F3C @ =gBattleResults
- ldr r1, _08015F30 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0, 0x22]
- b _08015F48
- .align 2, 0
-_08015F30: .4byte gCurrentMove
-_08015F34: .4byte gChosenMove
-_08015F38: .4byte gBattlerAttacker
-_08015F3C: .4byte gBattleResults
-_08015F40:
- ldr r0, _08015FAC @ =gBattleResults
- ldr r1, _08015FB0 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0, 0x24]
-_08015F48:
- ldr r4, _08015FB4 @ =gBattlerAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08015FB8 @ =gSideTimers
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r1
- ldrb r0, [r5, 0x8]
- adds r3, r4, 0
- cmp r0, 0
- beq _08015FC8
- ldr r2, _08015FBC @ =gBattleMoves
- ldr r0, _08015FB0 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _08015FC8
- ldrb r0, [r3]
- bl GetBattlerSide
- adds r4, r0, 0
- ldrb r0, [r5, 0x9]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08015FC8
- ldr r1, _08015FC0 @ =gBattleMons
- ldrb r2, [r5, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08015FC8
- ldr r0, _08015FC4 @ =gBattlerTarget
- strb r2, [r0]
- b _0801632C
- .align 2, 0
-_08015FAC: .4byte gBattleResults
-_08015FB0: .4byte gCurrentMove
-_08015FB4: .4byte gBattlerAttacker
-_08015FB8: .4byte gSideTimers
-_08015FBC: .4byte gBattleMoves
-_08015FC0: .4byte gBattleMons
-_08015FC4: .4byte gBattlerTarget
-_08015FC8:
- ldr r2, _080160E4 @ =gBattleTypeFlags
- ldr r1, [r2]
- movs r0, 0x1
- ands r1, r0
- ldr r3, _080160E8 @ =gBattlerAttacker
- adds r7, r2, 0
- cmp r1, 0
- bne _08015FDA
- b _080162A0
-_08015FDA:
- ldr r1, _080160EC @ =gSideTimers
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x8]
- cmp r5, 0
- beq _08015FEC
- b _080161F8
-_08015FEC:
- ldr r2, _080160F0 @ =gBattleMoves
- ldr r0, _080160F4 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08016008
- ldrb r0, [r4, 0x6]
- cmp r0, 0x10
- bne _08016008
- b _080161F8
-_08016008:
- ldr r3, _080160F8 @ =gBattleMons
- ldr r2, _080160E8 @ =gBattlerAttacker
- ldrb r6, [r2]
- ldr r0, _080160FC @ =gBattleStruct
- ldr r0, [r0]
- adds r0, r6, r0
- ldrb r1, [r0, 0xC]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r2, 0
- cmp r0, 0x1F
- bne _08016028
- b _080161F8
-_08016028:
- ldrb r0, [r4, 0x2]
- cmp r0, 0xD
- beq _08016030
- b _080161F8
-_08016030:
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08016100 @ =gActiveBattler
- strb r5, [r1]
- ldr r0, _08016104 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080160A8
- adds r4, r1, 0
-_08016048:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08016096
- ldr r0, _080160E8 @ =gBattlerAttacker
- ldrb r1, [r0]
- ldr r0, _080160FC @ =gBattleStruct
- ldr r0, [r0]
- adds r1, r0
- ldrb r0, [r1, 0xC]
- ldrb r1, [r4]
- cmp r0, r1
- beq _08016096
- ldr r1, _080160F8 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1F
- bne _08016096
- adds r0, r2, 0
- bl GetBattlerTurnOrderNum
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp]
- cmp r0, r3
- bcs _08016096
- ldrb r0, [r4]
- bl GetBattlerTurnOrderNum
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_08016096:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08016104 @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08016048
-_080160A8:
- ldr r4, [sp]
- cmp r4, 0x4
- beq _080160B0
- b _080161AA
-_080160B0:
- ldr r2, _080160F0 @ =gBattleMoves
- ldr r0, _08016108 @ =gChosenMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- ands r4, r0
- cmp r4, 0
- beq _08016130
- ldr r0, _080160E8 @ =gBattlerAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08016110
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0801610C
- movs r0, 0x1
- b _08016122
- .align 2, 0
-_080160E4: .4byte gBattleTypeFlags
-_080160E8: .4byte gBattlerAttacker
-_080160EC: .4byte gSideTimers
-_080160F0: .4byte gBattleMoves
-_080160F4: .4byte gCurrentMove
-_080160F8: .4byte gBattleMons
-_080160FC: .4byte gBattleStruct
-_08016100: .4byte gActiveBattler
-_08016104: .4byte gBattlersCount
-_08016108: .4byte gChosenMove
-_0801610C:
- movs r0, 0x3
- b _08016122
-_08016110:
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08016120
- movs r0, 0
- b _08016122
-_08016120:
- movs r0, 0x2
-_08016122:
- bl GetBattlerAtPosition
- ldr r1, _0801612C @ =gBattlerTarget
- strb r0, [r1]
- b _08016140
- .align 2, 0
-_0801612C: .4byte gBattlerTarget
-_08016130:
- ldr r2, _08016178 @ =gBattlerTarget
- ldr r0, _0801617C @ =gBattlerAttacker
- ldrb r0, [r0]
- ldr r1, _08016180 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- ldrb r0, [r0, 0xC]
- strb r0, [r2]
-_08016140:
- ldr r7, _08016184 @ =gAbsentBattlerFlags
- ldrb r0, [r7]
- ldr r1, _08016188 @ =gBitTable
- mov r8, r1
- ldr r5, _08016178 @ =gBattlerTarget
- ldrb r1, [r5]
- lsls r1, 2
- add r1, r8
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _0801615A
- b _0801632C
-_0801615A:
- ldr r6, _0801617C @ =gBattlerAttacker
- ldrb r0, [r6]
- bl GetBattlerSide
- adds r4, r0, 0
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0801618C
- ldrb r0, [r5]
- b _0801631A
- .align 2, 0
-_08016178: .4byte gBattlerTarget
-_0801617C: .4byte gBattlerAttacker
-_08016180: .4byte gBattleStruct
-_08016184: .4byte gAbsentBattlerFlags
-_08016188: .4byte gBitTable
-_0801618C:
- ldrb r0, [r6]
- bl GetBattlerPosition
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- strb r0, [r5]
- ldrb r1, [r7]
- ldrb r2, [r5]
- lsls r0, r2, 2
- add r0, r8
- b _08016310
-_080161AA:
- ldr r4, _080161E4 @ =gActiveBattler
- ldr r0, _080161E8 @ =gBattlerByTurnOrder
- ldr r3, [sp]
- adds r0, r3, r0
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r0, [r4]
- ldr r2, _080161EC @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- adds r1, 0x20
- ldrb r1, [r1]
- bl RecordAbilityBattle
- ldr r2, _080161F0 @ =gSpecialStatuses
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _080161F4 @ =gBattlerTarget
- ldrb r0, [r4]
- strb r0, [r1]
- b _0801632C
- .align 2, 0
-_080161E4: .4byte gActiveBattler
-_080161E8: .4byte gBattlerByTurnOrder
-_080161EC: .4byte gBattleMons
-_080161F0: .4byte gSpecialStatuses
-_080161F4: .4byte gBattlerTarget
-_080161F8:
- ldr r0, [r7]
- movs r4, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080162A0
- ldr r2, _08016238 @ =gBattleMoves
- ldr r0, _0801623C @ =gChosenMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080162A0
- ldrb r0, [r3]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08016244
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _08016240
- movs r0, 0x1
- b _08016256
- .align 2, 0
-_08016238: .4byte gBattleMoves
-_0801623C: .4byte gChosenMove
-_08016240:
- movs r0, 0x3
- b _08016256
-_08016244:
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _08016254
- movs r0, 0
- b _08016256
-_08016254:
- movs r0, 0x2
-_08016256:
- bl GetBattlerAtPosition
- ldr r1, _08016290 @ =gBattlerTarget
- strb r0, [r1]
- ldr r0, _08016294 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _08016298 @ =gBitTable
- ldr r5, _08016290 @ =gBattlerTarget
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801632C
- ldr r0, _0801629C @ =gBattlerAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- adds r4, r0, 0
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0801632C
- ldrb r0, [r5]
- b _0801631A
- .align 2, 0
-_08016290: .4byte gBattlerTarget
-_08016294: .4byte gAbsentBattlerFlags
-_08016298: .4byte gBitTable
-_0801629C: .4byte gBattlerAttacker
-_080162A0:
- ldr r5, _080162E4 @ =gBattlerTarget
- adds r2, r3, 0
- ldrb r0, [r2]
- ldr r1, _080162E8 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- ldrb r0, [r0, 0xC]
- strb r0, [r5]
- ldr r6, _080162EC @ =gAbsentBattlerFlags
- ldrb r1, [r6]
- ldr r7, _080162F0 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801632C
- ldrb r0, [r2]
- str r3, [sp, 0x4]
- bl GetBattlerSide
- adds r4, r0, 0
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r4, r0
- beq _080162F4
- ldrb r0, [r5]
- b _0801631A
- .align 2, 0
-_080162E4: .4byte gBattlerTarget
-_080162E8: .4byte gBattleStruct
-_080162EC: .4byte gAbsentBattlerFlags
-_080162F0: .4byte gBitTable
-_080162F4:
- ldrb r0, [r3]
- bl GetBattlerPosition
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- strb r0, [r5]
- ldrb r1, [r6]
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r7
-_08016310:
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801632C
- adds r0, r2, 0
-_0801631A:
- bl GetBattlerPosition
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- strb r0, [r5]
-_0801632C:
- ldr r4, _08016360 @ =gBattlescriptCurrInstr
- ldr r3, _08016364 @ =gBattleScriptsForMoveEffects
- ldr r2, _08016368 @ =gBattleMoves
- ldr r0, _0801636C @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- ldr r1, _08016370 @ =gCurrentActionFuncId
- movs r0, 0xA
-_0801634C:
- strb r0, [r1]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08016360: .4byte gBattlescriptCurrInstr
-_08016364: .4byte gBattleScriptsForMoveEffects
-_08016368: .4byte gBattleMoves
-_0801636C: .4byte gCurrentMove
-_08016370: .4byte gCurrentActionFuncId
- thumb_func_end sub_8015CA0
-
- thumb_func_start sub_8016374
-sub_8016374: @ 8016374
- push {r4,lr}
- ldr r3, _080163E0 @ =gBattlerAttacker
- ldr r1, _080163E4 @ =gBattlerByTurnOrder
- ldr r0, _080163E8 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r0, _080163EC @ =gBattle_BG0_X
- movs r2, 0
- strh r2, [r0]
- ldr r0, _080163F0 @ =gBattle_BG0_Y
- strh r2, [r0]
- ldr r1, _080163F4 @ =gActionSelectionCursor
- ldrb r0, [r3]
- adds r0, r1
- strb r2, [r0]
- ldr r1, _080163F8 @ =gMoveSelectionCursor
- ldrb r0, [r3]
- adds r0, r1
- strb r2, [r0]
- ldr r2, _080163FC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x7
- strb r0, [r2, 0x1]
- ldrb r4, [r3]
- strb r4, [r2, 0x2]
- ldrb r0, [r3]
- ldr r1, _08016400 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- adds r0, 0x58
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- ldr r0, _08016404 @ =gBattleScripting
- strb r4, [r0, 0x17]
- ldr r1, _08016408 @ =gBattlescriptCurrInstr
- ldr r0, _0801640C @ =gUnknown_81D894D
- str r0, [r1]
- ldr r1, _08016410 @ =gCurrentActionFuncId
- movs r0, 0xA
- strb r0, [r1]
- ldr r1, _08016414 @ =gBattleResults
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFE
- bhi _080163DA
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_080163DA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080163E0: .4byte gBattlerAttacker
-_080163E4: .4byte gBattlerByTurnOrder
-_080163E8: .4byte gCurrentTurnActionNumber
-_080163EC: .4byte gBattle_BG0_X
-_080163F0: .4byte gBattle_BG0_Y
-_080163F4: .4byte gActionSelectionCursor
-_080163F8: .4byte gMoveSelectionCursor
-_080163FC: .4byte gBattleTextBuff1
-_08016400: .4byte gBattleStruct
-_08016404: .4byte gBattleScripting
-_08016408: .4byte gBattlescriptCurrInstr
-_0801640C: .4byte gUnknown_81D894D
-_08016410: .4byte gCurrentActionFuncId
-_08016414: .4byte gBattleResults
- thumb_func_end sub_8016374
-
- thumb_func_start sub_8016418
-sub_8016418: @ 8016418
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08016474 @ =gBattlerAttacker
- ldr r2, _08016478 @ =gBattlerTarget
- ldr r1, _0801647C @ =gBattlerByTurnOrder
- ldr r0, _08016480 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r4]
- ldr r0, _08016484 @ =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08016488 @ =gBattle_BG0_Y
- strh r1, [r0]
- ldrb r0, [r4]
- bl ClearFuryCutterDestinyBondGrudge
- ldr r5, _0801648C @ =gLastUsedItem
- ldr r2, _08016490 @ =gBattleBufferB
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- strh r3, [r5]
- adds r1, r3, 0
- cmp r1, 0xC
- bhi _0801649C
- ldr r2, _08016494 @ =gBattlescriptCurrInstr
- ldr r1, _08016498 @ =gUnknown_81D99B0
- ldrh r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- b _080164FC
- .align 2, 0
-_08016474: .4byte gBattlerAttacker
-_08016478: .4byte gBattlerTarget
-_0801647C: .4byte gBattlerByTurnOrder
-_08016480: .4byte gCurrentTurnActionNumber
-_08016484: .4byte gBattle_BG0_X
-_08016488: .4byte gBattle_BG0_Y
-_0801648C: .4byte gLastUsedItem
-_08016490: .4byte gBattleBufferB
-_08016494: .4byte gBattlescriptCurrInstr
-_08016498: .4byte gUnknown_81D99B0
-_0801649C:
- adds r0, r3, 0
- subs r0, 0x50
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080164C4
- ldr r0, _080164B8 @ =gBattlescriptCurrInstr
- ldr r1, _080164BC @ =gUnknown_81D99FC
- ldr r1, [r1]
- str r1, [r0]
- ldr r1, _080164C0 @ =gCurrentActionFuncId
- mov r10, r1
- b _0801671E
- .align 2, 0
-_080164B8: .4byte gBattlescriptCurrInstr
-_080164BC: .4byte gUnknown_81D99FC
-_080164C0: .4byte gCurrentActionFuncId
-_080164C4:
- movs r0, 0xAF
- lsls r0, 1
- cmp r1, r0
- bne _080164E8
- ldr r0, _080164DC @ =gBattlescriptCurrInstr
- ldr r1, _080164E0 @ =gUnknown_81D99FC
- ldr r1, [r1, 0x4]
- str r1, [r0]
- ldr r2, _080164E4 @ =gCurrentActionFuncId
- mov r10, r2
- b _0801671E
- .align 2, 0
-_080164DC: .4byte gBattlescriptCurrInstr
-_080164E0: .4byte gUnknown_81D99FC
-_080164E4: .4byte gCurrentActionFuncId
-_080164E8:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08016510
- ldr r0, _08016504 @ =gBattlescriptCurrInstr
- ldr r1, _08016508 @ =gUnknown_81D99E4
- ldr r1, [r1]
- str r1, [r0]
-_080164FC:
- ldr r0, _0801650C @ =gCurrentActionFuncId
- mov r10, r0
- b _0801671E
- .align 2, 0
-_08016504: .4byte gBattlescriptCurrInstr
-_08016508: .4byte gUnknown_81D99E4
-_0801650C: .4byte gCurrentActionFuncId
-_08016510:
- ldr r3, _08016548 @ =gBattleScripting
- ldrb r0, [r4]
- strb r0, [r3, 0x17]
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _0801654C @ =gBattleStruct
- ldr r1, [r2]
- adds r0, r1
- adds r0, 0xC4
- ldrb r0, [r0]
- subs r0, 0x1
- mov r8, r4
- ldr r1, _08016550 @ =gBattlescriptCurrInstr
- mov r9, r1
- ldr r6, _08016554 @ =gUnknown_81D99E4
- mov r12, r3
- adds r7, r2, 0
- ldr r2, _08016558 @ =gCurrentActionFuncId
- mov r10, r2
- cmp r0, 0x4
- bls _0801653C
- b _08016706
-_0801653C:
- lsls r0, 2
- ldr r1, _0801655C @ =_08016560
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08016548: .4byte gBattleScripting
-_0801654C: .4byte gBattleStruct
-_08016550: .4byte gBattlescriptCurrInstr
-_08016554: .4byte gUnknown_81D99E4
-_08016558: .4byte gCurrentActionFuncId
-_0801655C: .4byte _08016560
- .align 2, 0
-_08016560:
- .4byte _08016706
- .4byte _08016706
- .4byte _08016574
- .4byte _08016608
- .4byte _080166D8
-_08016574:
- ldr r5, _080165AC @ =gBattleCommunication
- movs r0, 0
- strb r0, [r5, 0x5]
- ldr r2, _080165B0 @ =gBattlerAttacker
- ldrb r0, [r2]
- lsrs r0, 1
- ldr r1, [r7]
- adds r0, r1
- adds r0, 0xC6
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _080165C0
- movs r0, 0x3E
- ands r0, r1
- ldr r1, _080165B4 @ =gBattlescriptCurrInstr
- mov r9, r1
- ldr r6, _080165B8 @ =gUnknown_81D99E4
- ldr r2, _080165BC @ =gCurrentActionFuncId
- mov r10, r2
- cmp r0, 0
- bne _080165A6
- b _08016706
-_080165A6:
- movs r0, 0x5
- strb r0, [r5, 0x5]
- b _08016706
- .align 2, 0
-_080165AC: .4byte gBattleCommunication
-_080165B0: .4byte gBattlerAttacker
-_080165B4: .4byte gBattlescriptCurrInstr
-_080165B8: .4byte gUnknown_81D99E4
-_080165BC: .4byte gCurrentActionFuncId
-_080165C0:
- ldr r0, _080165FC @ =gBattlescriptCurrInstr
- mov r9, r0
- ldr r6, _08016600 @ =gUnknown_81D99E4
- ldr r1, _08016604 @ =gCurrentActionFuncId
- mov r10, r1
- mov r4, r8
- adds r3, r7, 0
- adds r2, r5, 0
-_080165D0:
- ldrb r1, [r4]
- lsrs r1, 1
- ldr r0, [r3]
- adds r1, r0
- adds r1, 0xC6
- ldrb r0, [r1]
- lsrs r0, 1
- strb r0, [r1]
- ldrb r0, [r2, 0x5]
- adds r0, 0x1
- strb r0, [r2, 0x5]
- ldrb r0, [r4]
- lsrs r0, 1
- ldr r1, [r3]
- adds r0, r1
- adds r0, 0xC6
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080165D0
- b _08016706
- .align 2, 0
-_080165FC: .4byte gBattlescriptCurrInstr
-_08016600: .4byte gUnknown_81D99E4
-_08016604: .4byte gCurrentActionFuncId
-_08016608:
- ldr r3, _0801663C @ =gBattleCommunication
- movs r0, 0x4
- strb r0, [r3, 0x5]
- ldr r2, _08016640 @ =gBattlerAttacker
- ldrb r0, [r2]
- lsrs r0, 1
- ldr r1, [r7]
- adds r0, r1
- adds r6, r0, 0
- adds r6, 0xC6
- ldrb r1, [r6]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r8, r2
- cmp r5, 0
- beq _08016650
- movs r0, 0x5
- strb r0, [r3, 0x5]
- ldr r2, _08016644 @ =gBattlescriptCurrInstr
- mov r9, r2
- ldr r6, _08016648 @ =gUnknown_81D99E4
- ldr r0, _0801664C @ =gCurrentActionFuncId
- mov r10, r0
- b _08016706
- .align 2, 0
-_0801663C: .4byte gBattleCommunication
-_08016640: .4byte gBattlerAttacker
-_08016644: .4byte gBattlescriptCurrInstr
-_08016648: .4byte gUnknown_81D99E4
-_0801664C: .4byte gCurrentActionFuncId
-_08016650:
- ldr r3, _080166C4 @ =gBattleTextBuff1
- movs r4, 0xFD
- strb r4, [r3]
- movs r0, 0x5
- strb r0, [r3, 0x1]
- movs r2, 0x1
- strb r2, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- ldr r1, _080166C8 @ =gBattleTextBuff2
- strb r4, [r1]
- strb r5, [r1, 0x1]
- movs r0, 0xD2
- strb r0, [r1, 0x2]
- strb r5, [r1, 0x3]
- subs r0, 0xD3
- strb r0, [r1, 0x4]
- ldrb r0, [r6]
- ands r2, r0
- ldr r1, _080166CC @ =gBattlescriptCurrInstr
- mov r9, r1
- ldr r6, _080166D0 @ =gUnknown_81D99E4
- ldr r0, _080166D4 @ =gCurrentActionFuncId
- mov r10, r0
- cmp r2, 0
- bne _080166B4
- mov r5, r8
- adds r4, r7, 0
- adds r2, r3, 0
-_0801668A:
- ldrb r1, [r5]
- lsrs r1, 1
- ldr r0, [r4]
- adds r1, r0
- adds r1, 0xC6
- ldrb r0, [r1]
- lsrs r0, 1
- strb r0, [r1]
- ldrb r0, [r2, 0x2]
- adds r0, 0x1
- strb r0, [r2, 0x2]
- ldrb r0, [r5]
- lsrs r0, 1
- ldr r1, [r4]
- adds r0, r1
- adds r0, 0xC6
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801668A
-_080166B4:
- ldrb r0, [r3, 0x2]
- adds r0, 0xE
- movs r1, 0
- mov r2, r12
- strb r0, [r2, 0x10]
- strb r1, [r2, 0x11]
- b _08016706
- .align 2, 0
-_080166C4: .4byte gBattleTextBuff1
-_080166C8: .4byte gBattleTextBuff2
-_080166CC: .4byte gBattlescriptCurrInstr
-_080166D0: .4byte gUnknown_81D99E4
-_080166D4: .4byte gCurrentActionFuncId
-_080166D8:
- ldr r0, _080166EC @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080166F4
- ldr r1, _080166F0 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _080166F8
- .align 2, 0
-_080166EC: .4byte gBattleTypeFlags
-_080166F0: .4byte gBattleCommunication
-_080166F4:
- ldr r0, _08016734 @ =gBattleCommunication
- strb r1, [r0, 0x5]
-_080166F8:
- ldr r0, _08016738 @ =gBattlerAttacker
- mov r8, r0
- ldr r1, _0801673C @ =gBattlescriptCurrInstr
- mov r9, r1
- ldr r6, _08016740 @ =gUnknown_81D99E4
- ldr r2, _08016744 @ =gCurrentActionFuncId
- mov r10, r2
-_08016706:
- mov r1, r8
- ldrb r0, [r1]
- lsrs r0, 1
- ldr r1, [r7]
- adds r0, r1
- adds r0, 0xC4
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- mov r2, r9
- str r0, [r2]
-_0801671E:
- movs r0, 0xA
- mov r1, r10
- strb r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08016734: .4byte gBattleCommunication
-_08016738: .4byte gBattlerAttacker
-_0801673C: .4byte gBattlescriptCurrInstr
-_08016740: .4byte gUnknown_81D99E4
-_08016744: .4byte gCurrentActionFuncId
- thumb_func_end sub_8016418
-
- thumb_func_start TryRunFromBattle
-TryRunFromBattle: @ 8016748
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r6, 0
- ldr r1, _0801676C @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08016774
- ldr r1, _08016770 @ =gEnigmaBerries
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x7]
- b _0801677E
- .align 2, 0
-_0801676C: .4byte gBattleMons
-_08016770: .4byte gEnigmaBerries
-_08016774:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r1, r0, 24
-_0801677E:
- ldr r0, _080167AC @ =gPotentialItemEffectBattler
- strb r4, [r0]
- cmp r1, 0x25
- bne _080167BC
- ldr r2, _080167B0 @ =gLastUsedItem
- ldr r1, _080167B4 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r2]
- ldr r0, _080167B8 @ =gProtectStructs
- lsls r2, r4, 4
- adds r2, r0
- ldrb r1, [r2, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2, 0x1]
- b _08016816
- .align 2, 0
-_080167AC: .4byte gPotentialItemEffectBattler
-_080167B0: .4byte gLastUsedItem
-_080167B4: .4byte gBattleMons
-_080167B8: .4byte gProtectStructs
-_080167BC:
- ldr r7, _080167EC @ =gBattleMons
- movs r2, 0x58
- adds r0, r4, 0
- muls r0, r2
- adds r5, r0, r7
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x32
- bne _080167F8
- ldr r0, _080167F0 @ =gLastUsedAbility
- strb r1, [r0]
- ldr r0, _080167F4 @ =gProtectStructs
- lsls r2, r4, 4
- adds r2, r0
- ldrb r1, [r2, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0x1]
- b _08016816
- .align 2, 0
-_080167EC: .4byte gBattleMons
-_080167F0: .4byte gLastUsedAbility
-_080167F4: .4byte gProtectStructs
-_080167F8:
- ldr r0, _08016820 @ =gBattleTypeFlags
- ldr r3, [r0]
- movs r0, 0xA0
- lsls r0, 8
- ands r0, r3
- movs r1, 0x80
- lsls r1, 8
- cmp r0, r1
- bne _08016824
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0801687A
-_08016816:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _0801687A
- .align 2, 0
-_08016820: .4byte gBattleTypeFlags
-_08016824:
- movs r0, 0x1
- ands r3, r0
- cmp r3, 0
- bne _0801686E
- movs r1, 0x1
- adds r0, r4, 0
- eors r0, r1
- muls r0, r2
- adds r2, r0, r7
- ldrh r0, [r5, 0x6]
- ldrh r1, [r2, 0x6]
- cmp r0, r1
- bcs _08016868
- lsls r0, 7
- ldrh r1, [r2, 0x6]
- bl __divsi3
- adds r4, r0, 0
- ldr r0, _08016894 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x6C
- ldrb r1, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 1
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- movs r1, 0xFF
- ands r1, r0
- cmp r4, r1
- bls _0801686E
-_08016868:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0801686E:
- ldr r0, _08016894 @ =gBattleStruct
- ldr r1, [r0]
- adds r1, 0x6C
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0801687A:
- cmp r6, 0
- beq _0801688C
- ldr r1, _08016898 @ =gCurrentTurnActionNumber
- ldr r0, _0801689C @ =gBattlersCount
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _080168A0 @ =gBattleOutcome
- movs r0, 0x4
- strb r0, [r1]
-_0801688C:
- adds r0, r6, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08016894: .4byte gBattleStruct
-_08016898: .4byte gCurrentTurnActionNumber
-_0801689C: .4byte gBattlersCount
-_080168A0: .4byte gBattleOutcome
- thumb_func_end TryRunFromBattle
-
- thumb_func_start sub_80168A4
-sub_80168A4: @ 80168A4
- push {r4-r6,lr}
- ldr r4, _080168F4 @ =gBattlerAttacker
- ldr r1, _080168F8 @ =gBattlerByTurnOrder
- ldr r5, _080168FC @ =gCurrentTurnActionNumber
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, _08016900 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801694C
- ldr r0, _08016904 @ =gBattlersCount
- ldrb r1, [r0]
- strb r1, [r5]
- ldr r2, _08016908 @ =gActiveBattler
- movs r0, 0
- strb r0, [r2]
- lsls r1, 24
- cmp r1, 0
- beq _08016938
- adds r4, r2, 0
- ldr r6, _0801690C @ =gChosenActionByBattler
- ldr r5, _08016910 @ =gBattleOutcome
-_080168D8:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08016914
- ldrb r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08016926
- ldrb r0, [r5]
- movs r1, 0x2
- b _08016922
- .align 2, 0
-_080168F4: .4byte gBattlerAttacker
-_080168F8: .4byte gBattlerByTurnOrder
-_080168FC: .4byte gCurrentTurnActionNumber
-_08016900: .4byte gBattleTypeFlags
-_08016904: .4byte gBattlersCount
-_08016908: .4byte gActiveBattler
-_0801690C: .4byte gChosenActionByBattler
-_08016910: .4byte gBattleOutcome
-_08016914:
- ldrb r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08016926
- ldrb r0, [r5]
- movs r1, 0x1
-_08016922:
- orrs r0, r1
- strb r0, [r5]
-_08016926:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08016944 @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080168D8
-_08016938:
- ldr r0, _08016948 @ =gBattleOutcome
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _080169D8
- .align 2, 0
-_08016944: .4byte gBattlersCount
-_08016948: .4byte gBattleOutcome
-_0801694C:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0801698C
- ldrb r0, [r4]
- bl TryRunFromBattle
- lsls r0, 24
- cmp r0, 0
- bne _080169D8
- ldrb r0, [r4]
- bl ClearFuryCutterDestinyBondGrudge
- ldr r1, _0801697C @ =gBattleCommunication
- movs r0, 0x3
- strb r0, [r1, 0x5]
- ldr r1, _08016980 @ =gBattlescriptCurrInstr
- ldr r0, _08016984 @ =gUnknown_81D893A
- str r0, [r1]
- ldr r1, _08016988 @ =gCurrentActionFuncId
- movs r0, 0xA
- b _080169D6
- .align 2, 0
-_0801697C: .4byte gBattleCommunication
-_08016980: .4byte gBattlescriptCurrInstr
-_08016984: .4byte gUnknown_81D893A
-_08016988: .4byte gCurrentActionFuncId
-_0801698C:
- ldr r1, _080169B4 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080169B8 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- beq _080169CC
- ldr r1, _080169BC @ =gBattleCommunication
- movs r0, 0x4
- strb r0, [r1, 0x5]
- ldr r1, _080169C0 @ =gBattlescriptCurrInstr
- ldr r0, _080169C4 @ =gUnknown_81D893A
- str r0, [r1]
- ldr r1, _080169C8 @ =gCurrentActionFuncId
- movs r0, 0xA
- b _080169D6
- .align 2, 0
-_080169B4: .4byte gBattleMons
-_080169B8: .4byte 0x0400e000
-_080169BC: .4byte gBattleCommunication
-_080169C0: .4byte gBattlescriptCurrInstr
-_080169C4: .4byte gUnknown_81D893A
-_080169C8: .4byte gCurrentActionFuncId
-_080169CC:
- ldr r0, _080169E0 @ =gBattlersCount
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r1, _080169E4 @ =gBattleOutcome
- movs r0, 0x6
-_080169D6:
- strb r0, [r1]
-_080169D8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080169E0: .4byte gBattlersCount
-_080169E4: .4byte gBattleOutcome
- thumb_func_end sub_80168A4
-
- thumb_func_start sub_80169E8
-sub_80169E8: @ 80169E8
- push {r4,r5,lr}
- ldr r2, _08016A44 @ =gBattlerAttacker
- ldr r1, _08016A48 @ =gBattlerByTurnOrder
- ldr r0, _08016A4C @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08016A50 @ =gBattle_BG0_X
- movs r5, 0
- strh r5, [r0]
- ldr r0, _08016A54 @ =gBattle_BG0_Y
- strh r5, [r0]
- ldr r4, _08016A58 @ =gBattleStruct
- ldr r1, [r4]
- adds r2, r1, 0
- adds r2, 0x79
- ldrb r0, [r2]
- cmp r0, 0
- beq _08016A74
- subs r0, 0x1
- strb r0, [r2]
- ldr r0, [r4]
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0
- bne _08016A68
- ldr r0, _08016A5C @ =gEnemyParty
- movs r1, 0xB
- bl GetMonData
- ldr r4, [r4]
- adds r4, 0x7C
- ldr r2, _08016A60 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x8]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08016A64 @ =0x000004fb
- bl __divsi3
- strb r0, [r4]
- b _08016A98
- .align 2, 0
-_08016A44: .4byte gBattlerAttacker
-_08016A48: .4byte gBattlerByTurnOrder
-_08016A4C: .4byte gCurrentTurnActionNumber
-_08016A50: .4byte gBattle_BG0_X
-_08016A54: .4byte gBattle_BG0_Y
-_08016A58: .4byte gBattleStruct
-_08016A5C: .4byte gEnemyParty
-_08016A60: .4byte gBaseStats
-_08016A64: .4byte 0x000004fb
-_08016A68:
- ldr r1, _08016A70 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08016A9C
- .align 2, 0
-_08016A70: .4byte gBattleCommunication
-_08016A74:
- adds r1, 0x7A
- ldrb r0, [r1]
- cmp r0, 0
- beq _08016A98
- subs r0, 0x1
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x7A
- ldrb r0, [r0]
- cmp r0, 0
- beq _08016A98
- ldr r1, _08016A94 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08016A9C
- .align 2, 0
-_08016A94: .4byte gBattleCommunication
-_08016A98:
- ldr r0, _08016AB0 @ =gBattleCommunication
- strb r5, [r0, 0x5]
-_08016A9C:
- ldr r1, _08016AB4 @ =gBattlescriptCurrInstr
- ldr r0, _08016AB8 @ =gUnknown_81D9A04
- ldr r0, [r0]
- str r0, [r1]
- ldr r1, _08016ABC @ =gCurrentActionFuncId
- movs r0, 0xA
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08016AB0: .4byte gBattleCommunication
-_08016AB4: .4byte gBattlescriptCurrInstr
-_08016AB8: .4byte gUnknown_81D9A04
-_08016ABC: .4byte gCurrentActionFuncId
- thumb_func_end sub_80169E8
-
- thumb_func_start sub_8016AC0
-sub_8016AC0: @ 8016AC0
- ldr r2, _08016AF8 @ =gBattlerAttacker
- ldr r1, _08016AFC @ =gBattlerByTurnOrder
- ldr r0, _08016B00 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08016B04 @ =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08016B08 @ =gBattle_BG0_Y
- strh r1, [r0]
- ldr r1, _08016B0C @ =gNumSafariBalls
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- ldr r1, _08016B10 @ =gLastUsedItem
- movs r0, 0x5
- strh r0, [r1]
- ldr r1, _08016B14 @ =gBattlescriptCurrInstr
- ldr r0, _08016B18 @ =gUnknown_81D99B0
- ldr r0, [r0, 0x14]
- str r0, [r1]
- ldr r1, _08016B1C @ =gCurrentActionFuncId
- movs r0, 0xA
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08016AF8: .4byte gBattlerAttacker
-_08016AFC: .4byte gBattlerByTurnOrder
-_08016B00: .4byte gCurrentTurnActionNumber
-_08016B04: .4byte gBattle_BG0_X
-_08016B08: .4byte gBattle_BG0_Y
-_08016B0C: .4byte gNumSafariBalls
-_08016B10: .4byte gLastUsedItem
-_08016B14: .4byte gBattlescriptCurrInstr
-_08016B18: .4byte gUnknown_81D99B0
-_08016B1C: .4byte gCurrentActionFuncId
- thumb_func_end sub_8016AC0
-
- thumb_func_start sub_8016B20
-sub_8016B20: @ 8016B20
- push {r4-r7,lr}
- ldr r2, _08016B9C @ =gBattlerAttacker
- ldr r1, _08016BA0 @ =gBattlerByTurnOrder
- ldr r0, _08016BA4 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08016BA8 @ =gBattle_BG0_X
- movs r7, 0
- strh r7, [r0]
- ldr r0, _08016BAC @ =gBattle_BG0_Y
- strh r7, [r0]
- bl Random
- ldr r6, _08016BB0 @ =gBattleStruct
- ldr r5, [r6]
- adds r5, 0x7A
- ldrb r4, [r5]
- adds r4, 0x2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- adds r0, r4
- strb r0, [r5]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x7A
- ldrb r0, [r1]
- cmp r0, 0x6
- bls _08016B66
- movs r0, 0x6
- strb r0, [r1]
-_08016B66:
- ldr r0, [r6]
- adds r0, 0x79
- strb r7, [r0]
- ldr r1, [r6]
- adds r1, 0x7C
- ldrb r0, [r1]
- lsrs r0, 1
- strb r0, [r1]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x7C
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08016B86
- movs r0, 0x3
- strb r0, [r1]
-_08016B86:
- ldr r1, _08016BB4 @ =gBattlescriptCurrInstr
- ldr r0, _08016BB8 @ =gUnknown_81D9A04
- ldr r0, [r0, 0x8]
- str r0, [r1]
- ldr r1, _08016BBC @ =gCurrentActionFuncId
- movs r0, 0xA
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08016B9C: .4byte gBattlerAttacker
-_08016BA0: .4byte gBattlerByTurnOrder
-_08016BA4: .4byte gCurrentTurnActionNumber
-_08016BA8: .4byte gBattle_BG0_X
-_08016BAC: .4byte gBattle_BG0_Y
-_08016BB0: .4byte gBattleStruct
-_08016BB4: .4byte gBattlescriptCurrInstr
-_08016BB8: .4byte gUnknown_81D9A04
-_08016BBC: .4byte gCurrentActionFuncId
- thumb_func_end sub_8016B20
-
- thumb_func_start sub_8016BC0
-sub_8016BC0: @ 8016BC0
- push {r4-r7,lr}
- ldr r2, _08016C3C @ =gBattlerAttacker
- ldr r1, _08016C40 @ =gBattlerByTurnOrder
- ldr r0, _08016C44 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08016C48 @ =gBattle_BG0_X
- movs r7, 0
- strh r7, [r0]
- ldr r0, _08016C4C @ =gBattle_BG0_Y
- strh r7, [r0]
- bl Random
- ldr r6, _08016C50 @ =gBattleStruct
- ldr r5, [r6]
- adds r5, 0x79
- ldrb r4, [r5]
- adds r4, 0x2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- adds r0, r4
- strb r0, [r5]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x79
- ldrb r0, [r1]
- cmp r0, 0x6
- bls _08016C06
- movs r0, 0x6
- strb r0, [r1]
-_08016C06:
- ldr r0, [r6]
- adds r0, 0x7A
- strb r7, [r0]
- ldr r1, [r6]
- adds r1, 0x7C
- ldrb r0, [r1]
- lsls r0, 1
- strb r0, [r1]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x7C
- ldrb r0, [r1]
- cmp r0, 0x14
- bls _08016C26
- movs r0, 0x14
- strb r0, [r1]
-_08016C26:
- ldr r1, _08016C54 @ =gBattlescriptCurrInstr
- ldr r0, _08016C58 @ =gUnknown_81D9A04
- ldr r0, [r0, 0x4]
- str r0, [r1]
- ldr r1, _08016C5C @ =gCurrentActionFuncId
- movs r0, 0xA
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08016C3C: .4byte gBattlerAttacker
-_08016C40: .4byte gBattlerByTurnOrder
-_08016C44: .4byte gCurrentTurnActionNumber
-_08016C48: .4byte gBattle_BG0_X
-_08016C4C: .4byte gBattle_BG0_Y
-_08016C50: .4byte gBattleStruct
-_08016C54: .4byte gBattlescriptCurrInstr
-_08016C58: .4byte gUnknown_81D9A04
-_08016C5C: .4byte gCurrentActionFuncId
- thumb_func_end sub_8016BC0
-
- thumb_func_start HandleAction_SafriZoneRun
-HandleAction_SafriZoneRun: @ 8016C60
- push {r4,lr}
- ldr r2, _08016C88 @ =gBattlerAttacker
- ldr r1, _08016C8C @ =gBattlerByTurnOrder
- ldr r4, _08016C90 @ =gCurrentTurnActionNumber
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x11
- bl PlaySE
- ldr r0, _08016C94 @ =gBattlersCount
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _08016C98 @ =gBattleOutcome
- movs r0, 0x4
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08016C88: .4byte gBattlerAttacker
-_08016C8C: .4byte gBattlerByTurnOrder
-_08016C90: .4byte gCurrentTurnActionNumber
-_08016C94: .4byte gBattlersCount
-_08016C98: .4byte gBattleOutcome
- thumb_func_end HandleAction_SafriZoneRun
-
- thumb_func_start HandleAction_Action9
-HandleAction_Action9: @ 8016C9C
- ldr r3, _08016CE8 @ =gBattlerAttacker
- ldr r1, _08016CEC @ =gBattlerByTurnOrder
- ldr r0, _08016CF0 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- strb r2, [r3]
- ldr r0, _08016CF4 @ =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08016CF8 @ =gBattle_BG0_Y
- strh r1, [r0]
- ldr r1, _08016CFC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _08016D00 @ =gBattlerPartyIndexes
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08016D04 @ =gBattlescriptCurrInstr
- ldr r0, _08016D08 @ =gUnknown_81D9A04
- ldr r0, [r0, 0xC]
- str r0, [r1]
- ldr r1, _08016D0C @ =gCurrentActionFuncId
- movs r0, 0xA
- strb r0, [r1]
- ldr r1, _08016D10 @ =gActionsByTurnOrder
- movs r0, 0xC
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_08016CE8: .4byte gBattlerAttacker
-_08016CEC: .4byte gBattlerByTurnOrder
-_08016CF0: .4byte gCurrentTurnActionNumber
-_08016CF4: .4byte gBattle_BG0_X
-_08016CF8: .4byte gBattle_BG0_Y
-_08016CFC: .4byte gBattleTextBuff1
-_08016D00: .4byte gBattlerPartyIndexes
-_08016D04: .4byte gBattlescriptCurrInstr
-_08016D08: .4byte gUnknown_81D9A04
-_08016D0C: .4byte gCurrentActionFuncId
-_08016D10: .4byte gActionsByTurnOrder
- thumb_func_end HandleAction_Action9
-
- thumb_func_start HandleAction_Action11
-HandleAction_Action11: @ 8016D14
- push {lr}
- bl HandleFaintedMonActions
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08016D30
- ldr r0, _08016D34 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x4D
- strb r1, [r0]
- ldr r1, _08016D38 @ =gCurrentActionFuncId
- movs r0, 0xC
- strb r0, [r1]
-_08016D30:
- pop {r0}
- bx r0
- .align 2, 0
-_08016D34: .4byte gBattleStruct
-_08016D38: .4byte gCurrentActionFuncId
- thumb_func_end HandleAction_Action11
-
- thumb_func_start HandleAction_NothingIsFainted
-HandleAction_NothingIsFainted: @ 8016D3C
- ldr r1, _08016D5C @ =gCurrentTurnActionNumber
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r3, _08016D60 @ =gCurrentActionFuncId
- ldr r2, _08016D64 @ =gActionsByTurnOrder
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r2, _08016D68 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08016D6C @ =0xf1e892af
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_08016D5C: .4byte gCurrentTurnActionNumber
-_08016D60: .4byte gCurrentActionFuncId
-_08016D64: .4byte gActionsByTurnOrder
-_08016D68: .4byte gHitMarker
-_08016D6C: .4byte 0xf1e892af
- thumb_func_end HandleAction_NothingIsFainted
-
- thumb_func_start HandleAction_ActionFinished
-HandleAction_ActionFinished: @ 8016D70
- push {r4,r5,lr}
- ldr r1, _08016DE4 @ =gCurrentTurnActionNumber
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r3, _08016DE8 @ =gCurrentActionFuncId
- ldr r2, _08016DEC @ =gActionsByTurnOrder
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- bl SpecialStatusesClear
- ldr r2, _08016DF0 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08016DF4 @ =0xf1e892af
- ands r0, r1
- str r0, [r2]
- ldr r0, _08016DF8 @ =gCurrentMove
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08016DFC @ =gBattleMoveDamage
- movs r4, 0
- str r4, [r0]
- ldr r0, _08016E00 @ =gMoveResultFlags
- strb r1, [r0]
- ldr r5, _08016E04 @ =gBattleScripting
- strb r1, [r5, 0x18]
- strb r1, [r5, 0x19]
- ldr r2, _08016E08 @ =gLastLandedMoves
- ldr r3, _08016E0C @ =gBattlerAttacker
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- strh r4, [r0]
- ldr r2, _08016E10 @ =gLastHitByType
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- strh r4, [r0]
- ldr r0, _08016E14 @ =gBattleStruct
- ldr r0, [r0]
- strb r1, [r0, 0x13]
- ldr r0, _08016E18 @ =gDynamicBasePower
- strh r4, [r0]
- strb r1, [r5, 0x14]
- ldr r0, _08016E1C @ =gBattleCommunication
- strb r1, [r0, 0x3]
- strb r1, [r0, 0x4]
- strb r1, [r5, 0x16]
- ldr r0, _08016E20 @ =gBattleResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- adds r0, 0x20
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08016DE4: .4byte gCurrentTurnActionNumber
-_08016DE8: .4byte gCurrentActionFuncId
-_08016DEC: .4byte gActionsByTurnOrder
-_08016DF0: .4byte gHitMarker
-_08016DF4: .4byte 0xf1e892af
-_08016DF8: .4byte gCurrentMove
-_08016DFC: .4byte gBattleMoveDamage
-_08016E00: .4byte gMoveResultFlags
-_08016E04: .4byte gBattleScripting
-_08016E08: .4byte gLastLandedMoves
-_08016E0C: .4byte gBattlerAttacker
-_08016E10: .4byte gLastHitByType
-_08016E14: .4byte gBattleStruct
-_08016E18: .4byte gDynamicBasePower
-_08016E1C: .4byte gBattleCommunication
-_08016E20: .4byte gBattleResources
- thumb_func_end HandleAction_ActionFinished
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index d5e389807..d9471c9dd 100644
--- a/asm/battle_anim.s
+++ b/asm/battle_anim.s
@@ -281,9 +281,9 @@ _08072706:
strh r1, [r0]
ldr r0, _08072734 @ =gBattle_WIN0V
strh r1, [r0]
- ldr r0, _08072738 @ =gUnknown_2022988
+ ldr r0, _08072738 @ =gBattle_WIN1H
strh r1, [r0]
- ldr r0, _0807273C @ =gUnknown_202298A
+ ldr r0, _0807273C @ =gBattle_WIN1V
strh r1, [r0]
add sp, 0x4
pop {r3-r5}
@@ -298,8 +298,8 @@ _08072728: .4byte 0x0000ffff
_0807272C: .4byte gMPlayInfo_BGM
_08072730: .4byte gBattle_WIN0H
_08072734: .4byte gBattle_WIN0V
-_08072738: .4byte gUnknown_2022988
-_0807273C: .4byte gUnknown_202298A
+_08072738: .4byte gBattle_WIN1H
+_0807273C: .4byte gBattle_WIN1V
thumb_func_end LaunchBattleAnimation
thumb_func_start DestroyAnimSprite
diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s
index 67ac6a13e..24921239f 100644
--- a/asm/battle_anim_effects_2.s
+++ b/asm/battle_anim_effects_2.s
@@ -3902,7 +3902,7 @@ _080A8C60:
subs r0, r4
strh r0, [r1]
_080A8C6A:
- ldr r1, _080A8C80 @ =sub_8075D9C
+ ldr r1, _080A8C80 @ =AnimSpriteOnMonPos
str r1, [r6, 0x1C]
adds r0, r6, 0
bl _call_via_r1
@@ -3912,7 +3912,7 @@ _080A8C6A:
bx r0
.align 2, 0
_080A8C7C: .4byte gBattleAnimArgs
-_080A8C80: .4byte sub_8075D9C
+_080A8C80: .4byte AnimSpriteOnMonPos
thumb_func_end sub_80A8BC4
thumb_func_start sub_80A8C84
@@ -4233,7 +4233,7 @@ _080A8F0E:
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r1, _080A8F34 @ =sub_8075D9C
+ ldr r1, _080A8F34 @ =AnimSpriteOnMonPos
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
@@ -4244,7 +4244,7 @@ _080A8F0E:
_080A8F28: .4byte 0x000027db
_080A8F2C: .4byte 0x01010000
_080A8F30: .4byte gBattleAnimArgs
-_080A8F34: .4byte sub_8075D9C
+_080A8F34: .4byte AnimSpriteOnMonPos
thumb_func_end sub_80A8EE8
thumb_func_start sub_80A8F38
diff --git a/asm/battle_anim_effects_3.s b/asm/battle_anim_effects_3.s
index 004ad8786..9c98d7f36 100644
--- a/asm/battle_anim_effects_3.s
+++ b/asm/battle_anim_effects_3.s
@@ -1481,11 +1481,11 @@ sub_80DEDD8: @ 80DEDD8
ldr r1, _080DEE14 @ =0x00001f3f
movs r0, 0x48
bl SetGpuReg
- ldr r1, _080DEE18 @ =gUnknown_2022988
+ ldr r1, _080DEE18 @ =gBattle_WIN1H
ldr r2, _080DEE1C @ =0x000098f0
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _080DEE20 @ =gUnknown_202298A
+ ldr r1, _080DEE20 @ =gBattle_WIN1V
movs r0, 0xA0
strh r0, [r1]
ldr r0, _080DEE24 @ =gBattle_WIN0H
@@ -1499,19 +1499,19 @@ sub_80DEDD8: @ 80DEDD8
b _080DEE5C
.align 2, 0
_080DEE14: .4byte 0x00001f3f
-_080DEE18: .4byte gUnknown_2022988
+_080DEE18: .4byte gBattle_WIN1H
_080DEE1C: .4byte 0x000098f0
-_080DEE20: .4byte gUnknown_202298A
+_080DEE20: .4byte gBattle_WIN1V
_080DEE24: .4byte gBattle_WIN0H
_080DEE28: .4byte gBattle_WIN0V
_080DEE2C:
ldr r1, _080DEE68 @ =0x00001f3f
movs r0, 0x48
bl SetGpuReg
- ldr r1, _080DEE6C @ =gUnknown_2022988
+ ldr r1, _080DEE6C @ =gBattle_WIN1H
movs r0, 0xF0
strh r0, [r1]
- ldr r4, _080DEE70 @ =gUnknown_202298A
+ ldr r4, _080DEE70 @ =gBattle_WIN1V
ldr r1, _080DEE74 @ =0x000078a0
adds r0, r1, 0
strh r0, [r4]
@@ -1533,8 +1533,8 @@ _080DEE5C:
bx r0
.align 2, 0
_080DEE68: .4byte 0x00001f3f
-_080DEE6C: .4byte gUnknown_2022988
-_080DEE70: .4byte gUnknown_202298A
+_080DEE6C: .4byte gBattle_WIN1H
+_080DEE70: .4byte gBattle_WIN1V
_080DEE74: .4byte 0x000078a0
thumb_func_end sub_80DEDD8
@@ -1546,10 +1546,10 @@ sub_80DEE78: @ 80DEE78
ldr r1, _080DEEB0 @ =0x00003f3f
movs r0, 0x48
bl SetGpuReg
- ldr r0, _080DEEB4 @ =gUnknown_2022988
+ ldr r0, _080DEEB4 @ =gBattle_WIN1H
movs r1, 0
strh r1, [r0]
- ldr r0, _080DEEB8 @ =gUnknown_202298A
+ ldr r0, _080DEEB8 @ =gBattle_WIN1V
strh r1, [r0]
bl IsContest
lsls r0, 24
@@ -1567,8 +1567,8 @@ _080DEEA4:
bx r0
.align 2, 0
_080DEEB0: .4byte 0x00003f3f
-_080DEEB4: .4byte gUnknown_2022988
-_080DEEB8: .4byte gUnknown_202298A
+_080DEEB4: .4byte gBattle_WIN1H
+_080DEEB8: .4byte gBattle_WIN1V
thumb_func_end sub_80DEE78
thumb_func_start sub_80DEEBC
diff --git a/asm/battle_1.s b/asm/battle_bg.s
index 0b8ad7365..6db40cb4d 100644
--- a/asm/battle_1.s
+++ b/asm/battle_bg.s
@@ -179,7 +179,7 @@ sub_800F324: @ 800F324
push {lr}
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _0800F344 @ =gUnknown_8248320
+ ldr r1, _0800F344 @ =gBattleBgTemplates
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
@@ -189,7 +189,7 @@ sub_800F324: @ 800F324
pop {r0}
bx r0
.align 2, 0
-_0800F344: .4byte gUnknown_8248320
+_0800F344: .4byte gBattleBgTemplates
_0800F348: .4byte gUnknown_8248330
thumb_func_end sub_800F324
@@ -217,8 +217,8 @@ sub_800F34C: @ 800F34C
_0800F37C: .4byte 0x0000b040
thumb_func_end sub_800F34C
- thumb_func_start sub_800F380
-sub_800F380: @ 800F380
+ thumb_func_start LoadBattleMenuWindowGfx
+LoadBattleMenuWindowGfx: @ 800F380
push {r4,r5,lr}
movs r0, 0x2
movs r1, 0x12
@@ -278,7 +278,7 @@ _0800F3FC: .4byte 0x0000675a
_0800F400: .4byte gPlttBufferFaded + 0xB8
_0800F404: .4byte gBattleTypeFlags
_0800F408: .4byte 0x00010010
- thumb_func_end sub_800F380
+ thumb_func_end LoadBattleMenuWindowGfx
thumb_func_start sub_800F40C
sub_800F40C: @ 800F40C
@@ -309,7 +309,7 @@ LoadBattleTextboxAndBackground: @ 800F420
movs r1, 0
movs r2, 0x40
bl LoadCompressedPalette
- bl sub_800F380
+ bl LoadBattleMenuWindowGfx
bl sub_800F40C
pop {r0}
bx r0
@@ -1143,8 +1143,8 @@ _0800FAD8: .4byte 0x000003ff
_0800FADC: .4byte 0xfffffc00
thumb_func_end sub_800F6FC
- thumb_func_start sub_800FAE0
-sub_800FAE0: @ 800FAE0
+ thumb_func_start DrawBattleEntryBackground
+DrawBattleEntryBackground: @ 800FAE0
push {r4,lr}
ldr r0, _0800FB64 @ =gBattleTypeFlags
ldr r1, [r0]
@@ -1287,7 +1287,7 @@ _0800FC26:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_800FAE0
+ thumb_func_end DrawBattleEntryBackground
thumb_func_start sub_800FC2C
sub_800FC2C: @ 800FC2C
@@ -1459,7 +1459,7 @@ _0800FD68:
.align 2, 0
_0800FD88: .4byte gUnknown_824EE34
_0800FD8C:
- bl sub_800F380
+ bl LoadBattleMenuWindowGfx
b _0800FD94
_0800FD92:
movs r4, 0x1
diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s
deleted file mode 100644
index 47230be60..000000000
--- a/asm/battle_controller_oak.s
+++ /dev/null
@@ -1,7887 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_81
-nullsub_81: @ 80E75AC
- bx lr
- thumb_func_end nullsub_81
-
- thumb_func_start SetControllerToOakOrOldman
-SetControllerToOakOrOldman: @ 80E75B0
- ldr r1, _080E75DC @ =gBattlerControllerFuncs
- ldr r0, _080E75E0 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E75E4 @ =sub_80E75EC
- str r1, [r0]
- ldr r2, _080E75E8 @ =gBattleStruct
- ldr r0, [r2]
- adds r0, 0x94
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x95
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x96
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x97
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080E75DC: .4byte gBattlerControllerFuncs
-_080E75E0: .4byte gActiveBattler
-_080E75E4: .4byte sub_80E75EC
-_080E75E8: .4byte gBattleStruct
- thumb_func_end SetControllerToOakOrOldman
-
- thumb_func_start sub_80E75EC
-sub_80E75EC: @ 80E75EC
- push {lr}
- ldr r2, _080E7620 @ =gBattleControllerExecFlags
- ldr r1, _080E7624 @ =gBitTable
- ldr r0, _080E7628 @ =gActiveBattler
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080E7638
- ldr r0, _080E762C @ =gBattleBufferA
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _080E7634
- ldr r0, _080E7630 @ =gUnknown_84020F8
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _080E7638
- .align 2, 0
-_080E7620: .4byte gBattleControllerExecFlags
-_080E7624: .4byte gBitTable
-_080E7628: .4byte gActiveBattler
-_080E762C: .4byte gBattleBufferA
-_080E7630: .4byte gUnknown_84020F8
-_080E7634:
- bl WallyBufferExecCompleted
-_080E7638:
- pop {r0}
- bx r0
- thumb_func_end sub_80E75EC
-
- thumb_func_start sub_80E763C
-sub_80E763C: @ 80E763C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _080E769C @ =gBattleBufferA
- ldr r4, _080E76A0 @ =gActiveBattler
- ldrb r0, [r4]
- lsls r2, r0, 9
- adds r1, r7, 0x2
- adds r1, r2, r1
- ldrb r5, [r1]
- adds r1, r7, 0x3
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r5, r1
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl DoBounceEffect
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x1
- bl DoBounceEffect
- ldr r0, _080E76A4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080E76D4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080E76A8 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080E76BC
- cmp r0, 0x1
- bgt _080E76AC
- cmp r0, 0
- beq _080E76B6
- b _080E781A
- .align 2, 0
-_080E769C: .4byte gBattleBufferA
-_080E76A0: .4byte gActiveBattler
-_080E76A4: .4byte gMain
-_080E76A8: .4byte gActionSelectionCursor
-_080E76AC:
- cmp r0, 0x2
- beq _080E76C2
- cmp r0, 0x3
- beq _080E76C8
- b _080E781A
-_080E76B6:
- movs r0, 0x1
- movs r1, 0
- b _080E7814
-_080E76BC:
- movs r0, 0x1
- movs r1, 0x1
- b _080E7814
-_080E76C2:
- movs r0, 0x1
- movs r1, 0x2
- b _080E7814
-_080E76C8:
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl BtlController_EmitTwoReturnValues
- b _080E781A
-_080E76D4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080E770C
- ldr r5, _080E7708 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080E76EE
- b _080E7838
-_080E76EE:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl ActionSelectionDestroyCursorAt
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _080E7794
- .align 2, 0
-_080E7708: .4byte gActionSelectionCursor
-_080E770C:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E7744
- ldr r5, _080E7740 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080E7726
- b _080E7838
-_080E7726:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl ActionSelectionDestroyCursorAt
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _080E7794
- .align 2, 0
-_080E7740: .4byte gActionSelectionCursor
-_080E7744:
- movs r0, 0x40
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- beq _080E7764
- ldr r5, _080E7760 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E7838
- b _080E777C
- .align 2, 0
-_080E7760: .4byte gActionSelectionCursor
-_080E7764:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E77AC
- ldr r5, _080E77A8 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080E7838
-_080E777C:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl ActionSelectionDestroyCursorAt
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
-_080E7794:
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl ActionSelectionCreateCursorAt
- b _080E7838
- .align 2, 0
-_080E77A8: .4byte gActionSelectionCursor
-_080E77AC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E782C
- ldr r6, _080E7820 @ =gBattleTypeFlags
- ldr r0, [r6]
- ands r0, r2
- cmp r0, 0
- beq _080E7838
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080E7838
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r1, _080E7824 @ =gAbsentBattlerFlags
- ldrb r1, [r1]
- ldr r2, _080E7828 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080E7838
- ldr r0, [r6]
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _080E7838
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, r7, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E780A
- cmp r5, 0xC
- bhi _080E7838
- adds r0, r5, 0
- movs r1, 0x1
- bl AddBagItem
-_080E780A:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0xC
-_080E7814:
- movs r2, 0
- bl BtlController_EmitTwoReturnValues
-_080E781A:
- bl WallyBufferExecCompleted
- b _080E7838
- .align 2, 0
-_080E7820: .4byte gBattleTypeFlags
-_080E7824: .4byte gAbsentBattlerFlags
-_080E7828: .4byte gBitTable
-_080E782C:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080E7838
- bl SwapHpBarsWithHpText
-_080E7838:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E763C
-
- thumb_func_start sub_80E7844
-sub_80E7844: @ 80E7844
- push {r4,lr}
- ldr r1, _080E7860 @ =gBattleStruct
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0x94
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _080E787C
- cmp r0, 0x1
- bgt _080E7864
- cmp r0, 0
- beq _080E786A
- b _080E78D8
- .align 2, 0
-_080E7860: .4byte gBattleStruct
-_080E7864:
- cmp r0, 0x2
- beq _080E78B4
- b _080E78D8
-_080E786A:
- adds r1, r2, 0
- adds r1, 0x96
- movs r0, 0x40
- strb r0, [r1]
- ldr r1, [r4]
- adds r1, 0x94
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080E787C:
- ldr r1, [r4]
- adds r1, 0x96
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080E78D8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl ActionSelectionDestroyCursorAt
- movs r0, 0x1
- movs r1, 0
- bl ActionSelectionCreateCursorAt
- ldr r0, [r4]
- adds r0, 0x96
- movs r1, 0x40
- strb r1, [r0]
- ldr r1, [r4]
- adds r1, 0x94
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080E78D8
-_080E78B4:
- adds r1, r2, 0
- adds r1, 0x96
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080E78D8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl BtlController_EmitTwoReturnValues
- bl WallyBufferExecCompleted
-_080E78D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E7844
-
- thumb_func_start sub_80E78E0
-sub_80E78E0: @ 80E78E0
- push {lr}
- ldr r2, _080E7908 @ =gSprites
- ldr r1, _080E790C @ =gBattlerSpriteIds
- ldr r0, _080E7910 @ =gActiveBattler
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080E7914 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080E7904
- bl WallyBufferExecCompleted
-_080E7904:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7908: .4byte gSprites
-_080E790C: .4byte gBattlerSpriteIds
-_080E7910: .4byte gActiveBattler
-_080E7914: .4byte SpriteCallbackDummy
- thumb_func_end sub_80E78E0
-
- thumb_func_start sub_80E7918
-sub_80E7918: @ 80E7918
- push {lr}
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _080E792A
- bl WallyBufferExecCompleted
-_080E792A:
- pop {r0}
- bx r0
- thumb_func_end sub_80E7918
-
- thumb_func_start sub_80E7930
-sub_80E7930: @ 80E7930
- push {lr}
- ldr r0, _080E7960 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E795A
- ldr r2, _080E7964 @ =gMain
- ldr r0, _080E7968 @ =0x00000439
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _080E796C @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_080E795A:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7960: .4byte gPaletteFade
-_080E7964: .4byte gMain
-_080E7968: .4byte 0x00000439
-_080E796C: .4byte gPreBattleCallback1
- thumb_func_end sub_80E7930
-
- thumb_func_start sub_80E7970
-sub_80E7970: @ 80E7970
- push {lr}
- ldr r0, _080E7984 @ =gDoingBattleAnim
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E797E
- bl WallyBufferExecCompleted
-_080E797E:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7984: .4byte gDoingBattleAnim
- thumb_func_end sub_80E7970
-
- thumb_func_start sub_80E7988
-sub_80E7988: @ 80E7988
- push {lr}
- bl HandleInputChooseMove
- ldr r2, _080E79AC @ =gBattleControllerExecFlags
- ldr r1, _080E79B0 @ =gBitTable
- ldr r0, _080E79B4 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080E79A8
- bl WallyBufferExecCompleted
-_080E79A8:
- pop {r0}
- bx r0
- .align 2, 0
-_080E79AC: .4byte gBattleControllerExecFlags
-_080E79B0: .4byte gBitTable
-_080E79B4: .4byte gActiveBattler
- thumb_func_end sub_80E7988
-
- thumb_func_start sub_80E79B8
-sub_80E79B8: @ 80E79B8
- push {r4,lr}
- ldr r0, _080E79FC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E79F6
- ldr r1, _080E7A00 @ =gBattlerControllerFuncs
- ldr r2, _080E7A04 @ =gActiveBattler
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E7A08 @ =sub_80E7A14
- str r1, [r0]
- ldr r3, _080E7A0C @ =gTasks
- ldr r1, _080E7A10 @ =gUnknown_3004FFC
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldrb r4, [r1, 0x8]
- bl DestroyTask
- bl FreeAllWindowBuffers
- adds r0, r4, 0
- bl OpenPartyMenuInBattle
-_080E79F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E79FC: .4byte gPaletteFade
-_080E7A00: .4byte gBattlerControllerFuncs
-_080E7A04: .4byte gActiveBattler
-_080E7A08: .4byte sub_80E7A14
-_080E7A0C: .4byte gTasks
-_080E7A10: .4byte gUnknown_3004FFC
- thumb_func_end sub_80E79B8
-
- thumb_func_start sub_80E7A14
-sub_80E7A14: @ 80E7A14
- push {lr}
- ldr r0, _080E7A44 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _080E7A48 @ =BattleMainCB2
- cmp r1, r0
- bne _080E7A6A
- ldr r0, _080E7A4C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E7A6A
- ldr r0, _080E7A50 @ =gUnknown_203B0C0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E7A5C
- ldr r0, _080E7A54 @ =gUnknown_203B0C1
- ldrb r1, [r0]
- ldr r2, _080E7A58 @ =gUnknown_203B0DC
- movs r0, 0x1
- bl BtlController_EmitChosenMonReturnValue
- b _080E7A66
- .align 2, 0
-_080E7A44: .4byte gMain
-_080E7A48: .4byte BattleMainCB2
-_080E7A4C: .4byte gPaletteFade
-_080E7A50: .4byte gUnknown_203B0C0
-_080E7A54: .4byte gUnknown_203B0C1
-_080E7A58: .4byte gUnknown_203B0DC
-_080E7A5C:
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0
- bl BtlController_EmitChosenMonReturnValue
-_080E7A66:
- bl WallyBufferExecCompleted
-_080E7A6A:
- pop {r0}
- bx r0
- thumb_func_end sub_80E7A14
-
- thumb_func_start sub_80E7A70
-sub_80E7A70: @ 80E7A70
- push {lr}
- ldr r0, _080E7AA8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E7AC0
- ldr r1, _080E7AAC @ =gBattlerControllerFuncs
- ldr r0, _080E7AB0 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E7AB4 @ =sub_80E7AC4
- str r1, [r0]
- bl nullsub_44
- bl FreeAllWindowBuffers
- ldr r0, _080E7AB8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E7ABC
- bl sub_8107ECC
- b _080E7AC0
- .align 2, 0
-_080E7AA8: .4byte gPaletteFade
-_080E7AAC: .4byte gBattlerControllerFuncs
-_080E7AB0: .4byte gActiveBattler
-_080E7AB4: .4byte sub_80E7AC4
-_080E7AB8: .4byte gBattleTypeFlags
-_080E7ABC:
- bl sub_810AF74
-_080E7AC0:
- pop {r0}
- bx r0
- thumb_func_end sub_80E7A70
-
- thumb_func_start sub_80E7AC4
-sub_80E7AC4: @ 80E7AC4
- push {lr}
- ldr r0, _080E7B14 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _080E7B18 @ =BattleMainCB2
- cmp r1, r0
- bne _080E7B42
- ldr r0, _080E7B1C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E7B42
- movs r0, 0x4
- bl sub_80EB2E0
- lsls r0, 24
- cmp r0, 0
- bne _080E7B34
- ldr r0, _080E7B20 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- cmp r0, 0xD
- bne _080E7B34
- ldr r0, _080E7B24 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E7B34
- movs r0, 0x4
- bl sub_80EB2F4
- ldr r1, _080E7B28 @ =gBattlerControllerFuncs
- ldr r0, _080E7B2C @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E7B30 @ =sub_80E8704
- str r1, [r0]
- b _080E7B42
- .align 2, 0
-_080E7B14: .4byte gMain
-_080E7B18: .4byte BattleMainCB2
-_080E7B1C: .4byte gPaletteFade
-_080E7B20: .4byte gSpecialVar_ItemId
-_080E7B24: .4byte gBattleTypeFlags
-_080E7B28: .4byte gBattlerControllerFuncs
-_080E7B2C: .4byte gActiveBattler
-_080E7B30: .4byte sub_80E8704
-_080E7B34:
- ldr r0, _080E7B48 @ =gSpecialVar_ItemId
- ldrh r1, [r0]
- movs r0, 0x1
- bl BtlController_EmitOneReturnValue
- bl WallyBufferExecCompleted
-_080E7B42:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7B48: .4byte gSpecialVar_ItemId
- thumb_func_end sub_80E7AC4
-
- thumb_func_start sub_80E7B4C
-sub_80E7B4C: @ 80E7B4C
- push {r4-r7,lr}
- ldr r4, _080E7CB0 @ =gBattleSpritesDataPtr
- ldr r0, [r4]
- ldr r5, _080E7CB4 @ =gActiveBattler
- ldrb r2, [r5]
- ldr r1, [r0, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r7, 0x88
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _080E7B80
- ldr r0, _080E7CB8 @ =gBattlerPartyIndexes
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080E7CBC @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_80F1720
-_080E7B80:
- ldr r1, [r4]
- ldrb r0, [r5]
- movs r6, 0x2
- adds r2, r6, 0
- eors r2, r0
- ldr r1, [r1, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _080E7BB2
- ldr r0, _080E7CB8 @ =gBattlerPartyIndexes
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080E7CBC @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_80F1720
-_080E7BB2:
- ldr r0, [r4]
- ldrb r2, [r5]
- ldr r3, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0]
- movs r4, 0x8
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080E7CA8
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080E7CA8
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080E7C46
- ldr r0, _080E7CC0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080E7C46
- ldr r1, _080E7CC4 @ =gUnknown_3004FFC
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E7CC8 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _080E7CCC @ =gHealthboxSpriteIds
- ldrb r0, [r5]
- adds r1, r6, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _080E7CB8 @ =gBattlerPartyIndexes
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _080E7CBC @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl UpdateHealthboxAttribute
- ldrb r0, [r5]
- eors r0, r6
- bl sub_804BD94
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r4
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
-_080E7C46:
- ldr r1, _080E7CC4 @ =gUnknown_3004FFC
- ldr r4, _080E7CB4 @ =gActiveBattler
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E7CC8 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _080E7CCC @ =gHealthboxSpriteIds
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _080E7CB8 @ =gBattlerPartyIndexes
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _080E7CBC @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl UpdateHealthboxAttribute
- ldrb r0, [r4]
- bl sub_804BD94
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- ldr r0, _080E7CB0 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r2, [r0, 0x8]
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _080E7CD0 @ =gBattlerControllerFuncs
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E7CD4 @ =sub_80E7CD8
- str r1, [r0]
-_080E7CA8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7CB0: .4byte gBattleSpritesDataPtr
-_080E7CB4: .4byte gActiveBattler
-_080E7CB8: .4byte gBattlerPartyIndexes
-_080E7CBC: .4byte gPlayerParty
-_080E7CC0: .4byte gBattleTypeFlags
-_080E7CC4: .4byte gUnknown_3004FFC
-_080E7CC8: .4byte gSprites
-_080E7CCC: .4byte gHealthboxSpriteIds
-_080E7CD0: .4byte gBattlerControllerFuncs
-_080E7CD4: .4byte sub_80E7CD8
- thumb_func_end sub_80E7B4C
-
- thumb_func_start sub_80E7CD8
-sub_80E7CD8: @ 80E7CD8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- ldr r2, _080E7DD8 @ =gSprites
- ldr r0, _080E7DDC @ =gHealthboxSpriteIds
- ldr r1, _080E7DE0 @ =gActiveBattler
- mov r8, r1
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080E7DE4 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080E7D02
- movs r4, 0x1
-_080E7D02:
- cmp r4, 0
- beq _080E7DCE
- ldr r7, _080E7DE8 @ =gBattleSpritesDataPtr
- ldr r0, [r7]
- ldr r4, [r0, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r4
- ldrb r1, [r2, 0x1]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E7DCE
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E7DCE
- ldrb r1, [r2]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r2]
- ldr r0, [r7]
- mov r1, r8
- ldrb r2, [r1]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r2, [r7]
- mov r1, r8
- ldrb r0, [r1]
- adds r1, r6, 0
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldr r2, [r7]
- mov r1, r8
- ldrb r0, [r1]
- adds r1, r6, 0
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _080E7DEC @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _080E7DF0 @ =c3_0802FDF4
- movs r1, 0xA
- bl CreateTask
- ldr r2, _080E7DF4 @ =gBattlerPartyIndexes
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _080E7DF8 @ =gPlayerParty
- adds r0, r2
- bl HandleLowHpMusicChange
- ldr r1, _080E7DFC @ =gBattlerControllerFuncs
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E7E00 @ =sub_80E835C
- str r1, [r0]
-_080E7DCE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7DD8: .4byte gSprites
-_080E7DDC: .4byte gHealthboxSpriteIds
-_080E7DE0: .4byte gActiveBattler
-_080E7DE4: .4byte SpriteCallbackDummy
-_080E7DE8: .4byte gBattleSpritesDataPtr
-_080E7DEC: .4byte 0x000027f9
-_080E7DF0: .4byte c3_0802FDF4
-_080E7DF4: .4byte gBattlerPartyIndexes
-_080E7DF8: .4byte gPlayerParty
-_080E7DFC: .4byte gBattlerControllerFuncs
-_080E7E00: .4byte sub_80E835C
- thumb_func_end sub_80E7CD8
-
- thumb_func_start sub_80E7E04
-sub_80E7E04: @ 80E7E04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080E7F04 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- mov r8, r0
- ldrb r0, [r0, 0x8]
- mov r10, r0
- mov r1, r8
- ldrb r7, [r1, 0xC]
- str r7, [sp, 0x8]
- ldrh r2, [r1, 0xA]
- str r2, [sp, 0xC]
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E7E4A
- ldr r1, _080E7F08 @ =gBattlerPartyIndexes
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r10, r0
- bne _080E7E4A
- b _080E7F60
-_080E7E4A:
- movs r0, 0x64
- mov r1, r10
- muls r1, r0
- ldr r0, _080E7F0C @ =gPlayerParty
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x4]
- ldr r3, _080E7F10 @ =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _080E7F14 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r1, r2
- adds r4, r1
- adds r4, r3
- ldr r2, [r4]
- str r2, [sp]
- ldr r3, [sp, 0xC]
- lsls r1, r3, 16
- asrs r1, 16
- adds r0, r1
- cmp r0, r2
- bcc _080E7F38
- adds r0, r6, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r6, 0
- bl CalculateMonStats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- ldr r0, [sp, 0xC]
- subs r2, r0, r2
- ldr r4, _080E7F18 @ =gActiveBattler
- ldrb r5, [r4]
- strb r7, [r4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xB
- bl BtlController_EmitTwoReturnValues
- strb r5, [r4]
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E7F20
- ldr r2, _080E7F08 @ =gBattlerPartyIndexes
- lsls r0, r7, 1
- adds r0, r2
- mov r1, r10
- ldrh r0, [r0]
- cmp r1, r0
- beq _080E7EFE
- movs r0, 0x2
- eors r7, r0
- lsls r0, r7, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _080E7F20
-_080E7EFE:
- ldr r0, _080E7F1C @ =sub_80E8190
- b _080E7F62
- .align 2, 0
-_080E7F04: .4byte gTasks
-_080E7F08: .4byte gBattlerPartyIndexes
-_080E7F0C: .4byte gPlayerParty
-_080E7F10: .4byte gExperienceTables
-_080E7F14: .4byte gBaseStats
-_080E7F18: .4byte gActiveBattler
-_080E7F1C: .4byte sub_80E8190
-_080E7F20:
- ldr r0, _080E7F30 @ =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldr r0, _080E7F34 @ =sub_80E82A8
- b _080E7F64
- .align 2, 0
-_080E7F30: .4byte gTasks
-_080E7F34: .4byte sub_80E82A8
-_080E7F38:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r6, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, _080E7F58 @ =gBattlerControllerFuncs
- ldr r3, [sp, 0x8]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, _080E7F5C @ =sub_80E8930
- str r1, [r0]
- mov r0, r9
- bl DestroyTask
- b _080E7F66
- .align 2, 0
-_080E7F58: .4byte gBattlerControllerFuncs
-_080E7F5C: .4byte sub_80E8930
-_080E7F60:
- ldr r0, _080E7F78 @ =sub_80E7F7C
-_080E7F62:
- mov r1, r8
-_080E7F64:
- str r0, [r1]
-_080E7F66:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7F78: .4byte sub_80E7F7C
- thumb_func_end sub_80E7E04
-
- thumb_func_start sub_80E7F7C
-sub_80E7F7C: @ 80E7F7C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E8034 @ =gTasks
- lsls r2, r0, 2
- mov r8, r2
- add r8, r0
- mov r0, r8
- lsls r0, 3
- mov r8, r0
- add r8, r1
- mov r2, r8
- ldrb r1, [r2, 0x8]
- movs r0, 0xA
- ldrsh r2, [r2, r0]
- mov r9, r2
- mov r2, r8
- ldrb r2, [r2, 0xC]
- mov r10, r2
- movs r0, 0x64
- adds r6, r1, 0
- muls r6, r0
- ldr r0, _080E8038 @ =gPlayerParty
- adds r6, r0
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x19
- bl GetMonData
- adds r3, r0, 0
- ldr r6, _080E803C @ =gExperienceTables
- lsls r1, r4, 2
- ldr r2, _080E8040 @ =gBaseStats
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r2
- adds r1, r0
- adds r1, r6
- ldr r1, [r1]
- subs r3, r1
- adds r4, 0x1
- lsls r4, 2
- adds r4, r0
- adds r4, r6
- ldr r2, [r4]
- subs r2, r1
- ldr r0, _080E8044 @ =gHealthboxSpriteIds
- add r0, r10
- ldrb r1, [r0]
- mov r0, r9
- negs r0, r0
- str r0, [sp]
- mov r0, r10
- bl SetBattleBarStruct
- movs r0, 0x1B
- bl PlaySE
- ldr r0, _080E8048 @ =sub_80E804C
- mov r1, r8
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8034: .4byte gTasks
-_080E8038: .4byte gPlayerParty
-_080E803C: .4byte gExperienceTables
-_080E8040: .4byte gBaseStats
-_080E8044: .4byte gHealthboxSpriteIds
-_080E8048: .4byte sub_80E804C
- thumb_func_end sub_80E7F7C
-
- thumb_func_start sub_80E804C
-sub_80E804C: @ 80E804C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _080E8078 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r6, r0, r1
- ldrh r1, [r6, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r6, r2]
- cmp r0, 0xC
- bgt _080E807C
- adds r0, r1, 0x1
- strh r0, [r6, 0x1C]
- b _080E8178
- .align 2, 0
-_080E8078: .4byte gTasks
-_080E807C:
- ldrb r0, [r6, 0x8]
- mov r9, r0
- ldrh r2, [r6, 0xA]
- mov r10, r2
- ldrb r7, [r6, 0xC]
- ldr r5, _080E8144 @ =gHealthboxSpriteIds
- adds r5, r7, r5
- ldrb r1, [r5]
- adds r0, r7, 0
- movs r2, 0x1
- movs r3, 0
- bl MoveBattleBar
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- bl SetHealthboxSpriteVisible
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _080E8178
- movs r0, 0x1B
- bl m4aSongNumStop
- movs r0, 0x64
- mov r1, r9
- muls r1, r0
- ldr r0, _080E8148 @ =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _080E814C @ =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _080E8150 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r3
- ldr r1, [r4]
- str r1, [sp]
- mov r2, r10
- lsls r0, r2, 16
- asrs r4, r0, 16
- ldr r0, [sp, 0x4]
- adds r0, r4
- cmp r0, r1
- blt _080E815C
- adds r0, r5, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- bl CalculateMonStats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- subs r2, r4, r2
- ldr r4, _080E8154 @ =gActiveBattler
- ldrb r5, [r4]
- strb r7, [r4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xB
- bl BtlController_EmitTwoReturnValues
- strb r5, [r4]
- ldr r0, _080E8158 @ =sub_80E8190
- str r0, [r6]
- b _080E8178
- .align 2, 0
-_080E8144: .4byte gHealthboxSpriteIds
-_080E8148: .4byte gPlayerParty
-_080E814C: .4byte gExperienceTables
-_080E8150: .4byte gBaseStats
-_080E8154: .4byte gActiveBattler
-_080E8158: .4byte sub_80E8190
-_080E815C:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r5, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, _080E8188 @ =gBattlerControllerFuncs
- lsls r0, r7, 2
- adds r0, r1
- ldr r1, _080E818C @ =sub_80E8930
- str r1, [r0]
- mov r0, r8
- bl DestroyTask
-_080E8178:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8188: .4byte gBattlerControllerFuncs
-_080E818C: .4byte sub_80E8930
- thumb_func_end sub_80E804C
-
- thumb_func_start sub_80E8190
-sub_80E8190: @ 80E8190
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080E81E4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0xC]
- ldrb r6, [r0, 0x8]
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E81C4
- ldr r1, _080E81E8 @ =gBattlerPartyIndexes
- movs r0, 0x2
- adds r2, r4, 0
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- bne _080E81C4
- adds r4, r2, 0
-_080E81C4:
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0
- bl InitAndLaunchSpecialAnimation
- ldr r0, _080E81E4 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080E81EC @ =sub_80E81F0
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E81E4: .4byte gTasks
-_080E81E8: .4byte gBattlerPartyIndexes
-_080E81EC: .4byte sub_80E81F0
- thumb_func_end sub_80E8190
-
- thumb_func_start sub_80E81F0
-sub_80E81F0: @ 80E81F0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080E825C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- ldrb r5, [r2, 0xC]
- ldr r0, _080E8260 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080E8292
- ldrb r4, [r2, 0x8]
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _080E8264 @ =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x38
- bl GetMonData
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E8270
- ldr r1, _080E8268 @ =gBattlerPartyIndexes
- movs r0, 0x2
- adds r2, r5, 0
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _080E8270
- ldr r0, _080E826C @ =gHealthboxSpriteIds
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r1, r7, 0
- movs r2, 0
- bl UpdateHealthboxAttribute
- b _080E8284
- .align 2, 0
-_080E825C: .4byte gTasks
-_080E8260: .4byte gBattleSpritesDataPtr
-_080E8264: .4byte gPlayerParty
-_080E8268: .4byte gBattlerPartyIndexes
-_080E826C: .4byte gHealthboxSpriteIds
-_080E8270:
- ldr r0, _080E8298 @ =gHealthboxSpriteIds
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0x64
- muls r1, r4
- ldr r2, _080E829C @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl UpdateHealthboxAttribute
-_080E8284:
- ldr r0, _080E82A0 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _080E82A4 @ =sub_80E82A8
- str r0, [r1]
-_080E8292:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8298: .4byte gHealthboxSpriteIds
-_080E829C: .4byte gPlayerParty
-_080E82A0: .4byte gTasks
-_080E82A4: .4byte sub_80E82A8
- thumb_func_end sub_80E81F0
-
- thumb_func_start sub_80E82A8
-sub_80E82A8: @ 80E82A8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080E82E4 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r1, [r4, 0x8]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E82E8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- ldrb r0, [r4, 0xC]
- ldr r1, _080E82EC @ =gBattlerControllerFuncs
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E82F0 @ =sub_80E8930
- str r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E82E4: .4byte gTasks
-_080E82E8: .4byte gPlayerParty
-_080E82EC: .4byte gBattlerControllerFuncs
-_080E82F0: .4byte sub_80E8930
- thumb_func_end sub_80E82A8
-
- thumb_func_start sub_80E82F4
-sub_80E82F4: @ 80E82F4
- push {r4-r6,lr}
- ldr r6, _080E834C @ =gSprites
- ldr r5, _080E8350 @ =gBattlerSpriteIds
- ldr r4, _080E8354 @ =gActiveBattler
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r6
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- cmp r0, 0xA0
- ble _080E8344
- ldrb r0, [r2, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r1, _080E8358 @ =gHealthboxSpriteIds
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
- bl WallyBufferExecCompleted
-_080E8344:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E834C: .4byte gSprites
-_080E8350: .4byte gBattlerSpriteIds
-_080E8354: .4byte gActiveBattler
-_080E8358: .4byte gHealthboxSpriteIds
- thumb_func_end sub_80E82F4
-
- thumb_func_start sub_80E835C
-sub_80E835C: @ 80E835C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _080E837C @ =gBattleStruct
- ldr r0, [r1]
- adds r0, 0x94
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0x8
- bls _080E8370
- b _080E855E
-_080E8370:
- lsls r0, 2
- ldr r1, _080E8380 @ =_080E8384
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E837C: .4byte gBattleStruct
-_080E8380: .4byte _080E8384
- .align 2, 0
-_080E8384:
- .4byte _080E83A8
- .4byte _080E83F0
- .4byte _080E8408
- .4byte _080E8420
- .4byte _080E8468
- .4byte _080E8490
- .4byte _080E84D8
- .4byte _080E8500
- .4byte _080E8530
-_080E83A8:
- ldr r0, _080E83EC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _080E83BA
- b _080E855E
-_080E83BA:
- ldr r4, [r7]
- adds r5, r4, 0
- adds r5, 0x95
- adds r4, 0x97
- movs r0, 0x1
- bl GetBattlerAtPosition
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80EEFC8
- movs r0, 0x82
- negs r0, r0
- str r6, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r1, [r7]
- b _080E8522
- .align 2, 0
-_080E83EC: .4byte gPaletteFade
-_080E83F0:
- ldr r0, _080E8404 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E83FE
- b _080E855E
-_080E83FE:
- bl sub_80EB30C
- b _080E851E
- .align 2, 0
-_080E8404: .4byte gPaletteFade
-_080E8408:
- ldr r0, _080E8418 @ =gUnknown_83FDAE2
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r0, _080E841C @ =gDisplayedStringBattle
- movs r1, 0x18
- bl BattlePutTextOnWindow
- b _080E851E
- .align 2, 0
-_080E8418: .4byte gUnknown_83FDAE2
-_080E841C: .4byte gDisplayedStringBattle
-_080E8420:
- movs r0, 0x18
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080E8430
- b _080E855E
-_080E8430:
- ldr r2, _080E8460 @ =gBitTable
- ldr r4, _080E8464 @ =gBattleStruct
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x95
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x97
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- orrs r1, r0
- lsls r0, r1, 16
- str r3, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, [r4]
- b _080E8522
- .align 2, 0
-_080E8460: .4byte gBitTable
-_080E8464: .4byte gBattleStruct
-_080E8468:
- ldr r0, _080E8484 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E855E
- ldr r0, _080E8488 @ =gUnknown_83FDB92
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r0, _080E848C @ =gDisplayedStringBattle
- movs r1, 0x18
- bl BattlePutTextOnWindow
- b _080E851E
- .align 2, 0
-_080E8484: .4byte gPaletteFade
-_080E8488: .4byte gUnknown_83FDB92
-_080E848C: .4byte gDisplayedStringBattle
-_080E8490:
- movs r0, 0x18
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _080E855E
- ldr r2, _080E84D0 @ =gBitTable
- ldr r4, _080E84D4 @ =gBattleStruct
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x95
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x97
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- orrs r1, r0
- lsls r0, r1, 16
- str r3, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r1, [r4]
- b _080E8522
- .align 2, 0
-_080E84D0: .4byte gBitTable
-_080E84D4: .4byte gBattleStruct
-_080E84D8:
- ldr r0, _080E84F4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E855E
- ldr r0, _080E84F8 @ =gUnknown_83FDBEF
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r0, _080E84FC @ =gDisplayedStringBattle
- movs r1, 0x18
- bl BattlePutTextOnWindow
- b _080E851E
- .align 2, 0
-_080E84F4: .4byte gPaletteFade
-_080E84F8: .4byte gUnknown_83FDBEF
-_080E84FC: .4byte gDisplayedStringBattle
-_080E8500:
- movs r0, 0x18
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080E855E
- movs r0, 0x82
- negs r0, r0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
-_080E851E:
- ldr r0, _080E852C @ =gBattleStruct
- ldr r1, [r0]
-_080E8522:
- adds r1, 0x94
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080E855E
- .align 2, 0
-_080E852C: .4byte gBattleStruct
-_080E8530:
- ldr r0, _080E8568 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080E855E
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- bl sub_80EF0E0
- bl sub_80EB524
- ldr r0, _080E856C @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x94
- strb r4, [r0]
- bl WallyBufferExecCompleted
-_080E855E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8568: .4byte gPaletteFade
-_080E856C: .4byte gBattleStruct
- thumb_func_end sub_80E835C
-
- thumb_func_start sub_80E8570
-sub_80E8570: @ 80E8570
- push {lr}
- ldr r0, _080E8580 @ =gUnknown_83FDC58
- movs r1, 0x1
- bl sub_80E85D4
- pop {r0}
- bx r0
- .align 2, 0
-_080E8580: .4byte gUnknown_83FDC58
- thumb_func_end sub_80E8570
-
- thumb_func_start sub_80E8584
-sub_80E8584: @ 80E8584
- push {lr}
- ldr r0, _080E8594 @ =gUnknown_83FDC95
- movs r1, 0x40
- bl sub_80E85D4
- pop {r0}
- bx r0
- .align 2, 0
-_080E8594: .4byte gUnknown_83FDC95
- thumb_func_end sub_80E8584
-
- thumb_func_start sub_80E8598
-sub_80E8598: @ 80E8598
- push {lr}
- ldr r0, _080E85A8 @ =gUnknown_83FDD23
- movs r1, 0x1
- bl sub_80E85D4
- pop {r0}
- bx r0
- .align 2, 0
-_080E85A8: .4byte gUnknown_83FDD23
- thumb_func_end sub_80E8598
-
- thumb_func_start sub_80E85AC
-sub_80E85AC: @ 80E85AC
- push {lr}
- ldr r0, _080E85BC @ =gUnknown_83FDD64
- movs r1, 0x40
- bl sub_80E85D4
- pop {r0}
- bx r0
- .align 2, 0
-_080E85BC: .4byte gUnknown_83FDD64
- thumb_func_end sub_80E85AC
-
- thumb_func_start sub_80E85C0
-sub_80E85C0: @ 80E85C0
- push {lr}
- ldr r0, _080E85D0 @ =gUnknown_83FDDEB
- movs r1, 0x40
- bl sub_80E85D4
- pop {r0}
- bx r0
- .align 2, 0
-_080E85D0: .4byte gUnknown_83FDDEB
- thumb_func_end sub_80E85C0
-
- thumb_func_start sub_80E85D4
-sub_80E85D4: @ 80E85D4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r2, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r1, _080E85F8 @ =gBattleStruct
- ldr r0, [r1]
- adds r0, 0x94
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bls _080E85EE
- b _080E86F2
-_080E85EE:
- lsls r0, 2
- ldr r1, _080E85FC @ =_080E8600
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E85F8: .4byte gBattleStruct
-_080E85FC: .4byte _080E8600
- .align 2, 0
-_080E8600:
- .4byte _080E8618
- .4byte _080E8634
- .4byte _080E865A
- .4byte _080E8670
- .4byte _080E8684
- .4byte _080E86B4
-_080E8618:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _080E86F2
- ldr r1, _080E8630 @ =gBattleStruct
- ldr r0, [r1]
- adds r0, 0x97
- strb r4, [r0]
- ldr r1, [r1]
- b _080E86A6
- .align 2, 0
-_080E8630: .4byte gBattleStruct
-_080E8634:
- ldr r1, [r5]
- adds r1, 0x97
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080E86F2
- movs r0, 0x82
- negs r0, r0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- b _080E86A6
-_080E865A:
- ldr r0, _080E866C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E86F2
- bl sub_80EB30C
- b _080E86A2
- .align 2, 0
-_080E866C: .4byte gPaletteFade
-_080E8670:
- adds r0, r2, 0
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r0, _080E8680 @ =gDisplayedStringBattle
- movs r1, 0x18
- bl BattlePutTextOnWindow
- b _080E86A2
- .align 2, 0
-_080E8680: .4byte gDisplayedStringBattle
-_080E8684:
- movs r0, 0x18
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080E86F2
- movs r0, 0x82
- negs r0, r0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
-_080E86A2:
- ldr r0, _080E86B0 @ =gBattleStruct
- ldr r1, [r0]
-_080E86A6:
- adds r1, 0x94
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080E86F2
- .align 2, 0
-_080E86B0: .4byte gBattleStruct
-_080E86B4:
- ldr r0, _080E86D8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E86F2
- bl sub_80EB524
- ldr r0, _080E86DC @ =gActiveBattler
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080E86E0
- bl WallyBufferExecCompleted
- b _080E86E4
- .align 2, 0
-_080E86D8: .4byte gPaletteFade
-_080E86DC: .4byte gActiveBattler
-_080E86E0:
- bl OpponentBufferExecCompleted
-_080E86E4:
- ldr r0, _080E86FC @ =gBattleCommunication
- movs r1, 0
- strb r1, [r0, 0x7]
- ldr r0, _080E8700 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x94
- strb r1, [r0]
-_080E86F2:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E86FC: .4byte gBattleCommunication
-_080E8700: .4byte gBattleStruct
- thumb_func_end sub_80E85D4
-
- thumb_func_start sub_80E8704
-sub_80E8704: @ 80E8704
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _080E8724 @ =gBattleStruct
- ldr r0, [r1]
- adds r0, 0x94
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x6
- bls _080E8718
- b _080E88AA
-_080E8718:
- lsls r0, 2
- ldr r1, _080E8728 @ =_080E872C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E8724: .4byte gBattleStruct
-_080E8728: .4byte _080E872C
- .align 2, 0
-_080E872C:
- .4byte _080E8748
- .4byte _080E8788
- .4byte _080E87D0
- .4byte _080E87E8
- .4byte _080E8800
- .4byte _080E8848
- .4byte _080E8880
-_080E8748:
- ldr r0, _080E8780 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080E875A
- b _080E88AA
-_080E875A:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x95
- adds r1, 0x97
- ldr r2, _080E8784 @ =gActiveBattler
- ldrb r2, [r2]
- bl sub_80EEFC8
- movs r0, 0x82
- negs r0, r0
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- b _080E886C
- .align 2, 0
-_080E8780: .4byte gPaletteFade
-_080E8784: .4byte gActiveBattler
-_080E8788:
- ldr r0, _080E87C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _080E879A
- b _080E88AA
-_080E879A:
- ldr r2, _080E87CC @ =gBitTable
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0x95
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x97
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- orrs r1, r0
- lsls r0, r1, 16
- str r3, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- b _080E886C
- .align 2, 0
-_080E87C8: .4byte gPaletteFade
-_080E87CC: .4byte gBitTable
-_080E87D0:
- ldr r0, _080E87E4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E88AA
- bl sub_80EB30C
- b _080E8868
- .align 2, 0
-_080E87E4: .4byte gPaletteFade
-_080E87E8:
- ldr r0, _080E87F8 @ =gUnknown_83FDCD2
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r0, _080E87FC @ =gDisplayedStringBattle
- movs r1, 0x18
- bl BattlePutTextOnWindow
- b _080E8868
- .align 2, 0
-_080E87F8: .4byte gUnknown_83FDCD2
-_080E87FC: .4byte gDisplayedStringBattle
-_080E8800:
- movs r0, 0x18
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _080E88AA
- ldr r2, _080E8840 @ =gBitTable
- ldr r4, _080E8844 @ =gBattleStruct
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x95
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x97
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- orrs r1, r0
- lsls r0, r1, 16
- str r3, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r1, [r4]
- b _080E886C
- .align 2, 0
-_080E8840: .4byte gBitTable
-_080E8844: .4byte gBattleStruct
-_080E8848:
- ldr r0, _080E8878 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080E88AA
- movs r0, 0x82
- negs r0, r0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
-_080E8868:
- ldr r0, _080E887C @ =gBattleStruct
- ldr r1, [r0]
-_080E886C:
- adds r1, 0x94
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080E88AA
- .align 2, 0
-_080E8878: .4byte gPaletteFade
-_080E887C: .4byte gBattleStruct
-_080E8880:
- ldr r0, _080E88B4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080E88AA
- bl sub_80EB524
- ldr r0, _080E88B8 @ =gSpecialVar_ItemId
- ldrh r1, [r0]
- movs r0, 0x1
- bl BtlController_EmitOneReturnValue
- bl WallyBufferExecCompleted
- ldr r0, _080E88BC @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x94
- strb r4, [r0]
-_080E88AA:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E88B4: .4byte gPaletteFade
-_080E88B8: .4byte gSpecialVar_ItemId
-_080E88BC: .4byte gBattleStruct
- thumb_func_end sub_80E8704
-
- thumb_func_start sub_80E88C0
-sub_80E88C0: @ 80E88C0
- push {r4-r6,lr}
- ldr r5, _080E8900 @ =gActiveBattler
- ldrb r0, [r5]
- ldr r6, _080E8904 @ =gHealthboxSpriteIds
- adds r1, r0, r6
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl MoveBattleBar
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E8908
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl UpdateHpTextInHealthbox
- b _080E8922
- .align 2, 0
-_080E8900: .4byte gActiveBattler
-_080E8904: .4byte gHealthboxSpriteIds
-_080E8908:
- ldr r2, _080E8928 @ =gBattlerPartyIndexes
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _080E892C @ =gPlayerParty
- adds r0, r2
- bl HandleLowHpMusicChange
- bl WallyBufferExecCompleted
-_080E8922:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8928: .4byte gBattlerPartyIndexes
-_080E892C: .4byte gPlayerParty
- thumb_func_end sub_80E88C0
-
- thumb_func_start sub_80E8930
-sub_80E8930: @ 80E8930
- push {lr}
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _080E8942
- bl WallyBufferExecCompleted
-_080E8942:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8930
-
- thumb_func_start DoHitAnimBlinkSpriteEffect_3
-DoHitAnimBlinkSpriteEffect_3: @ 80E8948
- push {r4,lr}
- ldr r1, _080E8984 @ =gBattlerSpriteIds
- ldr r0, _080E8988 @ =gActiveBattler
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _080E898C @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _080E8994
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _080E8990 @ =gDoingBattleAnim
- strb r3, [r0]
- bl WallyBufferExecCompleted
- b _080E89BE
- .align 2, 0
-_080E8984: .4byte gBattlerSpriteIds
-_080E8988: .4byte gActiveBattler
-_080E898C: .4byte gSprites
-_080E8990: .4byte gDoingBattleAnim
-_080E8994:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080E89B8
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080E89B8:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080E89BE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end DoHitAnimBlinkSpriteEffect_3
-
- thumb_func_start sub_80E89C4
-sub_80E89C4: @ 80E89C4
- push {r4-r6,lr}
- ldr r0, _080E8A20 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r6, _080E8A24 @ =gActiveBattler
- ldrb r2, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080E8A18
- ldr r5, _080E8A28 @ =gBattlerSpriteIds
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080E8A2C @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _080E8A30 @ =gHealthboxSpriteIds
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
- bl WallyBufferExecCompleted
-_080E8A18:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8A20: .4byte gBattleSpritesDataPtr
-_080E8A24: .4byte gActiveBattler
-_080E8A28: .4byte gBattlerSpriteIds
-_080E8A2C: .4byte gSprites
-_080E8A30: .4byte gHealthboxSpriteIds
- thumb_func_end sub_80E89C4
-
- thumb_func_start sub_80E8A34
-sub_80E8A34: @ 80E8A34
- push {lr}
- ldr r2, _080E8A5C @ =gSprites
- ldr r1, _080E8A60 @ =gBattlerSpriteIds
- ldr r0, _080E8A64 @ =gActiveBattler
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080E8A68 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080E8A58
- bl WallyBufferExecCompleted
-_080E8A58:
- pop {r0}
- bx r0
- .align 2, 0
-_080E8A5C: .4byte gSprites
-_080E8A60: .4byte gBattlerSpriteIds
-_080E8A64: .4byte gActiveBattler
-_080E8A68: .4byte SpriteCallbackDummy
- thumb_func_end sub_80E8A34
-
- thumb_func_start CompleteOnFinishedBattleAnimation_4
-CompleteOnFinishedBattleAnimation_4: @ 80E8A6C
- push {lr}
- ldr r0, _080E8A94 @ =gBattleSpritesDataPtr
- ldr r2, [r0]
- ldr r0, _080E8A98 @ =gActiveBattler
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _080E8A8E
- bl WallyBufferExecCompleted
-_080E8A8E:
- pop {r0}
- bx r0
- .align 2, 0
-_080E8A94: .4byte gBattleSpritesDataPtr
-_080E8A98: .4byte gActiveBattler
- thumb_func_end CompleteOnFinishedBattleAnimation_4
-
- thumb_func_start WallyBufferExecCompleted
-WallyBufferExecCompleted: @ 80E8A9C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080E8ADC @ =gBattlerControllerFuncs
- ldr r4, _080E8AE0 @ =gActiveBattler
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E8AE4 @ =sub_80E75EC
- str r1, [r0]
- ldr r0, _080E8AE8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E8AF0
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl PrepareBufferDataTransferLink
- ldr r1, _080E8AEC @ =gBattleBufferA
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _080E8B02
- .align 2, 0
-_080E8ADC: .4byte gBattlerControllerFuncs
-_080E8AE0: .4byte gActiveBattler
-_080E8AE4: .4byte sub_80E75EC
-_080E8AE8: .4byte gBattleTypeFlags
-_080E8AEC: .4byte gBattleBufferA
-_080E8AF0:
- ldr r2, _080E8B0C @ =gBattleControllerExecFlags
- ldr r1, _080E8B10 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_080E8B02:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8B0C: .4byte gBattleControllerExecFlags
-_080E8B10: .4byte gBitTable
- thumb_func_end WallyBufferExecCompleted
-
- thumb_func_start CompleteOnFinishedStatusAnimation_4
-CompleteOnFinishedStatusAnimation_4: @ 80E8B14
- push {lr}
- ldr r0, _080E8B3C @ =gBattleSpritesDataPtr
- ldr r2, [r0]
- ldr r0, _080E8B40 @ =gActiveBattler
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080E8B36
- bl WallyBufferExecCompleted
-_080E8B36:
- pop {r0}
- bx r0
- .align 2, 0
-_080E8B3C: .4byte gBattleSpritesDataPtr
-_080E8B40: .4byte gActiveBattler
- thumb_func_end CompleteOnFinishedStatusAnimation_4
-
- thumb_func_start WallyHandleGetMonData
-WallyHandleGetMonData: @ 80E8B44
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _080E8B70 @ =gBattleBufferA
- ldr r0, _080E8B74 @ =gActiveBattler
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080E8B7C
- ldr r0, _080E8B78 @ =gBattlerPartyIndexes
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl CopyWallyMonData
- adds r6, r0, 0
- b _080E8B9E
- .align 2, 0
-_080E8B70: .4byte gBattleBufferA
-_080E8B74: .4byte gActiveBattler
-_080E8B78: .4byte gBattlerPartyIndexes
-_080E8B7C:
- ldrb r4, [r1]
- movs r5, 0
-_080E8B80:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080E8B96
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl CopyWallyMonData
- adds r6, r0
-_080E8B96:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _080E8B80
-_080E8B9E:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl BtlController_EmitDataTransfer
- bl WallyBufferExecCompleted
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end WallyHandleGetMonData
-
- thumb_func_start CopyWallyMonData
-CopyWallyMonData: @ 80E8BB8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _080E8BEC @ =gBattleBufferA
- ldr r3, _080E8BF0 @ =gActiveBattler
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _080E8BE2
- bl _080E934E
-_080E8BE2:
- lsls r0, 2
- ldr r1, _080E8BF4 @ =_080E8BF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E8BEC: .4byte gBattleBufferA
-_080E8BF0: .4byte gActiveBattler
-_080E8BF4: .4byte _080E8BF8
- .align 2, 0
-_080E8BF8:
- .4byte _080E8CE8
- .4byte _080E8F0C
- .4byte _080E8F1C
- .4byte _080E8F2C
- .4byte _080E8F94
- .4byte _080E8F94
- .4byte _080E8F94
- .4byte _080E8F94
- .4byte _080E8FB0
- .4byte _080E8FEC
- .4byte _080E8FEC
- .4byte _080E8FEC
- .4byte _080E8FEC
- .4byte _080E934E
- .4byte _080E934E
- .4byte _080E934E
- .4byte _080E934E
- .4byte _080E9008
- .4byte _080E9018
- .4byte _080E9048
- .4byte _080E9058
- .4byte _080E9068
- .4byte _080E9078
- .4byte _080E9088
- .4byte _080E9098
- .4byte _080E90A8
- .4byte _080E90B8
- .4byte _080E90C8
- .4byte _080E90D8
- .4byte _080E90E8
- .4byte _080E90F8
- .4byte _080E9108
- .4byte _080E9158
- .4byte _080E9168
- .4byte _080E9178
- .4byte _080E9188
- .4byte _080E9198
- .4byte _080E91A8
- .4byte _080E91B8
- .4byte _080E91C8
- .4byte _080E91D8
- .4byte _080E920C
- .4byte _080E921C
- .4byte _080E922C
- .4byte _080E923C
- .4byte _080E924C
- .4byte _080E925C
- .4byte _080E926C
- .4byte _080E927C
- .4byte _080E929C
- .4byte _080E92AC
- .4byte _080E92BC
- .4byte _080E92CC
- .4byte _080E92DC
- .4byte _080E92EC
- .4byte _080E92FC
- .4byte _080E930C
- .4byte _080E931C
- .4byte _080E932C
- .4byte _080E933C
-_080E8CE8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E8EFC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_080E8D34:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _080E8D34
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E8EFC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _080E8F00 @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _080E8F04 @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _080E8F08 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_080E8EEC:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _080E8EEC
- b _080E934E
- .align 2, 0
-_080E8EFC: .4byte gPlayerParty
-_080E8F00: .4byte 0xfffffc1f
-_080E8F04: .4byte 0xfff07fff
-_080E8F08: .4byte 0xfffffe0f
-_080E8F0C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E8F18 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- b _080E9286
- .align 2, 0
-_080E8F18: .4byte gPlayerParty
-_080E8F1C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E8F28 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- b _080E9286
- .align 2, 0
-_080E8F28: .4byte gPlayerParty
-_080E8F2C:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080E8F90 @ =gPlayerParty
- adds r4, r1, r0
- mov r8, r9
-_080E8F42:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _080E8F42
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E8F90 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_080E8F80:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _080E8F80
- b _080E934E
- .align 2, 0
-_080E8F90: .4byte gPlayerParty
-_080E8F94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E8FAC @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _080E9286
- .align 2, 0
-_080E8FAC: .4byte gPlayerParty
-_080E8FB0:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _080E8FE8 @ =gPlayerParty
- mov r8, r2
-_080E8FBC:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _080E8FBC
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E8FE8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _080E934E
- .align 2, 0
-_080E8FE8: .4byte gPlayerParty
-_080E8FEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9004 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _080E9346
- .align 2, 0
-_080E9004: .4byte gPlayerParty
-_080E9008:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9014 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- b _080E9022
- .align 2, 0
-_080E9014: .4byte gPlayerParty
-_080E9018:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9044 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x19
-_080E9022:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _080E934E
- .align 2, 0
-_080E9044: .4byte gPlayerParty
-_080E9048:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9054 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1A
- b _080E9346
- .align 2, 0
-_080E9054: .4byte gPlayerParty
-_080E9058:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9064 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1B
- b _080E9346
- .align 2, 0
-_080E9064: .4byte gPlayerParty
-_080E9068:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9074 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1C
- b _080E9346
- .align 2, 0
-_080E9074: .4byte gPlayerParty
-_080E9078:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9084 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1D
- b _080E9346
- .align 2, 0
-_080E9084: .4byte gPlayerParty
-_080E9088:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9094 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1E
- b _080E9346
- .align 2, 0
-_080E9094: .4byte gPlayerParty
-_080E9098:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E90A4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1F
- b _080E9346
- .align 2, 0
-_080E90A4: .4byte gPlayerParty
-_080E90A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E90B4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x20
- b _080E9346
- .align 2, 0
-_080E90B4: .4byte gPlayerParty
-_080E90B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E90C4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x22
- b _080E9346
- .align 2, 0
-_080E90C4: .4byte gPlayerParty
-_080E90C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E90D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x23
- b _080E9346
- .align 2, 0
-_080E90D4: .4byte gPlayerParty
-_080E90D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E90E4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x24
- b _080E9346
- .align 2, 0
-_080E90E4: .4byte gPlayerParty
-_080E90E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E90F4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x25
- b _080E9346
- .align 2, 0
-_080E90F4: .4byte gPlayerParty
-_080E90F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9104 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x26
- b _080E9346
- .align 2, 0
-_080E9104: .4byte gPlayerParty
-_080E9108:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E9154 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _080E934E
- .align 2, 0
-_080E9154: .4byte gPlayerParty
-_080E9158:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9164 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x27
- b _080E9346
- .align 2, 0
-_080E9164: .4byte gPlayerParty
-_080E9168:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9174 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x28
- b _080E9346
- .align 2, 0
-_080E9174: .4byte gPlayerParty
-_080E9178:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9184 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x29
- b _080E9346
- .align 2, 0
-_080E9184: .4byte gPlayerParty
-_080E9188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9194 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2A
- b _080E9346
- .align 2, 0
-_080E9194: .4byte gPlayerParty
-_080E9198:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E91A4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2B
- b _080E9346
- .align 2, 0
-_080E91A4: .4byte gPlayerParty
-_080E91A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E91B4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- b _080E9346
- .align 2, 0
-_080E91B4: .4byte gPlayerParty
-_080E91B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E91C4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- b _080E91E2
- .align 2, 0
-_080E91C4: .4byte gPlayerParty
-_080E91C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E91D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x9
- b _080E9286
- .align 2, 0
-_080E91D4: .4byte gPlayerParty
-_080E91D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9208 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x37
-_080E91E2:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _080E934E
- .align 2, 0
-_080E9208: .4byte gPlayerParty
-_080E920C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9218 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- b _080E9346
- .align 2, 0
-_080E9218: .4byte gPlayerParty
-_080E921C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9228 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- b _080E9286
- .align 2, 0
-_080E9228: .4byte gPlayerParty
-_080E922C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9238 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- b _080E9286
- .align 2, 0
-_080E9238: .4byte gPlayerParty
-_080E923C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9248 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3B
- b _080E9286
- .align 2, 0
-_080E9248: .4byte gPlayerParty
-_080E924C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9258 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3C
- b _080E9286
- .align 2, 0
-_080E9258: .4byte gPlayerParty
-_080E925C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9268 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3D
- b _080E9286
- .align 2, 0
-_080E9268: .4byte gPlayerParty
-_080E926C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9278 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3E
- b _080E9286
- .align 2, 0
-_080E9278: .4byte gPlayerParty
-_080E927C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9298 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3F
-_080E9286:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _080E934E
- .align 2, 0
-_080E9298: .4byte gPlayerParty
-_080E929C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E92A8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- b _080E9346
- .align 2, 0
-_080E92A8: .4byte gPlayerParty
-_080E92AC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E92B8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- b _080E9346
- .align 2, 0
-_080E92B8: .4byte gPlayerParty
-_080E92BC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E92C8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- b _080E9346
- .align 2, 0
-_080E92C8: .4byte gPlayerParty
-_080E92CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E92D8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- b _080E9346
- .align 2, 0
-_080E92D8: .4byte gPlayerParty
-_080E92DC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E92E8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- b _080E9346
- .align 2, 0
-_080E92E8: .4byte gPlayerParty
-_080E92EC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E92F8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x30
- b _080E9346
- .align 2, 0
-_080E92F8: .4byte gPlayerParty
-_080E92FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9308 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x32
- b _080E9346
- .align 2, 0
-_080E9308: .4byte gPlayerParty
-_080E930C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9318 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x33
- b _080E9346
- .align 2, 0
-_080E9318: .4byte gPlayerParty
-_080E931C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9328 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x34
- b _080E9346
- .align 2, 0
-_080E9328: .4byte gPlayerParty
-_080E932C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9338 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x35
- b _080E9346
- .align 2, 0
-_080E9338: .4byte gPlayerParty
-_080E933C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9360 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x36
-_080E9346:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_080E934E:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E9360: .4byte gPlayerParty
- thumb_func_end CopyWallyMonData
-
- thumb_func_start WallyHandleGetRawMonData
-WallyHandleGetRawMonData: @ 80E9364
- push {lr}
- bl PlayerHandleGetRawMonData
- pop {r0}
- bx r0
- thumb_func_end WallyHandleGetRawMonData
-
- thumb_func_start WallyHandleSetMonData
-WallyHandleSetMonData: @ 80E9370
- push {r4,r5,lr}
- ldr r1, _080E9394 @ =gBattleBufferA
- ldr r0, _080E9398 @ =gActiveBattler
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080E93A0
- ldr r0, _080E939C @ =gBattlerPartyIndexes
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl SetWallyMonData
- b _080E93BE
- .align 2, 0
-_080E9394: .4byte gBattleBufferA
-_080E9398: .4byte gActiveBattler
-_080E939C: .4byte gBattlerPartyIndexes
-_080E93A0:
- ldrb r4, [r1]
- movs r5, 0
-_080E93A4:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080E93B2
- adds r0, r5, 0
- bl SetWallyMonData
-_080E93B2:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080E93A4
-_080E93BE:
- bl WallyBufferExecCompleted
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end WallyHandleSetMonData
-
- thumb_func_start SetWallyMonData
-SetWallyMonData: @ 80E93C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E9400 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, _080E9404 @ =gUnknown_2022BC7
- adds r3, r0, r2
- adds r6, r3, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r2, 0
- cmp r0, 0x3B
- bls _080E93F4
- bl _080E9D8E
-_080E93F4:
- lsls r0, 2
- ldr r1, _080E9408 @ =_080E940C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9400: .4byte gActiveBattler
-_080E9404: .4byte gUnknown_2022BC7
-_080E9408: .4byte _080E940C
- .align 2, 0
-_080E940C:
- .4byte _080E94FC
- .4byte _080E9694
- .4byte _080E96B4
- .4byte _080E96D4
- .4byte _080E972C
- .4byte _080E972C
- .4byte _080E972C
- .4byte _080E972C
- .4byte _080E9754
- .4byte _080E97B8
- .4byte _080E97B8
- .4byte _080E97B8
- .4byte _080E97B8
- .4byte _080E9D8E
- .4byte _080E9D8E
- .4byte _080E9D8E
- .4byte _080E9D8E
- .4byte _080E97E8
- .4byte _080E9808
- .4byte _080E9828
- .4byte _080E9848
- .4byte _080E9868
- .4byte _080E9888
- .4byte _080E98A8
- .4byte _080E98C8
- .4byte _080E98E8
- .4byte _080E9908
- .4byte _080E9928
- .4byte _080E9948
- .4byte _080E9968
- .4byte _080E9988
- .4byte _080E99A8
- .4byte _080E9A18
- .4byte _080E9A38
- .4byte _080E9A58
- .4byte _080E9A78
- .4byte _080E9A98
- .4byte _080E9AB8
- .4byte _080E9AD8
- .4byte _080E9AF8
- .4byte _080E9B18
- .4byte _080E9B38
- .4byte _080E9B58
- .4byte _080E9B78
- .4byte _080E9B98
- .4byte _080E9BB8
- .4byte _080E9BD8
- .4byte _080E9BF8
- .4byte _080E9C18
- .4byte _080E9C38
- .4byte _080E9C58
- .4byte _080E9C78
- .4byte _080E9C98
- .4byte _080E9CB8
- .4byte _080E9CD8
- .4byte _080E9CF8
- .4byte _080E9D18
- .4byte _080E9D38
- .4byte _080E9D58
- .4byte _080E9D78
-_080E94FC:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E9690 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r6, 0
- bl SetMonData
- adds r2, r6, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r6
- mov r10, r0
- adds r0, r6, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r6, 0x2
- str r0, [sp, 0x4]
- adds r0, r6, 0x4
- str r0, [sp, 0x8]
- adds r0, r6, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r7, r6, 0
- adds r7, 0x24
- adds r4, r6, 0
- adds r4, 0xC
-_080E9562:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r7, 0
- bl SetMonData
- adds r7, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _080E9562
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E9690 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r6, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r6, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9690: .4byte gPlayerParty
-_080E9694:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E96AC @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E96B0 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E96AC: .4byte gPlayerParty
-_080E96B0: .4byte gActiveBattler
-_080E96B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E96CC @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E96D0 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E96CC: .4byte gPlayerParty
-_080E96D0: .4byte gActiveBattler
-_080E96D4:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r3
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080E9728 @ =gPlayerParty
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_080E96EE:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _080E96EE
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9728 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9728: .4byte gPlayerParty
-_080E972C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9748 @ =gPlayerParty
- adds r0, r1
- ldr r3, _080E974C @ =gBattleBufferA
- ldr r1, _080E9750 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _080E97D0
- .align 2, 0
-_080E9748: .4byte gPlayerParty
-_080E974C: .4byte gBattleBufferA
-_080E9750: .4byte gActiveBattler
-_080E9754:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E97B0 @ =gPlayerParty
- adds r4, r0
- ldr r5, _080E97B4 @ =gActiveBattler
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x11
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E97B0: .4byte gPlayerParty
-_080E97B4: .4byte gActiveBattler
-_080E97B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E97DC @ =gPlayerParty
- adds r0, r1
- ldr r3, _080E97E0 @ =gBattleBufferA
- ldr r1, _080E97E4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_080E97D0:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E97DC: .4byte gPlayerParty
-_080E97E0: .4byte gBattleBufferA
-_080E97E4: .4byte gActiveBattler
-_080E97E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9800 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9804 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9800: .4byte gPlayerParty
-_080E9804: .4byte gActiveBattler
-_080E9808:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9820 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9824 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9820: .4byte gPlayerParty
-_080E9824: .4byte gActiveBattler
-_080E9828:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9840 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9844 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9840: .4byte gPlayerParty
-_080E9844: .4byte gActiveBattler
-_080E9848:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9860 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9864 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9860: .4byte gPlayerParty
-_080E9864: .4byte gActiveBattler
-_080E9868:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9880 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9884 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9880: .4byte gPlayerParty
-_080E9884: .4byte gActiveBattler
-_080E9888:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E98A0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E98A4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E98A0: .4byte gPlayerParty
-_080E98A4: .4byte gActiveBattler
-_080E98A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E98C0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E98C4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E98C0: .4byte gPlayerParty
-_080E98C4: .4byte gActiveBattler
-_080E98C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E98E0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E98E4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E98E0: .4byte gPlayerParty
-_080E98E4: .4byte gActiveBattler
-_080E98E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9900 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9904 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9900: .4byte gPlayerParty
-_080E9904: .4byte gActiveBattler
-_080E9908:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9920 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9924 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9920: .4byte gPlayerParty
-_080E9924: .4byte gActiveBattler
-_080E9928:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9940 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9944 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9940: .4byte gPlayerParty
-_080E9944: .4byte gActiveBattler
-_080E9948:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9960 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9964 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9960: .4byte gPlayerParty
-_080E9964: .4byte gActiveBattler
-_080E9968:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9980 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9984 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9980: .4byte gPlayerParty
-_080E9984: .4byte gActiveBattler
-_080E9988:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E99A0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E99A4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E99A0: .4byte gPlayerParty
-_080E99A4: .4byte gActiveBattler
-_080E99A8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E9A10 @ =gPlayerParty
- adds r4, r0
- ldr r5, _080E9A14 @ =gActiveBattler
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x27
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _080E9AC8
- .align 2, 0
-_080E9A10: .4byte gPlayerParty
-_080E9A14: .4byte gActiveBattler
-_080E9A18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9A30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9A34 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9A30: .4byte gPlayerParty
-_080E9A34: .4byte gActiveBattler
-_080E9A38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9A50 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9A54 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9A50: .4byte gPlayerParty
-_080E9A54: .4byte gActiveBattler
-_080E9A58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9A70 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9A74 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9A70: .4byte gPlayerParty
-_080E9A74: .4byte gActiveBattler
-_080E9A78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9A90 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9A94 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9A90: .4byte gPlayerParty
-_080E9A94: .4byte gActiveBattler
-_080E9A98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9AB0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9AB4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9AB0: .4byte gPlayerParty
-_080E9AB4: .4byte gActiveBattler
-_080E9AB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9AD0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9AD4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_080E9AC8:
- movs r1, 0x2C
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9AD0: .4byte gPlayerParty
-_080E9AD4: .4byte gActiveBattler
-_080E9AD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9AF0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9AF4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9AF0: .4byte gPlayerParty
-_080E9AF4: .4byte gActiveBattler
-_080E9AF8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9B10 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9B14 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9B10: .4byte gPlayerParty
-_080E9B14: .4byte gActiveBattler
-_080E9B18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9B30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9B34 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9B30: .4byte gPlayerParty
-_080E9B34: .4byte gActiveBattler
-_080E9B38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9B50 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9B54 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9B50: .4byte gPlayerParty
-_080E9B54: .4byte gActiveBattler
-_080E9B58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9B70 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9B74 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9B70: .4byte gPlayerParty
-_080E9B74: .4byte gActiveBattler
-_080E9B78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9B90 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9B94 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9B90: .4byte gPlayerParty
-_080E9B94: .4byte gActiveBattler
-_080E9B98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9BB0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9BB4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9BB0: .4byte gPlayerParty
-_080E9BB4: .4byte gActiveBattler
-_080E9BB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9BD0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9BD4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9BD0: .4byte gPlayerParty
-_080E9BD4: .4byte gActiveBattler
-_080E9BD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9BF0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9BF4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9BF0: .4byte gPlayerParty
-_080E9BF4: .4byte gActiveBattler
-_080E9BF8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9C10 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9C14 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9C10: .4byte gPlayerParty
-_080E9C14: .4byte gActiveBattler
-_080E9C18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9C30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9C34 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9C30: .4byte gPlayerParty
-_080E9C34: .4byte gActiveBattler
-_080E9C38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9C50 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9C54 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9C50: .4byte gPlayerParty
-_080E9C54: .4byte gActiveBattler
-_080E9C58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9C70 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9C74 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9C70: .4byte gPlayerParty
-_080E9C74: .4byte gActiveBattler
-_080E9C78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9C90 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9C94 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9C90: .4byte gPlayerParty
-_080E9C94: .4byte gActiveBattler
-_080E9C98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9CB0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9CB4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9CB0: .4byte gPlayerParty
-_080E9CB4: .4byte gActiveBattler
-_080E9CB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9CD0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9CD4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9CD0: .4byte gPlayerParty
-_080E9CD4: .4byte gActiveBattler
-_080E9CD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9CF0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9CF4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9CF0: .4byte gPlayerParty
-_080E9CF4: .4byte gActiveBattler
-_080E9CF8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9D10 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9D14 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9D10: .4byte gPlayerParty
-_080E9D14: .4byte gActiveBattler
-_080E9D18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9D30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9D34 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9D30: .4byte gPlayerParty
-_080E9D34: .4byte gActiveBattler
-_080E9D38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9D50 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9D54 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9D50: .4byte gPlayerParty
-_080E9D54: .4byte gActiveBattler
-_080E9D58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9D70 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9D74 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9D70: .4byte gPlayerParty
-_080E9D74: .4byte gActiveBattler
-_080E9D78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9DB8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9DBC @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_080E9D8E:
- ldr r2, _080E9DC0 @ =gBattlerPartyIndexes
- ldr r0, _080E9DBC @ =gActiveBattler
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _080E9DB8 @ =gPlayerParty
- adds r0, r2
- bl HandleLowHpMusicChange
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9DB8: .4byte gPlayerParty
-_080E9DBC: .4byte gActiveBattler
-_080E9DC0: .4byte gBattlerPartyIndexes
- thumb_func_end SetWallyMonData
-
- thumb_func_start sub_80E9DC4
-sub_80E9DC4: @ 80E9DC4
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80E9DC4
-
- thumb_func_start sub_80E9DD0
-sub_80E9DD0: @ 80E9DD0
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80E9DD0
-
- thumb_func_start sub_80E9DDC
-sub_80E9DDC: @ 80E9DDC
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80E9DDC
-
- thumb_func_start WallyHandleReturnMonToBall
-WallyHandleReturnMonToBall: @ 80E9DE8
- push {r4-r6,lr}
- ldr r0, _080E9E14 @ =gBattleBufferA
- ldr r6, _080E9E18 @ =gActiveBattler
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _080E9E24
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x1
- bl InitAndLaunchSpecialAnimation
- ldr r0, _080E9E1C @ =gBattlerControllerFuncs
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080E9E20 @ =sub_80E89C4
- str r0, [r1]
- b _080E9E5A
- .align 2, 0
-_080E9E14: .4byte gBattleBufferA
-_080E9E18: .4byte gActiveBattler
-_080E9E1C: .4byte gBattlerControllerFuncs
-_080E9E20: .4byte sub_80E89C4
-_080E9E24:
- ldr r5, _080E9E60 @ =gBattlerSpriteIds
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080E9E64 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _080E9E68 @ =gHealthboxSpriteIds
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
- bl WallyBufferExecCompleted
-_080E9E5A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9E60: .4byte gBattlerSpriteIds
-_080E9E64: .4byte gSprites
-_080E9E68: .4byte gHealthboxSpriteIds
- thumb_func_end WallyHandleReturnMonToBall
-
- thumb_func_start sub_80E9E6C
-sub_80E9E6C: @ 80E9E6C
- push {r4-r6,lr}
- ldr r0, _080E9EC8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E9EE0
- ldr r4, _080E9ECC @ =gSaveBlock2Ptr
- ldr r0, [r4]
- ldrb r0, [r0, 0x8]
- ldr r6, _080E9ED0 @ =gActiveBattler
- ldrb r1, [r6]
- bl DecompressTrainerBackPalette
- ldr r0, [r4]
- ldrb r5, [r0, 0x8]
- ldrb r0, [r6]
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl SetMultiuseSpriteTemplateToTrainerBack
- ldr r0, _080E9ED4 @ =gMultiuseSpriteTemplate
- ldr r2, _080E9ED8 @ =gTrainerBackPicCoords
- ldr r1, [r4]
- ldrb r1, [r1, 0x8]
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r2, _080E9EDC @ =gBattlerSpriteIds
- ldrb r1, [r6]
- b _080E9F1C
- .align 2, 0
-_080E9EC8: .4byte gBattleTypeFlags
-_080E9ECC: .4byte gSaveBlock2Ptr
-_080E9ED0: .4byte gActiveBattler
-_080E9ED4: .4byte gMultiuseSpriteTemplate
-_080E9ED8: .4byte gTrainerBackPicCoords
-_080E9EDC: .4byte gBattlerSpriteIds
-_080E9EE0:
- ldr r4, _080E9F8C @ =gActiveBattler
- ldrb r1, [r4]
- movs r0, 0x5
- bl DecompressTrainerBackPalette
- ldrb r0, [r4]
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- bl SetMultiuseSpriteTemplateToTrainerBack
- ldr r0, _080E9F90 @ =gMultiuseSpriteTemplate
- ldr r1, _080E9F94 @ =gTrainerBackPicCoords
- ldrb r1, [r1, 0x14]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r2, _080E9F98 @ =gBattlerSpriteIds
- ldrb r1, [r4]
-_080E9F1C:
- adds r1, r2
- strb r0, [r1]
- ldr r4, _080E9F9C @ =gSprites
- ldr r5, _080E9F98 @ =gBattlerSpriteIds
- ldr r6, _080E9F8C @ =gActiveBattler
- ldrb r3, [r6]
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080E9FA0 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080E9FA4 @ =sub_8033EEC
- str r1, [r0]
- ldr r1, _080E9FA8 @ =gBattlerControllerFuncs
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E9FAC @ =sub_80E78E0
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9F8C: .4byte gActiveBattler
-_080E9F90: .4byte gMultiuseSpriteTemplate
-_080E9F94: .4byte gTrainerBackPicCoords
-_080E9F98: .4byte gBattlerSpriteIds
-_080E9F9C: .4byte gSprites
-_080E9FA0: .4byte 0x0000fffe
-_080E9FA4: .4byte sub_8033EEC
-_080E9FA8: .4byte gBattlerControllerFuncs
-_080E9FAC: .4byte sub_80E78E0
- thumb_func_end sub_80E9E6C
-
- thumb_func_start sub_80E9FB0
-sub_80E9FB0: @ 80E9FB0
- push {r4-r6,lr}
- ldr r0, _080EA00C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EA024
- ldr r4, _080EA010 @ =gSaveBlock2Ptr
- ldr r0, [r4]
- ldrb r0, [r0, 0x8]
- ldr r6, _080EA014 @ =gActiveBattler
- ldrb r1, [r6]
- bl DecompressTrainerBackPalette
- ldr r0, [r4]
- ldrb r5, [r0, 0x8]
- ldrb r0, [r6]
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl SetMultiuseSpriteTemplateToTrainerBack
- ldr r0, _080EA018 @ =gMultiuseSpriteTemplate
- ldr r2, _080EA01C @ =gTrainerBackPicCoords
- ldr r1, [r4]
- ldrb r1, [r1, 0x8]
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r2, _080EA020 @ =gBattlerSpriteIds
- ldrb r1, [r6]
- b _080EA060
- .align 2, 0
-_080EA00C: .4byte gBattleTypeFlags
-_080EA010: .4byte gSaveBlock2Ptr
-_080EA014: .4byte gActiveBattler
-_080EA018: .4byte gMultiuseSpriteTemplate
-_080EA01C: .4byte gTrainerBackPicCoords
-_080EA020: .4byte gBattlerSpriteIds
-_080EA024:
- ldr r4, _080EA0D0 @ =gActiveBattler
- ldrb r1, [r4]
- movs r0, 0x5
- bl DecompressTrainerBackPalette
- ldrb r0, [r4]
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- bl SetMultiuseSpriteTemplateToTrainerBack
- ldr r0, _080EA0D4 @ =gMultiuseSpriteTemplate
- ldr r1, _080EA0D8 @ =gTrainerBackPicCoords
- ldrb r1, [r1, 0x14]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r2, _080EA0DC @ =gBattlerSpriteIds
- ldrb r1, [r4]
-_080EA060:
- adds r1, r2
- strb r0, [r1]
- ldr r4, _080EA0E0 @ =gSprites
- ldr r5, _080EA0DC @ =gBattlerSpriteIds
- ldr r6, _080EA0D0 @ =gActiveBattler
- ldrb r3, [r6]
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080EA0E4 @ =0x0000ffa0
- strh r1, [r0, 0x24]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080EA0E8 @ =sub_8033EEC
- str r1, [r0]
- ldr r1, _080EA0EC @ =gBattlerControllerFuncs
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA0F0 @ =sub_80E8A34
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA0D0: .4byte gActiveBattler
-_080EA0D4: .4byte gMultiuseSpriteTemplate
-_080EA0D8: .4byte gTrainerBackPicCoords
-_080EA0DC: .4byte gBattlerSpriteIds
-_080EA0E0: .4byte gSprites
-_080EA0E4: .4byte 0x0000ffa0
-_080EA0E8: .4byte sub_8033EEC
-_080EA0EC: .4byte gBattlerControllerFuncs
-_080EA0F0: .4byte sub_80E8A34
- thumb_func_end sub_80E9FB0
-
- thumb_func_start sub_80EA0F4
-sub_80EA0F4: @ 80EA0F4
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EA0F4
-
- thumb_func_start sub_80EA100
-sub_80EA100: @ 80EA100
- push {r4-r6,lr}
- ldr r6, _080EA14C @ =gBattleSpritesDataPtr
- ldr r4, [r6]
- ldr r5, _080EA150 @ =gActiveBattler
- ldrb r2, [r5]
- ldr r0, [r4, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _080EA154
- ldr r1, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080EA134
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl InitAndLaunchSpecialAnimation
-_080EA134:
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- adds r1, 0x1
- strb r1, [r0, 0x4]
- b _080EA1CA
- .align 2, 0
-_080EA14C: .4byte gBattleSpritesDataPtr
-_080EA150: .4byte gActiveBattler
-_080EA154:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EA1CA
- strb r4, [r3, 0x4]
- ldr r2, _080EA1D0 @ =gBattlerPartyIndexes
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _080EA1D4 @ =gPlayerParty
- adds r0, r2
- bl HandleLowHpMusicChange
- movs r1, 0x40
- negs r1, r1
- movs r0, 0x10
- bl PlaySE12WithPanning
- ldr r2, _080EA1D8 @ =gSprites
- ldr r3, _080EA1DC @ =gBattlerSpriteIds
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x30]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strh r1, [r0, 0x32]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080EA1E0 @ =sub_8012110
- str r1, [r0]
- ldr r1, _080EA1E4 @ =gBattlerControllerFuncs
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA1E8 @ =sub_80E82F4
- str r1, [r0]
-_080EA1CA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA1D0: .4byte gBattlerPartyIndexes
-_080EA1D4: .4byte gPlayerParty
-_080EA1D8: .4byte gSprites
-_080EA1DC: .4byte gBattlerSpriteIds
-_080EA1E0: .4byte sub_8012110
-_080EA1E4: .4byte gBattlerControllerFuncs
-_080EA1E8: .4byte sub_80E82F4
- thumb_func_end sub_80EA100
-
- thumb_func_start sub_80EA1EC
-sub_80EA1EC: @ 80EA1EC
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EA1EC
-
- thumb_func_start sub_80EA1F8
-sub_80EA1F8: @ 80EA1F8
- push {r4,r5,lr}
- ldr r0, _080EA238 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0x8]
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, _080EA23C @ =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, _080EA240 @ =gActiveBattler
- ldrb r4, [r5]
- movs r0, 0x1
- bl GetBattlerAtPosition
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl InitAndLaunchSpecialAnimation
- ldr r1, _080EA244 @ =gBattlerControllerFuncs
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA248 @ =sub_80E7970
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA238: .4byte gBattleSpritesDataPtr
-_080EA23C: .4byte gDoingBattleAnim
-_080EA240: .4byte gActiveBattler
-_080EA244: .4byte gBattlerControllerFuncs
-_080EA248: .4byte sub_80E7970
- thumb_func_end sub_80EA1F8
-
- thumb_func_start sub_80EA24C
-sub_80EA24C: @ 80EA24C
- push {r4,r5,lr}
- ldr r1, _080EA294 @ =gBattleBufferA
- ldr r5, _080EA298 @ =gActiveBattler
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _080EA29C @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- strb r1, [r0, 0x8]
- ldr r1, _080EA2A0 @ =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldrb r4, [r5]
- movs r0, 0x1
- bl GetBattlerAtPosition
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl InitAndLaunchSpecialAnimation
- ldr r1, _080EA2A4 @ =gBattlerControllerFuncs
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA2A8 @ =sub_80E7970
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA294: .4byte gBattleBufferA
-_080EA298: .4byte gActiveBattler
-_080EA29C: .4byte gBattleSpritesDataPtr
-_080EA2A0: .4byte gDoingBattleAnim
-_080EA2A4: .4byte gBattlerControllerFuncs
-_080EA2A8: .4byte sub_80E7970
- thumb_func_end sub_80EA24C
-
- thumb_func_start sub_80EA2AC
-sub_80EA2AC: @ 80EA2AC
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EA2AC
-
- thumb_func_start sub_80EA2B8
-sub_80EA2B8: @ 80EA2B8
- push {r4-r6,lr}
- ldr r0, _080EA38C @ =gBattleBufferA
- mov r12, r0
- ldr r6, _080EA390 @ =gActiveBattler
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _080EA394 @ =gAnimMoveTurn
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _080EA398 @ =gAnimMovePower
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _080EA39C @ =gAnimMoveDmg
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _080EA3A0 @ =gAnimFriendship
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _080EA3A4 @ =gWeatherMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _080EA3A8 @ =gAnimDisableStructPtr
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _080EA3AC @ =gTransformedPersonalities
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl IsMoveWithoutAnimation
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _080EA3B0
- bl WallyBufferExecCompleted
- b _080EA3CE
- .align 2, 0
-_080EA38C: .4byte gBattleBufferA
-_080EA390: .4byte gActiveBattler
-_080EA394: .4byte gAnimMoveTurn
-_080EA398: .4byte gAnimMovePower
-_080EA39C: .4byte gAnimMoveDmg
-_080EA3A0: .4byte gAnimFriendship
-_080EA3A4: .4byte gWeatherMoveAnim
-_080EA3A8: .4byte gAnimDisableStructPtr
-_080EA3AC: .4byte gTransformedPersonalities
-_080EA3B0:
- ldr r0, _080EA3D4 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r3, [r0, 0x4]
- ldr r1, _080EA3D8 @ =gBattlerControllerFuncs
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA3DC @ =sub_80EA3E0
- str r1, [r0]
-_080EA3CE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA3D4: .4byte gBattleSpritesDataPtr
-_080EA3D8: .4byte gBattlerControllerFuncs
-_080EA3DC: .4byte sub_80EA3E0
- thumb_func_end sub_80EA2B8
-
- thumb_func_start sub_80EA3E0
-sub_80EA3E0: @ 80EA3E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _080EA424 @ =gBattleBufferA
- ldr r6, _080EA428 @ =gActiveBattler
- ldrb r3, [r6]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r2, 0x2
- mov r8, r2
- add r1, r8
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- ldr r7, _080EA42C @ =gBattleSpritesDataPtr
- ldr r5, [r7]
- ldr r1, [r5, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _080EA46A
- cmp r2, 0x1
- bgt _080EA430
- cmp r2, 0
- beq _080EA43A
- b _080EA520
- .align 2, 0
-_080EA424: .4byte gBattleBufferA
-_080EA428: .4byte gActiveBattler
-_080EA42C: .4byte gBattleSpritesDataPtr
-_080EA430:
- cmp r2, 0x2
- beq _080EA494
- cmp r2, 0x3
- beq _080EA4E4
- b _080EA520
-_080EA43A:
- ldr r1, [r5]
- lsls r0, r3, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080EA456
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x5
- bl InitAndLaunchSpecialAnimation
-_080EA456:
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0, 0x4]
- b _080EA520
-_080EA46A:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080EA520
- movs r0, 0
- bl sub_8035450
- adds r0, r4, 0
- bl DoMoveAnim
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0, 0x4]
- b _080EA520
-_080EA494:
- ldr r0, _080EA4DC @ =gAnimScriptCallback
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _080EA4E0 @ =gAnimScriptActive
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EA520
- movs r0, 0x1
- bl sub_8035450
- ldr r0, [r7]
- ldrb r2, [r6]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080EA4C8
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl InitAndLaunchSpecialAnimation
-_080EA4C8:
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _080EA520
- .align 2, 0
-_080EA4DC: .4byte gAnimScriptCallback
-_080EA4E0: .4byte gAnimScriptActive
-_080EA4E4:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EA520
- bl CopyAllBattleSpritesInvisibilities
- ldrb r0, [r6]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl TrySetBehindSubstituteSpriteBit
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r4, [r0, 0x4]
- bl WallyBufferExecCompleted
-_080EA520:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EA3E0
-
- thumb_func_start sub_80EA52C
-sub_80EA52C: @ 80EA52C
- push {r4,lr}
- ldr r0, _080EA55C @ =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080EA560 @ =gBattle_BG0_Y
- strh r1, [r0]
- ldr r0, _080EA564 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 9
- ldr r1, _080EA568 @ =gUnknown_2022BC6
- adds r4, r0, r1
- ldr r0, _080EA56C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _080EA570
- ldrh r0, [r4]
- cmp r0, 0x1
- bne _080EA570
- bl WallyBufferExecCompleted
- b _080EA65A
- .align 2, 0
-_080EA55C: .4byte gBattle_BG0_X
-_080EA560: .4byte gBattle_BG0_Y
-_080EA564: .4byte gActiveBattler
-_080EA568: .4byte gUnknown_2022BC6
-_080EA56C: .4byte gBattleTypeFlags
-_080EA570:
- ldrh r0, [r4]
- bl BufferStringBattle
- ldrh r0, [r4]
- bl sub_80D89B0
- lsls r0, 24
- cmp r0, 0
- beq _080EA590
- ldr r0, _080EA58C @ =gDisplayedStringBattle
- movs r1, 0x40
- bl BattlePutTextOnWindow
- b _080EA598
- .align 2, 0
-_080EA58C: .4byte gDisplayedStringBattle
-_080EA590:
- ldr r0, _080EA5B4 @ =gDisplayedStringBattle
- movs r1, 0
- bl BattlePutTextOnWindow
-_080EA598:
- ldr r0, _080EA5B8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EA64C
- ldrh r1, [r4]
- cmp r1, 0xD8
- beq _080EA5CC
- cmp r1, 0xD8
- bgt _080EA5BC
- cmp r1, 0x1E
- beq _080EA5F8
- b _080EA64C
- .align 2, 0
-_080EA5B4: .4byte gDisplayedStringBattle
-_080EA5B8: .4byte gBattleTypeFlags
-_080EA5BC:
- cmp r1, 0xE3
- beq _080EA630
- ldr r0, _080EA5C8 @ =0x0000017f
- cmp r1, r0
- beq _080EA614
- b _080EA64C
- .align 2, 0
-_080EA5C8: .4byte 0x0000017f
-_080EA5CC:
- movs r0, 0x2
- bl sub_80EB2E0
- lsls r0, 24
- cmp r0, 0
- bne _080EA64C
- movs r0, 0x2
- bl sub_80EB2F4
- ldr r1, _080EA5EC @ =gBattlerControllerFuncs
- ldr r0, _080EA5F0 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA5F4 @ =sub_80E8584
- b _080EA658
- .align 2, 0
-_080EA5EC: .4byte gBattlerControllerFuncs
-_080EA5F0: .4byte gActiveBattler
-_080EA5F4: .4byte sub_80E8584
-_080EA5F8:
- ldr r1, _080EA608 @ =gBattlerControllerFuncs
- ldr r0, _080EA60C @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA610 @ =sub_80E85AC
- b _080EA658
- .align 2, 0
-_080EA608: .4byte gBattlerControllerFuncs
-_080EA60C: .4byte gActiveBattler
-_080EA610: .4byte sub_80E85AC
-_080EA614:
- ldr r1, _080EA624 @ =gBattlerControllerFuncs
- ldr r0, _080EA628 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA62C @ =sub_80E85C0
- b _080EA658
- .align 2, 0
-_080EA624: .4byte gBattlerControllerFuncs
-_080EA628: .4byte gActiveBattler
-_080EA62C: .4byte sub_80E85C0
-_080EA630:
- ldr r1, _080EA640 @ =gBattlerControllerFuncs
- ldr r0, _080EA644 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA648 @ =sub_80E8598
- b _080EA658
- .align 2, 0
-_080EA640: .4byte gBattlerControllerFuncs
-_080EA644: .4byte gActiveBattler
-_080EA648: .4byte sub_80E8598
-_080EA64C:
- ldr r1, _080EA660 @ =gBattlerControllerFuncs
- ldr r0, _080EA664 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA668 @ =sub_80E7918
-_080EA658:
- str r1, [r0]
-_080EA65A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA660: .4byte gBattlerControllerFuncs
-_080EA664: .4byte gActiveBattler
-_080EA668: .4byte sub_80E7918
- thumb_func_end sub_80EA52C
-
- thumb_func_start sub_80EA66C
-sub_80EA66C: @ 80EA66C
- push {lr}
- ldr r0, _080EA684 @ =gActiveBattler
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080EA688
- bl sub_80EA52C
- b _080EA68C
- .align 2, 0
-_080EA684: .4byte gActiveBattler
-_080EA688:
- bl WallyBufferExecCompleted
-_080EA68C:
- pop {r0}
- bx r0
- thumb_func_end sub_80EA66C
-
- thumb_func_start sub_80EA690
-sub_80EA690: @ 80EA690
- push {lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080EA6EA
- ldr r0, _080EA6C4 @ =gBattle_BG0_X
- strh r1, [r0]
- ldr r1, _080EA6C8 @ =gBattle_BG0_Y
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, _080EA6CC @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EA6DC
- ldr r1, _080EA6D0 @ =gBattlerControllerFuncs
- ldr r0, _080EA6D4 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA6D8 @ =sub_80E763C
- b _080EA6E8
- .align 2, 0
-_080EA6C4: .4byte gBattle_BG0_X
-_080EA6C8: .4byte gBattle_BG0_Y
-_080EA6CC: .4byte gBattleTypeFlags
-_080EA6D0: .4byte gBattlerControllerFuncs
-_080EA6D4: .4byte gActiveBattler
-_080EA6D8: .4byte sub_80E763C
-_080EA6DC:
- ldr r1, _080EA6F0 @ =gBattlerControllerFuncs
- ldr r0, _080EA6F4 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA6F8 @ =sub_80E7844
-_080EA6E8:
- str r1, [r0]
-_080EA6EA:
- pop {r0}
- bx r0
- .align 2, 0
-_080EA6F0: .4byte gBattlerControllerFuncs
-_080EA6F4: .4byte gActiveBattler
-_080EA6F8: .4byte sub_80E7844
- thumb_func_end sub_80EA690
-
- thumb_func_start sub_80EA6FC
-sub_80EA6FC: @ 80EA6FC
- push {r4,lr}
- ldr r1, _080EA750 @ =gBattlerControllerFuncs
- ldr r0, _080EA754 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA758 @ =sub_80EA690
- str r1, [r0]
- ldr r0, _080EA75C @ =gUnknown_83FDA4C
- movs r1, 0
- bl BattlePutTextOnWindow
- ldr r0, _080EA760 @ =gUnknown_83FE725
- movs r1, 0x2
- bl BattlePutTextOnWindow
- movs r4, 0
-_080EA71E:
- lsls r0, r4, 24
- lsrs r0, 24
- bl ActionSelectionDestroyCursorAt
- adds r4, 0x1
- cmp r4, 0x3
- ble _080EA71E
- ldr r1, _080EA764 @ =gActionSelectionCursor
- ldr r0, _080EA754 @ =gActiveBattler
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl ActionSelectionCreateCursorAt
- ldr r0, _080EA768 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EA770
- ldr r0, _080EA76C @ =gText_WhatWillPkmnDo
- bl BattleStringExpandPlaceholdersToDisplayedString
- b _080EA776
- .align 2, 0
-_080EA750: .4byte gBattlerControllerFuncs
-_080EA754: .4byte gActiveBattler
-_080EA758: .4byte sub_80EA690
-_080EA75C: .4byte gUnknown_83FDA4C
-_080EA760: .4byte gUnknown_83FE725
-_080EA764: .4byte gActionSelectionCursor
-_080EA768: .4byte gBattleTypeFlags
-_080EA76C: .4byte gText_WhatWillPkmnDo
-_080EA770:
- ldr r0, _080EA784 @ =gUnknown_83FE6FA
- bl BattleStringExpandPlaceholdersToDisplayedString
-_080EA776:
- ldr r0, _080EA788 @ =gDisplayedStringBattle
- movs r1, 0x1
- bl BattlePutTextOnWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA784: .4byte gUnknown_83FE6FA
-_080EA788: .4byte gDisplayedStringBattle
- thumb_func_end sub_80EA6FC
-
- thumb_func_start sub_80EA78C
-sub_80EA78C: @ 80EA78C
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EA78C
-
- thumb_func_start sub_80EA798
-sub_80EA798: @ 80EA798
- push {lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080EA7C2
- ldr r0, _080EA7C8 @ =gBattle_BG0_X
- strh r1, [r0]
- ldr r1, _080EA7CC @ =gBattle_BG0_Y
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080EA7D0 @ =gBattlerControllerFuncs
- ldr r0, _080EA7D4 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA7D8 @ =sub_80E7988
- str r1, [r0]
-_080EA7C2:
- pop {r0}
- bx r0
- .align 2, 0
-_080EA7C8: .4byte gBattle_BG0_X
-_080EA7CC: .4byte gBattle_BG0_Y
-_080EA7D0: .4byte gBattlerControllerFuncs
-_080EA7D4: .4byte gActiveBattler
-_080EA7D8: .4byte sub_80E7988
- thumb_func_end sub_80EA798
-
- thumb_func_start sub_80EA7DC
-sub_80EA7DC: @ 80EA7DC
- push {r4,lr}
- ldr r0, _080EA800 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EA810
- bl InitMoveSelectionsVarsAndStrings
- ldr r1, _080EA804 @ =gBattlerControllerFuncs
- ldr r0, _080EA808 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA80C @ =sub_80EA798
- str r1, [r0]
- b _080EA866
- .align 2, 0
-_080EA800: .4byte gBattleTypeFlags
-_080EA804: .4byte gBattlerControllerFuncs
-_080EA808: .4byte gActiveBattler
-_080EA80C: .4byte sub_80EA798
-_080EA810:
- ldr r4, _080EA824 @ =gBattleStruct
- ldr r0, [r4]
- adds r0, 0x95
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EA828
- cmp r0, 0x1
- beq _080EA83E
- b _080EA866
- .align 2, 0
-_080EA824: .4byte gBattleStruct
-_080EA828:
- bl InitMoveSelectionsVarsAndStrings
- ldr r1, [r4]
- adds r1, 0x95
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x97
- movs r1, 0x50
- strb r1, [r0]
-_080EA83E:
- ldr r0, _080EA86C @ =gBattleStruct
- ldr r1, [r0]
- adds r1, 0x97
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080EA866
- movs r0, 0x5
- bl PlaySE
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x1
- movs r1, 0xA
- bl BtlController_EmitTwoReturnValues
- bl WallyBufferExecCompleted
-_080EA866:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA86C: .4byte gBattleStruct
- thumb_func_end sub_80EA7DC
-
- thumb_func_start sub_80EA870
-sub_80EA870: @ 80EA870
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080EA8BC @ =gBattlerControllerFuncs
- ldr r2, _080EA8C0 @ =gActiveBattler
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA8C4 @ =sub_80E7A70
- str r1, [r0]
- ldr r1, _080EA8C8 @ =gBattlerInMenuId
- ldrb r0, [r2]
- strb r0, [r1]
- movs r3, 0
- ldr r5, _080EA8CC @ =gUnknown_203B0DC
- ldr r4, _080EA8D0 @ =gBattleBufferA
-_080EA89E:
- adds r0, r3, r5
- ldrb r1, [r2]
- lsls r1, 9
- adds r1, 0x1
- adds r1, r3, r1
- adds r1, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x2
- ble _080EA89E
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA8BC: .4byte gBattlerControllerFuncs
-_080EA8C0: .4byte gActiveBattler
-_080EA8C4: .4byte sub_80E7A70
-_080EA8C8: .4byte gBattlerInMenuId
-_080EA8CC: .4byte gUnknown_203B0DC
-_080EA8D0: .4byte gBattleBufferA
- thumb_func_end sub_80EA870
-
- thumb_func_start sub_80EA8D4
-sub_80EA8D4: @ 80EA8D4
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _080EA984 @ =TaskDummy
- movs r1, 0xFF
- bl CreateTask
- ldr r3, _080EA988 @ =gUnknown_3004FFC
- ldr r4, _080EA98C @ =gActiveBattler
- ldrb r1, [r4]
- adds r1, r3
- strb r0, [r1]
- ldr r5, _080EA990 @ =gTasks
- ldrb r2, [r4]
- adds r3, r2, r3
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r5
- ldr r5, _080EA994 @ =gBattleBufferA
- lsls r2, 9
- adds r6, r5, 0x1
- adds r2, r6
- ldrb r2, [r2]
- movs r0, 0xF
- ands r0, r2
- strh r0, [r1, 0x8]
- ldr r3, _080EA998 @ =gBattleStruct
- ldr r1, [r3]
- adds r1, 0x49
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r6
- ldrb r0, [r0]
- lsrs r0, 4
- strb r0, [r1]
- ldr r2, [r3]
- adds r2, 0x8B
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, r5, 0x2
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, [r3]
- adds r2, 0xAC
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, r5, 0x3
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r2, 0
- ldr r3, _080EA99C @ =gUnknown_203B0DC
-_080EA940:
- adds r0, r2, r3
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _080EA940
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080EA9A0 @ =gBattlerControllerFuncs
- ldr r2, _080EA98C @ =gActiveBattler
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA9A4 @ =sub_80E79B8
- str r1, [r0]
- ldr r1, _080EA9A8 @ =gBattlerInMenuId
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA984: .4byte TaskDummy
-_080EA988: .4byte gUnknown_3004FFC
-_080EA98C: .4byte gActiveBattler
-_080EA990: .4byte gTasks
-_080EA994: .4byte gBattleBufferA
-_080EA998: .4byte gBattleStruct
-_080EA99C: .4byte gUnknown_203B0DC
-_080EA9A0: .4byte gBattlerControllerFuncs
-_080EA9A4: .4byte sub_80E79B8
-_080EA9A8: .4byte gBattlerInMenuId
- thumb_func_end sub_80EA8D4
-
- thumb_func_start sub_80EA9AC
-sub_80EA9AC: @ 80EA9AC
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EA9AC
-
- thumb_func_start sub_80EA9B8
-sub_80EA9B8: @ 80EA9B8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl LoadBattleBarGfx
- ldr r3, _080EAA30 @ =gBattleBufferA
- ldr r0, _080EAA34 @ =gActiveBattler
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _080EAA38 @ =0x00007fff
- cmp r7, r0
- beq _080EAA48
- ldr r6, _080EAA3C @ =gBattlerPartyIndexes
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080EAA40 @ =gPlayerParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _080EAA44 @ =gHealthboxSpriteIds
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl SetBattleBarStruct
- b _080EAA82
- .align 2, 0
-_080EAA30: .4byte gBattleBufferA
-_080EAA34: .4byte gActiveBattler
-_080EAA38: .4byte 0x00007fff
-_080EAA3C: .4byte gBattlerPartyIndexes
-_080EAA40: .4byte gPlayerParty
-_080EAA44: .4byte gHealthboxSpriteIds
-_080EAA48:
- ldr r1, _080EAAA0 @ =gBattlerPartyIndexes
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080EAAA4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r4, _080EAAA8 @ =gHealthboxSpriteIds
- adds r1, r0, r4
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl SetBattleBarStruct
- mov r1, r9
- ldrb r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- movs r2, 0
- bl UpdateHpTextInHealthbox
-_080EAA82:
- ldr r1, _080EAAAC @ =gBattlerControllerFuncs
- ldr r0, _080EAAB0 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EAAB4 @ =sub_80E88C0
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAAA0: .4byte gBattlerPartyIndexes
-_080EAAA4: .4byte gPlayerParty
-_080EAAA8: .4byte gHealthboxSpriteIds
-_080EAAAC: .4byte gBattlerControllerFuncs
-_080EAAB0: .4byte gActiveBattler
-_080EAAB4: .4byte sub_80E88C0
- thumb_func_end sub_80EA9B8
-
- thumb_func_start sub_80EAAB8
-sub_80EAAB8: @ 80EAAB8
- push {r4-r7,lr}
- ldr r5, _080EAAE4 @ =gBattleBufferA
- ldr r6, _080EAAE8 @ =gActiveBattler
- ldrb r0, [r6]
- lsls r0, 9
- adds r1, r5, 0x1
- adds r0, r1
- ldrb r7, [r0]
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _080EAAEC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x63
- bls _080EAAF0
- bl WallyBufferExecCompleted
- b _080EAB3C
- .align 2, 0
-_080EAAE4: .4byte gBattleBufferA
-_080EAAE8: .4byte gActiveBattler
-_080EAAEC: .4byte gPlayerParty
-_080EAAF0:
- movs r0, 0x1
- bl LoadBattleBarGfx
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 9
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r0, r5, 0x3
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- ldr r0, _080EAB44 @ =sub_80E7E04
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080EAB48 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r7, [r1, 0x8]
- strh r4, [r1, 0xA]
- ldrb r0, [r6]
- strh r0, [r1, 0xC]
- ldr r1, _080EAB4C @ =gBattlerControllerFuncs
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EAB50 @ =nullsub_81
- str r1, [r0]
-_080EAB3C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAB44: .4byte sub_80E7E04
-_080EAB48: .4byte gTasks
-_080EAB4C: .4byte gBattlerControllerFuncs
-_080EAB50: .4byte nullsub_81
- thumb_func_end sub_80EAAB8
-
- thumb_func_start sub_80EAB54
-sub_80EAB54: @ 80EAB54
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB54
-
- thumb_func_start sub_80EAB60
-sub_80EAB60: @ 80EAB60
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB60
-
- thumb_func_start sub_80EAB6C
-sub_80EAB6C: @ 80EAB6C
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB6C
-
- thumb_func_start sub_80EAB78
-sub_80EAB78: @ 80EAB78
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB78
-
- thumb_func_start sub_80EAB84
-sub_80EAB84: @ 80EAB84
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB84
-
- thumb_func_start sub_80EAB90
-sub_80EAB90: @ 80EAB90
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB90
-
- thumb_func_start sub_80EAB9C
-sub_80EAB9C: @ 80EAB9C
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB9C
-
- thumb_func_start sub_80EABA8
-sub_80EABA8: @ 80EABA8
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABA8
-
- thumb_func_start sub_80EABB4
-sub_80EABB4: @ 80EABB4
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABB4
-
- thumb_func_start sub_80EABC0
-sub_80EABC0: @ 80EABC0
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABC0
-
- thumb_func_start sub_80EABCC
-sub_80EABCC: @ 80EABCC
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABCC
-
- thumb_func_start sub_80EABD8
-sub_80EABD8: @ 80EABD8
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABD8
-
- thumb_func_start sub_80EABE4
-sub_80EABE4: @ 80EABE4
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABE4
-
- thumb_func_start sub_80EABF0
-sub_80EABF0: @ 80EABF0
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABF0
-
- thumb_func_start sub_80EABFC
-sub_80EABFC: @ 80EABFC
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABFC
-
- thumb_func_start sub_80EAC08
-sub_80EAC08: @ 80EAC08
- push {r4,lr}
- ldr r3, _080EAC30 @ =gSprites
- ldr r2, _080EAC34 @ =gBattlerSpriteIds
- ldr r4, _080EAC38 @ =gActiveBattler
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _080EAC3C
- bl WallyBufferExecCompleted
- b _080EAC66
- .align 2, 0
-_080EAC30: .4byte gSprites
-_080EAC34: .4byte gBattlerSpriteIds
-_080EAC38: .4byte gActiveBattler
-_080EAC3C:
- ldr r1, _080EAC6C @ =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl DoHitAnimHealthboxEffect
- ldr r1, _080EAC70 @ =gBattlerControllerFuncs
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EAC74 @ =DoHitAnimBlinkSpriteEffect_3
- str r1, [r0]
-_080EAC66:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAC6C: .4byte gDoingBattleAnim
-_080EAC70: .4byte gBattlerControllerFuncs
-_080EAC74: .4byte DoHitAnimBlinkSpriteEffect_3
- thumb_func_end sub_80EAC08
-
- thumb_func_start sub_80EAC78
-sub_80EAC78: @ 80EAC78
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAC78
-
- thumb_func_start sub_80EAC84
-sub_80EAC84: @ 80EAC84
- push {lr}
- ldr r2, _080EACAC @ =gBattleBufferA
- ldr r0, _080EACB0 @ =gActiveBattler
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlaySE
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_080EACAC: .4byte gBattleBufferA
-_080EACB0: .4byte gActiveBattler
- thumb_func_end sub_80EAC84
-
- thumb_func_start sub_80EACB4
-sub_80EACB4: @ 80EACB4
- push {lr}
- ldr r2, _080EACDC @ =gBattleBufferA
- ldr r0, _080EACE0 @ =gActiveBattler
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_080EACDC: .4byte gBattleBufferA
-_080EACE0: .4byte gActiveBattler
- thumb_func_end sub_80EACB4
-
- thumb_func_start sub_80EACE4
-sub_80EACE4: @ 80EACE4
- push {lr}
- ldr r1, _080EAD14 @ =gBattlerPartyIndexes
- ldr r0, _080EAD18 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080EAD1C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl PlayCry1
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_080EAD14: .4byte gBattlerPartyIndexes
-_080EAD18: .4byte gActiveBattler
-_080EAD1C: .4byte gPlayerParty
- thumb_func_end sub_80EACE4
-
- thumb_func_start sub_80EAD20
-sub_80EAD20: @ 80EAD20
- push {lr}
- ldr r1, _080EAD48 @ =gBattleBufferA
- ldr r0, _080EAD4C @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl HandleIntroSlide
- ldr r2, _080EAD50 @ =gIntroSlideFlags
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_080EAD48: .4byte gBattleBufferA
-_080EAD4C: .4byte gActiveBattler
-_080EAD50: .4byte gIntroSlideFlags
- thumb_func_end sub_80EAD20
-
- thumb_func_start sub_80EAD54
-sub_80EAD54: @ 80EAD54
- push {r4-r7,lr}
- ldr r0, _080EAEA0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080EAD64
- b _080EAEE4
-_080EAD64:
- ldr r6, _080EAEA4 @ =gBattlerSpriteIds
- ldr r7, _080EAEA8 @ =gActiveBattler
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080EAEAC @ =gSprites
- adds r0, r5
- bl SetSpritePrimaryCoordsFromSecondaryCoords
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080EAEB0 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080EAEB4 @ =StartAnimLinearTranslation
- str r1, [r0]
- ldrb r2, [r7]
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x38]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080EAEB8 @ =sub_80335F8
- bl StoreSpriteCallbackInData6
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _080EAEBC @ =0x0000d6f8
- bl AllocSpritePalette
- adds r4, r0, 0
- lsls r4, 24
- ldr r1, _080EAEC0 @ =gTrainerBackPicPaletteTable
- ldr r0, _080EAEC4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- lsrs r4, 20
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- movs r2, 0x20
- bl LoadCompressedPalette
- ldrb r0, [r7]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r4
- strb r0, [r1, 0x5]
- ldr r0, _080EAEC8 @ =sub_80EB0A8
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080EAECC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- ldr r3, _080EAED0 @ =gBattleSpritesDataPtr
- ldr r0, [r3]
- ldrb r2, [r7]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EAE84
- ldr r0, _080EAED4 @ =gBattlerStatusSummaryTaskId
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _080EAED8 @ =Task_HidePartyStatusSummary
- str r1, [r0]
-_080EAE84:
- ldr r0, [r3]
- ldr r2, [r0, 0x8]
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _080EAEDC @ =gBattlerControllerFuncs
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EAEE0 @ =nullsub_13
- str r1, [r0]
- b _080EAF18
- .align 2, 0
-_080EAEA0: .4byte gBattleTypeFlags
-_080EAEA4: .4byte gBattlerSpriteIds
-_080EAEA8: .4byte gActiveBattler
-_080EAEAC: .4byte gSprites
-_080EAEB0: .4byte 0x0000ffd8
-_080EAEB4: .4byte StartAnimLinearTranslation
-_080EAEB8: .4byte sub_80335F8
-_080EAEBC: .4byte 0x0000d6f8
-_080EAEC0: .4byte gTrainerBackPicPaletteTable
-_080EAEC4: .4byte gSaveBlock2Ptr
-_080EAEC8: .4byte sub_80EB0A8
-_080EAECC: .4byte gTasks
-_080EAED0: .4byte gBattleSpritesDataPtr
-_080EAED4: .4byte gBattlerStatusSummaryTaskId
-_080EAED8: .4byte Task_HidePartyStatusSummary
-_080EAEDC: .4byte gBattlerControllerFuncs
-_080EAEE0: .4byte nullsub_13
-_080EAEE4:
- ldr r0, _080EAF20 @ =gBattleSpritesDataPtr
- ldr r1, [r0]
- ldr r0, _080EAF24 @ =gActiveBattler
- ldrb r3, [r0]
- ldr r1, [r1, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EAF14
- ldr r2, _080EAF28 @ =gTasks
- ldr r0, _080EAF2C @ =gBattlerStatusSummaryTaskId
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080EAF30 @ =Task_HidePartyStatusSummary
- str r1, [r0]
-_080EAF14:
- bl WallyBufferExecCompleted
-_080EAF18:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAF20: .4byte gBattleSpritesDataPtr
-_080EAF24: .4byte gActiveBattler
-_080EAF28: .4byte gTasks
-_080EAF2C: .4byte gBattlerStatusSummaryTaskId
-_080EAF30: .4byte Task_HidePartyStatusSummary
- thumb_func_end sub_80EAD54
-
- thumb_func_start sub_80EAF34
-sub_80EAF34: @ 80EAF34
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _080EB07C @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r6, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2]
- ldr r0, _080EB080 @ =gBattlerPartyIndexes
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, _080EB084 @ =gBattleBufferA
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
- ldrh r1, [r2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080EB088 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _080EB08C @ =sub_8033E3C
- bl CreateInvisibleSpriteWithCallback
- ldr r1, _080EB090 @ =gUnknown_3004FFC
- mov r9, r1
- add r9, r6
- mov r1, r9
- strb r0, [r1]
- adds r0, r6, 0
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl SetMultiuseSpriteTemplateToPokemon
- ldr r0, _080EB094 @ =gMultiuseSpriteTemplate
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl GetBattlerSpriteDefault_Y
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl GetBattlerSpriteSubpriority
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r10
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080EB098 @ =gBattlerSpriteIds
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _080EB09C @ =gSprites
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080EB0A0 @ =gBattleMonForms
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080EB0A4 @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFF
- bl DoPokeballSendOutAnimation
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB07C: .4byte gBattleSpritesDataPtr
-_080EB080: .4byte gBattlerPartyIndexes
-_080EB084: .4byte gBattleBufferA
-_080EB088: .4byte gPlayerParty
-_080EB08C: .4byte sub_8033E3C
-_080EB090: .4byte gUnknown_3004FFC
-_080EB094: .4byte gMultiuseSpriteTemplate
-_080EB098: .4byte gBattlerSpriteIds
-_080EB09C: .4byte gSprites
-_080EB0A0: .4byte gBattleMonForms
-_080EB0A4: .4byte SpriteCallbackDummy
- thumb_func_end sub_80EAF34
-
- thumb_func_start sub_80EB0A8
-sub_80EB0A8: @ 80EB0A8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080EB0C8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x1E
- bgt _080EB0CC
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _080EB102
- .align 2, 0
-_080EB0C8: .4byte gTasks
-_080EB0CC:
- ldr r4, _080EB108 @ =gActiveBattler
- ldrb r5, [r4]
- ldrh r0, [r1, 0x8]
- strb r0, [r4]
- ldr r0, _080EB10C @ =gBattleBufferA
- ldrb r1, [r4]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _080EB110 @ =gBattlerPartyIndexes
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_80EAF34
- ldr r1, _080EB114 @ =gBattlerControllerFuncs
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EB118 @ =sub_80E7B4C
- str r1, [r0]
- strb r5, [r4]
- adds r0, r6, 0
- bl DestroyTask
-_080EB102:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB108: .4byte gActiveBattler
-_080EB10C: .4byte gBattleBufferA
-_080EB110: .4byte gBattlerPartyIndexes
-_080EB114: .4byte gBattlerControllerFuncs
-_080EB118: .4byte sub_80E7B4C
- thumb_func_end sub_80EB0A8
-
- thumb_func_start sub_80EB11C
-sub_80EB11C: @ 80EB11C
- push {r4,r5,lr}
- ldr r1, _080EB144 @ =gBattleBufferA
- ldr r0, _080EB148 @ =gActiveBattler
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EB14C
- adds r0, r2, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080EB14C
- bl WallyBufferExecCompleted
- b _080EB18A
- .align 2, 0
-_080EB144: .4byte gBattleBufferA
-_080EB148: .4byte gActiveBattler
-_080EB14C:
- ldr r0, _080EB190 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r5, _080EB194 @ =gActiveBattler
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r4, r0, 9
- ldr r3, _080EB198 @ =gUnknown_2022BC8
- adds r1, r4, r3
- subs r2, r3, 0x3
- adds r2, r4, r2
- ldrb r2, [r2]
- subs r3, 0x2
- adds r4, r3
- ldrb r3, [r4]
- bl CreatePartyStatusSummarySprites
- ldr r2, _080EB19C @ =gBattlerStatusSummaryTaskId
- ldrb r1, [r5]
- adds r1, r2
- strb r0, [r1]
- bl WallyBufferExecCompleted
-_080EB18A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB190: .4byte gBattleSpritesDataPtr
-_080EB194: .4byte gActiveBattler
-_080EB198: .4byte gUnknown_2022BC8
-_080EB19C: .4byte gBattlerStatusSummaryTaskId
- thumb_func_end sub_80EB11C
-
- thumb_func_start sub_80EB1A0
-sub_80EB1A0: @ 80EB1A0
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EB1A0
-
- thumb_func_start sub_80EB1AC
-sub_80EB1AC: @ 80EB1AC
- push {r4,lr}
- ldr r4, _080EB1CC @ =gActiveBattler
- ldrb r0, [r4]
- movs r1, 0x1
- bl EndBounceEffect
- ldrb r0, [r4]
- movs r1, 0
- bl EndBounceEffect
- bl WallyBufferExecCompleted
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB1CC: .4byte gActiveBattler
- thumb_func_end sub_80EB1AC
-
- thumb_func_start sub_80EB1D0
-sub_80EB1D0: @ 80EB1D0
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EB1D0
-
- thumb_func_start sub_80EB1DC
-sub_80EB1DC: @ 80EB1DC
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, _080EB214 @ =gBattleBufferA
- ldr r6, _080EB218 @ =gActiveBattler
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl TryHandleLaunchBattleTableAnimation
- lsls r0, 24
- cmp r0, 0
- beq _080EB21C
- bl WallyBufferExecCompleted
- b _080EB228
- .align 2, 0
-_080EB214: .4byte gBattleBufferA
-_080EB218: .4byte gActiveBattler
-_080EB21C:
- ldr r0, _080EB230 @ =gBattlerControllerFuncs
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080EB234 @ =CompleteOnFinishedBattleAnimation_4
- str r0, [r1]
-_080EB228:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB230: .4byte gBattlerControllerFuncs
-_080EB234: .4byte CompleteOnFinishedBattleAnimation_4
- thumb_func_end sub_80EB1DC
-
- thumb_func_start sub_80EB238
-sub_80EB238: @ 80EB238
- push {r4,lr}
- ldr r1, _080EB26C @ =gBattleBufferA
- ldr r4, _080EB270 @ =gActiveBattler
- ldrb r2, [r4]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- blt _080EB260
- cmp r0, 0x1
- bgt _080EB260
- adds r0, r2, 0
- movs r1, 0x1
- bl EndBounceEffect
- ldrb r0, [r4]
- movs r1, 0
- bl EndBounceEffect
-_080EB260:
- bl WallyBufferExecCompleted
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB26C: .4byte gBattleBufferA
-_080EB270: .4byte gActiveBattler
- thumb_func_end sub_80EB238
-
- thumb_func_start sub_80EB274
-sub_80EB274: @ 80EB274
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EB274
-
- thumb_func_start sub_80EB280
-sub_80EB280: @ 80EB280
- push {r4,lr}
- ldr r2, _080EB2C4 @ =gBattleOutcome
- ldr r1, _080EB2C8 @ =gBattleBufferA
- ldr r4, _080EB2CC @ =gActiveBattler
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl WallyBufferExecCompleted
- ldr r0, _080EB2D0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _080EB2BC
- ldr r0, _080EB2D4 @ =gBattlerControllerFuncs
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080EB2D8 @ =sub_80E7930
- str r0, [r1]
-_080EB2BC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB2C4: .4byte gBattleOutcome
-_080EB2C8: .4byte gBattleBufferA
-_080EB2CC: .4byte gActiveBattler
-_080EB2D0: .4byte gBattleTypeFlags
-_080EB2D4: .4byte gBattlerControllerFuncs
-_080EB2D8: .4byte sub_80E7930
- thumb_func_end sub_80EB280
-
- thumb_func_start nullsub_82
-nullsub_82: @ 80EB2DC
- bx lr
- thumb_func_end nullsub_82
-
- thumb_func_start sub_80EB2E0
-sub_80EB2E0: @ 80EB2E0
- adds r1, r0, 0
- ldr r0, _080EB2F0 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x96
- ldrb r0, [r0]
- ands r0, r1
- bx lr
- .align 2, 0
-_080EB2F0: .4byte gBattleStruct
- thumb_func_end sub_80EB2E0
-
- thumb_func_start sub_80EB2F4
-sub_80EB2F4: @ 80EB2F4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080EB308 @ =gBattleStruct
- ldr r1, [r1]
- adds r1, 0x96
- ldrb r2, [r1]
- orrs r0, r2
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080EB308: .4byte gBattleStruct
- thumb_func_end sub_80EB2F4
-
- thumb_func_start sub_80EB30C
-sub_80EB30C: @ 80EB30C
- push {r4-r6,lr}
- sub sp, 0xC
- movs r6, 0x1A
- movs r5, 0x7
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x30
- movs r2, 0
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x31
- movs r2, 0x1
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r6, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x32
- movs r2, 0x2
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x33
- movs r2, 0x1C
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x34
- movs r2, 0x1D
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x35
- movs r2, 0
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x36
- movs r2, 0x1
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x38
- movs r2, 0x1C
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x39
- movs r2, 0x1D
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3A
- movs r2, 0
- movs r3, 0x10
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3B
- movs r2, 0x1
- movs r3, 0x10
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3C
- movs r2, 0x1C
- movs r3, 0x10
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3D
- movs r2, 0x1D
- movs r3, 0x10
- bl FillBgTilemapBufferRect
- ldr r1, _080EB4F4 @ =0x0000083a
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0
- movs r3, 0x11
- bl FillBgTilemapBufferRect
- ldr r1, _080EB4F8 @ =0x0000083b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0x11
- bl FillBgTilemapBufferRect
- ldr r1, _080EB4FC @ =0x0000083c
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1C
- movs r3, 0x11
- bl FillBgTilemapBufferRect
- ldr r1, _080EB500 @ =0x0000083d
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1D
- movs r3, 0x11
- bl FillBgTilemapBufferRect
- ldr r1, _080EB504 @ =0x00000835
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0
- movs r3, 0x12
- bl FillBgTilemapBufferRect
- ldr r1, _080EB508 @ =0x00000836
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0x12
- bl FillBgTilemapBufferRect
- ldr r1, _080EB50C @ =0x00000838
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1C
- movs r3, 0x12
- bl FillBgTilemapBufferRect
- ldr r1, _080EB510 @ =0x00000839
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1D
- movs r3, 0x12
- bl FillBgTilemapBufferRect
- movs r1, 0x83
- lsls r1, 4
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, _080EB514 @ =0x00000831
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, _080EB518 @ =0x00000832
- str r6, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x2
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, _080EB51C @ =0x00000833
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1C
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, _080EB520 @ =0x00000834
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB4F4: .4byte 0x0000083a
-_080EB4F8: .4byte 0x0000083b
-_080EB4FC: .4byte 0x0000083c
-_080EB500: .4byte 0x0000083d
-_080EB504: .4byte 0x00000835
-_080EB508: .4byte 0x00000836
-_080EB50C: .4byte 0x00000838
-_080EB510: .4byte 0x00000839
-_080EB514: .4byte 0x00000831
-_080EB518: .4byte 0x00000832
-_080EB51C: .4byte 0x00000833
-_080EB520: .4byte 0x00000834
- thumb_func_end sub_80EB30C
-
- thumb_func_start sub_80EB524
-sub_80EB524: @ 80EB524
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- movs r5, 0
- movs r0, 0x1A
- mov r8, r0
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- movs r6, 0x4
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x5
- movs r2, 0x2
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x6
- movs r2, 0x1C
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x8
- movs r2, 0
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x9
- movs r2, 0x1
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xB
- movs r2, 0x1C
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xD
- movs r2, 0
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xF
- movs r2, 0x2
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1C
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x11
- movs r2, 0x1D
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80EB524
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s
index 1857d92c8..e685d786d 100644
--- a/asm/battle_controller_pokedude.s
+++ b/asm/battle_controller_pokedude.s
@@ -10,8 +10,8 @@ nullsub_99: @ 81560A0
bx lr
thumb_func_end nullsub_99
- thumb_func_start SetControllerToPokedude
-SetControllerToPokedude: @ 81560A4
+ thumb_func_start SetControllerToPokeDude
+SetControllerToPokeDude: @ 81560A4
ldr r1, _081560C8 @ =gBattlerControllerFuncs
ldr r0, _081560CC @ =gActiveBattler
ldrb r0, [r0]
@@ -36,7 +36,7 @@ _081560CC: .4byte gActiveBattler
_081560D0: .4byte sub_81560DC
_081560D4: .4byte gBattleStruct
_081560D8: .4byte gSpecialVar_0x8004
- thumb_func_end SetControllerToPokedude
+ thumb_func_end SetControllerToPokeDude
thumb_func_start sub_81560DC
sub_81560DC: @ 81560DC
@@ -2862,7 +2862,7 @@ sub_81577B4: @ 81577B4
ldr r0, _081577E4 @ =gActiveBattler
ldrb r0, [r0]
lsls r2, r0, 9
- ldr r1, _081577E8 @ =gUnknown_2022BC7
+ ldr r1, _081577E8 @ =gBattleBufferA + 3
adds r5, r2, r1
mov r8, r5
bl GetBattlerSide
@@ -2876,7 +2876,7 @@ sub_81577B4: @ 81577B4
b _081577F8
.align 2, 0
_081577E4: .4byte gActiveBattler
-_081577E8: .4byte gUnknown_2022BC7
+_081577E8: .4byte gBattleBufferA + 3
_081577EC: .4byte gPlayerParty
_081577F0:
movs r0, 0x64
@@ -3148,7 +3148,7 @@ _08157AA4:
ldr r0, _08157AB8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157ABC @ =gUnknown_2022BC7
+ ldr r0, _08157ABC @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0xB
@@ -3156,12 +3156,12 @@ _08157AA4:
b _0815809A
.align 2, 0
_08157AB8: .4byte gActiveBattler
-_08157ABC: .4byte gUnknown_2022BC7
+_08157ABC: .4byte gBattleBufferA + 3
_08157AC0:
ldr r0, _08157AD4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157AD8 @ =gUnknown_2022BC7
+ ldr r0, _08157AD8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0xC
@@ -3169,7 +3169,7 @@ _08157AC0:
b _0815809A
.align 2, 0
_08157AD4: .4byte gActiveBattler
-_08157AD8: .4byte gUnknown_2022BC7
+_08157AD8: .4byte gBattleBufferA + 3
_08157ADC:
movs r4, 0
movs r0, 0xC
@@ -3213,7 +3213,7 @@ _08157B2C:
ldr r5, _08157B80 @ =gActiveBattler
ldrb r2, [r5]
lsls r2, 9
- ldr r4, _08157B84 @ =gUnknown_2022BC7
+ ldr r4, _08157B84 @ =gBattleBufferA + 3
adds r2, r4
adds r0, r6, 0
movs r1, 0x11
@@ -3249,7 +3249,7 @@ _08157B2C:
b _0815809A
.align 2, 0
_08157B80: .4byte gActiveBattler
-_08157B84: .4byte gUnknown_2022BC7
+_08157B84: .4byte gBattleBufferA + 3
_08157B88:
ldr r0, _08157BA4 @ =gActiveBattler
ldrb r2, [r0]
@@ -3270,7 +3270,7 @@ _08157BA8:
ldr r0, _08157BBC @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157BC0 @ =gUnknown_2022BC7
+ ldr r0, _08157BC0 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1
@@ -3278,12 +3278,12 @@ _08157BA8:
b _0815809A
.align 2, 0
_08157BBC: .4byte gActiveBattler
-_08157BC0: .4byte gUnknown_2022BC7
+_08157BC0: .4byte gBattleBufferA + 3
_08157BC4:
ldr r0, _08157BD8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157BDC @ =gUnknown_2022BC7
+ ldr r0, _08157BDC @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x19
@@ -3291,12 +3291,12 @@ _08157BC4:
b _0815809A
.align 2, 0
_08157BD8: .4byte gActiveBattler
-_08157BDC: .4byte gUnknown_2022BC7
+_08157BDC: .4byte gBattleBufferA + 3
_08157BE0:
ldr r0, _08157BF4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157BF8 @ =gUnknown_2022BC7
+ ldr r0, _08157BF8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1A
@@ -3304,12 +3304,12 @@ _08157BE0:
b _0815809A
.align 2, 0
_08157BF4: .4byte gActiveBattler
-_08157BF8: .4byte gUnknown_2022BC7
+_08157BF8: .4byte gBattleBufferA + 3
_08157BFC:
ldr r0, _08157C10 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C14 @ =gUnknown_2022BC7
+ ldr r0, _08157C14 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1B
@@ -3317,12 +3317,12 @@ _08157BFC:
b _0815809A
.align 2, 0
_08157C10: .4byte gActiveBattler
-_08157C14: .4byte gUnknown_2022BC7
+_08157C14: .4byte gBattleBufferA + 3
_08157C18:
ldr r0, _08157C2C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C30 @ =gUnknown_2022BC7
+ ldr r0, _08157C30 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1C
@@ -3330,12 +3330,12 @@ _08157C18:
b _0815809A
.align 2, 0
_08157C2C: .4byte gActiveBattler
-_08157C30: .4byte gUnknown_2022BC7
+_08157C30: .4byte gBattleBufferA + 3
_08157C34:
ldr r0, _08157C48 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C4C @ =gUnknown_2022BC7
+ ldr r0, _08157C4C @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1D
@@ -3343,12 +3343,12 @@ _08157C34:
b _0815809A
.align 2, 0
_08157C48: .4byte gActiveBattler
-_08157C4C: .4byte gUnknown_2022BC7
+_08157C4C: .4byte gBattleBufferA + 3
_08157C50:
ldr r0, _08157C64 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C68 @ =gUnknown_2022BC7
+ ldr r0, _08157C68 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1E
@@ -3356,12 +3356,12 @@ _08157C50:
b _0815809A
.align 2, 0
_08157C64: .4byte gActiveBattler
-_08157C68: .4byte gUnknown_2022BC7
+_08157C68: .4byte gBattleBufferA + 3
_08157C6C:
ldr r0, _08157C80 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C84 @ =gUnknown_2022BC7
+ ldr r0, _08157C84 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1F
@@ -3369,12 +3369,12 @@ _08157C6C:
b _0815809A
.align 2, 0
_08157C80: .4byte gActiveBattler
-_08157C84: .4byte gUnknown_2022BC7
+_08157C84: .4byte gBattleBufferA + 3
_08157C88:
ldr r0, _08157C9C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157CA0 @ =gUnknown_2022BC7
+ ldr r0, _08157CA0 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x20
@@ -3382,12 +3382,12 @@ _08157C88:
b _0815809A
.align 2, 0
_08157C9C: .4byte gActiveBattler
-_08157CA0: .4byte gUnknown_2022BC7
+_08157CA0: .4byte gBattleBufferA + 3
_08157CA4:
ldr r0, _08157CB8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157CBC @ =gUnknown_2022BC7
+ ldr r0, _08157CBC @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x22
@@ -3395,12 +3395,12 @@ _08157CA4:
b _0815809A
.align 2, 0
_08157CB8: .4byte gActiveBattler
-_08157CBC: .4byte gUnknown_2022BC7
+_08157CBC: .4byte gBattleBufferA + 3
_08157CC0:
ldr r0, _08157CD4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157CD8 @ =gUnknown_2022BC7
+ ldr r0, _08157CD8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x23
@@ -3408,12 +3408,12 @@ _08157CC0:
b _0815809A
.align 2, 0
_08157CD4: .4byte gActiveBattler
-_08157CD8: .4byte gUnknown_2022BC7
+_08157CD8: .4byte gBattleBufferA + 3
_08157CDC:
ldr r0, _08157CF0 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157CF4 @ =gUnknown_2022BC7
+ ldr r0, _08157CF4 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x24
@@ -3421,12 +3421,12 @@ _08157CDC:
b _0815809A
.align 2, 0
_08157CF0: .4byte gActiveBattler
-_08157CF4: .4byte gUnknown_2022BC7
+_08157CF4: .4byte gBattleBufferA + 3
_08157CF8:
ldr r0, _08157D0C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157D10 @ =gUnknown_2022BC7
+ ldr r0, _08157D10 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x25
@@ -3434,12 +3434,12 @@ _08157CF8:
b _0815809A
.align 2, 0
_08157D0C: .4byte gActiveBattler
-_08157D10: .4byte gUnknown_2022BC7
+_08157D10: .4byte gBattleBufferA + 3
_08157D14:
ldr r0, _08157D28 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157D2C @ =gUnknown_2022BC7
+ ldr r0, _08157D2C @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x26
@@ -3447,12 +3447,12 @@ _08157D14:
b _0815809A
.align 2, 0
_08157D28: .4byte gActiveBattler
-_08157D2C: .4byte gUnknown_2022BC7
+_08157D2C: .4byte gBattleBufferA + 3
_08157D30:
ldr r5, _08157D8C @ =gActiveBattler
ldrb r2, [r5]
lsls r2, 9
- ldr r4, _08157D90 @ =gUnknown_2022BC7
+ ldr r4, _08157D90 @ =gBattleBufferA + 3
adds r2, r4
adds r0, r6, 0
movs r1, 0x27
@@ -3492,12 +3492,12 @@ _08157D30:
b _08157E2A
.align 2, 0
_08157D8C: .4byte gActiveBattler
-_08157D90: .4byte gUnknown_2022BC7
+_08157D90: .4byte gBattleBufferA + 3
_08157D94:
ldr r0, _08157DA8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157DAC @ =gUnknown_2022BC7
+ ldr r0, _08157DAC @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x27
@@ -3505,12 +3505,12 @@ _08157D94:
b _0815809A
.align 2, 0
_08157DA8: .4byte gActiveBattler
-_08157DAC: .4byte gUnknown_2022BC7
+_08157DAC: .4byte gBattleBufferA + 3
_08157DB0:
ldr r0, _08157DC4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157DC8 @ =gUnknown_2022BC7
+ ldr r0, _08157DC8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x28
@@ -3518,12 +3518,12 @@ _08157DB0:
b _0815809A
.align 2, 0
_08157DC4: .4byte gActiveBattler
-_08157DC8: .4byte gUnknown_2022BC7
+_08157DC8: .4byte gBattleBufferA + 3
_08157DCC:
ldr r0, _08157DE0 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157DE4 @ =gUnknown_2022BC7
+ ldr r0, _08157DE4 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x29
@@ -3531,12 +3531,12 @@ _08157DCC:
b _0815809A
.align 2, 0
_08157DE0: .4byte gActiveBattler
-_08157DE4: .4byte gUnknown_2022BC7
+_08157DE4: .4byte gBattleBufferA + 3
_08157DE8:
ldr r0, _08157DFC @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E00 @ =gUnknown_2022BC7
+ ldr r0, _08157E00 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x2A
@@ -3544,12 +3544,12 @@ _08157DE8:
b _0815809A
.align 2, 0
_08157DFC: .4byte gActiveBattler
-_08157E00: .4byte gUnknown_2022BC7
+_08157E00: .4byte gBattleBufferA + 3
_08157E04:
ldr r0, _08157E18 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E1C @ =gUnknown_2022BC7
+ ldr r0, _08157E1C @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x2B
@@ -3557,12 +3557,12 @@ _08157E04:
b _0815809A
.align 2, 0
_08157E18: .4byte gActiveBattler
-_08157E1C: .4byte gUnknown_2022BC7
+_08157E1C: .4byte gBattleBufferA + 3
_08157E20:
ldr r0, _08157E34 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E38 @ =gUnknown_2022BC7
+ ldr r0, _08157E38 @ =gBattleBufferA + 3
adds r2, r0
_08157E2A:
adds r0, r6, 0
@@ -3571,12 +3571,12 @@ _08157E2A:
b _0815809A
.align 2, 0
_08157E34: .4byte gActiveBattler
-_08157E38: .4byte gUnknown_2022BC7
+_08157E38: .4byte gBattleBufferA + 3
_08157E3C:
ldr r0, _08157E50 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E54 @ =gUnknown_2022BC7
+ ldr r0, _08157E54 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0
@@ -3584,12 +3584,12 @@ _08157E3C:
b _0815809A
.align 2, 0
_08157E50: .4byte gActiveBattler
-_08157E54: .4byte gUnknown_2022BC7
+_08157E54: .4byte gBattleBufferA + 3
_08157E58:
ldr r0, _08157E6C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E70 @ =gUnknown_2022BC7
+ ldr r0, _08157E70 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x9
@@ -3597,12 +3597,12 @@ _08157E58:
b _0815809A
.align 2, 0
_08157E6C: .4byte gActiveBattler
-_08157E70: .4byte gUnknown_2022BC7
+_08157E70: .4byte gBattleBufferA + 3
_08157E74:
ldr r0, _08157E88 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E8C @ =gUnknown_2022BC7
+ ldr r0, _08157E8C @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x37
@@ -3610,12 +3610,12 @@ _08157E74:
b _0815809A
.align 2, 0
_08157E88: .4byte gActiveBattler
-_08157E8C: .4byte gUnknown_2022BC7
+_08157E8C: .4byte gBattleBufferA + 3
_08157E90:
ldr r0, _08157EA4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157EA8 @ =gUnknown_2022BC7
+ ldr r0, _08157EA8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x38
@@ -3623,12 +3623,12 @@ _08157E90:
b _0815809A
.align 2, 0
_08157EA4: .4byte gActiveBattler
-_08157EA8: .4byte gUnknown_2022BC7
+_08157EA8: .4byte gBattleBufferA + 3
_08157EAC:
ldr r0, _08157EC0 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157EC4 @ =gUnknown_2022BC7
+ ldr r0, _08157EC4 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x39
@@ -3636,12 +3636,12 @@ _08157EAC:
b _0815809A
.align 2, 0
_08157EC0: .4byte gActiveBattler
-_08157EC4: .4byte gUnknown_2022BC7
+_08157EC4: .4byte gBattleBufferA + 3
_08157EC8:
ldr r0, _08157EDC @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157EE0 @ =gUnknown_2022BC7
+ ldr r0, _08157EE0 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x3A
@@ -3649,12 +3649,12 @@ _08157EC8:
b _0815809A
.align 2, 0
_08157EDC: .4byte gActiveBattler
-_08157EE0: .4byte gUnknown_2022BC7
+_08157EE0: .4byte gBattleBufferA + 3
_08157EE4:
ldr r0, _08157EF8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157EFC @ =gUnknown_2022BC7
+ ldr r0, _08157EFC @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x3B
@@ -3662,12 +3662,12 @@ _08157EE4:
b _0815809A
.align 2, 0
_08157EF8: .4byte gActiveBattler
-_08157EFC: .4byte gUnknown_2022BC7
+_08157EFC: .4byte gBattleBufferA + 3
_08157F00:
ldr r0, _08157F14 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F18 @ =gUnknown_2022BC7
+ ldr r0, _08157F18 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x3C
@@ -3675,12 +3675,12 @@ _08157F00:
b _0815809A
.align 2, 0
_08157F14: .4byte gActiveBattler
-_08157F18: .4byte gUnknown_2022BC7
+_08157F18: .4byte gBattleBufferA + 3
_08157F1C:
ldr r0, _08157F30 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F34 @ =gUnknown_2022BC7
+ ldr r0, _08157F34 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x3D
@@ -3688,12 +3688,12 @@ _08157F1C:
b _0815809A
.align 2, 0
_08157F30: .4byte gActiveBattler
-_08157F34: .4byte gUnknown_2022BC7
+_08157F34: .4byte gBattleBufferA + 3
_08157F38:
ldr r0, _08157F4C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F50 @ =gUnknown_2022BC7
+ ldr r0, _08157F50 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x3E
@@ -3701,12 +3701,12 @@ _08157F38:
b _0815809A
.align 2, 0
_08157F4C: .4byte gActiveBattler
-_08157F50: .4byte gUnknown_2022BC7
+_08157F50: .4byte gBattleBufferA + 3
_08157F54:
ldr r0, _08157F68 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F6C @ =gUnknown_2022BC7
+ ldr r0, _08157F6C @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x3F
@@ -3714,12 +3714,12 @@ _08157F54:
b _0815809A
.align 2, 0
_08157F68: .4byte gActiveBattler
-_08157F6C: .4byte gUnknown_2022BC7
+_08157F6C: .4byte gBattleBufferA + 3
_08157F70:
ldr r0, _08157F84 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F88 @ =gUnknown_2022BC7
+ ldr r0, _08157F88 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x16
@@ -3727,12 +3727,12 @@ _08157F70:
b _0815809A
.align 2, 0
_08157F84: .4byte gActiveBattler
-_08157F88: .4byte gUnknown_2022BC7
+_08157F88: .4byte gBattleBufferA + 3
_08157F8C:
ldr r0, _08157FA0 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157FA4 @ =gUnknown_2022BC7
+ ldr r0, _08157FA4 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x17
@@ -3740,12 +3740,12 @@ _08157F8C:
b _0815809A
.align 2, 0
_08157FA0: .4byte gActiveBattler
-_08157FA4: .4byte gUnknown_2022BC7
+_08157FA4: .4byte gBattleBufferA + 3
_08157FA8:
ldr r0, _08157FBC @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157FC0 @ =gUnknown_2022BC7
+ ldr r0, _08157FC0 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x18
@@ -3753,12 +3753,12 @@ _08157FA8:
b _0815809A
.align 2, 0
_08157FBC: .4byte gActiveBattler
-_08157FC0: .4byte gUnknown_2022BC7
+_08157FC0: .4byte gBattleBufferA + 3
_08157FC4:
ldr r0, _08157FD8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157FDC @ =gUnknown_2022BC7
+ ldr r0, _08157FDC @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x21
@@ -3766,12 +3766,12 @@ _08157FC4:
b _0815809A
.align 2, 0
_08157FD8: .4byte gActiveBattler
-_08157FDC: .4byte gUnknown_2022BC7
+_08157FDC: .4byte gBattleBufferA + 3
_08157FE0:
ldr r0, _08157FF4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157FF8 @ =gUnknown_2022BC7
+ ldr r0, _08157FF8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x2F
@@ -3779,12 +3779,12 @@ _08157FE0:
b _0815809A
.align 2, 0
_08157FF4: .4byte gActiveBattler
-_08157FF8: .4byte gUnknown_2022BC7
+_08157FF8: .4byte gBattleBufferA + 3
_08157FFC:
ldr r0, _08158010 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08158014 @ =gUnknown_2022BC7
+ ldr r0, _08158014 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x30
@@ -3792,12 +3792,12 @@ _08157FFC:
b _0815809A
.align 2, 0
_08158010: .4byte gActiveBattler
-_08158014: .4byte gUnknown_2022BC7
+_08158014: .4byte gBattleBufferA + 3
_08158018:
ldr r0, _0815802C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08158030 @ =gUnknown_2022BC7
+ ldr r0, _08158030 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x32
@@ -3805,12 +3805,12 @@ _08158018:
b _0815809A
.align 2, 0
_0815802C: .4byte gActiveBattler
-_08158030: .4byte gUnknown_2022BC7
+_08158030: .4byte gBattleBufferA + 3
_08158034:
ldr r0, _08158048 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _0815804C @ =gUnknown_2022BC7
+ ldr r0, _0815804C @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x33
@@ -3818,12 +3818,12 @@ _08158034:
b _0815809A
.align 2, 0
_08158048: .4byte gActiveBattler
-_0815804C: .4byte gUnknown_2022BC7
+_0815804C: .4byte gBattleBufferA + 3
_08158050:
ldr r0, _08158064 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08158068 @ =gUnknown_2022BC7
+ ldr r0, _08158068 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x34
@@ -3831,12 +3831,12 @@ _08158050:
b _0815809A
.align 2, 0
_08158064: .4byte gActiveBattler
-_08158068: .4byte gUnknown_2022BC7
+_08158068: .4byte gBattleBufferA + 3
_0815806C:
ldr r0, _08158080 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08158084 @ =gUnknown_2022BC7
+ ldr r0, _08158084 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x35
@@ -3844,12 +3844,12 @@ _0815806C:
b _0815809A
.align 2, 0
_08158080: .4byte gActiveBattler
-_08158084: .4byte gUnknown_2022BC7
+_08158084: .4byte gBattleBufferA + 3
_08158088:
ldr r0, _081580C4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _081580C8 @ =gUnknown_2022BC7
+ ldr r0, _081580C8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x36
@@ -3876,7 +3876,7 @@ _0815809A:
bx r0
.align 2, 0
_081580C4: .4byte gActiveBattler
-_081580C8: .4byte gUnknown_2022BC7
+_081580C8: .4byte gBattleBufferA + 3
_081580CC: .4byte gBattlerPartyIndexes
_081580D0: .4byte gPlayerParty
thumb_func_end sub_81577B4
@@ -5063,7 +5063,7 @@ sub_8158A88: @ 8158A88
ldr r0, _08158AC4 @ =gActiveBattler
ldrb r4, [r0]
lsls r4, 9
- ldr r0, _08158AC8 @ =gUnknown_2022BC6
+ ldr r0, _08158AC8 @ =gBattleBufferA + 2
adds r4, r0
ldrh r0, [r4]
bl BufferStringBattle
@@ -5080,7 +5080,7 @@ sub_8158A88: @ 8158A88
_08158ABC: .4byte gBattle_BG0_X
_08158AC0: .4byte gBattle_BG0_Y
_08158AC4: .4byte gActiveBattler
-_08158AC8: .4byte gUnknown_2022BC6
+_08158AC8: .4byte gBattleBufferA + 2
_08158ACC: .4byte gDisplayedStringBattle
_08158AD0:
ldr r0, _08158AEC @ =gDisplayedStringBattle
@@ -6552,7 +6552,7 @@ _08159690:
strb r1, [r0]
ldrb r0, [r5]
lsls r4, r0, 9
- ldr r3, _081596DC @ =gUnknown_2022BC8
+ ldr r3, _081596DC @ =gBattleBufferA + 4
adds r1, r4, r3
subs r2, r3, 0x3
adds r2, r4, r2
@@ -6573,7 +6573,7 @@ _081596CE:
.align 2, 0
_081596D4: .4byte gBattleSpritesDataPtr
_081596D8: .4byte gActiveBattler
-_081596DC: .4byte gUnknown_2022BC8
+_081596DC: .4byte gBattleBufferA + 4
_081596E0: .4byte gBattlerStatusSummaryTaskId
thumb_func_end sub_8159660
@@ -7081,7 +7081,7 @@ sub_8159AB8: @ 8159AB8
ldr r3, _08159B5C @ =gActiveBattler
ldrb r5, [r3]
lsls r1, r5, 9
- ldr r0, _08159B60 @ =gUnknown_2022BC6
+ ldr r0, _08159B60 @ =gBattleBufferA + 2
adds r7, r1, r0
mov r12, r7
subs r0, 0x2
@@ -7150,7 +7150,7 @@ _08159B04:
_08159B54: .4byte gUnknown_8479198
_08159B58: .4byte gBattleStruct
_08159B5C: .4byte gActiveBattler
-_08159B60: .4byte gUnknown_2022BC6
+_08159B60: .4byte gBattleBufferA + 2
_08159B64: .4byte gBattlerControllerFuncs
_08159B68: .4byte gUnknown_3005EE0
_08159B6C:
diff --git a/asm/battle_interface.s b/asm/battle_interface.s
index 3de518630..671487d57 100644
--- a/asm/battle_interface.s
+++ b/asm/battle_interface.s
@@ -4304,7 +4304,7 @@ UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r1, _08049D84 @ =gUnknown_83FE81C
+ ldr r1, _08049D84 @ =gText_HighlightRed_Left
mov r0, sp
bl StringCopy
ldr r1, _08049D88 @ =gNumSafariBalls
@@ -4350,7 +4350,7 @@ UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10
pop {r0}
bx r0
.align 2, 0
-_08049D84: .4byte gUnknown_83FE81C
+_08049D84: .4byte gText_HighlightRed_Left
_08049D88: .4byte gNumSafariBalls
_08049D8C: .4byte gSprites
_08049D90: .4byte 0x060102c0
diff --git a/asm/battle_message.s b/asm/battle_message.s
index a7a52f5f7..28d7b196d 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -20,7 +20,7 @@ BufferStringBattle: @ 80D7274
mov r8, r0
ldrb r1, [r0]
lsls r1, 9
- ldr r0, _080D7338 @ =gUnknown_2022BC8
+ ldr r0, _080D7338 @ =gBattleBufferA + 4
adds r1, r0
str r1, [r4]
ldr r2, _080D733C @ =gLastUsedItem
@@ -107,7 +107,7 @@ _080D7326:
.align 2, 0
_080D7330: .4byte gUnknown_2039A34
_080D7334: .4byte gActiveBattler
-_080D7338: .4byte gUnknown_2022BC8
+_080D7338: .4byte gBattleBufferA + 4
_080D733C: .4byte gLastUsedItem
_080D7340: .4byte gLastUsedAbility
_080D7344: .4byte gBattleScripting
@@ -744,7 +744,7 @@ _080D7834:
ldr r5, [sp]
ldr r4, [sp, 0x4]
movs r3, 0
- ldr r2, _080D7850 @ =gUnknown_82500CC
+ ldr r2, _080D7850 @ =gStatusConditionStringsTable
_080D783C:
ldr r1, [r2]
ldr r0, [r1]
@@ -756,7 +756,7 @@ _080D783C:
ldr r0, [r2, 0x4]
b _080D785E
.align 2, 0
-_080D7850: .4byte gUnknown_82500CC
+_080D7850: .4byte gStatusConditionStringsTable
_080D7854:
adds r2, 0x8
adds r3, 0x1
@@ -1647,13 +1647,13 @@ _080D7FF0:
ldrb r1, [r0]
movs r0, 0xD
muls r1, r0
- ldr r0, _080D8004 @ =gUnknown_824FC40
+ ldr r0, _080D8004 @ =gAbilityNames
adds r4, r1, r0
b _080D8382
.align 2, 0
_080D7FFC: .4byte gUnknown_2039A30
_080D8000: .4byte gEffectBattler
-_080D8004: .4byte gUnknown_824FC40
+_080D8004: .4byte gAbilityNames
_080D8008:
ldr r3, _080D8020 @ =gTrainerBattleOpponent_A
ldrh r1, [r3]
@@ -1917,7 +1917,7 @@ _080D81E8:
_080D8204: .4byte gBattleTypeFlags
_080D8208: .4byte gStringVar4
_080D820C:
- bl sub_80806EC
+ bl GetTrainerALoseText
adds r4, r0, 0
b _080D8382
_080D8214:
@@ -1937,7 +1937,7 @@ _080D8214:
_080D8230: .4byte gBattleTypeFlags
_080D8234: .4byte gStringVar4
_080D8238:
- bl sub_8080710
+ bl GetTrainerWonSpeech
adds r4, r0, 0
b _080D8382
_080D8240:
@@ -2430,7 +2430,7 @@ _080D860C:
ldrb r1, [r0, 0x1]
movs r0, 0xD
muls r1, r0
- ldr r0, _080D8624 @ =gUnknown_824FC40
+ ldr r0, _080D8624 @ =gAbilityNames
_080D8616:
adds r1, r0
_080D8618:
@@ -2439,7 +2439,7 @@ _080D8618:
adds r5, 0x2
b _080D86B0
.align 2, 0
-_080D8624: .4byte gUnknown_824FC40
+_080D8624: .4byte gAbilityNames
_080D8628:
adds r0, r5, r7
ldrb r2, [r0, 0x1]
@@ -2943,7 +2943,7 @@ SetPpNumbersPaletteInMoveSelection: @ 80D89DC
ldr r0, _080D8A38 @ =gActiveBattler
ldrb r2, [r0]
lsls r1, r2, 9
- ldr r0, _080D8A3C @ =gUnknown_2022BC8
+ ldr r0, _080D8A3C @ =gBattleBufferA + 4
adds r1, r0
ldr r4, _080D8A40 @ =gUnknown_8D2FBB4
ldr r0, _080D8A44 @ =gMoveSelectionCursor
@@ -2983,7 +2983,7 @@ SetPpNumbersPaletteInMoveSelection: @ 80D89DC
bx r0
.align 2, 0
_080D8A38: .4byte gActiveBattler
-_080D8A3C: .4byte gUnknown_2022BC8
+_080D8A3C: .4byte gBattleBufferA + 4
_080D8A40: .4byte gUnknown_8D2FBB4
_080D8A44: .4byte gMoveSelectionCursor
_080D8A48: .4byte gPlttBufferUnfaded
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
deleted file mode 100644
index 5b2dd8144..000000000
--- a/asm/battle_setup.s
+++ /dev/null
@@ -1,2183 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_807F620
-sub_807F620: @ 807F620
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0807F640 @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0807F644
- cmp r0, 0x1
- beq _0807F65E
- b _0807F686
- .align 2, 0
-_0807F640: .4byte gTasks+0x8
-_0807F644:
- bl FldEffPoison_IsActive
- cmp r0, 0
- bne _0807F686
- bl HelpSystem_Disable
- ldrb r0, [r4, 0x2]
- bl BT_StartOnField
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807F686
-_0807F65E:
- bl BT_IsDone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0807F686
- bl HelpSystem_Enable
- bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _0807F68C @ =sub_800FD9C
- bl SetMainCallback2
- bl sub_806D7E8
- bl ClearPoisonStepCounter
- adds r0, r5, 0
- bl DestroyTask
-_0807F686:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F68C: .4byte sub_800FD9C
- thumb_func_end sub_807F620
-
- thumb_func_start sub_807F690
-sub_807F690: @ 807F690
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _0807F6C4 @ =sub_807F620
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807F6C8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- adds r0, r5, 0
- bl PlayMapChosenOrBattleBGM
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F6C4: .4byte sub_807F620
-_0807F6C8: .4byte gTasks
- thumb_func_end sub_807F690
-
- thumb_func_start sub_807F6CC
-sub_807F6CC: @ 807F6CC
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- cmp r0, 0x1
- bne _0807F6FC
- adds r0, r1, 0
- subs r0, 0x58
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bhi _0807F6FC
- ldr r0, _0807F6F8 @ =0x00000167
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- cmp r0, 0
- bne _0807F6FC
- movs r0, 0x1
- b _0807F6FE
- .align 2, 0
-_0807F6F8: .4byte 0x00000167
-_0807F6FC:
- movs r0, 0
-_0807F6FE:
- pop {r1}
- bx r1
- thumb_func_end sub_807F6CC
-
- thumb_func_start sub_807F704
-sub_807F704: @ 807F704
- push {lr}
- bl GetSafariZoneFlag
- cmp r0, 0
- beq _0807F714
- bl sub_807F7D8
- b _0807F744
-_0807F714:
- ldr r0, _0807F73C @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 16
- lsrs r1, 16
- bl sub_807F6CC
- lsls r0, 24
- cmp r0, 0
- beq _0807F740
- bl sub_807F810
- b _0807F744
- .align 2, 0
-_0807F73C: .4byte gSaveBlock1Ptr
-_0807F740:
- bl sub_807F748
-_0807F744:
- pop {r0}
- bx r0
- thumb_func_end sub_807F704
-
- thumb_func_start sub_807F748
-sub_807F748: @ 807F748
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_805C780
- ldr r1, _0807F780 @ =gMain
- ldr r0, _0807F784 @ =sub_807FB40
- str r0, [r1, 0x8]
- ldr r1, _0807F788 @ =gBattleTypeFlags
- movs r0, 0
- str r0, [r1]
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- .align 2, 0
-_0807F780: .4byte gMain
-_0807F784: .4byte sub_807FB40
-_0807F788: .4byte gBattleTypeFlags
- thumb_func_end sub_807F748
-
- thumb_func_start sub_807F78C
-sub_807F78C: @ 807F78C
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_805C780
- ldr r1, _0807F7C8 @ =gMain
- ldr r0, _0807F7CC @ =sub_807FB40
- str r0, [r1, 0x8]
- ldr r1, _0807F7D0 @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 3
- str r0, [r1]
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0807F7D4 @ =0x00000155
- bl sub_807F690
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- .align 2, 0
-_0807F7C8: .4byte gMain
-_0807F7CC: .4byte sub_807FB40
-_0807F7D0: .4byte gBattleTypeFlags
-_0807F7D4: .4byte 0x00000155
- thumb_func_end sub_807F78C
-
- thumb_func_start sub_807F7D8
-sub_807F7D8: @ 807F7D8
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_805C780
- ldr r1, _0807F804 @ =gMain
- ldr r0, _0807F808 @ =CB2_EndSafariBattle
- str r0, [r1, 0x8]
- ldr r1, _0807F80C @ =gBattleTypeFlags
- movs r0, 0x80
- str r0, [r1]
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- pop {r0}
- bx r0
- .align 2, 0
-_0807F804: .4byte gMain
-_0807F808: .4byte CB2_EndSafariBattle
-_0807F80C: .4byte gBattleTypeFlags
- thumb_func_end sub_807F7D8
-
- thumb_func_start sub_807F810
-sub_807F810: @ 807F810
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_805C780
- ldr r1, _0807F854 @ =gMain
- ldr r0, _0807F858 @ =sub_807FB40
- str r0, [r1, 0x8]
- ldr r1, _0807F85C @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 8
- str r0, [r1]
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- ldr r0, _0807F860 @ =gEnemyParty
- ldr r2, _0807F864 @ =gUnknown_841D148
- movs r1, 0x2
- bl SetMonData
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- .align 2, 0
-_0807F854: .4byte gMain
-_0807F858: .4byte sub_807FB40
-_0807F85C: .4byte gBattleTypeFlags
-_0807F860: .4byte gEnemyParty
-_0807F864: .4byte gUnknown_841D148
- thumb_func_end sub_807F810
-
- thumb_func_start sub_807F868
-sub_807F868: @ 807F868
- push {lr}
- bl sub_807FF80
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x9
- bl IncrementGameStat
- pop {r0}
- bx r0
- thumb_func_end sub_807F868
-
- thumb_func_start ScrSpecial_StartOldManTutorialBattle
-ScrSpecial_StartOldManTutorialBattle: @ 807F888
- push {lr}
- ldr r0, _0807F8B4 @ =gEnemyParty
- movs r1, 0xD
- movs r2, 0x5
- bl CreateMaleMon
- bl ScriptContext2_Enable
- ldr r1, _0807F8B8 @ =gMain
- ldr r0, _0807F8BC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- str r0, [r1, 0x8]
- ldr r1, _0807F8C0 @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 2
- str r0, [r1]
- movs r0, 0x8
- movs r1, 0
- bl sub_807F690
- pop {r0}
- bx r0
- .align 2, 0
-_0807F8B4: .4byte gEnemyParty
-_0807F8B8: .4byte gMain
-_0807F8BC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
-_0807F8C0: .4byte gBattleTypeFlags
- thumb_func_end ScrSpecial_StartOldManTutorialBattle
-
- thumb_func_start BattleSetup_StartScriptedWildBattle
-BattleSetup_StartScriptedWildBattle: @ 807F8C4
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _0807F8F8 @ =gMain
- ldr r0, _0807F8FC @ =sub_807FBA0
- str r0, [r1, 0x8]
- ldr r1, _0807F900 @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 10
- str r0, [r1]
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- .align 2, 0
-_0807F8F8: .4byte gMain
-_0807F8FC: .4byte sub_807FBA0
-_0807F900: .4byte gBattleTypeFlags
- thumb_func_end BattleSetup_StartScriptedWildBattle
-
- thumb_func_start ScrSpecial_StartMarowakBattle
-ScrSpecial_StartMarowakBattle: @ 807F904
- push {lr}
- sub sp, 0xC
- bl ScriptContext2_Enable
- ldr r1, _0807F944 @ =gMain
- ldr r0, _0807F948 @ =sub_807FBF0
- str r0, [r1, 0x8]
- ldr r0, _0807F94C @ =0x00000167
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- cmp r0, 0
- beq _0807F958
- ldr r1, _0807F950 @ =gBattleTypeFlags
- movs r0, 0xA0
- lsls r0, 8
- str r0, [r1]
- ldr r0, _0807F954 @ =gEnemyParty
- movs r1, 0xFE
- str r1, [sp]
- movs r1, 0xC
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x69
- movs r2, 0x1E
- movs r3, 0x1F
- bl CreateMonWithGenderNatureLetter
- b _0807F960
- .align 2, 0
-_0807F944: .4byte gMain
-_0807F948: .4byte sub_807FBF0
-_0807F94C: .4byte 0x00000167
-_0807F950: .4byte gBattleTypeFlags
-_0807F954: .4byte gEnemyParty
-_0807F958:
- ldr r1, _0807F98C @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 8
- str r0, [r1]
-_0807F960:
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- ldr r0, _0807F990 @ =gEnemyParty
- ldr r2, _0807F994 @ =gUnknown_841D148
- movs r1, 0x2
- bl SetMonData
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_0807F98C: .4byte gBattleTypeFlags
-_0807F990: .4byte gEnemyParty
-_0807F994: .4byte gUnknown_841D148
- thumb_func_end ScrSpecial_StartMarowakBattle
-
- thumb_func_start ScrSpecial_StartSouthernIslandBattle
-ScrSpecial_StartSouthernIslandBattle: @ 807F998
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _0807F9CC @ =gMain
- ldr r0, _0807F9D0 @ =sub_807FBA0
- str r0, [r1, 0x8]
- ldr r1, _0807F9D4 @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 6
- str r0, [r1]
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- .align 2, 0
-_0807F9CC: .4byte gMain
-_0807F9D0: .4byte sub_807FBA0
-_0807F9D4: .4byte gBattleTypeFlags
- thumb_func_end ScrSpecial_StartSouthernIslandBattle
-
- thumb_func_start Special_StartLegendaryBattle
-Special_StartLegendaryBattle: @ 807F9D8
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _0807FA0C @ =gMain
- ldr r0, _0807FA10 @ =sub_807FBA0
- str r0, [r1, 0x8]
- ldr r1, _0807FA14 @ =gBattleTypeFlags
- movs r0, 0x84
- lsls r0, 11
- str r0, [r1]
- ldr r0, _0807FA18 @ =gEnemyParty
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0x96
- beq _0807FA2E
- cmp r0, 0x96
- bgt _0807FA1C
- cmp r0, 0x92
- bgt _0807FA4C
- cmp r0, 0x90
- blt _0807FA4C
- b _0807FA3C
- .align 2, 0
-_0807FA0C: .4byte gMain
-_0807FA10: .4byte sub_807FBA0
-_0807FA14: .4byte gBattleTypeFlags
-_0807FA18: .4byte gEnemyParty
-_0807FA1C:
- cmp r1, 0xF9
- blt _0807FA4C
- cmp r1, 0xFA
- ble _0807FA3C
- movs r0, 0xCD
- lsls r0, 1
- cmp r1, r0
- beq _0807FA34
- b _0807FA4C
-_0807FA2E:
- movs r1, 0xAA
- lsls r1, 1
- b _0807FA3E
-_0807FA34:
- ldr r1, _0807FA38 @ =0x00000153
- b _0807FA3E
- .align 2, 0
-_0807FA38: .4byte 0x00000153
-_0807FA3C:
- ldr r1, _0807FA48 @ =0x00000155
-_0807FA3E:
- movs r0, 0
- bl sub_807F690
- b _0807FA56
- .align 2, 0
-_0807FA48: .4byte 0x00000155
-_0807FA4C:
- movs r1, 0x85
- lsls r1, 1
- movs r0, 0
- bl sub_807F690
-_0807FA56:
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- thumb_func_end Special_StartLegendaryBattle
-
- thumb_func_start Special_StartGroudonKyogreBattle
-Special_StartGroudonKyogreBattle: @ 807FA68
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _0807FA90 @ =gMain
- ldr r0, _0807FA94 @ =sub_807FBA0
- str r0, [r1, 0x8]
- ldr r1, _0807FA98 @ =gBattleTypeFlags
- movs r0, 0xC0
- lsls r0, 6
- str r0, [r1]
- ldr r0, _0807FA9C @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0807FAA0
- movs r1, 0x85
- lsls r1, 1
- movs r0, 0xB
- bl sub_807F690
- b _0807FAAA
- .align 2, 0
-_0807FA90: .4byte gMain
-_0807FA94: .4byte sub_807FBA0
-_0807FA98: .4byte gBattleTypeFlags
-_0807FA9C: .4byte gGameVersion
-_0807FAA0:
- movs r1, 0x85
- lsls r1, 1
- movs r0, 0xB
- bl sub_807F690
-_0807FAAA:
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- thumb_func_end Special_StartGroudonKyogreBattle
-
- thumb_func_start Special_StartRegiBattle
-Special_StartRegiBattle: @ 807FABC
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _0807FAEC @ =gMain
- ldr r0, _0807FAF0 @ =sub_807FBA0
- str r0, [r1, 0x8]
- ldr r1, _0807FAF4 @ =gBattleTypeFlags
- movs r0, 0xC0
- lsls r0, 7
- str r0, [r1]
- movs r1, 0x85
- lsls r1, 1
- movs r0, 0
- bl sub_807F690
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- .align 2, 0
-_0807FAEC: .4byte gMain
-_0807FAF0: .4byte sub_807FBA0
-_0807FAF4: .4byte gBattleTypeFlags
- thumb_func_end Special_StartRegiBattle
-
- thumb_func_start sub_807FAF8
-sub_807FAF8: @ 807FAF8
- push {lr}
- bl LoadPlayerParty
- bl sub_807FB40
- pop {r0}
- bx r0
- thumb_func_end sub_807FAF8
-
- thumb_func_start sub_807FB08
-sub_807FB08: @ 807FB08
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_805C780
- ldr r1, _0807FB38 @ =gMain
- ldr r0, _0807FB3C @ =sub_807FAF8
- str r0, [r1, 0x8]
- bl SavePlayerParty
- bl InitPokedudePartyAndOpponent
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- pop {r0}
- bx r0
- .align 2, 0
-_0807FB38: .4byte gMain
-_0807FB3C: .4byte sub_807FAF8
- thumb_func_end sub_807FB08
-
- thumb_func_start sub_807FB40
-sub_807FB40: @ 807FB40
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _0807FB74 @ =0x01000100
- mov r0, sp
- bl CpuSet
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- ldr r0, _0807FB78 @ =gBattleOutcome
- ldrb r0, [r0]
- bl IsPlayerDefeated
- cmp r0, 0x1
- bne _0807FB80
- ldr r0, _0807FB7C @ =c2_whiteout
- bl SetMainCallback2
- b _0807FB8C
- .align 2, 0
-_0807FB74: .4byte 0x01000100
-_0807FB78: .4byte gBattleOutcome
-_0807FB7C: .4byte c2_whiteout
-_0807FB80:
- ldr r0, _0807FB94 @ =CB2_ReturnToField
- bl SetMainCallback2
- ldr r1, _0807FB98 @ =gFieldCallback
- ldr r0, _0807FB9C @ =sub_807E3EC
- str r0, [r1]
-_0807FB8C:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0807FB94: .4byte CB2_ReturnToField
-_0807FB98: .4byte gFieldCallback
-_0807FB9C: .4byte sub_807E3EC
- thumb_func_end sub_807FB40
-
- thumb_func_start sub_807FBA0
-sub_807FBA0: @ 807FBA0
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _0807FBD4 @ =0x01000100
- mov r0, sp
- bl CpuSet
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- ldr r0, _0807FBD8 @ =gBattleOutcome
- ldrb r0, [r0]
- bl IsPlayerDefeated
- cmp r0, 0x1
- bne _0807FBE0
- ldr r0, _0807FBDC @ =c2_whiteout
- bl SetMainCallback2
- b _0807FBE6
- .align 2, 0
-_0807FBD4: .4byte 0x01000100
-_0807FBD8: .4byte gBattleOutcome
-_0807FBDC: .4byte c2_whiteout
-_0807FBE0:
- ldr r0, _0807FBEC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
-_0807FBE6:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0807FBEC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
- thumb_func_end sub_807FBA0
-
- thumb_func_start sub_807FBF0
-sub_807FBF0: @ 807FBF0
- push {r4,lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _0807FC24 @ =0x01000100
- mov r0, sp
- bl CpuSet
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- ldr r4, _0807FC28 @ =gBattleOutcome
- ldrb r0, [r4]
- bl IsPlayerDefeated
- adds r1, r0, 0
- cmp r1, 0
- beq _0807FC30
- ldr r0, _0807FC2C @ =c2_whiteout
- bl SetMainCallback2
- b _0807FC4C
- .align 2, 0
-_0807FC24: .4byte 0x01000100
-_0807FC28: .4byte gBattleOutcome
-_0807FC2C: .4byte c2_whiteout
-_0807FC30:
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _0807FC40
- ldr r0, _0807FC3C @ =gSpecialVar_Result
- strh r1, [r0]
- b _0807FC46
- .align 2, 0
-_0807FC3C: .4byte gSpecialVar_Result
-_0807FC40:
- ldr r1, _0807FC54 @ =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
-_0807FC46:
- ldr r0, _0807FC58 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
-_0807FC4C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FC54: .4byte gSpecialVar_Result
-_0807FC58: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
- thumb_func_end sub_807FBF0
-
- thumb_func_start sub_807FC5C
-sub_807FC5C: @ 807FC5C
- push {r4,r5,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsTallGrass_2
- lsls r0, 24
- cmp r0, 0
- beq _0807FC92
- movs r0, 0
- b _0807FD88
-_0807FC92:
- adds r0, r4, 0
- bl MetatileBehavior_ReturnFalse_3
- lsls r0, 24
- cmp r0, 0
- beq _0807FCA2
- movs r0, 0x1
- b _0807FD88
-_0807FCA2:
- adds r0, r4, 0
- bl MetatileBehavior_IsMB21OrWaterfallBottom
- lsls r0, 24
- cmp r0, 0
- beq _0807FCB2
- movs r0, 0x2
- b _0807FD88
-_0807FCB2:
- ldr r0, _0807FCC8 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- subs r0, 0x1
- cmp r0, 0x8
- bhi _0807FD2C
- lsls r0, 2
- ldr r1, _0807FCCC @ =_0807FCD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807FCC8: .4byte gMapHeader
-_0807FCCC: .4byte _0807FCD0
- .align 2, 0
-_0807FCD0:
- .4byte _0807FD2C
- .4byte _0807FD2C
- .4byte _0807FD2C
- .4byte _0807FCF4
- .4byte _0807FD18
- .4byte _0807FD1C
- .4byte _0807FD2C
- .4byte _0807FD04
- .4byte _0807FD04
-_0807FCF4:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsMB0B
- lsls r0, 24
- cmp r0, 0
- beq _0807FD08
-_0807FD04:
- movs r0, 0x8
- b _0807FD88
-_0807FD08:
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfable
- lsls r0, 24
- cmp r0, 0
- bne _0807FD70
- movs r0, 0x7
- b _0807FD88
-_0807FD18:
- movs r0, 0x3
- b _0807FD88
-_0807FD1C:
- lsls r0, r5, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSurfable
- lsls r0, 24
- cmp r0, 0
- bne _0807FD82
- b _0807FD86
-_0807FD2C:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsDeepSemiDeepOrSplashingWater
- lsls r0, 24
- cmp r0, 0
- bne _0807FD82
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfable
- lsls r0, 24
- cmp r0, 0
- bne _0807FD70
- adds r0, r4, 0
- bl MetatileBehavior_IsMB0C
- lsls r0, 24
- cmp r0, 0
- beq _0807FD58
- movs r0, 0x6
- b _0807FD88
-_0807FD58:
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0807FD86
- adds r0, r4, 0
- bl MetatileBehavior_ReturnFalse_7
- lsls r0, 24
- cmp r0, 0
- beq _0807FD74
-_0807FD70:
- movs r0, 0x5
- b _0807FD88
-_0807FD74:
- adds r0, r4, 0
- bl MetatileBehavior_ReturnFalse_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0807FD86
-_0807FD82:
- movs r0, 0x4
- b _0807FD88
-_0807FD86:
- movs r0, 0x9
-_0807FD88:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_807FC5C
-
- thumb_func_start GetBattleTransitionTypeByMap
-GetBattleTransitionTypeByMap: @ 807FD90
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r4, r0, 16
- bl sav1_get_flash_used_on_map
- lsls r0, 24
- cmp r0, 0
- beq _0807FDC0
- movs r0, 0x2
- b _0807FDEA
-_0807FDC0:
- lsls r0, r4, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSurfable
- lsls r0, 24
- cmp r0, 0
- bne _0807FDE8
- ldr r0, _0807FDE0 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x4
- beq _0807FDE4
- cmp r0, 0x5
- beq _0807FDE8
- movs r0, 0
- b _0807FDEA
- .align 2, 0
-_0807FDE0: .4byte gMapHeader
-_0807FDE4:
- movs r0, 0x1
- b _0807FDEA
-_0807FDE8:
- movs r0, 0x3
-_0807FDEA:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetBattleTransitionTypeByMap
-
- thumb_func_start GetSumOfPlayerPartyLevel
-GetSumOfPlayerPartyLevel: @ 807FDF4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- movs r6, 0
-_0807FDFE:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _0807FE50 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- beq _0807FE42
- cmp r1, 0
- beq _0807FE42
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0807FE42
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- adds r0, r7, r0
- lsls r0, 24
- lsrs r7, r0, 24
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _0807FE48
-_0807FE42:
- adds r6, 0x1
- cmp r6, 0x5
- ble _0807FDFE
-_0807FE48:
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807FE50: .4byte gPlayerParty
- thumb_func_end GetSumOfPlayerPartyLevel
-
- thumb_func_start reads_trainer_data_byte0
-reads_trainer_data_byte0: @ 807FE54
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r5, _0807FE88 @ =gTrainers
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r5
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r4
- bcs _0807FE74
- adds r4, r0, 0
-_0807FE74:
- movs r3, 0
- ldrb r0, [r2]
- cmp r0, 0x1
- beq _0807FEBC
- cmp r0, 0x1
- bgt _0807FE8C
- cmp r0, 0
- beq _0807FE96
- b _0807FF2C
- .align 2, 0
-_0807FE88: .4byte gTrainers
-_0807FE8C:
- cmp r0, 0x2
- beq _0807FEE2
- cmp r0, 0x3
- beq _0807FF08
- b _0807FF2C
-_0807FE96:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0807FF2C
-_0807FEA4:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _0807FEA4
- b _0807FF2C
-_0807FEBC:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0807FF2C
-_0807FECA:
- lsls r0, r2, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _0807FECA
- b _0807FF2C
-_0807FEE2:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0807FF2C
-_0807FEF0:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _0807FEF0
- b _0807FF2C
-_0807FF08:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0807FF2C
-_0807FF16:
- lsls r0, r2, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _0807FF16
-_0807FF2C:
- adds r0, r3, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end reads_trainer_data_byte0
-
- thumb_func_start GetWildBattleTransition
-GetWildBattleTransition: @ 807FF34
- push {r4,r5,lr}
- bl GetBattleTransitionTypeByMap
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0807FF64 @ =gEnemyParty
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl GetSumOfPlayerPartyLevel
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _0807FF6C
- ldr r0, _0807FF68 @ =gUnknown_83C68F0
- lsls r1, r5, 1
- adds r0, 0x1
- b _0807FF70
- .align 2, 0
-_0807FF64: .4byte gEnemyParty
-_0807FF68: .4byte gUnknown_83C68F0
-_0807FF6C:
- ldr r0, _0807FF7C @ =gUnknown_83C68F0
- lsls r1, r5, 1
-_0807FF70:
- adds r1, r0
- ldrb r0, [r1]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0807FF7C: .4byte gUnknown_83C68F0
- thumb_func_end GetWildBattleTransition
-
- thumb_func_start sub_807FF80
-sub_807FF80: @ 807FF80
- push {r4-r6,lr}
- ldr r4, _0807FFB4 @ =gTrainerBattleOpponent_A
- ldrh r1, [r4]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0808000C
- ldr r1, _0807FFB8 @ =gTrainers
- ldrh r2, [r4]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x1]
- cmp r1, 0x57
- bne _08080008
- adds r1, r2, 0
- movs r0, 0xCD
- lsls r0, 1
- cmp r1, r0
- beq _0807FFB0
- ldr r0, _0807FFBC @ =0x000002df
- cmp r1, r0
- bne _0807FFC0
-_0807FFB0:
- movs r0, 0xC
- b _08080054
- .align 2, 0
-_0807FFB4: .4byte gTrainerBattleOpponent_A
-_0807FFB8: .4byte gTrainers
-_0807FFBC: .4byte 0x000002df
-_0807FFC0:
- ldr r0, _0807FFD4 @ =0x0000019b
- cmp r1, r0
- beq _0807FFCE
- movs r0, 0xB8
- lsls r0, 2
- cmp r1, r0
- bne _0807FFD8
-_0807FFCE:
- movs r0, 0xD
- b _08080054
- .align 2, 0
-_0807FFD4: .4byte 0x0000019b
-_0807FFD8:
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- beq _0807FFE6
- ldr r0, _0807FFEC @ =0x000002e1
- cmp r1, r0
- bne _0807FFF0
-_0807FFE6:
- movs r0, 0xE
- b _08080054
- .align 2, 0
-_0807FFEC: .4byte 0x000002e1
-_0807FFF0:
- ldr r0, _08080000 @ =0x0000019d
- cmp r1, r0
- beq _0807FFFC
- ldr r0, _08080004 @ =0x000002e2
- cmp r1, r0
- bne _0808000C
-_0807FFFC:
- movs r0, 0xF
- b _08080054
- .align 2, 0
-_08080000: .4byte 0x0000019d
-_08080004: .4byte 0x000002e2
-_08080008:
- cmp r1, 0x5A
- bne _08080010
-_0808000C:
- movs r0, 0x10
- b _08080054
-_08080010:
- ldrb r0, [r0, 0x18]
- movs r5, 0x1
- cmp r0, 0x1
- bne _0808001A
- movs r5, 0x2
-_0808001A:
- bl GetBattleTransitionTypeByMap
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4]
- adds r1, r5, 0
- bl reads_trainer_data_byte0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl GetSumOfPlayerPartyLevel
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _0808004C
- ldr r0, _08080048 @ =gUnknown_83C68F8
- lsls r1, r6, 1
- adds r0, 0x1
- b _08080050
- .align 2, 0
-_08080048: .4byte gUnknown_83C68F8
-_0808004C:
- ldr r0, _0808005C @ =gUnknown_83C68F8
- lsls r1, r6, 1
-_08080050:
- adds r1, r0
- ldrb r0, [r1]
-_08080054:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0808005C: .4byte gUnknown_83C68F8
- thumb_func_end sub_807FF80
-
- thumb_func_start sub_8080060
-sub_8080060: @ 8080060
- push {r4,lr}
- ldr r0, _08080084 @ =gEnemyParty
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl GetSumOfPlayerPartyLevel
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08080088
- movs r0, 0x3
- b _0808008A
- .align 2, 0
-_08080084: .4byte gEnemyParty
-_08080088:
- movs r0, 0x4
-_0808008A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8080060
-
- thumb_func_start TrainerBattleLoadArg32
-TrainerBattleLoadArg32: @ 8080090
- adds r2, r0, 0
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- orrs r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- orrs r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- orrs r0, r1
- bx lr
- thumb_func_end TrainerBattleLoadArg32
-
- thumb_func_start TrainerBattleLoadArg16
-TrainerBattleLoadArg16: @ 80800A8
- adds r1, r0, 0
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- orrs r0, r1
- bx lr
- thumb_func_end TrainerBattleLoadArg16
-
- thumb_func_start TrainerBattleLoadArg8
-TrainerBattleLoadArg8: @ 80800B4
- ldrb r0, [r0]
- bx lr
- thumb_func_end TrainerBattleLoadArg8
-
- thumb_func_start trainerflag_opponent
-trainerflag_opponent: @ 80800B8
- ldr r1, _080800CC @ =gTrainerBattleOpponent_A
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bx lr
- .align 2, 0
-_080800CC: .4byte gTrainerBattleOpponent_A
- thumb_func_end trainerflag_opponent
-
- thumb_func_start IsPlayerDefeated
-IsPlayerDefeated: @ 80800D0
- push {lr}
- subs r0, 0x1
- cmp r0, 0x6
- bhi _08080108
- lsls r0, 2
- ldr r1, _080800E4 @ =_080800E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080800E4: .4byte _080800E8
- .align 2, 0
-_080800E8:
- .4byte _08080108
- .4byte _08080104
- .4byte _08080104
- .4byte _08080108
- .4byte _08080108
- .4byte _08080108
- .4byte _08080108
-_08080104:
- movs r0, 0x1
- b _0808010A
-_08080108:
- movs r0, 0
-_0808010A:
- pop {r1}
- bx r1
- thumb_func_end IsPlayerDefeated
-
- thumb_func_start sub_8080110
-sub_8080110: @ 8080110
- ldr r0, _08080140 @ =gUnknown_20386AC
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08080144 @ =gTrainerBattleOpponent_A
- strh r1, [r0]
- ldr r0, _08080148 @ =gUnknown_20386B0
- strh r1, [r0]
- ldr r0, _0808014C @ =gUnknown_20386B4
- movs r1, 0
- str r1, [r0]
- ldr r0, _08080150 @ =gUnknown_20386B8
- str r1, [r0]
- ldr r0, _08080154 @ =gUnknown_20386BC
- str r1, [r0]
- ldr r0, _08080158 @ =gUnknown_20386C0
- str r1, [r0]
- ldr r0, _0808015C @ =gUnknown_20386C4
- str r1, [r0]
- ldr r0, _08080160 @ =gUnknown_20386C8
- str r1, [r0]
- ldr r0, _08080164 @ =gUnknown_20386CC
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08080140: .4byte gUnknown_20386AC
-_08080144: .4byte gTrainerBattleOpponent_A
-_08080148: .4byte gUnknown_20386B0
-_0808014C: .4byte gUnknown_20386B4
-_08080150: .4byte gUnknown_20386B8
-_08080154: .4byte gUnknown_20386BC
-_08080158: .4byte gUnknown_20386C0
-_0808015C: .4byte gUnknown_20386C4
-_08080160: .4byte gUnknown_20386C8
-_08080164: .4byte gUnknown_20386CC
- thumb_func_end sub_8080110
-
- thumb_func_start TrainerBattleLoadArgs
-TrainerBattleLoadArgs: @ 8080168
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
-_0808016E:
- ldrb r0, [r4, 0x4]
- cmp r0, 0x6
- bhi _080801E0
- lsls r0, 2
- ldr r1, _08080180 @ =_08080184
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08080180: .4byte _08080184
- .align 2, 0
-_08080184:
- .4byte _080801A0
- .4byte _080801AE
- .4byte _080801BC
- .4byte _080801CA
- .4byte _080801D2
- .4byte _080801DA
- .4byte _080801E4
-_080801A0:
- adds r0, r5, 0
- bl TrainerBattleLoadArg8
- ldr r1, [r4]
- strb r0, [r1]
- adds r5, 0x1
- b _080801E0
-_080801AE:
- adds r0, r5, 0
- bl TrainerBattleLoadArg16
- ldr r1, [r4]
- strh r0, [r1]
- adds r5, 0x2
- b _080801E0
-_080801BC:
- adds r0, r5, 0
- bl TrainerBattleLoadArg32
- ldr r1, [r4]
- str r0, [r1]
- adds r5, 0x4
- b _080801E0
-_080801CA:
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1]
- b _080801E0
-_080801D2:
- ldr r1, [r4]
- movs r0, 0
- strh r0, [r1]
- b _080801E0
-_080801DA:
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_080801E0:
- adds r4, 0x8
- b _0808016E
-_080801E4:
- ldr r0, [r4]
- str r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end TrainerBattleLoadArgs
-
- thumb_func_start battle_80801F0
-battle_80801F0: @ 80801F0
- push {lr}
- ldr r0, _08080218 @ =gUnknown_20386B0
- ldrh r1, [r0]
- cmp r1, 0
- beq _08080212
- ldr r0, _0808021C @ =gSpecialVar_LastTalked
- strh r1, [r0]
- lsls r0, r1, 24
- lsrs r0, 24
- ldr r1, _08080220 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl GetFieldObjectIdByLocalIdAndMap
- ldr r1, _08080224 @ =gSelectedEventObject
- strb r0, [r1]
-_08080212:
- pop {r0}
- bx r0
- .align 2, 0
-_08080218: .4byte gUnknown_20386B0
-_0808021C: .4byte gSpecialVar_LastTalked
-_08080220: .4byte gSaveBlock1Ptr
-_08080224: .4byte gSelectedEventObject
- thumb_func_end battle_80801F0
-
- thumb_func_start BattleSetup_ConfigureTrainerBattle
-BattleSetup_ConfigureTrainerBattle: @ 8080228
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8080110
- ldr r4, _08080250 @ =gUnknown_20386AC
- adds r0, r5, 0
- bl TrainerBattleLoadArg8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r0, [r4]
- subs r0, 0x1
- cmp r0, 0x8
- bhi _08080318
- lsls r0, 2
- ldr r1, _08080254 @ =_08080258
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08080250: .4byte gUnknown_20386AC
-_08080254: .4byte _08080258
- .align 2, 0
-_08080258:
- .4byte _0808028C
- .4byte _0808028C
- .4byte _0808027C
- .4byte _08080284
- .4byte _080802D8
- .4byte _08080294
- .4byte _080802AC
- .4byte _08080294
- .4byte _08080304
-_0808027C:
- ldr r0, _08080280 @ =gUnknown_83C69D8
- b _08080306
- .align 2, 0
-_08080280: .4byte gUnknown_83C69D8
-_08080284:
- ldr r0, _08080288 @ =gUnknown_83C6990
- b _08080296
- .align 2, 0
-_08080288: .4byte gUnknown_83C6990
-_0808028C:
- ldr r0, _08080290 @ =gUnknown_83C6948
- b _0808031A
- .align 2, 0
-_08080290: .4byte gUnknown_83C6948
-_08080294:
- ldr r0, _080802A4 @ =gUnknown_83C6A68
-_08080296:
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r0, _080802A8 @ =gUnknown_81A4EE9
- b _08080326
- .align 2, 0
-_080802A4: .4byte gUnknown_83C6A68
-_080802A8: .4byte gUnknown_81A4EE9
-_080802AC:
- bl sub_811231C
- ldr r0, _080802CC @ =gUnknown_83C6990
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r4, _080802D0 @ =gTrainerBattleOpponent_A
- ldrh r0, [r4]
- bl sub_810CE64
- strh r0, [r4]
- ldr r0, _080802D4 @ =gUnknown_81A4F73
- b _08080326
- .align 2, 0
-_080802CC: .4byte gUnknown_83C6990
-_080802D0: .4byte gTrainerBattleOpponent_A
-_080802D4: .4byte gUnknown_81A4F73
-_080802D8:
- bl sub_811231C
- ldr r0, _080802F8 @ =gUnknown_83C6900
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r4, _080802FC @ =gTrainerBattleOpponent_A
- ldrh r0, [r4]
- bl sub_810CE64
- strh r0, [r4]
- ldr r0, _08080300 @ =gUnknown_81A4F3E
- b _08080326
- .align 2, 0
-_080802F8: .4byte gUnknown_83C6900
-_080802FC: .4byte gTrainerBattleOpponent_A
-_08080300: .4byte gUnknown_81A4F3E
-_08080304:
- ldr r0, _08080310 @ =gUnknown_83C6A20
-_08080306:
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- ldr r0, _08080314 @ =gUnknown_81A4F21
- b _08080326
- .align 2, 0
-_08080310: .4byte gUnknown_83C6A20
-_08080314: .4byte gUnknown_81A4F21
-_08080318:
- ldr r0, _0808032C @ =gUnknown_83C6900
-_0808031A:
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r0, _08080330 @ =gUnknown_81A4EC1
-_08080326:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0808032C: .4byte gUnknown_83C6900
-_08080330: .4byte gUnknown_81A4EC1
- thumb_func_end BattleSetup_ConfigureTrainerBattle
-
- thumb_func_start TrainerWantsBattle
-TrainerWantsBattle: @ 8080334
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08080368 @ =gSelectedEventObject
- strb r0, [r2]
- ldr r4, _0808036C @ =gSpecialVar_LastTalked
- ldr r3, _08080370 @ =gMapObjects
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r0, [r2, 0x8]
- strh r0, [r4]
- adds r1, 0x1
- adds r0, r1, 0
- bl BattleSetup_ConfigureTrainerBattle
- ldr r0, _08080374 @ =gUnknown_81A4EB4
- bl ScriptContext1_SetupScript
- bl ScriptContext2_Enable
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08080368: .4byte gSelectedEventObject
-_0808036C: .4byte gSpecialVar_LastTalked
-_08080370: .4byte gMapObjects
-_08080374: .4byte gUnknown_81A4EB4
- thumb_func_end TrainerWantsBattle
-
- thumb_func_start GetTrainerFlagFromScriptPointer
-GetTrainerFlagFromScriptPointer: @ 8080378
- push {lr}
- adds r0, 0x2
- bl TrainerBattleLoadArg16
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetTrainerFlagFromScriptPointer
-
- thumb_func_start sub_8080398
-sub_8080398: @ 8080398
- push {r4,lr}
- ldr r0, _080803C4 @ =gSelectedEventObject
- ldrb r0, [r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080803C8 @ =gMapObjects
- adds r4, r0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl npc_running_behaviour_by_direction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl npc_set_running_behaviour_etc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080803C4: .4byte gSelectedEventObject
-_080803C8: .4byte gMapObjects
- thumb_func_end sub_8080398
-
- thumb_func_start ScrSpecial_GetTrainerBattleMode
-ScrSpecial_GetTrainerBattleMode: @ 80803CC
- ldr r0, _080803D4 @ =gUnknown_20386AC
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080803D4: .4byte gUnknown_20386AC
- thumb_func_end ScrSpecial_GetTrainerBattleMode
-
- thumb_func_start sub_80803D8
-sub_80803D8: @ 80803D8
- ldr r0, _080803E0 @ =gUnknown_20386CC
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_080803E0: .4byte gUnknown_20386CC
- thumb_func_end sub_80803D8
-
- thumb_func_start ScrSpecial_HasTrainerBeenFought
-ScrSpecial_HasTrainerBeenFought: @ 80803E4
- push {lr}
- bl trainerflag_opponent
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end ScrSpecial_HasTrainerBeenFought
-
- thumb_func_start sub_80803FC
-sub_80803FC: @ 80803FC
- push {lr}
- bl trainerflag_opponent
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end sub_80803FC
-
- thumb_func_start sub_8080410
-sub_8080410: @ 8080410
- push {lr}
- bl trainerflag_opponent
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end sub_8080410
-
- thumb_func_start HasTrainerAlreadyBeenFought
-HasTrainerAlreadyBeenFought: @ 8080424
- push {lr}
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end HasTrainerAlreadyBeenFought
-
- thumb_func_start SetTrainerFlag
-SetTrainerFlag: @ 808043C
- push {lr}
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end SetTrainerFlag
-
- thumb_func_start ClearTrainerFlag
-ClearTrainerFlag: @ 8080450
- push {lr}
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagClear
- pop {r0}
- bx r0
- thumb_func_end ClearTrainerFlag
-
- thumb_func_start BattleSetup_StartTrainerBattle
-BattleSetup_StartTrainerBattle: @ 8080464
- push {r4,lr}
- ldr r4, _080804A0 @ =gBattleTypeFlags
- movs r0, 0x8
- str r0, [r4]
- bl ScrSpecial_GetTrainerBattleMode
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bne _0808048C
- bl sub_80803D8
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0
- beq _0808048C
- ldr r0, [r4]
- movs r1, 0x10
- orrs r0, r1
- str r0, [r4]
-_0808048C:
- ldr r1, _080804A4 @ =gMain
- ldr r0, _080804A8 @ =sub_80804AC
- str r0, [r1, 0x8]
- bl sub_807F868
- bl ScriptContext1_Stop
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080804A0: .4byte gBattleTypeFlags
-_080804A4: .4byte gMain
-_080804A8: .4byte sub_80804AC
- thumb_func_end BattleSetup_StartTrainerBattle
-
- thumb_func_start sub_80804AC
-sub_80804AC: @ 80804AC
- push {lr}
- ldr r0, _080804D8 @ =gUnknown_20386AC
- ldrh r0, [r0]
- cmp r0, 0x9
- bne _08080508
- ldr r0, _080804DC @ =gBattleOutcome
- ldrb r0, [r0]
- bl IsPlayerDefeated
- adds r1, r0, 0
- cmp r1, 0x1
- bne _080804E8
- ldr r0, _080804E0 @ =gSpecialVar_Result
- strh r1, [r0]
- ldr r0, _080804E4 @ =gUnknown_20386CC
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08080530
- bl sp000_heal_pokemon
- b _080804EE
- .align 2, 0
-_080804D8: .4byte gUnknown_20386AC
-_080804DC: .4byte gBattleOutcome
-_080804E0: .4byte gSpecialVar_Result
-_080804E4: .4byte gUnknown_20386CC
-_080804E8:
- ldr r0, _08080500 @ =gSpecialVar_Result
- movs r1, 0
- strh r1, [r0]
-_080804EE:
- ldr r0, _08080504 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- bl sub_80803FC
- bl sub_81139BC
- b _0808054E
- .align 2, 0
-_08080500: .4byte gSpecialVar_Result
-_08080504: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
-_08080508:
- ldr r0, _0808051C @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08080524
- ldr r0, _08080520 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- b _0808054E
- .align 2, 0
-_0808051C: .4byte gTrainerBattleOpponent_A
-_08080520: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
-_08080524:
- ldr r0, _08080538 @ =gBattleOutcome
- ldrb r0, [r0]
- bl IsPlayerDefeated
- cmp r0, 0x1
- bne _08080540
-_08080530:
- ldr r0, _0808053C @ =c2_whiteout
- bl SetMainCallback2
- b _0808054E
- .align 2, 0
-_08080538: .4byte gBattleOutcome
-_0808053C: .4byte c2_whiteout
-_08080540:
- ldr r0, _08080554 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- bl sub_80803FC
- bl sub_81139BC
-_0808054E:
- pop {r0}
- bx r0
- .align 2, 0
-_08080554: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
- thumb_func_end sub_80804AC
-
- thumb_func_start sub_8080558
-sub_8080558: @ 8080558
- push {lr}
- ldr r0, _08080570 @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08080578
- ldr r0, _08080574 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- b _080805A6
- .align 2, 0
-_08080570: .4byte gTrainerBattleOpponent_A
-_08080574: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
-_08080578:
- ldr r0, _0808058C @ =gBattleOutcome
- ldrb r0, [r0]
- bl IsPlayerDefeated
- cmp r0, 0x1
- bne _08080594
- ldr r0, _08080590 @ =c2_whiteout
- bl SetMainCallback2
- b _080805A6
- .align 2, 0
-_0808058C: .4byte gBattleOutcome
-_08080590: .4byte c2_whiteout
-_08080594:
- ldr r0, _080805AC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- bl sub_80803FC
- bl sub_810CDE8
- bl sub_81138F8
-_080805A6:
- pop {r0}
- bx r0
- .align 2, 0
-_080805AC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
- thumb_func_end sub_8080558
-
- thumb_func_start ScrSpecial_StartTrainerEyeRematch
-ScrSpecial_StartTrainerEyeRematch: @ 80805B0
- push {lr}
- ldr r1, _080805CC @ =gBattleTypeFlags
- movs r0, 0x8
- str r0, [r1]
- ldr r1, _080805D0 @ =gMain
- ldr r0, _080805D4 @ =sub_8080558
- str r0, [r1, 0x8]
- bl sub_807F868
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_080805CC: .4byte gBattleTypeFlags
-_080805D0: .4byte gMain
-_080805D4: .4byte sub_8080558
- thumb_func_end ScrSpecial_StartTrainerEyeRematch
-
- thumb_func_start ScrSpecial_ShowTrainerIntroSpeech
-ScrSpecial_ShowTrainerIntroSpeech: @ 80805D8
- push {lr}
- bl sub_80806D8
- bl ShowFieldMessage
- pop {r0}
- bx r0
- thumb_func_end ScrSpecial_ShowTrainerIntroSpeech
-
- thumb_func_start BattleSetup_GetScriptAddrAfterBattle
-BattleSetup_GetScriptAddrAfterBattle: @ 80805E8
- push {lr}
- ldr r0, _080805F8 @ =gUnknown_20386C4
- ldr r0, [r0]
- cmp r0, 0
- bne _080805F4
- ldr r0, _080805FC @ =EventScript_1C555B
-_080805F4:
- pop {r1}
- bx r1
- .align 2, 0
-_080805F8: .4byte gUnknown_20386C4
-_080805FC: .4byte EventScript_1C555B
- thumb_func_end BattleSetup_GetScriptAddrAfterBattle
-
- thumb_func_start BattleSetup_GetTrainerPostBattleScript
-BattleSetup_GetTrainerPostBattleScript: @ 8080600
- push {lr}
- ldr r0, _08080610 @ =gUnknown_20386C8
- ldr r0, [r0]
- cmp r0, 0
- bne _0808060C
- ldr r0, _08080614 @ =EventScript_1C555B
-_0808060C:
- pop {r1}
- bx r1
- .align 2, 0
-_08080610: .4byte gUnknown_20386C8
-_08080614: .4byte EventScript_1C555B
- thumb_func_end BattleSetup_GetTrainerPostBattleScript
-
- thumb_func_start ScrSpecial_ShowTrainerNonBattlingSpeech
-ScrSpecial_ShowTrainerNonBattlingSpeech: @ 8080618
- push {lr}
- bl sub_8080734
- bl ShowFieldMessage
- pop {r0}
- bx r0
- thumb_func_end ScrSpecial_ShowTrainerNonBattlingSpeech
-
- thumb_func_start PlayTrainerEncounterMusic
-PlayTrainerEncounterMusic: @ 8080628
- push {lr}
- ldr r0, _08080660 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080806BE
- ldr r0, _08080664 @ =gUnknown_20386AC
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080806BE
- cmp r0, 0x8
- beq _080806BE
- ldr r0, _08080668 @ =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- bl GetTrainerEncounterMusicId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bhi _080806B8
- lsls r0, 2
- ldr r1, _0808066C @ =_08080670
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08080660: .4byte gUnknown_203ADFA
-_08080664: .4byte gUnknown_20386AC
-_08080668: .4byte gTrainerBattleOpponent_A
-_0808066C: .4byte _08080670
- .align 2, 0
-_08080670:
- .4byte _080806AE
- .4byte _080806A8
- .4byte _080806A8
- .4byte _080806B8
- .4byte _080806AE
- .4byte _080806AE
- .4byte _080806B8
- .4byte _080806B8
- .4byte _080806AE
- .4byte _080806A8
- .4byte _080806AE
- .4byte _080806AE
- .4byte _080806AE
- .4byte _080806AE
-_080806A8:
- @ MUS_SHOUJO
- movs r0, 0x8E
- lsls r0, 1
- b _080806BA
-_080806AE:
- @ MUS_SHOUNEN
- ldr r0, _080806B4 @ =0x0000011d
- b _080806BA
- .align 2, 0
-_080806B4: .4byte 0x0000011d
-_080806B8:
- @ MUS_ROCKET
- ldr r0, _080806C4 @ =0x0000011b
-_080806BA:
- bl PlayNewMapMusic
-_080806BE:
- pop {r0}
- bx r0
- .align 2, 0
-_080806C4: .4byte 0x0000011b
- thumb_func_end PlayTrainerEncounterMusic
-
- thumb_func_start sub_80806C8
-sub_80806C8: @ 80806C8
- push {lr}
- cmp r0, 0
- bne _080806D0
- ldr r0, _080806D4 @ =gString_Dummy
-_080806D0:
- pop {r1}
- bx r1
- .align 2, 0
-_080806D4: .4byte gString_Dummy
- thumb_func_end sub_80806C8
-
- thumb_func_start sub_80806D8
-sub_80806D8: @ 80806D8
- push {lr}
- ldr r0, _080806E8 @ =gUnknown_20386B4
- ldr r0, [r0]
- bl sub_80806C8
- pop {r1}
- bx r1
- .align 2, 0
-_080806E8: .4byte gUnknown_20386B4
- thumb_func_end sub_80806D8
-
- thumb_func_start sub_80806EC
-sub_80806EC: @ 80806EC
- push {r4,lr}
- ldr r0, _08080708 @ =gUnknown_20386B8
- ldr r0, [r0]
- ldr r4, _0808070C @ =gStringVar4
- bl sub_80806C8
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08080708: .4byte gUnknown_20386B8
-_0808070C: .4byte gStringVar4
- thumb_func_end sub_80806EC
-
- thumb_func_start sub_8080710
-sub_8080710: @ 8080710
- push {r4,lr}
- ldr r4, _0808072C @ =gStringVar4
- ldr r0, _08080730 @ =gUnknown_20386BC
- ldr r0, [r0]
- bl sub_80806C8
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0808072C: .4byte gStringVar4
-_08080730: .4byte gUnknown_20386BC
- thumb_func_end sub_8080710
-
- thumb_func_start sub_8080734
-sub_8080734: @ 8080734
- push {lr}
- ldr r0, _08080744 @ =gUnknown_20386C0
- ldr r0, [r0]
- bl sub_80806C8
- pop {r1}
- bx r1
- .align 2, 0
-_08080744: .4byte gUnknown_20386C0
- thumb_func_end sub_8080734
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 72cba63a3..eddc03f83 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -2034,7 +2034,7 @@ sub_80E68C4: @ 80E68C4
ldr r1, _080E68F8 @ =sub_80E6854
str r1, [r0, 0x8]
bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _080E68FC @ =sub_800FD9C
+ ldr r0, _080E68FC @ =CB2_InitBattle
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
@@ -2045,7 +2045,7 @@ _080E68EC:
.align 2, 0
_080E68F4: .4byte gMain
_080E68F8: .4byte sub_80E6854
-_080E68FC: .4byte sub_800FD9C
+_080E68FC: .4byte CB2_InitBattle
thumb_func_end sub_80E68C4
thumb_func_start StartSpecialBattle
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 4c265b65f..01aa8d217 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -1637,7 +1637,7 @@ _0808141A:
lsls r2, 4
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _08081448 @ =sub_800FD9C
+ ldr r0, _08081448 @ =CB2_InitBattle
bl SetMainCallback2
ldr r1, _0808144C @ =gMain
ldr r0, _08081450 @ =sub_8081668
@@ -1651,7 +1651,7 @@ _0808143A:
.align 2, 0
_08081440: .4byte gBattleTypeFlags
_08081444: .4byte gTrainerBattleOpponent_A
-_08081448: .4byte sub_800FD9C
+_08081448: .4byte CB2_InitBattle
_0808144C: .4byte gMain
_08081450: .4byte sub_8081668
thumb_func_end sub_8081318
@@ -1860,7 +1860,7 @@ _080815EA:
lsls r3, 4
adds r0, r3, 0
strh r0, [r1]
- ldr r0, _08081618 @ =sub_800FD9C
+ ldr r0, _08081618 @ =CB2_InitBattle
bl SetMainCallback2
ldr r1, _0808161C @ =gMain
ldr r0, _08081620 @ =sub_8081668
@@ -1874,7 +1874,7 @@ _0808160A:
.align 2, 0
_08081610: .4byte gBattleTypeFlags
_08081614: .4byte gTrainerBattleOpponent_A
-_08081618: .4byte sub_800FD9C
+_08081618: .4byte CB2_InitBattle
_0808161C: .4byte gMain
_08081620: .4byte sub_8081668
thumb_func_end sub_8081454
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index d8651a24c..b718deee6 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -278,7 +278,7 @@ EvolutionScene: @ 80CDDF4
adds r6, r7, 0
adds r6, 0x1C
adds r0, r1, r6
- ldr r2, _080CE0CC @ =nullsub_10
+ ldr r2, _080CE0CC @ =SpriteCallbackDummy2
str r2, [r0]
adds r1, r7
ldrb r2, [r1, 0x5]
@@ -331,7 +331,7 @@ EvolutionScene: @ 80CDDF4
adds r1, r3
lsls r1, 2
adds r6, r1, r6
- ldr r2, _080CE0CC @ =nullsub_10
+ ldr r2, _080CE0CC @ =SpriteCallbackDummy2
str r2, [r6]
adds r1, r7
ldrb r0, [r1, 0x5]
@@ -420,7 +420,7 @@ _080CE0BC: .4byte gMonSpritesGfxPtr
_080CE0C0: .4byte gMultiuseSpriteTemplate
_080CE0C4: .4byte gDummySpriteAffineAnimTable
_080CE0C8: .4byte gSprites
-_080CE0CC: .4byte nullsub_10
+_080CE0CC: .4byte SpriteCallbackDummy2
_080CE0D0: .4byte sub_80CE8DC
_080CE0D4: .4byte gTasks
_080CE0D8: .4byte gPlttBufferUnfaded + 0x40
@@ -562,7 +562,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8
adds r0, r3, 0
adds r0, 0x1C
adds r0, r1, r0
- ldr r2, _080CE2CC @ =nullsub_10
+ ldr r2, _080CE2CC @ =SpriteCallbackDummy2
str r2, [r0]
adds r1, r3
ldrb r2, [r1, 0x5]
@@ -623,7 +623,7 @@ _080CE2BC: .4byte gMonSpritesGfxPtr
_080CE2C0: .4byte gMultiuseSpriteTemplate
_080CE2C4: .4byte gDummySpriteAffineAnimTable
_080CE2C8: .4byte gSprites
-_080CE2CC: .4byte nullsub_10
+_080CE2CC: .4byte SpriteCallbackDummy2
_080CE2D0: .4byte nullsub_76
_080CE2D4: .4byte sub_80D0050
_080CE2D8: .4byte sub_80CE710
@@ -813,7 +813,7 @@ _080CE45C:
adds r0, r3, 0
adds r0, 0x1C
adds r0, r1, r0
- ldr r2, _080CE4C4 @ =nullsub_10
+ ldr r2, _080CE4C4 @ =SpriteCallbackDummy2
str r2, [r0]
adds r1, r3
ldrb r2, [r1, 0x5]
@@ -836,7 +836,7 @@ _080CE4B4: .4byte gMultiuseSpriteTemplate
_080CE4B8: .4byte gDummySpriteAffineAnimTable
_080CE4BC: .4byte gUnknown_2039A20
_080CE4C0: .4byte gSprites
-_080CE4C4: .4byte nullsub_10
+_080CE4C4: .4byte SpriteCallbackDummy2
_080CE4C8: .4byte gMain
_080CE4CC:
ldr r0, _080CE4FC @ =gWirelessCommType
@@ -989,7 +989,7 @@ TradeEvolutionScene: @ 80CE540
adds r0, r3, 0
adds r0, 0x1C
adds r0, r1, r0
- ldr r2, _080CE6D8 @ =nullsub_10
+ ldr r2, _080CE6D8 @ =SpriteCallbackDummy2
str r2, [r0]
adds r1, r3
ldrb r2, [r1, 0x5]
@@ -1074,7 +1074,7 @@ _080CE6C8: .4byte gMonSpritesGfxPtr
_080CE6CC: .4byte gMultiuseSpriteTemplate
_080CE6D0: .4byte gDummySpriteAffineAnimTable
_080CE6D4: .4byte gSprites
-_080CE6D8: .4byte nullsub_10
+_080CE6D8: .4byte SpriteCallbackDummy2
_080CE6DC: .4byte sub_80CF53C
_080CE6E0: .4byte gTasks
_080CE6E4: .4byte gBattle_BG0_X
@@ -1962,14 +1962,14 @@ _080CEEA0:
bl Free
str r6, [r4]
bl FreeAllWindowBuffers
- ldr r0, _080CEECC @ =gUnknown_300537C
+ ldr r0, _080CEECC @ =gCB2_AfterEvolution
ldr r0, [r0]
bl SetMainCallback2
b _080CF528
.align 2, 0
_080CEEC4: .4byte gPaletteFade
_080CEEC8: .4byte gUnknown_2039A20
-_080CEECC: .4byte gUnknown_300537C
+_080CEECC: .4byte gCB2_AfterEvolution
_080CEED0:
ldr r0, _080CEF04 @ =gBattleCommunication
ldrb r1, [r0, 0x2]
@@ -3252,14 +3252,14 @@ _080CF9E0:
negs r0, r0
ands r0, r1
strb r0, [r2]
- ldr r0, _080CFA10 @ =gUnknown_300537C
+ ldr r0, _080CFA10 @ =gCB2_AfterEvolution
ldr r0, [r0]
bl SetMainCallback2
b _080D003A
.align 2, 0
_080CFA08: .4byte gUnknown_2039A20
_080CFA0C: .4byte gTextFlags
-_080CFA10: .4byte gUnknown_300537C
+_080CFA10: .4byte gCB2_AfterEvolution
_080CFA14:
ldr r0, _080CFA60 @ =gBattleCommunication
ldrb r1, [r0, 0x2]
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index c265d7d01..46587dc52 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -1953,13 +1953,13 @@ _0806D7E2:
bx r1
thumb_func_end DoPoisonFieldEffect_step
- thumb_func_start sub_806D7E8
-sub_806D7E8: @ 806D7E8
+ thumb_func_start RestartWildEncounterImmunitySteps
+RestartWildEncounterImmunitySteps: @ 806D7E8
push {lr}
bl sub_80832D4
pop {r0}
bx r0
- thumb_func_end sub_806D7E8
+ thumb_func_end RestartWildEncounterImmunitySteps
thumb_func_start is_it_battle_time_3
is_it_battle_time_3: @ 806D7F4
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 9919ccc24..a8542fcc3 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -1989,7 +1989,7 @@ mapldr_080842E8: @ 80842E8
movs r1, 0
bl CreateTask
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r1, _0808430C @ =gFieldCallback
movs r0, 0
str r0, [r1]
@@ -2092,7 +2092,7 @@ mapldr_08084390: @ 8084390
bl FieldObjectTurn
_080843D2:
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r1, _080843F4 @ =gFieldCallback
movs r0, 0
str r0, [r1]
@@ -2158,7 +2158,7 @@ sub_8084454: @ 8084454
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r0, _0808447C @ =sub_8084484
movs r1, 0
bl CreateTask
@@ -2626,7 +2626,7 @@ _080847F4: .4byte gUnknown_83CC050
sub_80847F8: @ 80847F8
push {r4,lr}
adds r4, r0, 0
- bl player_bitmagic
+ bl FreezeEventObjects
bl CameraObjectReset2
ldrb r0, [r4, 0xA]
bl sub_809C448
@@ -2889,7 +2889,7 @@ sub_80849F4: @ 80849F4
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r0, _08084A1C @ =sub_8084A24
movs r1, 0
bl CreateTask
@@ -3630,7 +3630,7 @@ sub_8084FA0: @ 8084FA0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
- bl player_bitmagic
+ bl FreezeEventObjects
bl CameraObjectReset2
movs r0, 0
bl SetCameraPanningCallback
@@ -3977,7 +3977,7 @@ sub_8085244: @ 8085244
adds r5, r0, 0
adds r4, r1, 0
bl CameraObjectReset2
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r1, _08085270 @ =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
@@ -4239,7 +4239,7 @@ sub_8085440: @ 8085440
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
- bl player_bitmagic
+ bl FreezeEventObjects
bl CameraObjectReset2
ldr r1, _0808546C @ =gPlayerAvatar
movs r0, 0x1
@@ -4482,7 +4482,7 @@ _0808561C:
sub_8085620: @ 8085620
push {lr}
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r0, _08085638 @ =sub_808563C
movs r1, 0x50
bl CreateTask
@@ -4969,7 +4969,7 @@ sub_80859D4: @ 80859D4
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r1, _08085A14 @ =gFieldCallback
movs r0, 0
str r0, [r1]
@@ -5198,7 +5198,7 @@ sub_8085BA8: @ 8085BA8
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
bl CameraObjectReset2
bl GetPlayerFacingDirection
lsls r0, 24
@@ -5435,7 +5435,7 @@ mapldr_08085D88: @ 8085D88
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r1, _08085DCC @ =gFieldCallback
movs r0, 0
str r0, [r1]
@@ -7000,7 +7000,7 @@ sub_80869C0: @ 80869C0
push {r6}
adds r4, r0, 0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r5, _08086A18 @ =gPlayerAvatar
movs r0, 0x1
strb r0, [r5, 0x6]
@@ -7276,7 +7276,7 @@ sub_8086C00: @ 8086C00
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r1, _08086C20 @ =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
index be79c3b21..7003a10f2 100644
--- a/asm/field_effect_helpers.s
+++ b/asm/field_effect_helpers.s
@@ -134,13 +134,13 @@ npc_pal_op: @ 80DAE54
cmp r0, 0
bne _080DAEB0
ldrb r0, [r5, 0x1F]
- bl MetatileBehavior_ReturnFalse_7
+ bl MetatileBehavior_GetBridgeType
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080DAE96
ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_ReturnFalse_7
+ bl MetatileBehavior_GetBridgeType
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -1251,7 +1251,7 @@ _080DB6E8:
cmp r0, 0
bne _080DB73C
adds r0, r4, 0
- bl MetatileBehavior_ReturnFalse_3
+ bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _080DB73C
diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s
index 56af66346..b5ec3a622 100644
--- a/asm/field_ground_effect.s
+++ b/asm/field_ground_effect.s
@@ -224,7 +224,7 @@ GetGroundEffectFlags_LongGrassOnSpawn: @ 8067CE8
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_ReturnFalse_3
+ bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _08067D00
@@ -243,7 +243,7 @@ GetGroundEffectFlags_LongGrassOnBeginStep: @ 8067D08
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_ReturnFalse_3
+ bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _08067D20
@@ -838,12 +838,12 @@ FieldObjectSetSpriteOamTableForLongGrass: @ 8068154
cmp r0, 0
blt _080681A8
ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_ReturnFalse_3
+ bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _080681A8
ldrb r0, [r5, 0x1F]
- bl MetatileBehavior_ReturnFalse_3
+ bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _080681A8
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 57f7fbe1c..8787ff647 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -12214,8 +12214,8 @@ _0806360C:
bx r1
thumb_func_end sub_80635DC
- thumb_func_start npc_set_running_behaviour_etc
-npc_set_running_behaviour_etc: @ 8063610
+ thumb_func_start SetTrainerMovementType
+SetTrainerMovementType: @ 8063610
push {r4,lr}
mov r12, r0
lsls r1, 24
@@ -12253,10 +12253,10 @@ npc_set_running_behaviour_etc: @ 8063610
.align 2, 0
_08063654: .4byte gSprites
_08063658: .4byte gUnknown_839FBC8
- thumb_func_end npc_set_running_behaviour_etc
+ thumb_func_end SetTrainerMovementType
- thumb_func_start npc_running_behaviour_by_direction
-npc_running_behaviour_by_direction: @ 806365C
+ thumb_func_start GetTrainerFacingDirectionMovementType
+GetTrainerFacingDirectionMovementType: @ 806365C
lsls r0, 24
lsrs r0, 24
ldr r1, _08063668 @ =gUnknown_83A649C
@@ -12265,7 +12265,7 @@ npc_running_behaviour_by_direction: @ 806365C
bx lr
.align 2, 0
_08063668: .4byte gUnknown_83A649C
- thumb_func_end npc_running_behaviour_by_direction
+ thumb_func_end GetTrainerFacingDirectionMovementType
thumb_func_start npc_block_way__next_tile
npc_block_way__next_tile: @ 806366C
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index c753fb948..5e7f64670 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -3964,7 +3964,7 @@ sub_805D0F8: @ 805D0F8
lsls r4, 24
lsrs r4, 24
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
bl sav1_reset_battle_music_maybe
bl Overworld_ChangeMusicToDefault
ldr r2, _0805D148 @ =gPlayerAvatar
@@ -4005,7 +4005,7 @@ sub_805D154: @ 805D154
lsls r4, 24
lsrs r4, 24
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r2, _0805D19C @ =gPlayerAvatar
ldrb r1, [r2]
movs r0, 0xF7
diff --git a/asm/field_screen_effect.s b/asm/field_screen_effect.s
index f8c0970c9..8d07f3779 100644
--- a/asm/field_screen_effect.s
+++ b/asm/field_screen_effect.s
@@ -306,7 +306,7 @@ sub_807F028: @ 807F028
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
- bl sav1_get_flash_used_on_map
+ bl Overworld_GetFlashLevel
lsls r0, 24
lsrs r0, 24
movs r5, 0
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 9b1ab2492..a143d2776 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -5845,7 +5845,7 @@ _0810AD1E:
cmp r6, 0x1
bne _0810AD90
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
bl sub_805C270
bl sub_805C780
ldr r2, _0810AD88 @ =gSpecialVar_ItemId
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s
index fd1cf3dc6..8f896ea7c 100644
--- a/asm/link_rfu_2.s
+++ b/asm/link_rfu_2.s
@@ -4012,8 +4012,8 @@ GetRfuPlayerCount: @ 80FA4EC
_080FA4F4: .4byte gUnknown_3005450
thumb_func_end GetRfuPlayerCount
- thumb_func_start IsRfuTaskFinished
-IsRfuTaskFinished: @ 80FA4F8
+ thumb_func_start IsLinkRfuTaskFinished
+IsLinkRfuTaskFinished: @ 80FA4F8
push {lr}
movs r1, 0
ldr r0, _080FA50C @ =gUnknown_3005450
@@ -4027,7 +4027,7 @@ _080FA506:
bx r1
.align 2, 0
_080FA50C: .4byte gUnknown_3005450
- thumb_func_end IsRfuTaskFinished
+ thumb_func_end IsLinkRfuTaskFinished
thumb_func_start sub_80FA510
sub_80FA510: @ 80FA510
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 94a07fdaf..9fc1f72cc 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -12709,7 +12709,7 @@ _0811C096:
lsls r2, 4
adds r1, r2, 0
strh r1, [r0]
- ldr r0, _0811C0DC @ =sub_800FD9C
+ ldr r0, _0811C0DC @ =CB2_InitBattle
bl SetMainCallback2
pop {r4-r7}
pop {r0}
@@ -12719,7 +12719,7 @@ _0811C0CC: .4byte gPlayerParty
_0811C0D0: .4byte gEnemyParty
_0811C0D4: .4byte gUnknown_203B0D4
_0811C0D8: .4byte gTrainerBattleOpponent_A
-_0811C0DC: .4byte sub_800FD9C
+_0811C0DC: .4byte CB2_InitBattle
thumb_func_end sub_811C04C
thumb_func_start sub_811C0E0
diff --git a/asm/map_obj_80688E4.s b/asm/map_obj_80688E4.s
index bc06896bc..04df8c938 100644
--- a/asm/map_obj_80688E4.s
+++ b/asm/map_obj_80688E4.s
@@ -82,8 +82,8 @@ _0806896E:
bx r1
thumb_func_end FreezeMapObject
- thumb_func_start player_bitmagic
-player_bitmagic: @ 8068974
+ thumb_func_start FreezeEventObjects
+FreezeEventObjects: @ 8068974
push {r4,r5,lr}
movs r4, 0
ldr r5, _080689A8 @ =gMapObjects
@@ -114,7 +114,7 @@ _08068998:
.align 2, 0
_080689A8: .4byte gMapObjects
_080689AC: .4byte gPlayerAvatar
- thumb_func_end player_bitmagic
+ thumb_func_end FreezeEventObjects
thumb_func_start FreezeMapObjectsExceptOne
FreezeMapObjectsExceptOne: @ 80689B0
diff --git a/asm/overworld.s b/asm/overworld.s
index 553ad6aef..9b9fe037f 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -1708,7 +1708,7 @@ sub_8055864: @ 8055864
bl TrySetMapSaveWarpStatus
bl sub_806E110
bl nullsub_74
- bl sub_806D7E8
+ bl RestartWildEncounterImmunitySteps
adds r0, r5, 0
adds r1, r4, 0
bl sub_810C578
@@ -1771,7 +1771,7 @@ sub_8055920: @ 8055920
bl TrySetMapSaveWarpStatus
bl sub_806E110
bl nullsub_74
- bl sub_806D7E8
+ bl RestartWildEncounterImmunitySteps
ldr r0, _080559A0 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
@@ -2284,8 +2284,8 @@ _08055D28: .4byte gUnknown_83C68E0
_08055D2C: .4byte gSaveBlock1Ptr
thumb_func_end Overworld_SetFlashLevel
- thumb_func_start sav1_get_flash_used_on_map
-sav1_get_flash_used_on_map: @ 8055D30
+ thumb_func_start Overworld_GetFlashLevel
+Overworld_GetFlashLevel: @ 8055D30
ldr r0, _08055D3C @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x30
@@ -2293,7 +2293,7 @@ sav1_get_flash_used_on_map: @ 8055D30
bx lr
.align 2, 0
_08055D3C: .4byte gSaveBlock1Ptr
- thumb_func_end sav1_get_flash_used_on_map
+ thumb_func_end Overworld_GetFlashLevel
thumb_func_start SetCurrentMapLayout
SetCurrentMapLayout: @ 8055D40
@@ -3522,8 +3522,8 @@ _0805669C: .4byte sub_8056534
_080566A0: .4byte sub_80565B4
thumb_func_end CB2_NewGame
- thumb_func_start c2_whiteout
-c2_whiteout: @ 80566A4
+ thumb_func_start CB2_WhiteOut
+CB2_WhiteOut: @ 80566A4
push {lr}
sub sp, 0x4
ldr r1, _08056708 @ =gMain
@@ -3569,7 +3569,7 @@ _0805670C: .4byte gFieldCallback
_08056710: .4byte sub_807F5F0
_08056714: .4byte sub_8056534
_08056718: .4byte sub_80565B4
- thumb_func_end c2_whiteout
+ thumb_func_end CB2_WhiteOut
thumb_func_start CB2_LoadMap
CB2_LoadMap: @ 805671C
@@ -3944,7 +3944,7 @@ VBlankCB_Field: @ 8056A14
thumb_func_start sub_8056A34
sub_8056A34: @ 8056A34
push {lr}
- bl sav1_get_flash_used_on_map
+ bl Overworld_GetFlashLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 946d184e6..25befd61d 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -15699,7 +15699,7 @@ sub_8126704: @ 8126704
cmp r4, 0
beq _08126754
bl sub_811F070
- ldr r0, _08126750 @ =gUnknown_300537C
+ ldr r0, _08126750 @ =gCB2_AfterEvolution
ldr r1, [r6]
str r1, [r0]
ldrb r3, [r6, 0x9]
@@ -15713,7 +15713,7 @@ sub_8126704: @ 8126704
.align 2, 0
_08126748: .4byte gUnknown_203B0A0
_0812674C: .4byte gPlayerParty
-_08126750: .4byte gUnknown_300537C
+_08126750: .4byte gCB2_AfterEvolution
_08126754:
ldr r0, _08126768 @ =gTasks
lsls r1, r5, 2
@@ -16248,7 +16248,7 @@ _08126BCE:
thumb_func_start sub_8126BD4
sub_8126BD4: @ 8126BD4
push {r4,r5,lr}
- ldr r1, _08126C10 @ =gUnknown_300537C
+ ldr r1, _08126C10 @ =gCB2_AfterEvolution
ldr r4, _08126C14 @ =gUnknown_203B0A0
ldr r0, [r4]
str r0, [r1]
@@ -16274,7 +16274,7 @@ sub_8126BD4: @ 8126BD4
pop {r0}
bx r0
.align 2, 0
-_08126C10: .4byte gUnknown_300537C
+_08126C10: .4byte gCB2_AfterEvolution
_08126C14: .4byte gUnknown_203B0A0
_08126C18: .4byte gSpecialVar_ItemId
_08126C1C: .4byte gPlayerParty
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index d9ef35bd4..4c090a2d9 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -4033,13 +4033,13 @@ _081366B8:
adds r0, r1
movs r1, 0xD
muls r1, r4
- ldr r2, _081367A0 @ =gUnknown_824FC40
+ ldr r2, _081367A0 @ =gAbilityNames
adds r1, r2
bl StringCopy
ldr r0, [r6]
ldr r2, _081367A4 @ =0x000031cc
adds r0, r2
- ldr r1, _081367A8 @ =gUnknown_824FB08
+ ldr r1, _081367A8 @ =gAbilityDescriptionPointers
lsls r4, 2
adds r4, r1
ldr r1, [r4]
@@ -4088,9 +4088,9 @@ _08136790: .4byte gExperienceTables
_08136794: .4byte gBaseStats
_08136798: .4byte 0x000031b0
_0813679C: .4byte 0x000031bc
-_081367A0: .4byte gUnknown_824FC40
+_081367A0: .4byte gAbilityNames
_081367A4: .4byte 0x000031cc
-_081367A8: .4byte gUnknown_824FB08
+_081367A8: .4byte gAbilityDescriptionPointers
_081367AC: .4byte 0x0000326c
thumb_func_end sub_8136350
diff --git a/asm/post_battle_event_funcs.s b/asm/post_battle_event_funcs.s
index a96501d7b..be7554fd0 100644
--- a/asm/post_battle_event_funcs.s
+++ b/asm/post_battle_event_funcs.s
@@ -109,13 +109,13 @@ _080CA3C0: .4byte CB2_DoHallOfFameScreen
thumb_func_start sp0C8_whiteout_maybe
sp0C8_whiteout_maybe: @ 80CA3C4
push {lr}
- ldr r0, _080CA3D4 @ =c2_whiteout
+ ldr r0, _080CA3D4 @ =CB2_WhiteOut
bl SetMainCallback2
movs r0, 0
pop {r1}
bx r1
.align 2, 0
-_080CA3D4: .4byte c2_whiteout
+_080CA3D4: .4byte CB2_WhiteOut
thumb_func_end sp0C8_whiteout_maybe
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index 8dd3809f1..5467aec2f 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -422,7 +422,7 @@ _0804C9B0:
ldrb r0, [r0]
cmp r0, 0
beq _0804C9E8
- bl IsRfuTaskFinished
+ bl IsLinkRfuTaskFinished
lsls r0, 24
cmp r0, 0
bne _0804C9C4
@@ -1832,7 +1832,7 @@ sub_804D5A4: @ 804D5A4
ldrb r0, [r0]
cmp r0, 0
beq _0804D5FC
- bl IsRfuTaskFinished
+ bl IsLinkRfuTaskFinished
lsls r0, 24
cmp r0, 0
beq _0804D620
@@ -11052,7 +11052,7 @@ _0805223C:
ldrb r0, [r0]
movs r1, 0
bl sub_805080C
- ldr r1, _08052284 @ =gUnknown_300537C
+ ldr r1, _08052284 @ =gCB2_AfterEvolution
ldr r0, _08052288 @ =sub_8050948
str r0, [r1]
ldr r7, _0805228C @ =gUnknown_2031DA4
@@ -11081,7 +11081,7 @@ _0805223C:
b _080522A8
.align 2, 0
_08052280: .4byte gSpecialVar_0x8005
-_08052284: .4byte gUnknown_300537C
+_08052284: .4byte gCB2_AfterEvolution
_08052288: .4byte sub_8050948
_0805228C: .4byte gUnknown_2031DA4
_08052290: .4byte gPlayerParty
@@ -13277,7 +13277,7 @@ _08053698:
ldrb r0, [r0]
movs r1, 0
bl sub_805080C
- ldr r1, _080536E0 @ =gUnknown_300537C
+ ldr r1, _080536E0 @ =gCB2_AfterEvolution
ldr r0, _080536E4 @ =sub_8050948
str r0, [r1]
ldr r7, _080536E8 @ =gUnknown_2031DA4
@@ -13306,7 +13306,7 @@ _08053698:
b _08053704
.align 2, 0
_080536DC: .4byte gSpecialVar_0x8005
-_080536E0: .4byte gUnknown_300537C
+_080536E0: .4byte gCB2_AfterEvolution
_080536E4: .4byte sub_8050948
_080536E8: .4byte gUnknown_2031DA4
_080536EC: .4byte gPlayerParty
@@ -13404,7 +13404,7 @@ _080537A8:
.align 2, 0
_080537B4: .4byte gSoftResetDisabled
_080537B8:
- ldr r0, _080537F4 @ =gUnknown_300537C
+ ldr r0, _080537F4 @ =gCB2_AfterEvolution
ldr r1, _080537F8 @ =sub_8053E8C
mov r8, r1
str r1, [r0]
@@ -13433,7 +13433,7 @@ _080537B8:
bl TradeEvolutionScene
b _0805380E
.align 2, 0
-_080537F4: .4byte gUnknown_300537C
+_080537F4: .4byte gCB2_AfterEvolution
_080537F8: .4byte sub_8053E8C
_080537FC: .4byte gUnknown_2031DA4
_08053800: .4byte gPlayerParty
@@ -14745,7 +14745,7 @@ _0805434C:
ldr r0, _08054378 @ =sub_804C718
cmp r1, r0
bne _08054384
- bl IsRfuTaskFinished
+ bl IsLinkRfuTaskFinished
lsls r0, 24
cmp r0, 0
beq _08054396
diff --git a/asm/trainer_see.s b/asm/trainer_see.s
index c52229215..659e96c32 100644
--- a/asm/trainer_see.s
+++ b/asm/trainer_see.s
@@ -87,7 +87,7 @@ sub_8081B84: @ 8081B84
_08081BC0:
adds r0, r5, 0
adds r1, r6, 0
- bl TrainerWantsBattle
+ bl ConfigureAndSetUpOneTrainerBattle
adds r0, r4, r5
lsls r0, 2
ldr r1, _08081BE0 @ =gMapObjects
@@ -718,16 +718,16 @@ _0808204A:
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
- bl npc_running_behaviour_by_direction
+ bl GetTrainerFacingDirectionMovementType
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl npc_set_running_behaviour_etc
+ bl SetTrainerMovementType
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
- bl npc_running_behaviour_by_direction
+ bl GetTrainerFacingDirectionMovementType
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -1277,17 +1277,17 @@ _0808246E:
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
- bl npc_running_behaviour_by_direction
+ bl GetTrainerFacingDirectionMovementType
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl npc_set_running_behaviour_etc
+ bl SetTrainerMovementType
ldr r4, [sp]
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
- bl npc_running_behaviour_by_direction
+ bl GetTrainerFacingDirectionMovementType
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s
index dedcfa761..86e3d964f 100644
--- a/asm/wild_encounter.s
+++ b/asm/wild_encounter.s
@@ -878,7 +878,7 @@ _08082D78:
bl sub_8058F1C
lsls r0, 24
lsrs r0, 24
- bl MetatileBehavior_ReturnFalse_6
+ bl MetatileBehavior_IsBridge
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -932,7 +932,7 @@ _08082DFA:
lsls r0, 24
cmp r0, 0
beq _08082E46
- bl sub_807F78C
+ bl BattleSetup_StartRoamerBattle
movs r0, 0x1
b _08082E48
.align 2, 0
@@ -950,7 +950,7 @@ _08082E24:
cmp r0, 0x1
bne _08082E40
_08082E38:
- bl sub_807F704
+ bl BattleSetup_StartWildBattle
movs r0, 0x1
b _08082E48
_08082E40:
@@ -999,7 +999,7 @@ Special_RockSmashEncounter: @ 8082E54
lsrs r4, r0, 24
cmp r4, 0x1
bne _08082EB0
- bl sub_807F704
+ bl BattleSetup_StartWildBattle
_08082E9C:
ldr r0, _08082EAC @ =gSpecialVar_Result
strh r4, [r0]
@@ -1079,7 +1079,7 @@ _08082F1C:
cmp r0, 0x1
bne _08082F44
_08082F3C:
- bl sub_807F78C
+ bl BattleSetup_StartRoamerBattle
movs r0, 0x1
b _08082F6E
_08082F44:
@@ -1096,7 +1096,7 @@ _08082F44:
_08082F58:
movs r2, 0
bl sub_8082AEC
- bl sub_807F704
+ bl BattleSetup_StartWildBattle
movs r0, 0x1
b _08082F6E
.align 2, 0
@@ -1160,7 +1160,7 @@ sub_8082FB0: @ 8082FB0
bl sub_8082B64
movs r0, 0xC
bl IncrementGameStat
- bl sub_807F704
+ bl BattleSetup_StartWildBattle
pop {r4,r5}
pop {r0}
bx r0
diff --git a/common_syms/battle_main.txt b/common_syms/battle_main.txt
new file mode 100644
index 000000000..36f7596e2
--- /dev/null
+++ b/common_syms/battle_main.txt
@@ -0,0 +1,9 @@
+gPreBattleCallback1
+gBattleMainFunc
+gBattleResults
+gLeveledUpInBattle
+gBattlerControllerFuncs
+gHealthboxSpriteIds
+gMultiUsePlayerCursor
+gNumberOfMovesToChoose
+gUnknown_3004FFC
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index 0fd65d2e0..8c049f4e0 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -42,46 +42,46 @@ BattleScript_GiveExp:: @ 81D8694
BattleScript_HandleFaintedMon:: @ 81D869D
.incbin "baserom.gba", 0x1D869D, 0x152
-gUnknown_81D87EF:: @ 81D87EF
+BattleScript_LocalTrainerBattleWon:: @ 81D87EF
.incbin "baserom.gba", 0x1D87EF, 0x14
-gUnknown_81D8803:: @ 81D8803
+BattleScript_PayDayMoneyAndPickUpItems:: @ 81D8803
.incbin "baserom.gba", 0x1D8803, 0x3
-gUnknown_81D8806:: @ 81D8806
+BattleScript_LocalBattleLost:: @ 81D8806
.incbin "baserom.gba", 0x1D8806, 0xC6
-gUnknown_81D88CC:: @ 81D88CC
+BattleScript_LinkBattleWonOrLost:: @ 81D88CC
.incbin "baserom.gba", 0x1D88CC, 0xB
gUnknown_81D88D7:: @ 81D88D7
.incbin "baserom.gba", 0x1D88D7, 0x2A
-gUnknown_81D8901:: @ 81D8901
+BattleScript_SmokeBallEscape:: @ 81D8901
.incbin "baserom.gba", 0x1D8901, 0xE
-gUnknown_81D890F:: @ 81D890F
+BattleScript_RanAwayUsingMonAbility:: @ 81D890F
.incbin "baserom.gba", 0x1D890F, 0x7
-gUnknown_81D8916:: @ 81D8916
+BattleScript_GotAwaySafely:: @ 81D8916
.incbin "baserom.gba", 0x1D8916, 0x7
-gUnknown_81D891D:: @ 81D891D
+BattleScript_WildMonFled:: @ 81D891D
.incbin "baserom.gba", 0x1D891D, 0x7
-gUnknown_81D8924:: @ 81D8924
+BattleScript_PrintCantRunFromTrainer:: @ 81D8924
.incbin "baserom.gba", 0x1D8924, 0x16
-gUnknown_81D893A:: @ 81D893A
+BattleScript_PrintFailedToRunString:: @ 81D893A
.incbin "baserom.gba", 0x1D893A, 0x9
-gUnknown_81D8943:: @ 81D8943
+BattleScript_PrintCantEscapeFromBattle:: @ 81D8943
.incbin "baserom.gba", 0x1D8943, 0x6
-gUnknown_81D8949:: @ 81D8949
+BattleScript_PrintFullBox:: @ 81D8949
.incbin "baserom.gba", 0x1D8949, 0x4
-gUnknown_81D894D:: @ 81D894D
+BattleScript_ActionSwitch:: @ 81D894D
.incbin "baserom.gba", 0x1D894D, 0xA4
BattleScript_Pausex20:: @ 81D89F1
@@ -237,7 +237,7 @@ BattleScript_OneHitKOMsg:: @ 81D8FE4
BattleScript_SAtkDown2:: @ 81D8FEB
.incbin "baserom.gba", 0x1D8FEB, 0x2A
-gUnknown_81D9015:: @ 81D9015
+BattleScript_FocusPunchSetUp:: @ 81D9015
.incbin "baserom.gba", 0x1D9015, 0x14
BattleScript_MoveUsedIsAsleep:: @ 81D9029
@@ -549,7 +549,7 @@ BattleScript_BerryStatRaiseEnd2:: @ 81D9679
BattleScript_BerryFocusEnergyEnd2:: @ 81D9694
.incbin "baserom.gba", 0x1D9694, 0x10
-gUnknown_81D96A4:: @ 81D96A4
+BattleScript_ActionSelectionItemsCantBeUsed:: @ 81D96A4
.incbin "baserom.gba", 0x1D96A4, 0x4
BattleScript_FlushMessageBox:: @ 81D96A8
diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s
index c3747cd8d..199fd0c78 100644
--- a/data/battle_scripts_2.s
+++ b/data/battle_scripts_2.s
@@ -1,15 +1,15 @@
.section script_data, "aw", %progbits
-gUnknown_81D99B0:: @ 81D99B0
+gBattlescriptsForBallThrow:: @ 81D99B0
.incbin "baserom.gba", 0x1D99B0, 0x34
-gUnknown_81D99E4:: @ 81D99E4
+gBattlescriptsForUsingItem:: @ 81D99E4
.incbin "baserom.gba", 0x1D99E4, 0x18
-gUnknown_81D99FC:: @ 81D99FC
+gBattlescriptsForRunningByItem:: @ 81D99FC
.incbin "baserom.gba", 0x1D99FC, 0x8
-gUnknown_81D9A04:: @ 81D9A04
+gBattlescriptsForSafariActions:: @ 81D9A04
.incbin "baserom.gba", 0x1D9A04, 0x3E
BattleScript_SuccessBallThrow:: @ 81D9A42
diff --git a/data/data.s b/data/data.s
index 366d6bf46..72c9374b9 100644
--- a/data/data.s
+++ b/data/data.s
@@ -22,7 +22,7 @@ gUnknown_8248300:: @ 8248300
gUnknown_8248318:: @ 8248318
.incbin "baserom.gba", 0x248318, 0x8
-gUnknown_8248320:: @ 8248320
+gBattleBgTemplates:: @ 8248320
.incbin "baserom.gba", 0x248320, 0x10
gUnknown_8248330:: @ 8248330
@@ -33,73 +33,7 @@ gUnknown_824EE34:: @ 824EE34
gUnknown_824EFC4:: @ 824EFC4
.incbin "baserom.gba", 0x24EFC4, 0x20
-
-gUnknown_824EFE4:: @ 824EFE4
- .incbin "baserom.gba", 0x24EFE4, 0xC
-
-gUnknown_824EFF0:: @ 824EFF0
- .incbin "baserom.gba", 0x24EFF0, 0x18
-
-gUnknown_824F008:: @ 824F008
- .incbin "baserom.gba", 0x24F008, 0x8
-
-gUnknown_824F010:: @ 824F010
- .incbin "baserom.gba", 0x24F010, 0x8
-
-gUnknown_824F018:: @ 824F018
- .incbin "baserom.gba", 0x24F018, 0x8
-
-gUnknown_824F020:: @ 824F020
- .incbin "baserom.gba", 0x24F020, 0x28
-
-gUnknown_824F048:: @ 824F048
- .incbin "baserom.gba", 0x24F048, 0x8
-
-gTypeEffectiveness:: @ 824F050
- .incbin "baserom.gba", 0x24F050, 0x150
-
-gTypeNames:: @ 824F1A0
- .incbin "baserom.gba", 0x24F1A0, 0x80
-
-gTrainerMoneyTable:: @ 824F220
- .incbin "baserom.gba", 0x24F220, 0x8E8
-
-gUnknown_824FB08:: @ 824FB08
- .incbin "baserom.gba", 0x24FB08, 0x138
-
-gUnknown_824FC40:: @ 824FC40
- .incbin "baserom.gba", 0x24FC40, 0x3F8
-
-gUnknown_8250038:: @ 8250038
- .incbin "baserom.gba", 0x250038, 0x38
-
-gUnknown_8250070:: @ 8250070
- .incbin "baserom.gba", 0x250070, 0x24
-
-gStatusConditionString_PoisonJpn:: @ 8250094
- .incbin "baserom.gba", 0x250094, 0x8
-
-gStatusConditionString_SleepJpn:: @ 825009C
- .incbin "baserom.gba", 0x25009C, 0x8
-
-gStatusConditionString_ParalysisJpn:: @ 82500A4
- .incbin "baserom.gba", 0x2500A4, 0x8
-
-gStatusConditionString_BurnJpn:: @ 82500AC
- .incbin "baserom.gba", 0x2500AC, 0x8
-
-gStatusConditionString_IceJpn:: @ 82500B4
- .incbin "baserom.gba", 0x2500B4, 0x8
-
-gStatusConditionString_ConfusionJpn:: @ 82500BC
- .incbin "baserom.gba", 0x2500BC, 0x8
-
-gStatusConditionString_LoveJpn:: @ 82500C4
- .incbin "baserom.gba", 0x2500C4, 0x8
-
-gUnknown_82500CC:: @ 82500CC
- .incbin "baserom.gba", 0x2500CC, 0x38
-
+
.section .rodata.8260270
gUnknown_8260270:: @ 8260270
diff --git a/data/data_835B488.s b/data/data_835B488.s
index 61e8e3cfd..88c12b035 100644
--- a/data/data_835B488.s
+++ b/data/data_835B488.s
@@ -13,29 +13,7 @@ gUnknown_83C68E4:: @ 83C68E4
gUnknown_83C68EC:: @ 83C68EC
.incbin "baserom.gba", 0x3C68EC, 0x4
-gUnknown_83C68F0:: @ 83C68F0
- .incbin "baserom.gba", 0x3C68F0, 0x8
-
-gUnknown_83C68F8:: @ 83C68F8
- .incbin "baserom.gba", 0x3C68F8, 0x8
-
-gUnknown_83C6900:: @ 83C6900
- .incbin "baserom.gba", 0x3C6900, 0x48
-
-gUnknown_83C6948:: @ 83C6948
- .incbin "baserom.gba", 0x3C6948, 0x48
-
-gUnknown_83C6990:: @ 83C6990
- .incbin "baserom.gba", 0x3C6990, 0x48
-
-gUnknown_83C69D8:: @ 83C69D8
- .incbin "baserom.gba", 0x3C69D8, 0x48
-
-gUnknown_83C6A20:: @ 83C6A20
- .incbin "baserom.gba", 0x3C6A20, 0x48
-
-gUnknown_83C6A68:: @ 83C6A68
- .incbin "baserom.gba", 0x3C6A68, 0x48
+ .section .rodata.83C6AB0
gUnknown_83C6AB0:: @ 83C6AB0
.incbin "baserom.gba", 0x3C6AB0, 0x8
diff --git a/data/data_83F5738.s b/data/data_83F5738.s
index da25ada76..b7b09e748 100644
--- a/data/data_83F5738.s
+++ b/data/data_83F5738.s
@@ -344,8 +344,32 @@ gText_BattleSwitchWhich:: @ 83FE7A0
gUnknown_83FE80C:: @ 83FE80C
.incbin "baserom.gba", 0x3FE80C, 0x10
-gUnknown_83FE81C:: @ 83FE81C
- .incbin "baserom.gba", 0x3FE81C, 0x3D
+gText_HighlightRed_Left:: @ 83FE81C
+ .string "{HIGHLIGHT RED}Left: $"
+
+gText_HighlightRed::
+ .string "{HIGHLIGHT RED}$"
+
+gText_Sleep::
+ .string "sleep$"
+
+gText_Poison::
+ .string "poison$"
+
+gText_Burn::
+ .string "burn$"
+
+gText_Paralysis::
+ .string "paralysis$"
+
+gText_Ice::
+ .string "ice$"
+
+gText_Confusion::
+ .string "confusion$"
+
+gText_Love::
+ .string "love$"
gUnknown_83FE859:: @ 83FE859
.incbin "baserom.gba", 0x3FE859, 0x3
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index 43fbd003f..67964b9b9 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -137,9 +137,6 @@ gUnknown_84020DA:: @ 84020DA
gUnknown_84020E6:: @ 84020E6
.incbin "baserom.gba", 0x4020E6, 0x12
-gUnknown_84020F8:: @ 84020F8
- .incbin "baserom.gba", 0x4020F8, 0xE4
-
.section .rodata.battle_anim_special
gUnknown_840BF3C:: @ 840BF3C
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 51ae70416..a3943d494 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -17,6 +17,7 @@
#include "constants/seagallop.h"
#include "constants/game_stat.h"
#include "constants/menu.h"
+#include "constants/battle_setup.h"
.include "asm/macros.inc"
.include "asm/macros/event.inc"
.set FALSE, 0
@@ -848,7 +849,7 @@ gUnknown_81A4EB4:: @ 81A4EB4
waitstate
goto EventScript_1A4FC7
-gUnknown_81A4EC1:: @ 81A4EC1
+EventScript_TryDoNormalTrainerBattle:: @ 81A4EC1
lock
faceplayer
applymovement VAR_LAST_TALKED, Movement_1A4FC5
@@ -857,13 +858,13 @@ gUnknown_81A4EC1:: @ 81A4EC1
compare_var_to_value VAR_RESULT, 0
goto_if ne, EventScript_1A4EE8
special PlayTrainerEncounterMusic
- special sub_8080398
+ special SetUpTrainerMovement
goto EventScript_1A4FC7
EventScript_1A4EE8:: @ 81A4EE8
ontrainerbattleend
-gUnknown_81A4EE9:: @ 81A4EE9
+EventScript_TryDoDoubleTrainerBattle:: @ 81A4EE9
lock
faceplayer
call EventScript_1A4FBA
@@ -874,7 +875,7 @@ gUnknown_81A4EE9:: @ 81A4EE9
compare_var_to_value VAR_RESULT, 0
goto_if ne, EventScript_1A4F19
special PlayTrainerEncounterMusic
- special sub_8080398
+ special SetUpTrainerMovement
goto EventScript_1A4FC7
EventScript_1A4F19:: @ 81A4F19
@@ -887,7 +888,7 @@ EventScript_1A4F19:: @ 81A4F19
EventScript_1A4F20:: @ 81A4F20
ontrainerbattleend
-gUnknown_81A4F21:: @ 81A4F21
+EventScript_DoTrainerBattle:: @ 81A4F21
applymovement VAR_LAST_TALKED, Movement_1A4FC5
waitmovement 0
special PlayTrainerEncounterMusic
@@ -897,13 +898,13 @@ gUnknown_81A4F21:: @ 81A4F21
battlebegin
ontrainerbattleend
-gUnknown_81A4F3E:: @ 81A4F3E
+EventScript_TryDoRematchBattle:: @ 81A4F3E
call EventScript_1A4FBA
specialvar VAR_RESULT, ScrSpecial_GetTrainerEyeRematchFlag
compare_var_to_value VAR_RESULT, 0
goto_if eq, EventScript_1A4F72
special PlayTrainerEncounterMusic
- special sub_8080398
+ special SetUpTrainerMovement
special ScrSpecial_ShowTrainerIntroSpeech
waitmessage
waitbuttonpress
@@ -918,7 +919,7 @@ gUnknown_81A4F3E:: @ 81A4F3E
EventScript_1A4F72:: @ 81A4F72
ontrainerbattleend
-gUnknown_81A4F73:: @ 81A4F73
+EventScript_TryDoDoubleRematchBattle:: @ 81A4F73
specialvar VAR_RESULT, ScrSpecial_GetTrainerEyeRematchFlag
compare_var_to_value VAR_RESULT, 0
goto_if eq, EventScript_1A4FB0
@@ -926,7 +927,7 @@ gUnknown_81A4F73:: @ 81A4F73
compare_var_to_value VAR_RESULT, 0
goto_if ne, EventScript_1A4FB1
special PlayTrainerEncounterMusic
- special sub_8080398
+ special SetUpTrainerMovement
special ScrSpecial_ShowTrainerIntroSpeech
waitmessage
waitbuttonpress
@@ -989,7 +990,7 @@ EventScript_1A5019:: @ 81A5019
ontrainerbattleendgoto
EventScript_1A501A:: @ 81A501A
- special sub_80803FC
+ special SetBattledTrainerFlag
releaseall
end
@@ -4526,7 +4527,7 @@ gUnknown_81A93C0:: @ 81A93C0
.braille "FOR YOU.$"
Route3_EventScript_1A93C9:: @ 81A93C9
- trainerbattle 0, TRAINER_YOUNGSTER_BEN, 0, Text_183560, Text_1835A0
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_BEN, 0, Text_183560, Text_1835A0
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A93F0
@@ -4534,12 +4535,12 @@ Route3_EventScript_1A93C9:: @ 81A93C9
end
EventScript_1A93F0:: @ 81A93F0
- trainerbattle 5, TRAINER_YOUNGSTER_BEN, 0, Text_1C149D, Text_1835A0
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_YOUNGSTER_BEN, 0, Text_1C149D, Text_1835A0
msgbox Text_1835B4, 6
end
Route3_EventScript_1A9407:: @ 81A9407
- trainerbattle 0, TRAINER_YOUNGSTER_CALVIN, 0, Text_183786, Text_1837BD
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_CALVIN, 0, Text_183786, Text_1837BD
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A942E
@@ -4547,12 +4548,12 @@ Route3_EventScript_1A9407:: @ 81A9407
end
EventScript_1A942E:: @ 81A942E
- trainerbattle 5, TRAINER_YOUNGSTER_CALVIN, 0, Text_1C1588, Text_1837BD
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_YOUNGSTER_CALVIN, 0, Text_1C1588, Text_1837BD
msgbox Text_1837CF, 6
end
Route3_EventScript_1A9445:: @ 81A9445
- trainerbattle 0, TRAINER_BUG_CATCHER_COLTON, 0, Text_1834E6, Text_183509
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_COLTON, 0, Text_1834E6, Text_183509
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A946C
@@ -4560,12 +4561,12 @@ Route3_EventScript_1A9445:: @ 81A9445
end
EventScript_1A946C:: @ 81A946C
- trainerbattle 5, TRAINER_BUG_CATCHER_COLTON, 0, Text_1C147A, Text_183509
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BUG_CATCHER_COLTON, 0, Text_1C147A, Text_183509
msgbox Text_18351C, 6
end
Route3_EventScript_1A9483:: @ 81A9483
- trainerbattle 0, TRAINER_BUG_CATCHER_GREG, 0, Text_183682, Text_1836B3
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_GREG, 0, Text_183682, Text_1836B3
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A94AA
@@ -4573,12 +4574,12 @@ Route3_EventScript_1A9483:: @ 81A9483
end
EventScript_1A94AA:: @ 81A94AA
- trainerbattle 5, TRAINER_BUG_CATCHER_GREG, 0, Text_1C1521, Text_1836B3
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BUG_CATCHER_GREG, 0, Text_1C1521, Text_1836B3
msgbox Text_1836D9, 6
end
Route3_EventScript_1A94C1:: @ 81A94C1
- trainerbattle 0, TRAINER_BUG_CATCHER_JAMES, 0, Text_183807, Text_183837
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_JAMES, 0, Text_183807, Text_183837
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A94E8
@@ -4586,12 +4587,12 @@ Route3_EventScript_1A94C1:: @ 81A94C1
end
EventScript_1A94E8:: @ 81A94E8
- trainerbattle 5, TRAINER_BUG_CATCHER_JAMES, 0, Text_1C15C5, Text_183837
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BUG_CATCHER_JAMES, 0, Text_1C15C5, Text_183837
msgbox Text_183849, 6
end
Route3_EventScript_1A94FF:: @ 81A94FF
- trainerbattle 0, TRAINER_LASS_JANICE, 0, Text_183616, Text_18363F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_JANICE, 0, Text_183616, Text_18363F
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9526
@@ -4599,12 +4600,12 @@ Route3_EventScript_1A94FF:: @ 81A94FF
end
EventScript_1A9526:: @ 81A9526
- trainerbattle 5, TRAINER_LASS_JANICE, 0, Text_1C14F3, Text_18363F
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LASS_JANICE, 0, Text_1C14F3, Text_18363F
msgbox Text_18364C, 6
end
Route3_EventScript_1A953D:: @ 81A953D
- trainerbattle 0, TRAINER_LASS_SALLY, 0, Text_18371B, Text_183746
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_SALLY, 0, Text_18371B, Text_183746
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9564
@@ -4612,12 +4613,12 @@ Route3_EventScript_1A953D:: @ 81A953D
end
EventScript_1A9564:: @ 81A9564
- trainerbattle 5, TRAINER_LASS_SALLY, 0, Text_1C155D, Text_183746
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LASS_SALLY, 0, Text_1C155D, Text_183746
msgbox Text_18374F, 6
end
Route3_EventScript_1A957B:: @ 81A957B
- trainerbattle 0, TRAINER_LASS_ROBIN, 0, Text_18387A, Text_183891
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_ROBIN, 0, Text_18387A, Text_183891
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A95A2
@@ -4625,12 +4626,12 @@ Route3_EventScript_1A957B:: @ 81A957B
end
EventScript_1A95A2:: @ 81A95A2
- trainerbattle 5, TRAINER_LASS_ROBIN, 0, Text_1C15F9, Text_183891
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LASS_ROBIN, 0, Text_1C15F9, Text_183891
msgbox Text_18389C, 6
end
Route4_EventScript_1A95B9:: @ 81A95B9
- trainerbattle 0, TRAINER_LASS_CRISSY, 0, Text_183906, Text_183938
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_CRISSY, 0, Text_183906, Text_183938
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A95E0
@@ -4638,12 +4639,12 @@ Route4_EventScript_1A95B9:: @ 81A95B9
end
EventScript_1A95E0:: @ 81A95E0
- trainerbattle 5, TRAINER_LASS_CRISSY, 0, Text_1C160F, Text_183938
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LASS_CRISSY, 0, Text_1C160F, Text_183938
msgbox Text_183957, 6
end
Route24_EventScript_1A95F7:: @ 81A95F7
- trainerbattle 0, TRAINER_YOUNGSTER_TIMMY, 0, Text_188F76, Text_188F95
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_TIMMY, 0, Text_188F76, Text_188F95
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A961E
@@ -4651,12 +4652,12 @@ Route24_EventScript_1A95F7:: @ 81A95F7
end
EventScript_1A961E:: @ 81A961E
- trainerbattle 5, TRAINER_YOUNGSTER_TIMMY, 0, Text_1C3657, Text_188F95
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_YOUNGSTER_TIMMY, 0, Text_1C3657, Text_188F95
msgbox Text_188FA7, 6
end
Route24_EventScript_1A9635:: @ 81A9635
- trainerbattle 0, TRAINER_BUG_CATCHER_CALE, 0, Text_18901B, Text_18908C
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_CALE, 0, Text_18901B, Text_18908C
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A965C
@@ -4664,12 +4665,12 @@ Route24_EventScript_1A9635:: @ 81A9635
end
EventScript_1A965C:: @ 81A965C
- trainerbattle 5, TRAINER_BUG_CATCHER_CALE, 0, Text_1C36DA, Text_18908C
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BUG_CATCHER_CALE, 0, Text_1C36DA, Text_18908C
msgbox Text_18909E, 6
end
Route24_EventScript_1A9673:: @ 81A9673
- trainerbattle 0, TRAINER_LASS_RELI, 0, Text_188F2C, Text_188F46
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_RELI, 0, Text_188F2C, Text_188F46
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A969A
@@ -4677,12 +4678,12 @@ Route24_EventScript_1A9673:: @ 81A9673
end
EventScript_1A969A:: @ 81A969A
- trainerbattle 5, TRAINER_LASS_RELI, 0, Text_1C3624, Text_188F46
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LASS_RELI, 0, Text_1C3624, Text_188F46
msgbox Text_188F53, 6
end
Route24_EventScript_1A96B1:: @ 81A96B1
- trainerbattle 0, TRAINER_LASS_ALI, 0, Text_188FC9, Text_188FE7
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_ALI, 0, Text_188FC9, Text_188FE7
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A96D8
@@ -4690,12 +4691,12 @@ Route24_EventScript_1A96B1:: @ 81A96B1
end
EventScript_1A96D8:: @ 81A96D8
- trainerbattle 5, TRAINER_LASS_ALI, 0, Text_1C3685, Text_188FE7
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LASS_ALI, 0, Text_1C3685, Text_188FE7
msgbox Text_188FF9, 6
end
Route24_EventScript_1A96EF:: @ 81A96EF
- trainerbattle 0, TRAINER_CAMPER_SHANE, 0, Text_188E74, Text_188E94
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CAMPER_SHANE, 0, Text_188E74, Text_188E94
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9716
@@ -4703,12 +4704,12 @@ Route24_EventScript_1A96EF:: @ 81A96EF
end
EventScript_1A9716:: @ 81A9716
- trainerbattle 5, TRAINER_CAMPER_SHANE, 0, Text_1C35EE, Text_188E94
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CAMPER_SHANE, 0, Text_1C35EE, Text_188E94
msgbox Text_188EA3, 6
end
Route24_EventScript_1A972D:: @ 81A972D
- trainerbattle 0, TRAINER_CAMPER_ETHAN, 0, Text_188ED9, Text_188EFA
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CAMPER_ETHAN, 0, Text_188ED9, Text_188EFA
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9754
@@ -4716,12 +4717,12 @@ Route24_EventScript_1A972D:: @ 81A972D
end
EventScript_1A9754:: @ 81A9754
- trainerbattle 5, TRAINER_CAMPER_ETHAN, 0, Text_1C360E, Text_188EFA
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CAMPER_ETHAN, 0, Text_1C360E, Text_188EFA
msgbox Text_188F0A, 6
end
Route25_EventScript_1A976B:: @ 81A976B
- trainerbattle 0, TRAINER_YOUNGSTER_JOEY, 0, Text_1890C0, Text_1890E6
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_JOEY, 0, Text_1890C0, Text_1890E6
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9792
@@ -4729,12 +4730,12 @@ Route25_EventScript_1A976B:: @ 81A976B
end
EventScript_1A9792:: @ 81A9792
- trainerbattle 5, TRAINER_YOUNGSTER_JOEY, 0, Text_1C33E7, Text_1890E6
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_YOUNGSTER_JOEY, 0, Text_1C33E7, Text_1890E6
msgbox Text_1890F5, 6
end
Route25_EventScript_1A97A9:: @ 81A97A9
- trainerbattle 0, TRAINER_YOUNGSTER_DAN, 0, Text_189165, Text_1891A6
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_DAN, 0, Text_189165, Text_1891A6
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A97D0
@@ -4742,12 +4743,12 @@ Route25_EventScript_1A97A9:: @ 81A97A9
end
EventScript_1A97D0:: @ 81A97D0
- trainerbattle 5, TRAINER_YOUNGSTER_DAN, 0, Text_1C3404, Text_1891A6
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_YOUNGSTER_DAN, 0, Text_1C3404, Text_1891A6
msgbox Text_1891B3, 6
end
Route25_EventScript_1A97E7:: @ 81A97E7
- trainerbattle 0, TRAINER_YOUNGSTER_CHAD, 0, Text_1892A9, Text_1892D9
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_CHAD, 0, Text_1892A9, Text_1892D9
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A980E
@@ -4755,12 +4756,12 @@ Route25_EventScript_1A97E7:: @ 81A97E7
end
EventScript_1A980E:: @ 81A980E
- trainerbattle 5, TRAINER_YOUNGSTER_CHAD, 0, Text_1C34D4, Text_1892D9
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_YOUNGSTER_CHAD, 0, Text_1C34D4, Text_1892D9
msgbox Text_1892EF, 6
end
Route25_EventScript_1A9825:: @ 81A9825
- trainerbattle 0, TRAINER_PICNICKER_KELSEY, 0, Text_189247, Text_189261
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_KELSEY, 0, Text_189247, Text_189261
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A984C
@@ -4768,12 +4769,12 @@ Route25_EventScript_1A9825:: @ 81A9825
end
EventScript_1A984C:: @ 81A984C
- trainerbattle 5, TRAINER_PICNICKER_KELSEY, 0, Text_1C349C, Text_189261
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_KELSEY, 0, Text_1C349C, Text_189261
msgbox Text_189281, 6
end
Route25_EventScript_1A9863:: @ 81A9863
- trainerbattle 0, TRAINER_LASS_HALEY, 0, Text_189333, Text_189364
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_HALEY, 0, Text_189333, Text_189364
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A988A
@@ -4781,12 +4782,12 @@ Route25_EventScript_1A9863:: @ 81A9863
end
EventScript_1A988A:: @ 81A988A
- trainerbattle 5, TRAINER_LASS_HALEY, 0, Text_1C350A, Text_189364
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LASS_HALEY, 0, Text_1C350A, Text_189364
msgbox Text_189378, 6
end
Route25_EventScript_1A98A1:: @ 81A98A1
- trainerbattle 0, TRAINER_HIKER_FRANKLIN, 0, Text_1893A7, Text_1893EA
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_FRANKLIN, 0, Text_1893A7, Text_1893EA
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A98C8
@@ -4794,12 +4795,12 @@ Route25_EventScript_1A98A1:: @ 81A98A1
end
EventScript_1A98C8:: @ 81A98C8
- trainerbattle 5, TRAINER_HIKER_FRANKLIN, 0, Text_1C353B, Text_1893EA
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_HIKER_FRANKLIN, 0, Text_1C353B, Text_1893EA
msgbox Text_1893FB, 6
end
Route25_EventScript_1A98DF:: @ 81A98DF
- trainerbattle 0, TRAINER_HIKER_NOB, 0, Text_189423, Text_189459
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_NOB, 0, Text_189423, Text_189459
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9906
@@ -4807,12 +4808,12 @@ Route25_EventScript_1A98DF:: @ 81A98DF
end
EventScript_1A9906:: @ 81A9906
- trainerbattle 5, TRAINER_HIKER_NOB, 0, Text_1C357E, Text_189459
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_HIKER_NOB, 0, Text_1C357E, Text_189459
msgbox Text_18947E, 6
end
Route25_EventScript_1A991D:: @ 81A991D
- trainerbattle 0, TRAINER_HIKER_WAYNE, 0, Text_1894DE, Text_18950A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_WAYNE, 0, Text_1894DE, Text_18950A
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9944
@@ -4820,12 +4821,12 @@ Route25_EventScript_1A991D:: @ 81A991D
end
EventScript_1A9944:: @ 81A9944
- trainerbattle 5, TRAINER_HIKER_WAYNE, 0, Text_1C35BC, Text_18950A
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_HIKER_WAYNE, 0, Text_1C35BC, Text_18950A
msgbox Text_18951C, 6
end
Route25_EventScript_1A995B:: @ 81A995B
- trainerbattle 0, TRAINER_CAMPER_FLINT, 0, Text_1891EB, Text_189212
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CAMPER_FLINT, 0, Text_1891EB, Text_189212
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9982
@@ -4833,12 +4834,12 @@ Route25_EventScript_1A995B:: @ 81A995B
end
EventScript_1A9982:: @ 81A9982
- trainerbattle 5, TRAINER_CAMPER_FLINT, 0, Text_1C3445, Text_189212
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CAMPER_FLINT, 0, Text_1C3445, Text_189212
msgbox Text_18921D, 6
end
Route6_EventScript_1A9999:: @ 81A9999
- trainerbattle 0, TRAINER_BUG_CATCHER_KEIGO, 0, Text_183E9F, Text_183EC0
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_KEIGO, 0, Text_183E9F, Text_183EC0
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A99C0
@@ -4846,12 +4847,12 @@ Route6_EventScript_1A9999:: @ 81A9999
end
EventScript_1A99C0:: @ 81A99C0
- trainerbattle 5, TRAINER_BUG_CATCHER_KEIGO, 0, Text_1C16E2, Text_183EC0
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BUG_CATCHER_KEIGO, 0, Text_1C16E2, Text_183EC0
msgbox Text_183ED4, 6
end
Route6_EventScript_1A99D7:: @ 81A99D7
- trainerbattle 0, TRAINER_BUG_CATCHER_ELIJAH, 0, Text_183FF0, Text_18401A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_ELIJAH, 0, Text_183FF0, Text_18401A
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A99FE
@@ -4859,12 +4860,12 @@ Route6_EventScript_1A99D7:: @ 81A99D7
end
EventScript_1A99FE:: @ 81A99FE
- trainerbattle 5, TRAINER_BUG_CATCHER_ELIJAH, 0, Text_1C176B, Text_18401A
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BUG_CATCHER_ELIJAH, 0, Text_1C176B, Text_18401A
msgbox Text_18402B, 6
end
Route6_EventScript_1A9A15:: @ 81A9A15
- trainerbattle 0, TRAINER_CAMPER_RICKY, 0, Text_183E04, Text_183E2A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CAMPER_RICKY, 0, Text_183E04, Text_183E2A
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9A3C
@@ -4872,12 +4873,12 @@ Route6_EventScript_1A9A15:: @ 81A9A15
end
EventScript_1A9A3C:: @ 81A9A3C
- trainerbattle 5, TRAINER_CAMPER_RICKY, 0, Text_1C163C, Text_183E2A
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CAMPER_RICKY, 0, Text_1C163C, Text_183E2A
msgbox Text_183E3C, 6
end
Route6_EventScript_1A9A53:: @ 81A9A53
- trainerbattle 0, TRAINER_CAMPER_JEFF, 0, Text_183F07, Text_183F24
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CAMPER_JEFF, 0, Text_183F07, Text_183F24
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9A7A
@@ -4885,12 +4886,12 @@ Route6_EventScript_1A9A53:: @ 81A9A53
end
EventScript_1A9A7A:: @ 81A9A7A
- trainerbattle 5, TRAINER_CAMPER_JEFF, 0, Text_1C1723, Text_183F24
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CAMPER_JEFF, 0, Text_1C1723, Text_183F24
msgbox Text_183F51, 6
end
Route6_EventScript_1A9A91:: @ 81A9A91
- trainerbattle 0, TRAINER_PICNICKER_NANCY, 0, Text_183E4E, Text_183E79
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_NANCY, 0, Text_183E4E, Text_183E79
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9AB8
@@ -4898,12 +4899,12 @@ Route6_EventScript_1A9A91:: @ 81A9A91
end
EventScript_1A9AB8:: @ 81A9AB8
- trainerbattle 5, TRAINER_PICNICKER_NANCY, 0, Text_1C166D, Text_183E79
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_NANCY, 0, Text_1C166D, Text_183E79
msgbox Text_183E8D, 6
end
Route6_EventScript_1A9ACF:: @ 81A9ACF
- trainerbattle 0, TRAINER_PICNICKER_ISABELLE, 0, Text_183F90, Text_183FAB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_ISABELLE, 0, Text_183F90, Text_183FAB
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9AF6
@@ -4911,12 +4912,12 @@ Route6_EventScript_1A9ACF:: @ 81A9ACF
end
EventScript_1A9AF6:: @ 81A9AF6
- trainerbattle 5, TRAINER_PICNICKER_ISABELLE, 0, Text_1C1746, Text_183FAB
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_ISABELLE, 0, Text_1C1746, Text_183FAB
msgbox Text_183FC4, 6
end
Route11_EventScript_1A9B0D:: @ 81A9B0D
- trainerbattle 0, TRAINER_YOUNGSTER_EDDIE, 0, Text_184FBD, Text_184FD8
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_EDDIE, 0, Text_184FBD, Text_184FD8
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9B34
@@ -4924,12 +4925,12 @@ Route11_EventScript_1A9B0D:: @ 81A9B0D
end
EventScript_1A9B34:: @ 81A9B34
- trainerbattle 5, TRAINER_YOUNGSTER_EDDIE, 0, Text_1C1DB5, Text_184FD8
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_YOUNGSTER_EDDIE, 0, Text_1C1DB5, Text_184FD8
msgbox Text_184FEF, 6
end
Route11_EventScript_1A9B4B:: @ 81A9B4B
- trainerbattle 0, TRAINER_YOUNGSTER_DILLON, 0, Text_18506A, Text_18509B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_DILLON, 0, Text_18506A, Text_18509B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9B72
@@ -4937,12 +4938,12 @@ Route11_EventScript_1A9B4B:: @ 81A9B4B
end
EventScript_1A9B72:: @ 81A9B72
- trainerbattle 5, TRAINER_YOUNGSTER_DILLON, 0, Text_1C1E1F, Text_18509B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_YOUNGSTER_DILLON, 0, Text_1C1E1F, Text_18509B
msgbox Text_1850CF, 6
end
Route11_EventScript_1A9B89:: @ 81A9B89
- trainerbattle 0, TRAINER_YOUNGSTER_YASU, 0, Text_18517B, Text_1851AC
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_YASU, 0, Text_18517B, Text_1851AC
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9BB0
@@ -4950,12 +4951,12 @@ Route11_EventScript_1A9B89:: @ 81A9B89
end
EventScript_1A9BB0:: @ 81A9BB0
- trainerbattle 5, TRAINER_YOUNGSTER_YASU, 0, Text_1C1EE2, Text_1851AC
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_YOUNGSTER_YASU, 0, Text_1C1EE2, Text_1851AC
msgbox Text_1851D2, 6
end
Route11_EventScript_1A9BC7:: @ 81A9BC7
- trainerbattle 0, TRAINER_YOUNGSTER_DAVE, 0, Text_185285, Text_1852C1
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_DAVE, 0, Text_185285, Text_1852C1
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9BEE
@@ -4963,12 +4964,12 @@ Route11_EventScript_1A9BC7:: @ 81A9BC7
end
EventScript_1A9BEE:: @ 81A9BEE
- trainerbattle 5, TRAINER_YOUNGSTER_DAVE, 0, Text_1C1F40, Text_1852C1
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_YOUNGSTER_DAVE, 0, Text_1C1F40, Text_1852C1
msgbox Text_1852E3, 6
end
Route11_EventScript_1A9C05:: @ 81A9C05
- trainerbattle 0, TRAINER_ENGINEER_BRAXTON, 0, Text_185011, Text_185037
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_ENGINEER_BRAXTON, 0, Text_185011, Text_185037
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9C2C
@@ -4976,12 +4977,12 @@ Route11_EventScript_1A9C05:: @ 81A9C05
end
EventScript_1A9C2C:: @ 81A9C2C
- trainerbattle 5, TRAINER_ENGINEER_BRAXTON, 0, Text_1C1DE1, Text_185037
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_ENGINEER_BRAXTON, 0, Text_1C1DE1, Text_185037
msgbox Text_18504A, 6
end
Route11_EventScript_1A9C43:: @ 81A9C43
- trainerbattle 0, TRAINER_ENGINEER_BERNIE, 0, Text_185236, Text_185250
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_ENGINEER_BERNIE, 0, Text_185236, Text_185250
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9C6A
@@ -4989,12 +4990,12 @@ Route11_EventScript_1A9C43:: @ 81A9C43
end
EventScript_1A9C6A:: @ 81A9C6A
- trainerbattle 5, TRAINER_ENGINEER_BERNIE, 0, Text_1C1F1D, Text_185250
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_ENGINEER_BERNIE, 0, Text_1C1F1D, Text_185250
msgbox Text_185266, 6
end
Route11_EventScript_1A9C81:: @ 81A9C81
- trainerbattle 0, TRAINER_GAMER_HUGO, 0, Text_184F01, Text_184F15
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_GAMER_HUGO, 0, Text_184F01, Text_184F15
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9CA8
@@ -5002,12 +5003,12 @@ Route11_EventScript_1A9C81:: @ 81A9C81
end
EventScript_1A9CA8:: @ 81A9CA8
- trainerbattle 5, TRAINER_GAMER_HUGO, 0, Text_1C1D50, Text_184F15
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_GAMER_HUGO, 0, Text_1C1D50, Text_184F15
msgbox Text_184F2E, 6
end
Route11_EventScript_1A9CBF:: @ 81A9CBF
- trainerbattle 0, TRAINER_GAMER_JASPER, 0, Text_184F5D, Text_184F7E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_GAMER_JASPER, 0, Text_184F5D, Text_184F7E
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9CE6
@@ -5015,12 +5016,12 @@ Route11_EventScript_1A9CBF:: @ 81A9CBF
end
EventScript_1A9CE6:: @ 81A9CE6
- trainerbattle 5, TRAINER_GAMER_JASPER, 0, Text_1C1D79, Text_184F7E
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_GAMER_JASPER, 0, Text_1C1D79, Text_184F7E
msgbox Text_184F8E, 6
end
Route11_EventScript_1A9CFD:: @ 81A9CFD
- trainerbattle 0, TRAINER_GAMER_DIRK, 0, Text_1850E9, Text_185105
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_GAMER_DIRK, 0, Text_1850E9, Text_185105
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9D24
@@ -5028,12 +5029,12 @@ Route11_EventScript_1A9CFD:: @ 81A9CFD
end
EventScript_1A9D24:: @ 81A9D24
- trainerbattle 5, TRAINER_GAMER_DIRK, 0, Text_1C1E57, Text_185105
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_GAMER_DIRK, 0, Text_1C1E57, Text_185105
msgbox Text_185114, 6
end
Route11_EventScript_1A9D3B:: @ 81A9D3B
- trainerbattle 0, TRAINER_GAMER_DARIAN, 0, Text_185135, Text_18514E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_GAMER_DARIAN, 0, Text_185135, Text_18514E
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9D62
@@ -5041,12 +5042,12 @@ Route11_EventScript_1A9D3B:: @ 81A9D3B
end
EventScript_1A9D62:: @ 81A9D62
- trainerbattle 5, TRAINER_GAMER_DARIAN, 0, Text_1C1E9F, Text_18514E
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_GAMER_DARIAN, 0, Text_1C1E9F, Text_18514E
msgbox Text_185161, 6
end
Route9_EventScript_1A9D79:: @ 81A9D79
- trainerbattle 0, TRAINER_BUG_CATCHER_BRENT, 0, Text_184A2F, Text_184A6A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_BRENT, 0, Text_184A2F, Text_184A6A
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9DA0
@@ -5054,12 +5055,12 @@ Route9_EventScript_1A9D79:: @ 81A9D79
end
EventScript_1A9DA0:: @ 81A9DA0
- trainerbattle 5, TRAINER_BUG_CATCHER_BRENT, 0, Text_1C1B83, Text_184A6A
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BUG_CATCHER_BRENT, 0, Text_1C1B83, Text_184A6A
msgbox Text_184A8C, 6
end
Route9_EventScript_1A9DB7:: @ 81A9DB7
- trainerbattle 0, TRAINER_BUG_CATCHER_CONNER, 0, Text_184B18, Text_184B32
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_CONNER, 0, Text_184B18, Text_184B32
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9DDE
@@ -5067,12 +5068,12 @@ Route9_EventScript_1A9DB7:: @ 81A9DB7
end
EventScript_1A9DDE:: @ 81A9DDE
- trainerbattle 5, TRAINER_BUG_CATCHER_CONNER, 0, Text_1C1BDC, Text_184B32
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BUG_CATCHER_CONNER, 0, Text_1C1BDC, Text_184B32
msgbox Text_184B3B, 6
end
Route9_EventScript_1A9DF5:: @ 81A9DF5
- trainerbattle 0, TRAINER_CAMPER_CHRIS, 0, Text_184844, Text_18487E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CAMPER_CHRIS, 0, Text_184844, Text_18487E
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9E1C
@@ -5080,12 +5081,12 @@ Route9_EventScript_1A9DF5:: @ 81A9DF5
end
EventScript_1A9E1C:: @ 81A9E1C
- trainerbattle 5, TRAINER_CAMPER_CHRIS, 0, Text_1C1A5D, Text_18487E
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CAMPER_CHRIS, 0, Text_1C1A5D, Text_18487E
msgbox Text_184890, 6
end
Route9_EventScript_1A9E33:: @ 81A9E33
- trainerbattle 0, TRAINER_CAMPER_DREW, 0, Text_18489E, Text_1848CC
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CAMPER_DREW, 0, Text_18489E, Text_1848CC
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9E5A
@@ -5093,12 +5094,12 @@ Route9_EventScript_1A9E33:: @ 81A9E33
end
EventScript_1A9E5A:: @ 81A9E5A
- trainerbattle 5, TRAINER_CAMPER_DREW, 0, Text_1C1A9B, Text_1848CC
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CAMPER_DREW, 0, Text_1C1A9B, Text_1848CC
msgbox Text_1848DE, 6
end
Route9_EventScript_1A9E71:: @ 81A9E71
- trainerbattle 0, TRAINER_PICNICKER_ALICIA, 0, Text_1847B7, Text_1847DF
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_ALICIA, 0, Text_1847B7, Text_1847DF
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9E98
@@ -5106,12 +5107,12 @@ Route9_EventScript_1A9E71:: @ 81A9E71
end
EventScript_1A9E98:: @ 81A9E98
- trainerbattle 5, TRAINER_PICNICKER_ALICIA, 0, Text_1C1A2E, Text_1847DF
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_ALICIA, 0, Text_1C1A2E, Text_1847DF
msgbox Text_1847F0, 6
end
Route9_EventScript_1A9EAF:: @ 81A9EAF
- trainerbattle 0, TRAINER_PICNICKER_CAITLIN, 0, Text_1848FF, Text_18491C
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_CAITLIN, 0, Text_1848FF, Text_18491C
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9ED6
@@ -5119,12 +5120,12 @@ Route9_EventScript_1A9EAF:: @ 81A9EAF
end
EventScript_1A9ED6:: @ 81A9ED6
- trainerbattle 5, TRAINER_PICNICKER_CAITLIN, 0, Text_1C1AFB, Text_18491C
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_CAITLIN, 0, Text_1C1AFB, Text_18491C
msgbox Text_184931, 6
end
Route9_EventScript_1A9EED:: @ 81A9EED
- trainerbattle 0, TRAINER_HIKER_ALAN, 0, Text_184ABE, Text_184AD5
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_ALAN, 0, Text_184ABE, Text_184AD5
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9F14
@@ -5132,12 +5133,12 @@ Route9_EventScript_1A9EED:: @ 81A9EED
end
EventScript_1A9F14:: @ 81A9F14
- trainerbattle 5, TRAINER_HIKER_ALAN, 0, Text_1C1BBE, Text_184AD5
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_HIKER_ALAN, 0, Text_1C1BBE, Text_184AD5
msgbox Text_184AF1, 6
end
Route9_EventScript_1A9F2B:: @ 81A9F2B
- trainerbattle 0, TRAINER_HIKER_BRICE, 0, Text_1849DF, Text_184A04
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_BRICE, 0, Text_1849DF, Text_184A04
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9F52
@@ -5145,12 +5146,12 @@ Route9_EventScript_1A9F2B:: @ 81A9F2B
end
EventScript_1A9F52:: @ 81A9F52
- trainerbattle 5, TRAINER_HIKER_BRICE, 0, Text_1C1B5E, Text_184A04
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_HIKER_BRICE, 0, Text_1C1B5E, Text_184A04
msgbox Text_184A11, 6
end
Route9_EventScript_1A9F69:: @ 81A9F69
- trainerbattle 0, TRAINER_HIKER_JEREMY, 0, Text_18495E, Text_18497F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_JEREMY, 0, Text_18495E, Text_18497F
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9F90
@@ -5158,12 +5159,12 @@ Route9_EventScript_1A9F69:: @ 81A9F69
end
EventScript_1A9F90:: @ 81A9F90
- trainerbattle 5, TRAINER_HIKER_JEREMY, 0, Text_1C1B37, Text_18497F
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_HIKER_JEREMY, 0, Text_1C1B37, Text_18497F
msgbox Text_1849B0, 6
end
Route10_EventScript_1A9FA7:: @ 81A9FA7
- trainerbattle 0, TRAINER_PICNICKER_HEIDI, 0, Text_184CF1, Text_184D31
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_HEIDI, 0, Text_184CF1, Text_184D31
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1A9FCE
@@ -5171,12 +5172,12 @@ Route10_EventScript_1A9FA7:: @ 81A9FA7
end
EventScript_1A9FCE:: @ 81A9FCE
- trainerbattle 5, TRAINER_PICNICKER_HEIDI, 0, Text_1C1C9A, Text_184D31
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_HEIDI, 0, Text_1C1C9A, Text_184D31
msgbox Text_184D4D, 6
end
Route10_EventScript_1A9FE5:: @ 81A9FE5
- trainerbattle 0, TRAINER_PICNICKER_CAROL, 0, Text_184E04, Text_184E3B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_CAROL, 0, Text_184E04, Text_184E3B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA00C
@@ -5184,12 +5185,12 @@ Route10_EventScript_1A9FE5:: @ 81A9FE5
end
EventScript_1AA00C:: @ 81AA00C
- trainerbattle 5, TRAINER_PICNICKER_CAROL, 0, Text_1C1D14, Text_184E3B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_CAROL, 0, Text_1C1D14, Text_184E3B
msgbox Text_184E5E, 6
end
Route10_EventScript_1AA023:: @ 81AA023
- trainerbattle 0, TRAINER_POKEMANIAC_MARK, 0, Text_184B8A, Text_184BE5
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_POKEMANIAC_MARK, 0, Text_184B8A, Text_184BE5
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA04A
@@ -5197,12 +5198,12 @@ Route10_EventScript_1AA023:: @ 81AA023
end
EventScript_1AA04A:: @ 81AA04A
- trainerbattle 5, TRAINER_POKEMANIAC_MARK, 0, Text_1C1BFA, Text_184BE5
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_POKEMANIAC_MARK, 0, Text_1C1BFA, Text_184BE5
msgbox Text_184BFB, 6
end
Route10_EventScript_1AA061:: @ 81AA061
- trainerbattle 0, TRAINER_POKEMANIAC_HERMAN, 0, Text_184C86, Text_184CA7
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_POKEMANIAC_HERMAN, 0, Text_184C86, Text_184CA7
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA088
@@ -5210,12 +5211,12 @@ Route10_EventScript_1AA061:: @ 81AA061
end
EventScript_1AA088:: @ 81AA088
- trainerbattle 5, TRAINER_POKEMANIAC_HERMAN, 0, Text_1C1C76, Text_184CA7
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_POKEMANIAC_HERMAN, 0, Text_1C1C76, Text_184CA7
msgbox Text_184CBB, 6
end
Route10_EventScript_1AA09F:: @ 81AA09F
- trainerbattle 0, TRAINER_HIKER_CLARK, 0, Text_184C1D, Text_184C2D
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_CLARK, 0, Text_184C1D, Text_184C2D
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA0C6
@@ -5223,12 +5224,12 @@ Route10_EventScript_1AA09F:: @ 81AA09F
end
EventScript_1AA0C6:: @ 81AA0C6
- trainerbattle 5, TRAINER_HIKER_CLARK, 0, Text_1C1C4F, Text_184C2D
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_HIKER_CLARK, 0, Text_1C1C4F, Text_184C2D
msgbox Text_184C60, 6
end
Route10_EventScript_1AA0DD:: @ 81AA0DD
- trainerbattle 0, TRAINER_HIKER_TRENT, 0, Text_184DAA, Text_184DCE
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_TRENT, 0, Text_184DAA, Text_184DCE
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA104
@@ -5236,12 +5237,12 @@ Route10_EventScript_1AA0DD:: @ 81AA0DD
end
EventScript_1AA104:: @ 81AA104
- trainerbattle 5, TRAINER_HIKER_TRENT, 0, Text_1C1CD3, Text_184DCE
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_HIKER_TRENT, 0, Text_1C1CD3, Text_184DCE
msgbox Text_184DE4, 6
end
Route8_EventScript_1AA11B:: @ 81AA11B
- trainerbattle 0, TRAINER_LASS_PAIGE, 0, Text_1841ED, Text_184210
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_PAIGE, 0, Text_1841ED, Text_184210
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA142
@@ -5249,12 +5250,12 @@ Route8_EventScript_1AA11B:: @ 81AA11B
end
EventScript_1AA142:: @ 81AA142
- trainerbattle 5, TRAINER_LASS_PAIGE, 0, Text_1C1834, Text_184210
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LASS_PAIGE, 0, Text_1C1834, Text_184210
msgbox Text_18421B, 6
end
Route8_EventScript_1AA159:: @ 81AA159
- trainerbattle 0, TRAINER_LASS_ANDREA, 0, Text_184321, Text_184346
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_ANDREA, 0, Text_184321, Text_184346
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA180
@@ -5262,12 +5263,12 @@ Route8_EventScript_1AA159:: @ 81AA159
end
EventScript_1AA180:: @ 81AA180
- trainerbattle 5, TRAINER_LASS_ANDREA, 0, Text_1C18AA, Text_184346
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LASS_ANDREA, 0, Text_1C18AA, Text_184346
msgbox Text_184350, 6
end
Route8_EventScript_1AA197:: @ 81AA197
- trainerbattle 0, TRAINER_LASS_MEGAN, 0, Text_18437A, Text_1843A6
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_MEGAN, 0, Text_18437A, Text_1843A6
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA1BE
@@ -5275,12 +5276,12 @@ Route8_EventScript_1AA197:: @ 81AA197
end
EventScript_1AA1BE:: @ 81AA1BE
- trainerbattle 5, TRAINER_LASS_MEGAN, 0, Text_1C18DC, Text_1843A6
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LASS_MEGAN, 0, Text_1C18DC, Text_1843A6
msgbox Text_1843D2, 6
end
Route8_EventScript_1AA1D5:: @ 81AA1D5
- trainerbattle 0, TRAINER_LASS_JULIA, 0, Text_1844AC, Text_1844D6
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_JULIA, 0, Text_1844AC, Text_1844D6
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA1FC
@@ -5288,12 +5289,12 @@ Route8_EventScript_1AA1D5:: @ 81AA1D5
end
EventScript_1AA1FC:: @ 81AA1FC
- trainerbattle 5, TRAINER_LASS_JULIA, 0, Text_1C1955, Text_1844D6
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LASS_JULIA, 0, Text_1C1955, Text_1844D6
msgbox Text_1844FD, 6
end
Route8_EventScript_1AA213:: @ 81AA213
- trainerbattle 0, TRAINER_SUPER_NERD_AIDAN, 0, Text_1840C5, Text_184100
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SUPER_NERD_AIDAN, 0, Text_1840C5, Text_184100
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA23A
@@ -5301,12 +5302,12 @@ Route8_EventScript_1AA213:: @ 81AA213
end
EventScript_1AA23A:: @ 81AA23A
- trainerbattle 5, TRAINER_SUPER_NERD_AIDAN, 0, Text_1C1793, Text_184100
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SUPER_NERD_AIDAN, 0, Text_1C1793, Text_184100
msgbox Text_18410E, 6
end
Route8_EventScript_1AA251:: @ 81AA251
- trainerbattle 0, TRAINER_SUPER_NERD_GLENN, 0, Text_18417C, Text_1841B6
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SUPER_NERD_GLENN, 0, Text_18417C, Text_1841B6
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA278
@@ -5314,12 +5315,12 @@ Route8_EventScript_1AA251:: @ 81AA251
end
EventScript_1AA278:: @ 81AA278
- trainerbattle 5, TRAINER_SUPER_NERD_GLENN, 0, Text_1C17F1, Text_1841B6
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SUPER_NERD_GLENN, 0, Text_1C17F1, Text_1841B6
msgbox Text_1841C8, 6
end
Route8_EventScript_1AA28F:: @ 81AA28F
- trainerbattle 0, TRAINER_SUPER_NERD_LESLIE, 0, Text_184257, Text_18427A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SUPER_NERD_LESLIE, 0, Text_184257, Text_18427A
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA2B6
@@ -5327,12 +5328,12 @@ Route8_EventScript_1AA28F:: @ 81AA28F
end
EventScript_1AA2B6:: @ 81AA2B6
- trainerbattle 5, TRAINER_SUPER_NERD_LESLIE, 0, Text_1C1873, Text_18427A
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SUPER_NERD_LESLIE, 0, Text_1C1873, Text_18427A
msgbox Text_1842B3, 6
end
Route8_EventScript_1AA2CD:: @ 81AA2CD
- trainerbattle 0, TRAINER_GAMER_STAN, 0, Text_18412F, Text_18414D
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_GAMER_STAN, 0, Text_18412F, Text_18414D
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA2F4
@@ -5340,12 +5341,12 @@ Route8_EventScript_1AA2CD:: @ 81AA2CD
end
EventScript_1AA2F4:: @ 81AA2F4
- trainerbattle 5, TRAINER_GAMER_STAN, 0, Text_1C17CD, Text_18414D
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_GAMER_STAN, 0, Text_1C17CD, Text_18414D
msgbox Text_184162, 6
end
Route8_EventScript_1AA30B:: @ 81AA30B
- trainerbattle 0, TRAINER_GAMER_RICH, 0, Text_184432, Text_18444F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_GAMER_RICH, 0, Text_184432, Text_18444F
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA332
@@ -5353,12 +5354,12 @@ Route8_EventScript_1AA30B:: @ 81AA30B
end
EventScript_1AA332:: @ 81AA332
- trainerbattle 5, TRAINER_GAMER_RICH, 0, Text_1C191F, Text_18444F
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_GAMER_RICH, 0, Text_1C191F, Text_18444F
msgbox Text_184466, 6
end
Route8_EventScript_1AA349:: @ 81AA349
- trainerbattle 4, TRAINER_TWINS_ELI_ANNE, 0, Text_1845A4, Text_1845D0, Text_184616
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_TWINS_ELI_ANNE, 0, Text_1845A4, Text_1845D0, Text_184616
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA374
@@ -5366,12 +5367,12 @@ Route8_EventScript_1AA349:: @ 81AA349
end
EventScript_1AA374:: @ 81AA374
- trainerbattle 7, TRAINER_TWINS_ELI_ANNE, 0, Text_1C19E5, Text_1845D0, Text_184616
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_TWINS_ELI_ANNE, 0, Text_1C19E5, Text_1845D0, Text_184616
msgbox Text_1845F2, 6
end
Route8_EventScript_1AA38F:: @ 81AA38F
- trainerbattle 4, TRAINER_TWINS_ELI_ANNE, 0, Text_18464A, Text_184675, Text_1846AF
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_TWINS_ELI_ANNE, 0, Text_18464A, Text_184675, Text_1846AF
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA3BA
@@ -5379,12 +5380,12 @@ Route8_EventScript_1AA38F:: @ 81AA38F
end
EventScript_1AA3BA:: @ 81AA3BA
- trainerbattle 7, TRAINER_TWINS_ELI_ANNE, 0, Text_1C1A0D, Text_184675, Text_1846AF
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_TWINS_ELI_ANNE, 0, Text_1C1A0D, Text_184675, Text_1846AF
msgbox Text_18468B, 6
end
Route8_EventScript_1AA3D5:: @ 81AA3D5
- trainerbattle 0, TRAINER_BIKER_RICARDO, 0, Text_1846E2, Text_1846FC
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_RICARDO, 0, Text_1846E2, Text_1846FC
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA3FC
@@ -5392,12 +5393,12 @@ Route8_EventScript_1AA3D5:: @ 81AA3D5
end
EventScript_1AA3FC:: @ 81AA3FC
- trainerbattle 5, TRAINER_BIKER_RICARDO, 0, Text_1C199C, Text_1846FC
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_RICARDO, 0, Text_1C199C, Text_1846FC
msgbox Text_184719, 6
end
Route8_EventScript_1AA413:: @ 81AA413
- trainerbattle 0, TRAINER_BIKER_JAREN, 0, Text_184742, Text_184767
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_JAREN, 0, Text_184742, Text_184767
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA43A
@@ -5405,12 +5406,12 @@ Route8_EventScript_1AA413:: @ 81AA413
end
EventScript_1AA43A:: @ 81AA43A
- trainerbattle 5, TRAINER_BIKER_JAREN, 0, Text_1C19BC, Text_184767
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_JAREN, 0, Text_1C19BC, Text_184767
msgbox Text_18477A, 6
end
Route12_EventScript_1AA451:: @ 81AA451
- trainerbattle 0, TRAINER_FISHERMAN_NED, 0, Text_185402, Text_18541B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_NED, 0, Text_185402, Text_18541B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA478
@@ -5418,12 +5419,12 @@ Route12_EventScript_1AA451:: @ 81AA451
end
EventScript_1AA478:: @ 81AA478
- trainerbattle 5, TRAINER_FISHERMAN_NED, 0, Text_1C1F9D, Text_18541B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_FISHERMAN_NED, 0, Text_1C1F9D, Text_18541B
msgbox Text_185432, 6
end
Route12_EventScript_1AA48F:: @ 81AA48F
- trainerbattle 0, TRAINER_FISHERMAN_CHIP, 0, Text_18544E, Text_185475
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_CHIP, 0, Text_18544E, Text_185475
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA4B6
@@ -5431,12 +5432,12 @@ Route12_EventScript_1AA48F:: @ 81AA48F
end
EventScript_1AA4B6:: @ 81AA4B6
- trainerbattle 5, TRAINER_FISHERMAN_CHIP, 0, Text_1C1FD8, Text_185475
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_FISHERMAN_CHIP, 0, Text_1C1FD8, Text_185475
msgbox Text_185488, 6
end
Route12_EventScript_1AA4CD:: @ 81AA4CD
- trainerbattle 0, TRAINER_FISHERMAN_HANK, 0, Text_1855E1, Text_185606
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_HANK, 0, Text_1855E1, Text_185606
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA4F4
@@ -5444,12 +5445,12 @@ Route12_EventScript_1AA4CD:: @ 81AA4CD
end
EventScript_1AA4F4:: @ 81AA4F4
- trainerbattle 5, TRAINER_FISHERMAN_HANK, 0, Text_1C209C, Text_185606
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_FISHERMAN_HANK, 0, Text_1C209C, Text_185606
msgbox Text_185616, 6
end
Route12_EventScript_1AA50B:: @ 81AA50B
- trainerbattle 0, TRAINER_FISHERMAN_ELLIOT, 0, Text_185682, Text_1856D0
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_ELLIOT, 0, Text_185682, Text_1856D0
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA532
@@ -5457,12 +5458,12 @@ Route12_EventScript_1AA50B:: @ 81AA50B
end
EventScript_1AA532:: @ 81AA532
- trainerbattle 5, TRAINER_FISHERMAN_ELLIOT, 0, Text_1C20D4, Text_1856D0
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_FISHERMAN_ELLIOT, 0, Text_1C20D4, Text_1856D0
msgbox Text_1856DF, 6
end
Route12_EventScript_1AA549:: @ 81AA549
- trainerbattle 0, TRAINER_FISHERMAN_ANDREW, 0, Text_18570E, Text_185744
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_ANDREW, 0, Text_18570E, Text_185744
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA570
@@ -5470,12 +5471,12 @@ Route12_EventScript_1AA549:: @ 81AA549
end
EventScript_1AA570:: @ 81AA570
- trainerbattle 5, TRAINER_FISHERMAN_ANDREW, 0, Text_1C2134, Text_185744
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_FISHERMAN_ANDREW, 0, Text_1C2134, Text_185744
msgbox Text_18574D, 6
end
Route12_EventScript_1AA587:: @ 81AA587
- trainerbattle 0, TRAINER_ROCKER_LUCA, 0, Text_185547, Text_18559B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_ROCKER_LUCA, 0, Text_185547, Text_18559B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA5AE
@@ -5483,12 +5484,12 @@ Route12_EventScript_1AA587:: @ 81AA587
end
EventScript_1AA5AE:: @ 81AA5AE
- trainerbattle 5, TRAINER_ROCKER_LUCA, 0, Text_1C203B, Text_18559B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_ROCKER_LUCA, 0, Text_1C203B, Text_18559B
msgbox Text_1855A6, 6
end
Route12_EventScript_1AA5C5:: @ 81AA5C5
- trainerbattle 0, TRAINER_CAMPER_JUSTIN, 0, Text_1854B9, Text_1854ED
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CAMPER_JUSTIN, 0, Text_1854B9, Text_1854ED
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA5EC
@@ -5496,12 +5497,12 @@ Route12_EventScript_1AA5C5:: @ 81AA5C5
end
EventScript_1AA5EC:: @ 81AA5EC
- trainerbattle 5, TRAINER_CAMPER_JUSTIN, 0, Text_1C2008, Text_1854ED
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CAMPER_JUSTIN, 0, Text_1C2008, Text_1854ED
msgbox Text_1854F2, 6
end
Route12_EventScript_1AA603:: @ 81AA603
- trainerbattle 4, TRAINER_YOUNG_COUPLE_GIA_JES, 0, Text_1857C5, Text_1857F1, Text_185842
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_YOUNG_COUPLE_GIA_JES, 0, Text_1857C5, Text_1857F1, Text_185842
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA62E
@@ -5509,12 +5510,12 @@ Route12_EventScript_1AA603:: @ 81AA603
end
EventScript_1AA62E:: @ 81AA62E
- trainerbattle 7, TRAINER_YOUNG_COUPLE_GIA_JES, 0, Text_1C216B, Text_1857F1, Text_185842
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_YOUNG_COUPLE_GIA_JES, 0, Text_1C216B, Text_1857F1, Text_185842
msgbox Text_18581F, 6
end
Route12_EventScript_1AA649:: @ 81AA649
- trainerbattle 4, TRAINER_YOUNG_COUPLE_GIA_JES, 0, Text_1858A6, Text_1858D0, Text_185908
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_YOUNG_COUPLE_GIA_JES, 0, Text_1858A6, Text_1858D0, Text_185908
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA674
@@ -5522,12 +5523,12 @@ Route12_EventScript_1AA649:: @ 81AA649
end
EventScript_1AA674:: @ 81AA674
- trainerbattle 7, TRAINER_YOUNG_COUPLE_GIA_JES, 0, Text_1C219B, Text_1858D0, Text_185908
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_YOUNG_COUPLE_GIA_JES, 0, Text_1C219B, Text_1858D0, Text_185908
msgbox Text_1858E2, 6
end
Route13_EventScript_1AA68F:: @ 81AA68F
- trainerbattle 0, TRAINER_BIKER_JARED, 0, Text_185D05, Text_185D1D
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_JARED, 0, Text_185D05, Text_185D1D
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA6B6
@@ -5535,12 +5536,12 @@ Route13_EventScript_1AA68F:: @ 81AA68F
end
EventScript_1AA6B6:: @ 81AA6B6
- trainerbattle 5, TRAINER_BIKER_JARED, 0, Text_1C236B, Text_185D1D
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_JARED, 0, Text_1C236B, Text_185D1D
msgbox Text_185D33, 6
end
Route13_EventScript_1AA6CD:: @ 81AA6CD
- trainerbattle 0, TRAINER_BEAUTY_LOLA, 0, Text_185BFC, Text_185C1F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BEAUTY_LOLA, 0, Text_185BFC, Text_185C1F
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA6F4
@@ -5548,12 +5549,12 @@ Route13_EventScript_1AA6CD:: @ 81AA6CD
end
EventScript_1AA6F4:: @ 81AA6F4
- trainerbattle 5, TRAINER_BEAUTY_LOLA, 0, Text_1C2306, Text_185C1F
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BEAUTY_LOLA, 0, Text_1C2306, Text_185C1F
msgbox Text_185C35, 6
end
Route13_EventScript_1AA70B:: @ 81AA70B
- trainerbattle 0, TRAINER_BEAUTY_SHEILA, 0, Text_185C69, Text_185C95
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BEAUTY_SHEILA, 0, Text_185C69, Text_185C95
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA732
@@ -5561,12 +5562,12 @@ Route13_EventScript_1AA70B:: @ 81AA70B
end
EventScript_1AA732:: @ 81AA732
- trainerbattle 5, TRAINER_BEAUTY_SHEILA, 0, Text_1C2340, Text_185C95
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BEAUTY_SHEILA, 0, Text_1C2340, Text_185C95
msgbox Text_185CA8, 6
end
Route13_EventScript_1AA749:: @ 81AA749
- trainerbattle 0, TRAINER_BIRD_KEEPER_SEBASTIAN, 0, Text_185955, Text_18597E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_SEBASTIAN, 0, Text_185955, Text_18597E
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA770
@@ -5574,12 +5575,12 @@ Route13_EventScript_1AA749:: @ 81AA749
end
EventScript_1AA770:: @ 81AA770
- trainerbattle 5, TRAINER_BIRD_KEEPER_SEBASTIAN, 0, Text_1C21EE, Text_18597E
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_SEBASTIAN, 0, Text_1C21EE, Text_18597E
msgbox Text_1859A2, 6
end
Route13_EventScript_1AA787:: @ 81AA787
- trainerbattle 0, TRAINER_BIRD_KEEPER_PERRY, 0, Text_185B8F, Text_185BCA
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_PERRY, 0, Text_185B8F, Text_185BCA
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA7AE
@@ -5587,12 +5588,12 @@ Route13_EventScript_1AA787:: @ 81AA787
end
EventScript_1AA7AE:: @ 81AA7AE
- trainerbattle 5, TRAINER_BIRD_KEEPER_PERRY, 0, Text_1C22CA, Text_185BCA
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_PERRY, 0, Text_1C22CA, Text_185BCA
msgbox Text_185BDB, 6
end
Route13_EventScript_1AA7C5:: @ 81AA7C5
- trainerbattle 0, TRAINER_BIRD_KEEPER_ROBERT, 0, Text_185D3D, Text_185D7B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_ROBERT, 0, Text_185D3D, Text_185D7B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA7EC
@@ -5600,12 +5601,12 @@ Route13_EventScript_1AA7C5:: @ 81AA7C5
end
EventScript_1AA7EC:: @ 81AA7EC
- trainerbattle 5, TRAINER_BIRD_KEEPER_ROBERT, 0, Text_1C2383, Text_185D7B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_ROBERT, 0, Text_1C2383, Text_185D7B
msgbox Text_185D89, 6
end
Route13_EventScript_1AA803:: @ 81AA803
- trainerbattle 0, TRAINER_PICNICKER_ALMA, 0, Text_185B12, Text_185B48
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_ALMA, 0, Text_185B12, Text_185B48
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA82A
@@ -5613,12 +5614,12 @@ Route13_EventScript_1AA803:: @ 81AA803
end
EventScript_1AA82A:: @ 81AA82A
- trainerbattle 5, TRAINER_PICNICKER_ALMA, 0, Text_1C2299, Text_185B48
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_ALMA, 0, Text_1C2299, Text_185B48
msgbox Text_185B67, 6
end
Route13_EventScript_1AA841:: @ 81AA841
- trainerbattle 0, TRAINER_PICNICKER_SUSIE, 0, Text_1859CF, Text_1859EC
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_SUSIE, 0, Text_1859CF, Text_1859EC
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA868
@@ -5626,12 +5627,12 @@ Route13_EventScript_1AA841:: @ 81AA841
end
EventScript_1AA868:: @ 81AA868
- trainerbattle 5, TRAINER_PICNICKER_SUSIE, 0, Text_1C220C, Text_1859EC
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_SUSIE, 0, Text_1C220C, Text_1859EC
msgbox Text_1859F9, 6
end
Route13_EventScript_1AA87F:: @ 81AA87F
- trainerbattle 0, TRAINER_PICNICKER_VALERIE, 0, Text_185A37, Text_185A56
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_VALERIE, 0, Text_185A37, Text_185A56
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA8A6
@@ -5639,12 +5640,12 @@ Route13_EventScript_1AA87F:: @ 81AA87F
end
EventScript_1AA8A6:: @ 81AA8A6
- trainerbattle 5, TRAINER_PICNICKER_VALERIE, 0, Text_1C223C, Text_185A56
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_VALERIE, 0, Text_1C223C, Text_185A56
msgbox Text_185A62, 6
end
Route13_EventScript_1AA8BD:: @ 81AA8BD
- trainerbattle 0, TRAINER_PICNICKER_GWEN, 0, Text_185A91, Text_185AC1
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_GWEN, 0, Text_185A91, Text_185AC1
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA8E4
@@ -5652,12 +5653,12 @@ Route13_EventScript_1AA8BD:: @ 81AA8BD
end
EventScript_1AA8E4:: @ 81AA8E4
- trainerbattle 5, TRAINER_PICNICKER_GWEN, 0, Text_1C225B, Text_185AC1
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_GWEN, 0, Text_1C225B, Text_185AC1
msgbox Text_185ADE, 6
end
Route14_EventScript_1AA8FB:: @ 81AA8FB
- trainerbattle 0, TRAINER_BIKER_MALIK, 0, Text_186344, Text_186362
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_MALIK, 0, Text_186344, Text_186362
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA922
@@ -5665,12 +5666,12 @@ Route14_EventScript_1AA8FB:: @ 81AA8FB
end
EventScript_1AA922:: @ 81AA922
- trainerbattle 5, TRAINER_BIKER_MALIK, 0, Text_1C25D6, Text_186362
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_MALIK, 0, Text_1C25D6, Text_186362
msgbox Text_18636E, 6
end
Route14_EventScript_1AA939:: @ 81AA939
- trainerbattle 0, TRAINER_BIKER_LUKAS, 0, Text_1861F7, Text_186223
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_LUKAS, 0, Text_1861F7, Text_186223
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA960
@@ -5678,12 +5679,12 @@ Route14_EventScript_1AA939:: @ 81AA939
end
EventScript_1AA960:: @ 81AA960
- trainerbattle 5, TRAINER_BIKER_LUKAS, 0, Text_1C2531, Text_186223
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_LUKAS, 0, Text_1C2531, Text_186223
msgbox Text_186239, 6
end
Route14_EventScript_1AA977:: @ 81AA977
- trainerbattle 0, TRAINER_BIKER_ISAAC, 0, Text_186263, Text_186291
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_ISAAC, 0, Text_186263, Text_186291
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA99E
@@ -5691,12 +5692,12 @@ Route14_EventScript_1AA977:: @ 81AA977
end
EventScript_1AA99E:: @ 81AA99E
- trainerbattle 5, TRAINER_BIKER_ISAAC, 0, Text_1C2572, Text_186291
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_ISAAC, 0, Text_1C2572, Text_186291
msgbox Text_18629D, 6
end
Route14_EventScript_1AA9B5:: @ 81AA9B5
- trainerbattle 0, TRAINER_BIKER_GERALD, 0, Text_1862BD, Text_1862EF
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_GERALD, 0, Text_1862BD, Text_1862EF
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AA9DC
@@ -5704,12 +5705,12 @@ Route14_EventScript_1AA9B5:: @ 81AA9B5
end
EventScript_1AA9DC:: @ 81AA9DC
- trainerbattle 5, TRAINER_BIKER_GERALD, 0, Text_1C259E, Text_1862EF
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_GERALD, 0, Text_1C259E, Text_1862EF
msgbox Text_1862F8, 6
end
Route14_EventScript_1AA9F3:: @ 81AA9F3
- trainerbattle 0, TRAINER_BIRD_KEEPER_DONALD, 0, Text_1860D9, Text_18610A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_DONALD, 0, Text_1860D9, Text_18610A
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAA1A
@@ -5717,12 +5718,12 @@ Route14_EventScript_1AA9F3:: @ 81AA9F3
end
EventScript_1AAA1A:: @ 81AAA1A
- trainerbattle 5, TRAINER_BIRD_KEEPER_DONALD, 0, Text_1C24CB, Text_18610A
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_DONALD, 0, Text_1C24CB, Text_18610A
msgbox Text_18611D, 6
end
Route14_EventScript_1AAA31:: @ 81AAA31
- trainerbattle 0, TRAINER_BIRD_KEEPER_BENNY, 0, Text_18618E, Text_1861B3
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_BENNY, 0, Text_18618E, Text_1861B3
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAA58
@@ -5730,12 +5731,12 @@ Route14_EventScript_1AAA31:: @ 81AAA31
end
EventScript_1AAA58:: @ 81AAA58
- trainerbattle 5, TRAINER_BIRD_KEEPER_BENNY, 0, Text_1C2505, Text_1861B3
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_BENNY, 0, Text_1C2505, Text_1861B3
msgbox Text_1861BE, 6
end
Route14_EventScript_1AAA6F:: @ 81AAA6F
- trainerbattle 0, TRAINER_BIRD_KEEPER_CARTER, 0, Text_185E4D, Text_185E81
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_CARTER, 0, Text_185E4D, Text_185E81
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAA96
@@ -5743,12 +5744,12 @@ Route14_EventScript_1AAA6F:: @ 81AAA6F
end
EventScript_1AAA96:: @ 81AAA96
- trainerbattle 5, TRAINER_BIRD_KEEPER_CARTER, 0, Text_1C23C1, Text_185E81
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_CARTER, 0, Text_1C23C1, Text_185E81
msgbox Text_185E9C, 6
end
Route14_EventScript_1AAAAD:: @ 81AAAAD
- trainerbattle 0, TRAINER_BIRD_KEEPER_MITCH, 0, Text_185EDF, Text_185F0B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_MITCH, 0, Text_185EDF, Text_185F0B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAAD4
@@ -5756,12 +5757,12 @@ Route14_EventScript_1AAAAD:: @ 81AAAAD
end
EventScript_1AAAD4:: @ 81AAAD4
- trainerbattle 5, TRAINER_BIRD_KEEPER_MITCH, 0, Text_1C23EF, Text_185F0B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_MITCH, 0, Text_1C23EF, Text_185F0B
msgbox Text_185F1A, 6
end
Route14_EventScript_1AAAEB:: @ 81AAAEB
- trainerbattle 0, TRAINER_BIRD_KEEPER_BECK, 0, Text_185F46, Text_185FAE
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_BECK, 0, Text_185F46, Text_185FAE
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAB12
@@ -5769,12 +5770,12 @@ Route14_EventScript_1AAAEB:: @ 81AAAEB
end
EventScript_1AAB12:: @ 81AAB12
- trainerbattle 5, TRAINER_BIRD_KEEPER_BECK, 0, Text_1C2425, Text_185FAE
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_BECK, 0, Text_1C2425, Text_185FAE
msgbox Text_185FBB, 6
end
Route14_EventScript_1AAB29:: @ 81AAB29
- trainerbattle 0, TRAINER_BIRD_KEEPER_MARLON, 0, Text_186021, Text_18607C
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_MARLON, 0, Text_186021, Text_18607C
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAB50
@@ -5782,12 +5783,12 @@ Route14_EventScript_1AAB29:: @ 81AAB29
end
EventScript_1AAB50:: @ 81AAB50
- trainerbattle 5, TRAINER_BIRD_KEEPER_MARLON, 0, Text_1C2461, Text_18607C
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_MARLON, 0, Text_1C2461, Text_18607C
msgbox Text_186091, 6
end
Route14_EventScript_1AAB67:: @ 81AAB67
- trainerbattle 4, TRAINER_TWINS_KIRI_JAN, 0, Text_1863B7, Text_1863EA, Text_18642E
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_TWINS_KIRI_JAN, 0, Text_1863B7, Text_1863EA, Text_18642E
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAB92
@@ -5795,12 +5796,12 @@ Route14_EventScript_1AAB67:: @ 81AAB67
end
EventScript_1AAB92:: @ 81AAB92
- trainerbattle 7, TRAINER_TWINS_KIRI_JAN, 0, Text_1C25FB, Text_1863EA, Text_18642E
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_TWINS_KIRI_JAN, 0, Text_1C25FB, Text_1863EA, Text_18642E
msgbox Text_18640D, 6
end
Route14_EventScript_1AABAD:: @ 81AABAD
- trainerbattle 4, TRAINER_TWINS_KIRI_JAN, 0, Text_18645B, Text_186487, Text_1864D3
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_TWINS_KIRI_JAN, 0, Text_18645B, Text_186487, Text_1864D3
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AABD8
@@ -5808,12 +5809,12 @@ Route14_EventScript_1AABAD:: @ 81AABAD
end
EventScript_1AABD8:: @ 81AABD8
- trainerbattle 7, TRAINER_TWINS_KIRI_JAN, 0, Text_1C261B, Text_186487, Text_1864D3
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_TWINS_KIRI_JAN, 0, Text_1C261B, Text_186487, Text_1864D3
msgbox Text_18649C, 6
end
Route15_EventScript_1AABF3:: @ 81AABF3
- trainerbattle 0, TRAINER_BIKER_ERNEST, 0, Text_1868B6, Text_1868E8
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_ERNEST, 0, Text_1868B6, Text_1868E8
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAC1A
@@ -5821,12 +5822,12 @@ Route15_EventScript_1AABF3:: @ 81AABF3
end
EventScript_1AAC1A:: @ 81AAC1A
- trainerbattle 5, TRAINER_BIKER_ERNEST, 0, Text_1C27E7, Text_1868E8
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_ERNEST, 0, Text_1C27E7, Text_1868E8
msgbox Text_1868F1, 6
end
Route15_EventScript_1AAC31:: @ 81AAC31
- trainerbattle 0, TRAINER_BIKER_ALEX, 0, Text_186936, Text_186968
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_ALEX, 0, Text_186936, Text_186968
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAC58
@@ -5834,12 +5835,12 @@ Route15_EventScript_1AAC31:: @ 81AAC31
end
EventScript_1AAC58:: @ 81AAC58
- trainerbattle 5, TRAINER_BIKER_ALEX, 0, Text_1C2814, Text_186968
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_ALEX, 0, Text_1C2814, Text_186968
msgbox Text_18697C, 6
end
Route15_EventScript_1AAC6F:: @ 81AAC6F
- trainerbattle 0, TRAINER_BEAUTY_GRACE, 0, Text_18678B, Text_1867C1
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BEAUTY_GRACE, 0, Text_18678B, Text_1867C1
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAC96
@@ -5847,12 +5848,12 @@ Route15_EventScript_1AAC6F:: @ 81AAC6F
end
EventScript_1AAC96:: @ 81AAC96
- trainerbattle 5, TRAINER_BEAUTY_GRACE, 0, Text_1C2753, Text_1867C1
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BEAUTY_GRACE, 0, Text_1C2753, Text_1867C1
msgbox Text_1867DA, 6
end
Route15_EventScript_1AACAD:: @ 81AACAD
- trainerbattle 0, TRAINER_BEAUTY_OLIVIA, 0, Text_18680C, Text_186841
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BEAUTY_OLIVIA, 0, Text_18680C, Text_186841
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AACD4
@@ -5860,12 +5861,12 @@ Route15_EventScript_1AACAD:: @ 81AACAD
end
EventScript_1AACD4:: @ 81AACD4
- trainerbattle 5, TRAINER_BEAUTY_OLIVIA, 0, Text_1C279D, Text_186841
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BEAUTY_OLIVIA, 0, Text_1C279D, Text_186841
msgbox Text_18686F, 6
end
Route15_EventScript_1AACEB:: @ 81AACEB
- trainerbattle 0, TRAINER_BIRD_KEEPER_EDWIN, 0, Text_18664F, Text_18667A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_EDWIN, 0, Text_18664F, Text_18667A
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAD12
@@ -5873,12 +5874,12 @@ Route15_EventScript_1AACEB:: @ 81AACEB
end
EventScript_1AAD12:: @ 81AAD12
- trainerbattle 5, TRAINER_BIRD_KEEPER_EDWIN, 0, Text_1C26D3, Text_18667A
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_EDWIN, 0, Text_1C26D3, Text_18667A
msgbox Text_18668D, 6
end
Route15_EventScript_1AAD29:: @ 81AAD29
- trainerbattle 0, TRAINER_BIRD_KEEPER_CHESTER, 0, Text_1866D1, Text_186707
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_CHESTER, 0, Text_1866D1, Text_186707
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAD50
@@ -5886,12 +5887,12 @@ Route15_EventScript_1AAD29:: @ 81AAD29
end
EventScript_1AAD50:: @ 81AAD50
- trainerbattle 5, TRAINER_BIRD_KEEPER_CHESTER, 0, Text_1C2717, Text_186707
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_CHESTER, 0, Text_1C2717, Text_186707
msgbox Text_18671A, 6
end
Route15_EventScript_1AAD67:: @ 81AAD67
- trainerbattle 0, TRAINER_PICNICKER_YAZMIN, 0, Text_186A22, Text_186A40
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_YAZMIN, 0, Text_186A22, Text_186A40
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAD8E
@@ -5899,12 +5900,12 @@ Route15_EventScript_1AAD67:: @ 81AAD67
end
EventScript_1AAD8E:: @ 81AAD8E
- trainerbattle 5, TRAINER_PICNICKER_YAZMIN, 0, Text_1C287D, Text_186A40
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_YAZMIN, 0, Text_1C287D, Text_186A40
msgbox Text_186A55, 6
end
Route15_EventScript_1AADA5:: @ 81AADA5
- trainerbattle 0, TRAINER_PICNICKER_KINDRA, 0, Text_18650B, Text_186549
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_KINDRA, 0, Text_18650B, Text_186549
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AADCC
@@ -5912,12 +5913,12 @@ Route15_EventScript_1AADA5:: @ 81AADA5
end
EventScript_1AADCC:: @ 81AADCC
- trainerbattle 5, TRAINER_PICNICKER_KINDRA, 0, Text_1C2650, Text_186549
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_KINDRA, 0, Text_1C2650, Text_186549
msgbox Text_18655A, 6
end
Route15_EventScript_1AADE3:: @ 81AADE3
- trainerbattle 0, TRAINER_PICNICKER_BECKY, 0, Text_1865D3, Text_186612
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_BECKY, 0, Text_1865D3, Text_186612
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAE0A
@@ -5925,12 +5926,12 @@ Route15_EventScript_1AADE3:: @ 81AADE3
end
EventScript_1AAE0A:: @ 81AAE0A
- trainerbattle 5, TRAINER_PICNICKER_BECKY, 0, Text_1C268D, Text_186612
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_BECKY, 0, Text_1C268D, Text_186612
msgbox Text_18661D, 6
end
Route15_EventScript_1AAE21:: @ 81AAE21
- trainerbattle 0, TRAINER_PICNICKER_CELIA, 0, Text_1869BA, Text_1869E6
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_CELIA, 0, Text_1869BA, Text_1869E6
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAE48
@@ -5938,12 +5939,12 @@ Route15_EventScript_1AAE21:: @ 81AAE21
end
EventScript_1AAE48:: @ 81AAE48
- trainerbattle 5, TRAINER_PICNICKER_CELIA, 0, Text_1C2846, Text_1869E6
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_CELIA, 0, Text_1C2846, Text_1869E6
msgbox Text_1869F4, 6
end
Route15_EventScript_1AAE5F:: @ 81AAE5F
- trainerbattle 4, TRAINER_CRUSH_KIN_RON_MYA, 0, Text_186A95, Text_186ACB, Text_186B46
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_CRUSH_KIN_RON_MYA, 0, Text_186A95, Text_186ACB, Text_186B46
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAE8A
@@ -5951,12 +5952,12 @@ Route15_EventScript_1AAE5F:: @ 81AAE5F
end
EventScript_1AAE8A:: @ 81AAE8A
- trainerbattle 7, TRAINER_CRUSH_KIN_RON_MYA, 0, Text_1C28A1, Text_186ACB, Text_186B46
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_CRUSH_KIN_RON_MYA, 0, Text_1C28A1, Text_186ACB, Text_186B46
msgbox Text_186B0A, 6
end
Route15_EventScript_1AAEA5:: @ 81AAEA5
- trainerbattle 4, TRAINER_CRUSH_KIN_RON_MYA, 0, Text_186B89, Text_186BB1, Text_186BFE
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_CRUSH_KIN_RON_MYA, 0, Text_186B89, Text_186BB1, Text_186BFE
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAED0
@@ -5964,12 +5965,12 @@ Route15_EventScript_1AAEA5:: @ 81AAEA5
end
EventScript_1AAED0:: @ 81AAED0
- trainerbattle 7, TRAINER_CRUSH_KIN_RON_MYA, 0, Text_1C28EC, Text_186BB1, Text_186BFE
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_CRUSH_KIN_RON_MYA, 0, Text_1C28EC, Text_186BB1, Text_186BFE
msgbox Text_186BD2, 6
end
Route16_EventScript_1AAEEB:: @ 81AAEEB
- trainerbattle 0, TRAINER_BIKER_LAO, 0, Text_186C4D, Text_186C5F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_LAO, 0, Text_186C4D, Text_186C5F
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAF12
@@ -5977,12 +5978,12 @@ Route16_EventScript_1AAEEB:: @ 81AAEEB
end
EventScript_1AAF12:: @ 81AAF12
- trainerbattle 5, TRAINER_BIKER_LAO, 0, Text_1C2913, Text_186C5F
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_LAO, 0, Text_1C2913, Text_186C5F
msgbox Text_186C75, 6
end
Route16_EventScript_1AAF29:: @ 81AAF29
- trainerbattle 0, TRAINER_BIKER_HIDEO, 0, Text_186D39, Text_186D52
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_HIDEO, 0, Text_186D39, Text_186D52
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAF50
@@ -5990,12 +5991,12 @@ Route16_EventScript_1AAF29:: @ 81AAF29
end
EventScript_1AAF50:: @ 81AAF50
- trainerbattle 5, TRAINER_BIKER_HIDEO, 0, Text_1C297B, Text_186D52
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_HIDEO, 0, Text_1C297B, Text_186D52
msgbox Text_186D5A, 6
end
Route16_EventScript_1AAF67:: @ 81AAF67
- trainerbattle 0, TRAINER_BIKER_RUBEN, 0, Text_186E86, Text_186EB4
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_RUBEN, 0, Text_186E86, Text_186EB4
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAF8E
@@ -6003,12 +6004,12 @@ Route16_EventScript_1AAF67:: @ 81AAF67
end
EventScript_1AAF8E:: @ 81AAF8E
- trainerbattle 5, TRAINER_BIKER_RUBEN, 0, Text_1C29EB, Text_186EB4
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_RUBEN, 0, Text_1C29EB, Text_186EB4
msgbox Text_186EC7, 6
end
Route16_EventScript_1AAFA5:: @ 81AAFA5
- trainerbattle 0, TRAINER_CUE_BALL_KOJI, 0, Text_186CA2, Text_186CBB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CUE_BALL_KOJI, 0, Text_186CA2, Text_186CBB
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AAFCC
@@ -6016,12 +6017,12 @@ Route16_EventScript_1AAFA5:: @ 81AAFA5
end
EventScript_1AAFCC:: @ 81AAFCC
- trainerbattle 5, TRAINER_CUE_BALL_KOJI, 0, Text_1C2925, Text_186CBB
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CUE_BALL_KOJI, 0, Text_1C2925, Text_186CBB
msgbox Text_186CC5, 6
end
Route16_EventScript_1AAFE3:: @ 81AAFE3
- trainerbattle 0, TRAINER_CUE_BALL_LUKE, 0, Text_186CE5, Text_186D06
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CUE_BALL_LUKE, 0, Text_186CE5, Text_186D06
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB00A
@@ -6029,12 +6030,12 @@ Route16_EventScript_1AAFE3:: @ 81AAFE3
end
EventScript_1AB00A:: @ 81AB00A
- trainerbattle 5, TRAINER_CUE_BALL_LUKE, 0, Text_1C2944, Text_186D06
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CUE_BALL_LUKE, 0, Text_1C2944, Text_186D06
msgbox Text_186D16, 6
end
Route16_EventScript_1AB021:: @ 81AB021
- trainerbattle 0, TRAINER_CUE_BALL_CAMRON, 0, Text_186DD9, Text_186E0D
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CUE_BALL_CAMRON, 0, Text_186DD9, Text_186E0D
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB048
@@ -6042,12 +6043,12 @@ Route16_EventScript_1AB021:: @ 81AB021
end
EventScript_1AB048:: @ 81AB048
- trainerbattle 5, TRAINER_CUE_BALL_CAMRON, 0, Text_1C29B0, Text_186E0D
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CUE_BALL_CAMRON, 0, Text_1C29B0, Text_186E0D
msgbox Text_186E1C, 6
end
Route16_EventScript_1AB05F:: @ 81AB05F
- trainerbattle 4, TRAINER_YOUNG_COUPLE_LEA_JED, 0, Text_186FBD, Text_186FFA, Text_187057
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_YOUNG_COUPLE_LEA_JED, 0, Text_186FBD, Text_186FFA, Text_187057
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB08A
@@ -6055,12 +6056,12 @@ Route16_EventScript_1AB05F:: @ 81AB05F
end
EventScript_1AB08A:: @ 81AB08A
- trainerbattle 7, TRAINER_YOUNG_COUPLE_LEA_JED, 0, Text_1C2A19, Text_186FFA, Text_187057
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_YOUNG_COUPLE_LEA_JED, 0, Text_1C2A19, Text_186FFA, Text_187057
msgbox Text_187027, 6
end
Route16_EventScript_1AB0A5:: @ 81AB0A5
- trainerbattle 4, TRAINER_YOUNG_COUPLE_LEA_JED, 0, Text_187097, Text_1870CC, Text_187120
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_YOUNG_COUPLE_LEA_JED, 0, Text_187097, Text_1870CC, Text_187120
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB0D0
@@ -6068,12 +6069,12 @@ Route16_EventScript_1AB0A5:: @ 81AB0A5
end
EventScript_1AB0D0:: @ 81AB0D0
- trainerbattle 7, TRAINER_YOUNG_COUPLE_LEA_JED, 0, Text_1C2A53, Text_1870CC, Text_187120
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_YOUNG_COUPLE_LEA_JED, 0, Text_1C2A53, Text_1870CC, Text_187120
msgbox Text_1870F9, 6
end
Route17_EventScript_1AB0EB:: @ 81AB0EB
- trainerbattle 0, TRAINER_BIKER_BILLY, 0, Text_1872BD, Text_1872E3
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_BILLY, 0, Text_1872BD, Text_1872E3
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB112
@@ -6081,12 +6082,12 @@ Route17_EventScript_1AB0EB:: @ 81AB0EB
end
EventScript_1AB112:: @ 81AB112
- trainerbattle 5, TRAINER_BIKER_BILLY, 0, Text_1C2B06, Text_1872E3
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_BILLY, 0, Text_1C2B06, Text_1872E3
msgbox Text_1872EB, 6
end
Route17_EventScript_1AB129:: @ 81AB129
- trainerbattle 0, TRAINER_BIKER_NIKOLAS, 0, Text_18730A, Text_187325
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_NIKOLAS, 0, Text_18730A, Text_187325
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB150
@@ -6094,12 +6095,12 @@ Route17_EventScript_1AB129:: @ 81AB129
end
EventScript_1AB150:: @ 81AB150
- trainerbattle 5, TRAINER_BIKER_NIKOLAS, 0, Text_1C2B2C, Text_187325
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_NIKOLAS, 0, Text_1C2B2C, Text_187325
msgbox Text_187333, 6
end
Route17_EventScript_1AB167:: @ 81AB167
- trainerbattle 0, TRAINER_BIKER_JAXON, 0, Text_187456, Text_187472
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_JAXON, 0, Text_187456, Text_187472
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB18E
@@ -6107,12 +6108,12 @@ Route17_EventScript_1AB167:: @ 81AB167
end
EventScript_1AB18E:: @ 81AB18E
- trainerbattle 5, TRAINER_BIKER_JAXON, 0, Text_1C2BE6, Text_187472
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_JAXON, 0, Text_1C2BE6, Text_187472
msgbox Text_187479, 6
end
Route17_EventScript_1AB1A5:: @ 81AB1A5
- trainerbattle 0, TRAINER_BIKER_WILLIAM, 0, Text_18749B, Text_1874B6
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_WILLIAM, 0, Text_18749B, Text_1874B6
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB1CC
@@ -6120,12 +6121,12 @@ Route17_EventScript_1AB1A5:: @ 81AB1A5
end
EventScript_1AB1CC:: @ 81AB1CC
- trainerbattle 5, TRAINER_BIKER_WILLIAM, 0, Text_1C2C10, Text_1874B6
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_WILLIAM, 0, Text_1C2C10, Text_1874B6
msgbox Text_1874C9, 6
end
Route17_EventScript_1AB1E3:: @ 81AB1E3
- trainerbattle 0, TRAINER_CUE_BALL_RAUL, 0, Text_18717E, Text_1871AE
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CUE_BALL_RAUL, 0, Text_18717E, Text_1871AE
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB20A
@@ -6133,12 +6134,12 @@ Route17_EventScript_1AB1E3:: @ 81AB1E3
end
EventScript_1AB20A:: @ 81AB20A
- trainerbattle 5, TRAINER_CUE_BALL_RAUL, 0, Text_1C2A88, Text_1871AE
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CUE_BALL_RAUL, 0, Text_1C2A88, Text_1871AE
msgbox Text_1871BA, 6
end
Route17_EventScript_1AB221:: @ 81AB221
- trainerbattle 0, TRAINER_CUE_BALL_ISAIAH, 0, Text_187228, Text_187254
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CUE_BALL_ISAIAH, 0, Text_187228, Text_187254
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB248
@@ -6146,12 +6147,12 @@ Route17_EventScript_1AB221:: @ 81AB221
end
EventScript_1AB248:: @ 81AB248
- trainerbattle 5, TRAINER_CUE_BALL_ISAIAH, 0, Text_1C2AC4, Text_187254
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CUE_BALL_ISAIAH, 0, Text_1C2AC4, Text_187254
msgbox Text_18725A, 6
end
Route17_EventScript_1AB25F:: @ 81AB25F
- trainerbattle 0, TRAINER_CUE_BALL_ZEEK, 0, Text_187362, Text_187395
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CUE_BALL_ZEEK, 0, Text_187362, Text_187395
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB286
@@ -6159,12 +6160,12 @@ Route17_EventScript_1AB25F:: @ 81AB25F
end
EventScript_1AB286:: @ 81AB286
- trainerbattle 5, TRAINER_CUE_BALL_ZEEK, 0, Text_1C2B5E, Text_187395
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CUE_BALL_ZEEK, 0, Text_1C2B5E, Text_187395
msgbox Text_18739F, 6
end
Route17_EventScript_1AB29D:: @ 81AB29D
- trainerbattle 0, TRAINER_CUE_BALL_JAMAL, 0, Text_1873D1, Text_1873EB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CUE_BALL_JAMAL, 0, Text_1873D1, Text_1873EB
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB2C4
@@ -6172,12 +6173,12 @@ Route17_EventScript_1AB29D:: @ 81AB29D
end
EventScript_1AB2C4:: @ 81AB2C4
- trainerbattle 5, TRAINER_CUE_BALL_JAMAL, 0, Text_1C2B9C, Text_1873EB
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CUE_BALL_JAMAL, 0, Text_1C2B9C, Text_1873EB
msgbox Text_1873FF, 6
end
Route17_EventScript_1AB2DB:: @ 81AB2DB
- trainerbattle 0, TRAINER_CUE_BALL_COREY, 0, Text_18741D, Text_187429
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CUE_BALL_COREY, 0, Text_18741D, Text_187429
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB302
@@ -6185,12 +6186,12 @@ Route17_EventScript_1AB2DB:: @ 81AB2DB
end
EventScript_1AB302:: @ 81AB302
- trainerbattle 5, TRAINER_CUE_BALL_COREY, 0, Text_1C2BDA, Text_187429
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CUE_BALL_COREY, 0, Text_1C2BDA, Text_187429
msgbox Text_187432, 6
end
Route17_EventScript_1AB319:: @ 81AB319
- trainerbattle 0, TRAINER_BIKER_VIRGIL, 0, Text_18727D, Text_187295
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIKER_VIRGIL, 0, Text_18727D, Text_187295
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB340
@@ -6198,12 +6199,12 @@ Route17_EventScript_1AB319:: @ 81AB319
end
EventScript_1AB340:: @ 81AB340
- trainerbattle 5, TRAINER_BIKER_VIRGIL, 0, Text_1C2AF0, Text_187295
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIKER_VIRGIL, 0, Text_1C2AF0, Text_187295
msgbox Text_1872A5, 6
end
Route18_EventScript_1AB357:: @ 81AB357
- trainerbattle 0, TRAINER_BIRD_KEEPER_WILTON, 0, Text_187640, Text_187672
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_WILTON, 0, Text_187640, Text_187672
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB37E
@@ -6211,12 +6212,12 @@ Route18_EventScript_1AB357:: @ 81AB357
end
EventScript_1AB37E:: @ 81AB37E
- trainerbattle 5, TRAINER_BIRD_KEEPER_WILTON, 0, Text_1C2C2B, Text_187672
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_WILTON, 0, Text_1C2C2B, Text_187672
msgbox Text_187677, 6
end
Route18_EventScript_1AB395:: @ 81AB395
- trainerbattle 0, TRAINER_BIRD_KEEPER_RAMIRO, 0, Text_18768C, Text_1876B3
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_RAMIRO, 0, Text_18768C, Text_1876B3
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB3BC
@@ -6224,12 +6225,12 @@ Route18_EventScript_1AB395:: @ 81AB395
end
EventScript_1AB3BC:: @ 81AB3BC
- trainerbattle 5, TRAINER_BIRD_KEEPER_RAMIRO, 0, Text_1C2C7B, Text_1876B3
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_RAMIRO, 0, Text_1C2C7B, Text_1876B3
msgbox Text_1876C5, 6
end
Route18_EventScript_1AB3D3:: @ 81AB3D3
- trainerbattle 0, TRAINER_BIRD_KEEPER_JACOB, 0, Text_187704, Text_187726
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_JACOB, 0, Text_187704, Text_187726
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB3FA
@@ -6237,12 +6238,12 @@ Route18_EventScript_1AB3D3:: @ 81AB3D3
end
EventScript_1AB3FA:: @ 81AB3FA
- trainerbattle 5, TRAINER_BIRD_KEEPER_JACOB, 0, Text_1C2CA8, Text_187726
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_JACOB, 0, Text_1C2CA8, Text_187726
msgbox Text_18772C, 6
end
Route19_EventScript_1AB411:: @ 81AB411
- trainerbattle 0, TRAINER_SWIMMER_MALE_RICHARD, 0, Text_1877A3, Text_1877DF
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_RICHARD, 0, Text_1877A3, Text_1877DF
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB438
@@ -6250,12 +6251,12 @@ Route19_EventScript_1AB411:: @ 81AB411
end
EventScript_1AB438:: @ 81AB438
- trainerbattle 5, TRAINER_SWIMMER_MALE_RICHARD, 0, Text_1C2CEE, Text_1877DF
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_RICHARD, 0, Text_1C2CEE, Text_1877DF
msgbox Text_1877EE, 6
end
Route19_EventScript_1AB44F:: @ 81AB44F
- trainerbattle 0, TRAINER_SWIMMER_MALE_REECE, 0, Text_187811, Text_18783E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_REECE, 0, Text_187811, Text_18783E
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB476
@@ -6263,12 +6264,12 @@ Route19_EventScript_1AB44F:: @ 81AB44F
end
EventScript_1AB476:: @ 81AB476
- trainerbattle 5, TRAINER_SWIMMER_MALE_REECE, 0, Text_1C2D19, Text_18783E
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_REECE, 0, Text_1C2D19, Text_18783E
msgbox Text_187852, 6
end
Route19_EventScript_1AB48D:: @ 81AB48D
- trainerbattle 0, TRAINER_SWIMMER_MALE_MATTHEW, 0, Text_187884, Text_1878A5
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_MATTHEW, 0, Text_187884, Text_1878A5
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB4B4
@@ -6276,12 +6277,12 @@ Route19_EventScript_1AB48D:: @ 81AB48D
end
EventScript_1AB4B4:: @ 81AB4B4
- trainerbattle 5, TRAINER_SWIMMER_MALE_MATTHEW, 0, Text_1C2D4B, Text_1878A5
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_MATTHEW, 0, Text_1C2D4B, Text_1878A5
msgbox Text_1878B1, 6
end
Route19_EventScript_1AB4CB:: @ 81AB4CB
- trainerbattle 0, TRAINER_SWIMMER_MALE_DOUGLAS, 0, Text_1878DD, Text_1878F8
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_DOUGLAS, 0, Text_1878DD, Text_1878F8
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB4F2
@@ -6289,12 +6290,12 @@ Route19_EventScript_1AB4CB:: @ 81AB4CB
end
EventScript_1AB4F2:: @ 81AB4F2
- trainerbattle 5, TRAINER_SWIMMER_MALE_DOUGLAS, 0, Text_1C2D7D, Text_1878F8
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_DOUGLAS, 0, Text_1C2D7D, Text_1878F8
msgbox Text_1878FE, 6
end
Route19_EventScript_1AB509:: @ 81AB509
- trainerbattle 0, TRAINER_SWIMMER_MALE_DAVID, 0, Text_187925, Text_187955
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_DAVID, 0, Text_187925, Text_187955
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB530
@@ -6302,12 +6303,12 @@ Route19_EventScript_1AB509:: @ 81AB509
end
EventScript_1AB530:: @ 81AB530
- trainerbattle 5, TRAINER_SWIMMER_MALE_DAVID, 0, Text_1C2DA7, Text_187955
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_DAVID, 0, Text_1C2DA7, Text_187955
msgbox Text_18795B, 6
end
Route19_EventScript_1AB547:: @ 81AB547
- trainerbattle 0, TRAINER_SWIMMER_MALE_TONY, 0, Text_187985, Text_1879C3
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_TONY, 0, Text_187985, Text_1879C3
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB56E
@@ -6315,12 +6316,12 @@ Route19_EventScript_1AB547:: @ 81AB547
end
EventScript_1AB56E:: @ 81AB56E
- trainerbattle 5, TRAINER_SWIMMER_MALE_TONY, 0, Text_1C2DE9, Text_1879C3
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_TONY, 0, Text_1C2DE9, Text_1879C3
msgbox Text_1879D3, 6
end
Route19_EventScript_1AB585:: @ 81AB585
- trainerbattle 0, TRAINER_SWIMMER_MALE_AXLE, 0, Text_187AFA, Text_187B25
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_AXLE, 0, Text_187AFA, Text_187B25
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB5AC
@@ -6328,12 +6329,12 @@ Route19_EventScript_1AB585:: @ 81AB585
end
EventScript_1AB5AC:: @ 81AB5AC
- trainerbattle 5, TRAINER_SWIMMER_MALE_AXLE, 0, Text_1C2EC0, Text_187B25
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_AXLE, 0, Text_1C2EC0, Text_187B25
msgbox Text_187B35, 6
end
Route19_EventScript_1AB5C3:: @ 81AB5C3
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_ANYA, 0, Text_187A11, Text_187A44
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_ANYA, 0, Text_187A11, Text_187A44
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB5EA
@@ -6341,12 +6342,12 @@ Route19_EventScript_1AB5C3:: @ 81AB5C3
end
EventScript_1AB5EA:: @ 81AB5EA
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_ANYA, 0, Text_1C2E4A, Text_187A44
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_ANYA, 0, Text_1C2E4A, Text_187A44
msgbox Text_187A50, 6
end
Route19_EventScript_1AB601:: @ 81AB601
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_ALICE, 0, Text_187A9E, Text_187AC1
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_ALICE, 0, Text_187A9E, Text_187AC1
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB628
@@ -6354,12 +6355,12 @@ Route19_EventScript_1AB601:: @ 81AB601
end
EventScript_1AB628:: @ 81AB628
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_ALICE, 0, Text_1C2E9D, Text_187AC1
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_ALICE, 0, Text_1C2E9D, Text_187AC1
msgbox Text_187ACA, 6
end
Route19_EventScript_1AB63F:: @ 81AB63F
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_CONNIE, 0, Text_187B5D, Text_187B85
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_CONNIE, 0, Text_187B5D, Text_187B85
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB666
@@ -6367,12 +6368,12 @@ Route19_EventScript_1AB63F:: @ 81AB63F
end
EventScript_1AB666:: @ 81AB666
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_CONNIE, 0, Text_1C2EFC, Text_187B85
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_CONNIE, 0, Text_1C2EFC, Text_187B85
msgbox Text_187B94, 6
end
Route19_EventScript_1AB67D:: @ 81AB67D
- trainerbattle 4, TRAINER_SIS_AND_BRO_LIA_LUC, 0, Text_187C32, Text_187C6F, Text_187CF2
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_SIS_AND_BRO_LIA_LUC, 0, Text_187C32, Text_187C6F, Text_187CF2
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB6A8
@@ -6380,12 +6381,12 @@ Route19_EventScript_1AB67D:: @ 81AB67D
end
EventScript_1AB6A8:: @ 81AB6A8
- trainerbattle 7, TRAINER_SIS_AND_BRO_LIA_LUC, 0, Text_1C2F41, Text_187C6F, Text_187CF2
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_SIS_AND_BRO_LIA_LUC, 0, Text_1C2F41, Text_187C6F, Text_187CF2
msgbox Text_187C9E, 6
end
Route19_EventScript_1AB6C3:: @ 81AB6C3
- trainerbattle 4, TRAINER_SIS_AND_BRO_LIA_LUC, 0, Text_187D45, Text_187D7E, Text_187DE8
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_SIS_AND_BRO_LIA_LUC, 0, Text_187D45, Text_187D7E, Text_187DE8
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB6EE
@@ -6393,12 +6394,12 @@ Route19_EventScript_1AB6C3:: @ 81AB6C3
end
EventScript_1AB6EE:: @ 81AB6EE
- trainerbattle 7, TRAINER_SIS_AND_BRO_LIA_LUC, 0, Text_1C2FAE, Text_187D7E, Text_187DE8
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_SIS_AND_BRO_LIA_LUC, 0, Text_1C2FAE, Text_187D7E, Text_187DE8
msgbox Text_187DAD, 6
end
Route20_EventScript_1AB709:: @ 81AB709
- trainerbattle 0, TRAINER_SWIMMER_MALE_BARRY, 0, Text_187E40, Text_187E7B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_BARRY, 0, Text_187E40, Text_187E7B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB730
@@ -6406,12 +6407,12 @@ Route20_EventScript_1AB709:: @ 81AB709
end
EventScript_1AB730:: @ 81AB730
- trainerbattle 5, TRAINER_SWIMMER_MALE_BARRY, 0, Text_1C2FF3, Text_187E7B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_BARRY, 0, Text_1C2FF3, Text_187E7B
msgbox Text_187E83, 6
end
Route20_EventScript_1AB747:: @ 81AB747
- trainerbattle 0, TRAINER_SWIMMER_MALE_DEAN, 0, Text_187FDB, Text_187FF7
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_DEAN, 0, Text_187FDB, Text_187FF7
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB76E
@@ -6419,12 +6420,12 @@ Route20_EventScript_1AB747:: @ 81AB747
end
EventScript_1AB76E:: @ 81AB76E
- trainerbattle 5, TRAINER_SWIMMER_MALE_DEAN, 0, Text_1C30B0, Text_187FF7
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_DEAN, 0, Text_1C30B0, Text_187FF7
msgbox Text_187FFE, 6
end
Route20_EventScript_1AB785:: @ 81AB785
- trainerbattle 0, TRAINER_SWIMMER_MALE_DARRIN, 0, Text_18802E, Text_18805C
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_DARRIN, 0, Text_18802E, Text_18805C
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB7AC
@@ -6432,12 +6433,12 @@ Route20_EventScript_1AB785:: @ 81AB785
end
EventScript_1AB7AC:: @ 81AB7AC
- trainerbattle 5, TRAINER_SWIMMER_MALE_DARRIN, 0, Text_1C30ED, Text_18805C
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_DARRIN, 0, Text_1C30ED, Text_18805C
msgbox Text_18806D, 6
end
Route20_EventScript_1AB7C3:: @ 81AB7C3
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_TIFFANY, 0, Text_187F24, Text_187F5A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_TIFFANY, 0, Text_187F24, Text_187F5A
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB7EA
@@ -6445,12 +6446,12 @@ Route20_EventScript_1AB7C3:: @ 81AB7C3
end
EventScript_1AB7EA:: @ 81AB7EA
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_TIFFANY, 0, Text_1C305F, Text_187F5A
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_TIFFANY, 0, Text_1C305F, Text_187F5A
msgbox Text_187F61, 6
end
Route20_EventScript_1AB801:: @ 81AB801
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_NORA, 0, Text_1880F8, Text_188119
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_NORA, 0, Text_1880F8, Text_188119
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB828
@@ -6458,12 +6459,12 @@ Route20_EventScript_1AB801:: @ 81AB801
end
EventScript_1AB828:: @ 81AB828
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_NORA, 0, Text_1C3149, Text_188119
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_NORA, 0, Text_1C3149, Text_188119
msgbox Text_188139, 6
end
Route20_EventScript_1AB83F:: @ 81AB83F
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_MELISSA, 0, Text_188218, Text_18825C
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_MELISSA, 0, Text_188218, Text_18825C
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB866
@@ -6471,12 +6472,12 @@ Route20_EventScript_1AB83F:: @ 81AB83F
end
EventScript_1AB866:: @ 81AB866
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_MELISSA, 0, Text_1C31C4, Text_18825C
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_MELISSA, 0, Text_1C31C4, Text_18825C
msgbox Text_18827B, 6
end
Route20_EventScript_1AB87D:: @ 81AB87D
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_SHIRLEY, 0, Text_187EBB, Text_187EED
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_SHIRLEY, 0, Text_187EBB, Text_187EED
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB8A4
@@ -6484,12 +6485,12 @@ Route20_EventScript_1AB87D:: @ 81AB87D
end
EventScript_1AB8A4:: @ 81AB8A4
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_SHIRLEY, 0, Text_1C302E, Text_187EED
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_SHIRLEY, 0, Text_1C302E, Text_187EED
msgbox Text_187EF6, 6
end
Route20_EventScript_1AB8BB:: @ 81AB8BB
- trainerbattle 0, TRAINER_BIRD_KEEPER_ROGER, 0, Text_18808E, Text_1880AB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_ROGER, 0, Text_18808E, Text_1880AB
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB8E2
@@ -6497,12 +6498,12 @@ Route20_EventScript_1AB8BB:: @ 81AB8BB
end
EventScript_1AB8E2:: @ 81AB8E2
- trainerbattle 5, TRAINER_BIRD_KEEPER_ROGER, 0, Text_1C312C, Text_1880AB
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_ROGER, 0, Text_1C312C, Text_1880AB
msgbox Text_1880C8, 6
end
Route20_EventScript_1AB8F9:: @ 81AB8F9
- trainerbattle 0, TRAINER_PICNICKER_MISSY, 0, Text_188165, Text_1881A3
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_MISSY, 0, Text_188165, Text_1881A3
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB920
@@ -6510,12 +6511,12 @@ Route20_EventScript_1AB8F9:: @ 81AB8F9
end
EventScript_1AB920:: @ 81AB920
- trainerbattle 5, TRAINER_PICNICKER_MISSY, 0, Text_1C3185, Text_1881A3
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_MISSY, 0, Text_1C3185, Text_1881A3
msgbox Text_1881B8, 6
end
Route20_EventScript_1AB937:: @ 81AB937
- trainerbattle 0, TRAINER_PICNICKER_IRENE, 0, Text_187F78, Text_187F92
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_IRENE, 0, Text_187F78, Text_187F92
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB95E
@@ -6523,12 +6524,12 @@ Route20_EventScript_1AB937:: @ 81AB937
end
EventScript_1AB95E:: @ 81AB95E
- trainerbattle 5, TRAINER_PICNICKER_IRENE, 0, Text_1C3095, Text_187F92
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_IRENE, 0, Text_1C3095, Text_187F92
msgbox Text_187FA3, 6
end
Route21_North_EventScript_1AB975:: @ 81AB975
- trainerbattle 0, TRAINER_FISHERMAN_RONALD, 0, Text_18835A, Text_188383
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_RONALD, 0, Text_18835A, Text_188383
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB99C
@@ -6536,12 +6537,12 @@ Route21_North_EventScript_1AB975:: @ 81AB975
end
EventScript_1AB99C:: @ 81AB99C
- trainerbattle 5, TRAINER_FISHERMAN_RONALD, 0, Text_1C3208, Text_188383
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_FISHERMAN_RONALD, 0, Text_1C3208, Text_188383
msgbox Text_188389, 6
end
Route21_South_EventScript_1AB9B3:: @ 81AB9B3
- trainerbattle 0, TRAINER_FISHERMAN_CLAUDE, 0, Text_1885D8, Text_1885F8
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_CLAUDE, 0, Text_1885D8, Text_1885F8
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AB9DA
@@ -6549,12 +6550,12 @@ Route21_South_EventScript_1AB9B3:: @ 81AB9B3
end
EventScript_1AB9DA:: @ 81AB9DA
- trainerbattle 5, TRAINER_FISHERMAN_CLAUDE, 0, Text_1C331D, Text_1885F8
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_FISHERMAN_CLAUDE, 0, Text_1C331D, Text_1885F8
msgbox Text_188632, 6
end
Route21_North_EventScript_1AB9F1:: @ 81AB9F1
- trainerbattle 0, TRAINER_FISHERMAN_WADE, 0, Text_1883C6, Text_1883E9
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_WADE, 0, Text_1883C6, Text_1883E9
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABA18
@@ -6562,12 +6563,12 @@ Route21_North_EventScript_1AB9F1:: @ 81AB9F1
end
EventScript_1ABA18:: @ 81ABA18
- trainerbattle 5, TRAINER_FISHERMAN_WADE, 0, Text_1C3231, Text_1883E9
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_FISHERMAN_WADE, 0, Text_1C3231, Text_1883E9
msgbox Text_18841D, 6
end
Route21_South_EventScript_1ABA2F:: @ 81ABA2F
- trainerbattle 0, TRAINER_FISHERMAN_NOLAN, 0, Text_18868C, Text_1886AE
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_NOLAN, 0, Text_18868C, Text_1886AE
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABA56
@@ -6575,12 +6576,12 @@ Route21_South_EventScript_1ABA2F:: @ 81ABA2F
end
EventScript_1ABA56:: @ 81ABA56
- trainerbattle 5, TRAINER_FISHERMAN_NOLAN, 0, Text_1C3356, Text_1886AE
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_FISHERMAN_NOLAN, 0, Text_1C3356, Text_1886AE
msgbox Text_1886C5, 6
end
Route21_North_EventScript_1ABA6D:: @ 81ABA6D
- trainerbattle 0, TRAINER_SWIMMER_MALE_SPENCER, 0, Text_18843C, Text_18845F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_SPENCER, 0, Text_18843C, Text_18845F
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABA94
@@ -6588,12 +6589,12 @@ Route21_North_EventScript_1ABA6D:: @ 81ABA6D
end
EventScript_1ABA94:: @ 81ABA94
- trainerbattle 5, TRAINER_SWIMMER_MALE_SPENCER, 0, Text_1C3264, Text_18845F
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_SPENCER, 0, Text_1C3264, Text_18845F
msgbox Text_188465, 6
end
Route21_South_EventScript_1ABAAB:: @ 81ABAAB
- trainerbattle 0, TRAINER_SWIMMER_MALE_JACK, 0, Text_1884D4, Text_1884F0
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_JACK, 0, Text_1884D4, Text_1884F0
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABAD2
@@ -6601,12 +6602,12 @@ Route21_South_EventScript_1ABAAB:: @ 81ABAAB
end
EventScript_1ABAD2:: @ 81ABAD2
- trainerbattle 5, TRAINER_SWIMMER_MALE_JACK, 0, Text_1C3298, Text_1884F0
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_JACK, 0, Text_1C3298, Text_1884F0
msgbox Text_1884FF, 6
end
Route21_South_EventScript_1ABAE9:: @ 81ABAE9
- trainerbattle 0, TRAINER_SWIMMER_MALE_JEROME, 0, Text_18851F, Text_188543
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_JEROME, 0, Text_18851F, Text_188543
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABB10
@@ -6614,12 +6615,12 @@ Route21_South_EventScript_1ABAE9:: @ 81ABAE9
end
EventScript_1ABB10:: @ 81ABB10
- trainerbattle 5, TRAINER_SWIMMER_MALE_JEROME, 0, Text_1C32D3, Text_188543
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_JEROME, 0, Text_1C32D3, Text_188543
msgbox Text_188555, 6
end
Route21_South_EventScript_1ABB27:: @ 81ABB27
- trainerbattle 0, TRAINER_SWIMMER_MALE_ROLAND, 0, Text_188592, Text_1885B2
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_ROLAND, 0, Text_188592, Text_1885B2
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABB4E
@@ -6627,12 +6628,12 @@ Route21_South_EventScript_1ABB27:: @ 81ABB27
end
EventScript_1ABB4E:: @ 81ABB4E
- trainerbattle 5, TRAINER_SWIMMER_MALE_ROLAND, 0, Text_1C32FD, Text_1885B2
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_ROLAND, 0, Text_1C32FD, Text_1885B2
msgbox Text_1885BF, 6
end
Route21_North_EventScript_1ABB65:: @ 81ABB65
- trainerbattle 4, TRAINER_SIS_AND_BRO_LIL_IAN, 0, Text_1886E2, Text_188712, Text_18875E
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_SIS_AND_BRO_LIL_IAN, 0, Text_1886E2, Text_188712, Text_18875E
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABB90
@@ -6640,12 +6641,12 @@ Route21_North_EventScript_1ABB65:: @ 81ABB65
end
EventScript_1ABB90:: @ 81ABB90
- trainerbattle 7, TRAINER_SIS_AND_BRO_LIL_IAN, 0, Text_1C3378, Text_188712, Text_18875E
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_SIS_AND_BRO_LIL_IAN, 0, Text_1C3378, Text_188712, Text_18875E
msgbox Text_188734, 6
end
Route21_North_EventScript_1ABBAB:: @ 81ABBAB
- trainerbattle 4, TRAINER_SIS_AND_BRO_LIL_IAN, 0, Text_1887B4, Text_1887F1, Text_188850
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_SIS_AND_BRO_LIL_IAN, 0, Text_1887B4, Text_1887F1, Text_188850
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABBD6
@@ -6653,12 +6654,12 @@ Route21_North_EventScript_1ABBAB:: @ 81ABBAB
end
EventScript_1ABBD6:: @ 81ABBD6
- trainerbattle 7, TRAINER_SIS_AND_BRO_LIL_IAN, 0, Text_1C33AE, Text_1887F1, Text_188850
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_SIS_AND_BRO_LIL_IAN, 0, Text_1C33AE, Text_1887F1, Text_188850
msgbox Text_188812, 6
end
OneIsland_KindleRoad_EventScript_1ABBF1:: @ 81ABBF1
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_MARIA, 0, Text_18961F, Text_18964D
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_MARIA, 0, Text_18961F, Text_18964D
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABC18
@@ -6666,12 +6667,12 @@ OneIsland_KindleRoad_EventScript_1ABBF1:: @ 81ABBF1
end
EventScript_1ABC18:: @ 81ABC18
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_MARIA, 0, Text_1C37B5, Text_18964D
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_MARIA, 0, Text_1C37B5, Text_18964D
msgbox Text_189657, 6
end
OneIsland_KindleRoad_EventScript_1ABC2F:: @ 81ABC2F
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_ABIGAIL, 0, Text_18968C, Text_1896AC
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_ABIGAIL, 0, Text_18968C, Text_1896AC
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABC56
@@ -6679,12 +6680,12 @@ OneIsland_KindleRoad_EventScript_1ABC2F:: @ 81ABC2F
end
EventScript_1ABC56:: @ 81ABC56
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_ABIGAIL, 0, Text_1C37E7, Text_1896AC
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_ABIGAIL, 0, Text_1C37E7, Text_1896AC
msgbox Text_1896C1, 6
end
OneIsland_KindleRoad_EventScript_1ABC6D:: @ 81ABC6D
- trainerbattle 0, TRAINER_SWIMMER_MALE_FINN, 0, Text_1896F9, Text_189728
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_FINN, 0, Text_1896F9, Text_189728
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABC94
@@ -6692,12 +6693,12 @@ OneIsland_KindleRoad_EventScript_1ABC6D:: @ 81ABC6D
end
EventScript_1ABC94:: @ 81ABC94
- trainerbattle 5, TRAINER_SWIMMER_MALE_FINN, 0, Text_1C3807, Text_189728
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_FINN, 0, Text_1C3807, Text_189728
msgbox Text_189740, 6
end
OneIsland_KindleRoad_EventScript_1ABCAB:: @ 81ABCAB
- trainerbattle 0, TRAINER_SWIMMER_MALE_GARRETT, 0, Text_189767, Text_1897A4
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_GARRETT, 0, Text_189767, Text_1897A4
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABCD2
@@ -6705,12 +6706,12 @@ OneIsland_KindleRoad_EventScript_1ABCAB:: @ 81ABCAB
end
EventScript_1ABCD2:: @ 81ABCD2
- trainerbattle 5, TRAINER_SWIMMER_MALE_GARRETT, 0, Text_1C3835, Text_1897A4
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_GARRETT, 0, Text_1C3835, Text_1897A4
msgbox Text_1897C5, 6
end
OneIsland_KindleRoad_EventScript_1ABCE9:: @ 81ABCE9
- trainerbattle 0, TRAINER_FISHERMAN_TOMMY, 0, Text_1897FF, Text_189833
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_TOMMY, 0, Text_1897FF, Text_189833
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABD10
@@ -6718,12 +6719,12 @@ OneIsland_KindleRoad_EventScript_1ABCE9:: @ 81ABCE9
end
EventScript_1ABD10:: @ 81ABD10
- trainerbattle 5, TRAINER_FISHERMAN_TOMMY, 0, Text_1C386A, Text_189833
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_FISHERMAN_TOMMY, 0, Text_1C386A, Text_189833
msgbox Text_18984B, 6
end
OneIsland_KindleRoad_EventScript_1ABD27:: @ 81ABD27
- trainerbattle 0, TRAINER_CRUSH_GIRL_SHARON, 0, Text_189883, Text_1898AB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CRUSH_GIRL_SHARON, 0, Text_189883, Text_1898AB
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABD4E
@@ -6731,12 +6732,12 @@ OneIsland_KindleRoad_EventScript_1ABD27:: @ 81ABD27
end
EventScript_1ABD4E:: @ 81ABD4E
- trainerbattle 5, TRAINER_CRUSH_GIRL_SHARON, 0, Text_1C389F, Text_1898AB
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CRUSH_GIRL_SHARON, 0, Text_1C389F, Text_1898AB
msgbox Text_1898C4, 6
end
OneIsland_KindleRoad_EventScript_1ABD65:: @ 81ABD65
- trainerbattle 0, TRAINER_CRUSH_GIRL_TANYA, 0, Text_1898F0, Text_18991B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CRUSH_GIRL_TANYA, 0, Text_1898F0, Text_18991B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABD8C
@@ -6744,12 +6745,12 @@ OneIsland_KindleRoad_EventScript_1ABD65:: @ 81ABD65
end
EventScript_1ABD8C:: @ 81ABD8C
- trainerbattle 5, TRAINER_CRUSH_GIRL_TANYA, 0, Text_1C38CA, Text_18991B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CRUSH_GIRL_TANYA, 0, Text_1C38CA, Text_18991B
msgbox Text_18992C, 6
end
OneIsland_KindleRoad_EventScript_1ABDA3:: @ 81ABDA3
- trainerbattle 0, TRAINER_BLACK_BELT_SHEA, 0, Text_189950, Text_18998C
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BLACK_BELT_SHEA, 0, Text_189950, Text_18998C
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABDCA
@@ -6757,12 +6758,12 @@ OneIsland_KindleRoad_EventScript_1ABDA3:: @ 81ABDA3
end
EventScript_1ABDCA:: @ 81ABDCA
- trainerbattle 5, TRAINER_BLACK_BELT_SHEA, 0, Text_1C38FA, Text_18998C
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BLACK_BELT_SHEA, 0, Text_1C38FA, Text_18998C
msgbox Text_189998, 6
end
OneIsland_KindleRoad_EventScript_1ABDE1:: @ 81ABDE1
- trainerbattle 0, TRAINER_BLACK_BELT_HUGH, 0, Text_1899CE, Text_189A0A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BLACK_BELT_HUGH, 0, Text_1899CE, Text_189A0A
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABE08
@@ -6770,12 +6771,12 @@ OneIsland_KindleRoad_EventScript_1ABDE1:: @ 81ABDE1
end
EventScript_1ABE08:: @ 81ABE08
- trainerbattle 5, TRAINER_BLACK_BELT_HUGH, 0, Text_1C3943, Text_189A0A
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BLACK_BELT_HUGH, 0, Text_1C3943, Text_189A0A
msgbox Text_189A13, 6
end
OneIsland_KindleRoad_EventScript_1ABE1F:: @ 81ABE1F
- trainerbattle 0, TRAINER_CAMPER_BRYCE, 0, Text_189A53, Text_189A92
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CAMPER_BRYCE, 0, Text_189A53, Text_189A92
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABE46
@@ -6783,12 +6784,12 @@ OneIsland_KindleRoad_EventScript_1ABE1F:: @ 81ABE1F
end
EventScript_1ABE46:: @ 81ABE46
- trainerbattle 5, TRAINER_CAMPER_BRYCE, 0, Text_1C3987, Text_189A92
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CAMPER_BRYCE, 0, Text_1C3987, Text_189A92
msgbox Text_189A9F, 6
end
OneIsland_KindleRoad_EventScript_1ABE5D:: @ 81ABE5D
- trainerbattle 0, TRAINER_PICNICKER_CLAIRE, 0, Text_189ACB, Text_189B0B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_CLAIRE, 0, Text_189ACB, Text_189B0B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABE84
@@ -6796,12 +6797,12 @@ OneIsland_KindleRoad_EventScript_1ABE5D:: @ 81ABE5D
end
EventScript_1ABE84:: @ 81ABE84
- trainerbattle 5, TRAINER_PICNICKER_CLAIRE, 0, Text_1C39C6, Text_189B0B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PICNICKER_CLAIRE, 0, Text_1C39C6, Text_189B0B
msgbox Text_189B24, 6
end
OneIsland_KindleRoad_EventScript_1ABE9B:: @ 81ABE9B
- trainerbattle 4, TRAINER_CRUSH_KIN_MIK_KIA, 0, Text_189B4D, Text_189B84, Text_189BDE
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_CRUSH_KIN_MIK_KIA, 0, Text_189B4D, Text_189B84, Text_189BDE
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABEC6
@@ -6809,12 +6810,12 @@ OneIsland_KindleRoad_EventScript_1ABE9B:: @ 81ABE9B
end
EventScript_1ABEC6:: @ 81ABEC6
- trainerbattle 7, TRAINER_CRUSH_KIN_MIK_KIA, 0, Text_1C3A05, Text_189B84, Text_189BDE
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_CRUSH_KIN_MIK_KIA, 0, Text_1C3A05, Text_189B84, Text_189BDE
msgbox Text_189BA3, 6
end
OneIsland_KindleRoad_EventScript_1ABEE1:: @ 81ABEE1
- trainerbattle 4, TRAINER_CRUSH_KIN_MIK_KIA, 0, Text_189C33, Text_189C62, Text_189CAB
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_CRUSH_KIN_MIK_KIA, 0, Text_189C33, Text_189C62, Text_189CAB
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABF0C
@@ -6822,12 +6823,12 @@ OneIsland_KindleRoad_EventScript_1ABEE1:: @ 81ABEE1
end
EventScript_1ABF0C:: @ 81ABF0C
- trainerbattle 7, TRAINER_CRUSH_KIN_MIK_KIA, 0, Text_1C3A55, Text_189C62, Text_189CAB
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_CRUSH_KIN_MIK_KIA, 0, Text_1C3A55, Text_189C62, Text_189CAB
msgbox Text_189C7E, 6
end
OneIsland_TreasureBeach_EventScript_1ABF27:: @ 81ABF27
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_AMARA, 0, Text_189D5A, Text_189D8B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_AMARA, 0, Text_189D5A, Text_189D8B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABF4E
@@ -6835,12 +6836,12 @@ OneIsland_TreasureBeach_EventScript_1ABF27:: @ 81ABF27
end
EventScript_1ABF4E:: @ 81ABF4E
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_AMARA, 0, Text_1C3773, Text_189D8B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_AMARA, 0, Text_1C3773, Text_189D8B
msgbox Text_189DA3, 6
end
ThreeIsland_BondBridge_EventScript_1ABF65:: @ 81ABF65
- trainerbattle 0, TRAINER_AROMA_LADY_NIKKI, 0, Text_189E42, Text_189E72
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_AROMA_LADY_NIKKI, 0, Text_189E42, Text_189E72
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABF8C
@@ -6848,12 +6849,12 @@ ThreeIsland_BondBridge_EventScript_1ABF65:: @ 81ABF65
end
EventScript_1ABF8C:: @ 81ABF8C
- trainerbattle 5, TRAINER_AROMA_LADY_NIKKI, 0, Text_1C3AA7, Text_189E72
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_AROMA_LADY_NIKKI, 0, Text_1C3AA7, Text_189E72
msgbox Text_189E9E, 6
end
ThreeIsland_BondBridge_EventScript_1ABFA3:: @ 81ABFA3
- trainerbattle 0, TRAINER_AROMA_LADY_VIOLET, 0, Text_189ED4, Text_189EFA
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_AROMA_LADY_VIOLET, 0, Text_189ED4, Text_189EFA
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ABFCA
@@ -6861,12 +6862,12 @@ ThreeIsland_BondBridge_EventScript_1ABFA3:: @ 81ABFA3
end
EventScript_1ABFCA:: @ 81ABFCA
- trainerbattle 5, TRAINER_AROMA_LADY_VIOLET, 0, Text_1C3ABF, Text_189EFA
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_AROMA_LADY_VIOLET, 0, Text_1C3ABF, Text_189EFA
msgbox Text_189F21, 6
end
ThreeIsland_BondBridge_EventScript_1ABFE1:: @ 81ABFE1
- trainerbattle 0, TRAINER_TUBER_AMIRA, 0, Text_189F63, Text_189F9A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TUBER_AMIRA, 0, Text_189F63, Text_189F9A
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC008
@@ -6874,12 +6875,12 @@ ThreeIsland_BondBridge_EventScript_1ABFE1:: @ 81ABFE1
end
EventScript_1AC008:: @ 81AC008
- trainerbattle 5, TRAINER_TUBER_AMIRA, 0, Text_1C3AF2, Text_189F9A
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_TUBER_AMIRA, 0, Text_1C3AF2, Text_189F9A
msgbox Text_189FA8, 6
end
ThreeIsland_BondBridge_EventScript_1AC01F:: @ 81AC01F
- trainerbattle 0, TRAINER_TUBER_ALEXIS, 0, Text_189FDB, Text_189FEE
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TUBER_ALEXIS, 0, Text_189FDB, Text_189FEE
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC046
@@ -6887,12 +6888,12 @@ ThreeIsland_BondBridge_EventScript_1AC01F:: @ 81AC01F
end
EventScript_1AC046:: @ 81AC046
- trainerbattle 5, TRAINER_TUBER_ALEXIS, 0, Text_1C3B1D, Text_189FEE
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_TUBER_ALEXIS, 0, Text_1C3B1D, Text_189FEE
msgbox Text_18A000, 6
end
ThreeIsland_BondBridge_EventScript_1AC05D:: @ 81AC05D
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_TISHA, 0, Text_18A01F, Text_18A053
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_TISHA, 0, Text_18A01F, Text_18A053
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC084
@@ -6900,12 +6901,12 @@ ThreeIsland_BondBridge_EventScript_1AC05D:: @ 81AC05D
end
EventScript_1AC084:: @ 81AC084
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_TISHA, 0, Text_1C3B30, Text_18A053
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_TISHA, 0, Text_1C3B30, Text_18A053
msgbox Text_18A082, 6
end
ThreeIsland_BondBridge_EventScript_1AC09B:: @ 81AC09B
- trainerbattle 4, TRAINER_TWINS_JOY_MEG, 0, Text_18A0C4, Text_18A0F7, Text_18A138
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_TWINS_JOY_MEG, 0, Text_18A0C4, Text_18A0F7, Text_18A138
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC0C6
@@ -6913,12 +6914,12 @@ ThreeIsland_BondBridge_EventScript_1AC09B:: @ 81AC09B
end
EventScript_1AC0C6:: @ 81AC0C6
- trainerbattle 7, TRAINER_TWINS_JOY_MEG, 0, Text_1C3B6E, Text_18A0F7, Text_18A138
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_TWINS_JOY_MEG, 0, Text_1C3B6E, Text_18A0F7, Text_18A138
msgbox Text_18A106, 6
end
ThreeIsland_BondBridge_EventScript_1AC0E1:: @ 81AC0E1
- trainerbattle 4, TRAINER_TWINS_JOY_MEG, 0, Text_18A179, Text_18A1A3, Text_18A1CD
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_TWINS_JOY_MEG, 0, Text_18A179, Text_18A1A3, Text_18A1CD
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC10C
@@ -6926,12 +6927,12 @@ ThreeIsland_BondBridge_EventScript_1AC0E1:: @ 81AC0E1
end
EventScript_1AC10C:: @ 81AC10C
- trainerbattle 7, TRAINER_TWINS_JOY_MEG, 0, Text_1C3B99, Text_18A1A3, Text_18A1CD
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_TWINS_JOY_MEG, 0, Text_1C3B99, Text_18A1A3, Text_18A1CD
msgbox Text_18A1B2, 6
end
FiveIsland_ResortGorgeous_EventScript_1AC127:: @ 81AC127
- trainerbattle 0, TRAINER_PAINTER_DAISY, 0, Text_18A3E2, Text_18A40E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PAINTER_DAISY, 0, Text_18A3E2, Text_18A40E
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC14E
@@ -6939,12 +6940,12 @@ FiveIsland_ResortGorgeous_EventScript_1AC127:: @ 81AC127
end
EventScript_1AC14E:: @ 81AC14E
- trainerbattle 5, TRAINER_PAINTER_DAISY, 0, Text_1C3BF6, Text_18A40E
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PAINTER_DAISY, 0, Text_1C3BF6, Text_18A40E
msgbox Text_18A430, 6
end
FiveIsland_ResortGorgeous_EventScript_1AC165:: @ 81AC165
- trainerbattle 0, TRAINER_PAINTER_CELINA, 0, Text_18A461, Text_18A49E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PAINTER_CELINA, 0, Text_18A461, Text_18A49E
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC18C
@@ -6952,12 +6953,12 @@ FiveIsland_ResortGorgeous_EventScript_1AC165:: @ 81AC165
end
EventScript_1AC18C:: @ 81AC18C
- trainerbattle 5, TRAINER_PAINTER_CELINA, 0, Text_1C3C28, Text_18A49E
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PAINTER_CELINA, 0, Text_1C3C28, Text_18A49E
msgbox Text_18A4C6, 6
end
FiveIsland_ResortGorgeous_EventScript_1AC1A3:: @ 81AC1A3
- trainerbattle 0, TRAINER_PAINTER_RAYNA, 0, Text_18A50E, Text_18A535
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PAINTER_RAYNA, 0, Text_18A50E, Text_18A535
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC1CA
@@ -6965,12 +6966,12 @@ FiveIsland_ResortGorgeous_EventScript_1AC1A3:: @ 81AC1A3
end
EventScript_1AC1CA:: @ 81AC1CA
- trainerbattle 5, TRAINER_PAINTER_RAYNA, 0, Text_1C3C70, Text_18A535
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PAINTER_RAYNA, 0, Text_1C3C70, Text_18A535
msgbox Text_18A555, 6
end
FiveIsland_ResortGorgeous_EventScript_1AC1E1:: @ 81AC1E1
- trainerbattle 0, TRAINER_LADY_JACKI, 0, Text_18A5B9, Text_18A5EE
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LADY_JACKI, 0, Text_18A5B9, Text_18A5EE
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC208
@@ -6978,12 +6979,12 @@ FiveIsland_ResortGorgeous_EventScript_1AC1E1:: @ 81AC1E1
end
EventScript_1AC208:: @ 81AC208
- trainerbattle 5, TRAINER_LADY_JACKI, 0, Text_1C3CB0, Text_18A5EE
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LADY_JACKI, 0, Text_1C3CB0, Text_18A5EE
msgbox Text_18A601, 6
end
FiveIsland_ResortGorgeous_EventScript_1AC21F:: @ 81AC21F
- trainerbattle 0, TRAINER_LADY_GILLIAN, 0, Text_18A645, Text_18A67F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LADY_GILLIAN, 0, Text_18A645, Text_18A67F
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC246
@@ -6991,12 +6992,12 @@ FiveIsland_ResortGorgeous_EventScript_1AC21F:: @ 81AC21F
end
EventScript_1AC246:: @ 81AC246
- trainerbattle 5, TRAINER_LADY_GILLIAN, 0, Text_1C3CF1, Text_18A67F
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_LADY_GILLIAN, 0, Text_1C3CF1, Text_18A67F
msgbox Text_18A699, 6
end
FiveIsland_ResortGorgeous_EventScript_1AC25D:: @ 81AC25D
- trainerbattle 0, TRAINER_YOUNGSTER_DESTIN, 0, Text_18A6DA, Text_18A6FE
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_DESTIN, 0, Text_18A6DA, Text_18A6FE
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC284
@@ -7004,12 +7005,12 @@ FiveIsland_ResortGorgeous_EventScript_1AC25D:: @ 81AC25D
end
EventScript_1AC284:: @ 81AC284
- trainerbattle 5, TRAINER_YOUNGSTER_DESTIN, 0, Text_1C3D47, Text_18A6FE
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_YOUNGSTER_DESTIN, 0, Text_1C3D47, Text_18A6FE
msgbox Text_18A715, 6
end
FiveIsland_ResortGorgeous_EventScript_1AC29B:: @ 81AC29B
- trainerbattle 0, TRAINER_SWIMMER_MALE_TOBY, 0, Text_18A74A, Text_18A786
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_TOBY, 0, Text_18A74A, Text_18A786
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC2C2
@@ -7017,12 +7018,12 @@ FiveIsland_ResortGorgeous_EventScript_1AC29B:: @ 81AC29B
end
EventScript_1AC2C2:: @ 81AC2C2
- trainerbattle 5, TRAINER_SWIMMER_MALE_TOBY, 0, Text_1C3D73, Text_18A786
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_TOBY, 0, Text_1C3D73, Text_18A786
msgbox Text_18A7AC, 6
end
FiveIsland_WaterLabyrinth_EventScript_1AC2D9:: @ 81AC2D9
- trainerbattle 0, TRAINER_PKMN_BREEDER_ALIZE, 0, Text_18AAD5, Text_18AB0B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PKMN_BREEDER_ALIZE, 0, Text_18AAD5, Text_18AB0B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC300
@@ -7030,12 +7031,12 @@ FiveIsland_WaterLabyrinth_EventScript_1AC2D9:: @ 81AC2D9
end
EventScript_1AC300:: @ 81AC300
- trainerbattle 5, TRAINER_PKMN_BREEDER_ALIZE, 0, Text_1C3BB7, Text_18AB0B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PKMN_BREEDER_ALIZE, 0, Text_1C3BB7, Text_18AB0B
msgbox Text_18AB37, 6
end
FiveIsland_MemorialPillar_EventScript_1AC317:: @ 81AC317
- trainerbattle 0, TRAINER_BIRD_KEEPER_MILO, 0, Text_18AE50, Text_18AEA8
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_MILO, 0, Text_18AE50, Text_18AEA8
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC33E
@@ -7043,12 +7044,12 @@ FiveIsland_MemorialPillar_EventScript_1AC317:: @ 81AC317
end
EventScript_1AC33E:: @ 81AC33E
- trainerbattle 5, TRAINER_BIRD_KEEPER_MILO, 0, Text_1C3DA2, Text_18AEA8
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_MILO, 0, Text_1C3DA2, Text_18AEA8
msgbox Text_18AEB6, 6
end
FiveIsland_MemorialPillar_EventScript_1AC355:: @ 81AC355
- trainerbattle 0, TRAINER_BIRD_KEEPER_CHAZ, 0, Text_18AEDC, Text_18AF39
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_CHAZ, 0, Text_18AEDC, Text_18AF39
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC37C
@@ -7056,12 +7057,12 @@ FiveIsland_MemorialPillar_EventScript_1AC355:: @ 81AC355
end
EventScript_1AC37C:: @ 81AC37C
- trainerbattle 5, TRAINER_BIRD_KEEPER_CHAZ, 0, Text_1C3E0F, Text_18AF39
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_CHAZ, 0, Text_1C3E0F, Text_18AF39
msgbox Text_18AF45, 6
end
FiveIsland_MemorialPillar_EventScript_1AC393:: @ 81AC393
- trainerbattle 0, TRAINER_BIRD_KEEPER_HAROLD, 0, Text_18AF72, Text_18AFCC
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BIRD_KEEPER_HAROLD, 0, Text_18AF72, Text_18AFCC
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC3BA
@@ -7069,12 +7070,12 @@ FiveIsland_MemorialPillar_EventScript_1AC393:: @ 81AC393
end
EventScript_1AC3BA:: @ 81AC3BA
- trainerbattle 5, TRAINER_BIRD_KEEPER_HAROLD, 0, Text_1C3E6A, Text_18AFCC
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_BIRD_KEEPER_HAROLD, 0, Text_1C3E6A, Text_18AFCC
msgbox Text_18AFF2, 6
end
SixIsland_OutcastIsland_EventScript_1AC3D1:: @ 81AC3D1
- trainerbattle 0, TRAINER_FISHERMAN_TYLOR, 0, Text_18B400, Text_18B43B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_TYLOR, 0, Text_18B400, Text_18B43B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC3F8
@@ -7082,12 +7083,12 @@ SixIsland_OutcastIsland_EventScript_1AC3D1:: @ 81AC3D1
end
EventScript_1AC3F8:: @ 81AC3F8
- trainerbattle 5, TRAINER_FISHERMAN_TYLOR, 0, Text_1C3ED0, Text_18B43B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_FISHERMAN_TYLOR, 0, Text_1C3ED0, Text_18B43B
msgbox Text_18B451, 6
end
SixIsland_OutcastIsland_EventScript_1AC40F:: @ 81AC40F
- trainerbattle 0, TRAINER_SWIMMER_MALE_MYMO, 0, Text_18B48F, Text_18B4C5
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_MYMO, 0, Text_18B48F, Text_18B4C5
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC436
@@ -7095,12 +7096,12 @@ SixIsland_OutcastIsland_EventScript_1AC40F:: @ 81AC40F
end
EventScript_1AC436:: @ 81AC436
- trainerbattle 5, TRAINER_SWIMMER_MALE_MYMO, 0, Text_1C3F11, Text_18B4C5
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_MYMO, 0, Text_1C3F11, Text_18B4C5
msgbox Text_18B4D1, 6
end
SixIsland_OutcastIsland_EventScript_1AC44D:: @ 81AC44D
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_NICOLE, 0, Text_18B4FA, Text_18B539
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_NICOLE, 0, Text_18B4FA, Text_18B539
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC474
@@ -7108,12 +7109,12 @@ SixIsland_OutcastIsland_EventScript_1AC44D:: @ 81AC44D
end
EventScript_1AC474:: @ 81AC474
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_NICOLE, 0, Text_1C3F51, Text_18B539
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_NICOLE, 0, Text_1C3F51, Text_18B539
msgbox Text_18B573, 6
end
SixIsland_OutcastIsland_EventScript_1AC48B:: @ 81AC48B
- trainerbattle 4, TRAINER_SIS_AND_BRO_AVA_GEB, 0, Text_18B5C8, Text_18B5F4, Text_18B660
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_SIS_AND_BRO_AVA_GEB, 0, Text_18B5C8, Text_18B5F4, Text_18B660
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC4B6
@@ -7121,12 +7122,12 @@ SixIsland_OutcastIsland_EventScript_1AC48B:: @ 81AC48B
end
EventScript_1AC4B6:: @ 81AC4B6
- trainerbattle 7, TRAINER_SIS_AND_BRO_AVA_GEB, 0, Text_1C3F7B, Text_18B5F4, Text_18B660
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_SIS_AND_BRO_AVA_GEB, 0, Text_1C3F7B, Text_18B5F4, Text_18B660
msgbox Text_18B62E, 6
end
SixIsland_OutcastIsland_EventScript_1AC4D1:: @ 81AC4D1
- trainerbattle 4, TRAINER_SIS_AND_BRO_AVA_GEB, 0, Text_18B6C1, Text_18B6EF, Text_18B762
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_SIS_AND_BRO_AVA_GEB, 0, Text_18B6C1, Text_18B6EF, Text_18B762
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC4FC
@@ -7134,12 +7135,12 @@ SixIsland_OutcastIsland_EventScript_1AC4D1:: @ 81AC4D1
end
EventScript_1AC4FC:: @ 81AC4FC
- trainerbattle 7, TRAINER_SIS_AND_BRO_AVA_GEB, 0, Text_1C3FB3, Text_18B6EF, Text_18B762
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_SIS_AND_BRO_AVA_GEB, 0, Text_1C3FB3, Text_18B6EF, Text_18B762
msgbox Text_18B720, 6
end
SixIsland_GreenPath_EventScript_1AC517:: @ 81AC517
- trainerbattle 0, TRAINER_PSYCHIC_JACLYN, 0, Text_18B7B0, Text_18B7F0
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PSYCHIC_JACLYN, 0, Text_18B7B0, Text_18B7F0
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC53E
@@ -7147,12 +7148,12 @@ SixIsland_GreenPath_EventScript_1AC517:: @ 81AC517
end
EventScript_1AC53E:: @ 81AC53E
- trainerbattle 5, TRAINER_PSYCHIC_JACLYN, 0, Text_1C3FE9, Text_18B7F0
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PSYCHIC_JACLYN, 0, Text_1C3FE9, Text_18B7F0
msgbox Text_18B7FD, 6
end
SixIsland_WaterPath_EventScript_1AC555:: @ 81AC555
- trainerbattle 0, TRAINER_AROMA_LADY_ROSE, 0, Text_18B896, Text_18B8C8
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_AROMA_LADY_ROSE, 0, Text_18B896, Text_18B8C8
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC57C
@@ -7160,12 +7161,12 @@ SixIsland_WaterPath_EventScript_1AC555:: @ 81AC555
end
EventScript_1AC57C:: @ 81AC57C
- trainerbattle 5, TRAINER_AROMA_LADY_ROSE, 0, Text_1C4028, Text_18B8C8
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_AROMA_LADY_ROSE, 0, Text_1C4028, Text_18B8C8
msgbox Text_18B8F7, 6
end
SixIsland_WaterPath_EventScript_1AC593:: @ 81AC593
- trainerbattle 0, TRAINER_JUGGLER_EDWARD, 0, Text_18B959, Text_18B988
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_JUGGLER_EDWARD, 0, Text_18B959, Text_18B988
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC5BA
@@ -7173,12 +7174,12 @@ SixIsland_WaterPath_EventScript_1AC593:: @ 81AC593
end
EventScript_1AC5BA:: @ 81AC5BA
- trainerbattle 5, TRAINER_JUGGLER_EDWARD, 0, Text_1C4057, Text_18B988
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_JUGGLER_EDWARD, 0, Text_1C4057, Text_18B988
msgbox Text_18B9A5, 6
end
SixIsland_WaterPath_EventScript_1AC5D1:: @ 81AC5D1
- trainerbattle 0, TRAINER_SWIMMER_MALE_SAMIR, 0, Text_18B9EC, Text_18BA47
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_SAMIR, 0, Text_18B9EC, Text_18BA47
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC5F8
@@ -7186,12 +7187,12 @@ SixIsland_WaterPath_EventScript_1AC5D1:: @ 81AC5D1
end
EventScript_1AC5F8:: @ 81AC5F8
- trainerbattle 5, TRAINER_SWIMMER_MALE_SAMIR, 0, Text_1C407F, Text_18BA47
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_MALE_SAMIR, 0, Text_1C407F, Text_18BA47
msgbox Text_18BA57, 6
end
SixIsland_WaterPath_EventScript_1AC60F:: @ 81AC60F
- trainerbattle 0, TRAINER_SWIMMER_FEMALE_DENISE, 0, Text_18BA86, Text_18BAC0
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_FEMALE_DENISE, 0, Text_18BA86, Text_18BAC0
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC636
@@ -7199,12 +7200,12 @@ SixIsland_WaterPath_EventScript_1AC60F:: @ 81AC60F
end
EventScript_1AC636:: @ 81AC636
- trainerbattle 5, TRAINER_SWIMMER_FEMALE_DENISE, 0, Text_1C40D9, Text_18BAC0
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_SWIMMER_FEMALE_DENISE, 0, Text_1C40D9, Text_18BAC0
msgbox Text_18BAE0, 6
end
SixIsland_WaterPath_EventScript_1AC64D:: @ 81AC64D
- trainerbattle 4, TRAINER_TWINS_MIU_MIA, 0, Text_18BBBA, Text_18BBE2, Text_18BC24
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_TWINS_MIU_MIA, 0, Text_18BBBA, Text_18BBE2, Text_18BC24
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC678
@@ -7212,12 +7213,12 @@ SixIsland_WaterPath_EventScript_1AC64D:: @ 81AC64D
end
EventScript_1AC678:: @ 81AC678
- trainerbattle 7, TRAINER_TWINS_MIU_MIA, 0, Text_1C4138, Text_18BBE2, Text_18BC24
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_TWINS_MIU_MIA, 0, Text_1C4138, Text_18BBE2, Text_18BC24
msgbox Text_18BBF6, 6
end
SixIsland_WaterPath_EventScript_1AC693:: @ 81AC693
- trainerbattle 4, TRAINER_TWINS_MIU_MIA, 0, Text_18BC5A, Text_18BC84, Text_18BCCF
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_TWINS_MIU_MIA, 0, Text_18BC5A, Text_18BC84, Text_18BCCF
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC6BE
@@ -7225,12 +7226,12 @@ SixIsland_WaterPath_EventScript_1AC693:: @ 81AC693
end
EventScript_1AC6BE:: @ 81AC6BE
- trainerbattle 7, TRAINER_TWINS_MIU_MIA, 0, Text_1C4166, Text_18BC84, Text_18BCCF
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_TWINS_MIU_MIA, 0, Text_1C4166, Text_18BC84, Text_18BCCF
msgbox Text_18BCAE, 6
end
SixIsland_WaterPath_EventScript_1AC6D9:: @ 81AC6D9
- trainerbattle 0, TRAINER_HIKER_EARL, 0, Text_18BB2D, Text_18BB62
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_EARL, 0, Text_18BB2D, Text_18BB62
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC700
@@ -7238,12 +7239,12 @@ SixIsland_WaterPath_EventScript_1AC6D9:: @ 81AC6D9
end
EventScript_1AC700:: @ 81AC700
- trainerbattle 5, TRAINER_HIKER_EARL, 0, Text_1C40FA, Text_18BB62
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_HIKER_EARL, 0, Text_1C40FA, Text_18BB62
msgbox Text_18BB8B, 6
end
SixIsland_RuinValley_EventScript_1AC717:: @ 81AC717
- trainerbattle 0, TRAINER_RUIN_MANIAC_STANLY, 0, Text_18BE5D, Text_18BE9B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_RUIN_MANIAC_STANLY, 0, Text_18BE5D, Text_18BE9B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC73E
@@ -7251,12 +7252,12 @@ SixIsland_RuinValley_EventScript_1AC717:: @ 81AC717
end
EventScript_1AC73E:: @ 81AC73E
- trainerbattle 5, TRAINER_RUIN_MANIAC_STANLY, 0, Text_1C4196, Text_18BE9B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_RUIN_MANIAC_STANLY, 0, Text_1C4196, Text_18BE9B
msgbox Text_18BEA0, 6
end
SixIsland_RuinValley_EventScript_1AC755:: @ 81AC755
- trainerbattle 0, TRAINER_RUIN_MANIAC_FOSTER, 0, Text_18BF05, Text_18BF33
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_RUIN_MANIAC_FOSTER, 0, Text_18BF05, Text_18BF33
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC77C
@@ -7264,12 +7265,12 @@ SixIsland_RuinValley_EventScript_1AC755:: @ 81AC755
end
EventScript_1AC77C:: @ 81AC77C
- trainerbattle 5, TRAINER_RUIN_MANIAC_FOSTER, 0, Text_1C41D4, Text_18BF33
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_RUIN_MANIAC_FOSTER, 0, Text_1C41D4, Text_18BF33
msgbox Text_18BF6C, 6
end
SixIsland_RuinValley_EventScript_1AC793:: @ 81AC793
- trainerbattle 0, TRAINER_RUIN_MANIAC_LARRY, 0, Text_18BFC5, Text_18C03B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_RUIN_MANIAC_LARRY, 0, Text_18BFC5, Text_18C03B
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC7BA
@@ -7277,12 +7278,12 @@ SixIsland_RuinValley_EventScript_1AC793:: @ 81AC793
end
EventScript_1AC7BA:: @ 81AC7BA
- trainerbattle 5, TRAINER_RUIN_MANIAC_LARRY, 0, Text_1C4210, Text_18C03B
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_RUIN_MANIAC_LARRY, 0, Text_1C4210, Text_18C03B
msgbox Text_18C04C, 6
end
SixIsland_RuinValley_EventScript_1AC7D1:: @ 81AC7D1
- trainerbattle 0, TRAINER_HIKER_DARYL, 0, Text_18C09C, Text_18C0BB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_DARYL, 0, Text_18C09C, Text_18C0BB
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC7F8
@@ -7290,12 +7291,12 @@ SixIsland_RuinValley_EventScript_1AC7D1:: @ 81AC7D1
end
EventScript_1AC7F8:: @ 81AC7F8
- trainerbattle 5, TRAINER_HIKER_DARYL, 0, Text_1C4280, Text_18C0BB
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_HIKER_DARYL, 0, Text_1C4280, Text_18C0BB
msgbox Text_18C0EA, 6
end
SixIsland_RuinValley_EventScript_1AC80F:: @ 81AC80F
- trainerbattle 0, TRAINER_POKEMANIAC_HECTOR, 0, Text_18C10A, Text_18C140
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_POKEMANIAC_HECTOR, 0, Text_18C10A, Text_18C140
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC836
@@ -7303,12 +7304,12 @@ SixIsland_RuinValley_EventScript_1AC80F:: @ 81AC80F
end
EventScript_1AC836:: @ 81AC836
- trainerbattle 5, TRAINER_POKEMANIAC_HECTOR, 0, Text_1C42A0, Text_18C140
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_POKEMANIAC_HECTOR, 0, Text_1C42A0, Text_18C140
msgbox Text_18C17A, 6
end
SevenIsland_TrainerTower_EventScript_1AC84D:: @ 81AC84D
- trainerbattle 0, TRAINER_PSYCHIC_DARIO, 0, Text_18C1ED, Text_18C205
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PSYCHIC_DARIO, 0, Text_18C1ED, Text_18C205
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC874
@@ -7316,12 +7317,12 @@ SevenIsland_TrainerTower_EventScript_1AC84D:: @ 81AC84D
end
EventScript_1AC874:: @ 81AC874
- trainerbattle 5, TRAINER_PSYCHIC_DARIO, 0, Text_1C42D6, Text_18C205
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PSYCHIC_DARIO, 0, Text_1C42D6, Text_18C205
msgbox Text_18C20E, 6
end
SevenIsland_TrainerTower_EventScript_1AC88B:: @ 81AC88B
- trainerbattle 0, TRAINER_PSYCHIC_RODETTE, 0, Text_18C283, Text_18C2BC
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PSYCHIC_RODETTE, 0, Text_18C283, Text_18C2BC
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC8B2
@@ -7329,12 +7330,12 @@ SevenIsland_TrainerTower_EventScript_1AC88B:: @ 81AC88B
end
EventScript_1AC8B2:: @ 81AC8B2
- trainerbattle 5, TRAINER_PSYCHIC_RODETTE, 0, Text_1C42EE, Text_18C2BC
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PSYCHIC_RODETTE, 0, Text_1C42EE, Text_18C2BC
msgbox Text_18C2D5, 6
end
SevenIsland_SevaultCanyon_Entrance_EventScript_1AC8C9:: @ 81AC8C9
- trainerbattle 0, TRAINER_AROMA_LADY_MIAH, 0, Text_18C3BC, Text_18C3E7
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_AROMA_LADY_MIAH, 0, Text_18C3BC, Text_18C3E7
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC8F0
@@ -7342,12 +7343,12 @@ SevenIsland_SevaultCanyon_Entrance_EventScript_1AC8C9:: @ 81AC8C9
end
EventScript_1AC8F0:: @ 81AC8F0
- trainerbattle 5, TRAINER_AROMA_LADY_MIAH, 0, Text_1C4327, Text_18C3E7
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_AROMA_LADY_MIAH, 0, Text_1C4327, Text_18C3E7
msgbox Text_18C3FF, 6
end
SevenIsland_SevaultCanyon_Entrance_EventScript_1AC907:: @ 81AC907
- trainerbattle 4, TRAINER_YOUNG_COUPLE_EVE_JON, 0, Text_18C632, Text_18C662, Text_18C6AB
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_YOUNG_COUPLE_EVE_JON, 0, Text_18C632, Text_18C662, Text_18C6AB
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC932
@@ -7355,12 +7356,12 @@ SevenIsland_SevaultCanyon_Entrance_EventScript_1AC907:: @ 81AC907
end
EventScript_1AC932:: @ 81AC932
- trainerbattle 7, TRAINER_YOUNG_COUPLE_EVE_JON, 0, Text_1C4416, Text_18C662, Text_18C6AB
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_YOUNG_COUPLE_EVE_JON, 0, Text_1C4416, Text_18C662, Text_18C6AB
msgbox Text_18C683, 6
end
SevenIsland_SevaultCanyon_Entrance_EventScript_1AC94D:: @ 81AC94D
- trainerbattle 4, TRAINER_YOUNG_COUPLE_EVE_JON, 0, Text_18C700, Text_18C73B, Text_18C7BD
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_YOUNG_COUPLE_EVE_JON, 0, Text_18C700, Text_18C73B, Text_18C7BD
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC978
@@ -7368,12 +7369,12 @@ SevenIsland_SevaultCanyon_Entrance_EventScript_1AC94D:: @ 81AC94D
end
EventScript_1AC978:: @ 81AC978
- trainerbattle 7, TRAINER_YOUNG_COUPLE_EVE_JON, 0, Text_1C444C, Text_18C73B, Text_18C7BD
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_YOUNG_COUPLE_EVE_JON, 0, Text_1C444C, Text_18C73B, Text_18C7BD
msgbox Text_18C773, 6
end
SevenIsland_SevaultCanyon_Entrance_EventScript_1AC993:: @ 81AC993
- trainerbattle 0, TRAINER_JUGGLER_MASON, 0, Text_18C44B, Text_18C473
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_JUGGLER_MASON, 0, Text_18C44B, Text_18C473
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC9BA
@@ -7381,12 +7382,12 @@ SevenIsland_SevaultCanyon_Entrance_EventScript_1AC993:: @ 81AC993
end
EventScript_1AC9BA:: @ 81AC9BA
- trainerbattle 5, TRAINER_JUGGLER_MASON, 0, Text_1C4374, Text_18C473
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_JUGGLER_MASON, 0, Text_1C4374, Text_18C473
msgbox Text_18C4BA, 6
end
SevenIsland_SevaultCanyon_Entrance_EventScript_1AC9D1:: @ 81AC9D1
- trainerbattle 0, TRAINER_PKMN_RANGER_NICOLAS, 0, Text_18C500, Text_18C543
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PKMN_RANGER_NICOLAS, 0, Text_18C500, Text_18C543
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1AC9F8
@@ -7394,12 +7395,12 @@ SevenIsland_SevaultCanyon_Entrance_EventScript_1AC9D1:: @ 81AC9D1
end
EventScript_1AC9F8:: @ 81AC9F8
- trainerbattle 5, TRAINER_PKMN_RANGER_NICOLAS, 0, Text_1C43AD, Text_18C543
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PKMN_RANGER_NICOLAS, 0, Text_1C43AD, Text_18C543
msgbox Text_18C54B, 6
end
SevenIsland_SevaultCanyon_Entrance_EventScript_1ACA0F:: @ 81ACA0F
- trainerbattle 0, TRAINER_PKMN_RANGER_MADELINE, 0, Text_18C5AA, Text_18C5CD
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PKMN_RANGER_MADELINE, 0, Text_18C5AA, Text_18C5CD
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACA36
@@ -7407,12 +7408,12 @@ SevenIsland_SevaultCanyon_Entrance_EventScript_1ACA0F:: @ 81ACA0F
end
EventScript_1ACA36:: @ 81ACA36
- trainerbattle 5, TRAINER_PKMN_RANGER_MADELINE, 0, Text_1C43EC, Text_18C5CD
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PKMN_RANGER_MADELINE, 0, Text_1C43EC, Text_18C5CD
msgbox Text_18C5F5, 6
end
SevenIsland_SevaultCanyon_EventScript_1ACA4D:: @ 81ACA4D
- trainerbattle 0, TRAINER_CRUSH_GIRL_CYNDY, 0, Text_18C887, Text_18C8A6
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CRUSH_GIRL_CYNDY, 0, Text_18C887, Text_18C8A6
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACA74
@@ -7420,12 +7421,12 @@ SevenIsland_SevaultCanyon_EventScript_1ACA4D:: @ 81ACA4D
end
EventScript_1ACA74:: @ 81ACA74
- trainerbattle 5, TRAINER_CRUSH_GIRL_CYNDY, 0, Text_1C4491, Text_18C8A6
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_CRUSH_GIRL_CYNDY, 0, Text_1C4491, Text_18C8A6
msgbox Text_18C8C2, 6
end
SevenIsland_SevaultCanyon_EventScript_1ACA8B:: @ 81ACA8B
- trainerbattle 0, TRAINER_TAMER_EVAN, 0, Text_18C8FD, Text_18C980
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TAMER_EVAN, 0, Text_18C8FD, Text_18C980
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACAB2
@@ -7433,12 +7434,12 @@ SevenIsland_SevaultCanyon_EventScript_1ACA8B:: @ 81ACA8B
end
EventScript_1ACAB2:: @ 81ACAB2
- trainerbattle 5, TRAINER_TAMER_EVAN, 0, Text_1C44CB, Text_18C980
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_TAMER_EVAN, 0, Text_1C44CB, Text_18C980
msgbox Text_18C999, 6
end
SevenIsland_SevaultCanyon_EventScript_1ACAC9:: @ 81ACAC9
- trainerbattle 0, TRAINER_PKMN_RANGER_JACKSON, 0, Text_18CA2F, Text_18CA6F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PKMN_RANGER_JACKSON, 0, Text_18CA2F, Text_18CA6F
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACAF0
@@ -7446,12 +7447,12 @@ SevenIsland_SevaultCanyon_EventScript_1ACAC9:: @ 81ACAC9
end
EventScript_1ACAF0:: @ 81ACAF0
- trainerbattle 5, TRAINER_PKMN_RANGER_JACKSON, 0, Text_1C454E, Text_18CA6F
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PKMN_RANGER_JACKSON, 0, Text_1C454E, Text_18CA6F
msgbox Text_18CA9C, 6
end
SevenIsland_SevaultCanyon_EventScript_1ACB07:: @ 81ACB07
- trainerbattle 0, TRAINER_PKMN_RANGER_KATELYN, 0, Text_18CB16, Text_18CB3E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PKMN_RANGER_KATELYN, 0, Text_18CB16, Text_18CB3E
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACB2E
@@ -7459,12 +7460,12 @@ SevenIsland_SevaultCanyon_EventScript_1ACB07:: @ 81ACB07
end
EventScript_1ACB2E:: @ 81ACB2E
- trainerbattle 5, TRAINER_PKMN_RANGER_KATELYN, 0, Text_1C458E, Text_18CB3E
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PKMN_RANGER_KATELYN, 0, Text_1C458E, Text_18CB3E
msgbox Text_18CB6C, 6
end
SevenIsland_SevaultCanyon_EventScript_1ACB45:: @ 81ACB45
- trainerbattle 0, TRAINER_COOLTRAINER_LEROY, 0, Text_18CBB4, Text_18CBE0
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_COOLTRAINER_LEROY, 0, Text_18CBB4, Text_18CBE0
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACB6C
@@ -7472,12 +7473,12 @@ SevenIsland_SevaultCanyon_EventScript_1ACB45:: @ 81ACB45
end
EventScript_1ACB6C:: @ 81ACB6C
- trainerbattle 5, TRAINER_COOLTRAINER_LEROY, 0, Text_1C45C2, Text_18CBE0
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_COOLTRAINER_LEROY, 0, Text_1C45C2, Text_18CBE0
msgbox Text_18CC09, 6
end
SevenIsland_SevaultCanyon_EventScript_1ACB83:: @ 81ACB83
- trainerbattle 0, TRAINER_COOLTRAINER_MICHELLE, 0, Text_18CC4F, Text_18CCAE
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_COOLTRAINER_MICHELLE, 0, Text_18CC4F, Text_18CCAE
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACBAA
@@ -7485,12 +7486,12 @@ SevenIsland_SevaultCanyon_EventScript_1ACB83:: @ 81ACB83
end
EventScript_1ACBAA:: @ 81ACBAA
- trainerbattle 5, TRAINER_COOLTRAINER_MICHELLE, 0, Text_1C45FB, Text_18CCAE
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_COOLTRAINER_MICHELLE, 0, Text_1C45FB, Text_18CCAE
msgbox Text_18CCEA, 6
end
SevenIsland_SevaultCanyon_EventScript_1ACBC1:: @ 81ACBC1
- trainerbattle 4, TRAINER_COOL_COUPLE_LEX_NYA, 0, Text_18CD49, Text_18CD75, Text_18CDE2
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_COOL_COUPLE_LEX_NYA, 0, Text_18CD49, Text_18CD75, Text_18CDE2
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACBEC
@@ -7498,12 +7499,12 @@ SevenIsland_SevaultCanyon_EventScript_1ACBC1:: @ 81ACBC1
end
EventScript_1ACBEC:: @ 81ACBEC
- trainerbattle 7, TRAINER_COOL_COUPLE_LEX_NYA, 0, Text_1C4662, Text_18CD75, Text_18CDE2
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_COOL_COUPLE_LEX_NYA, 0, Text_1C4662, Text_18CD75, Text_18CDE2
msgbox Text_18CD9C, 6
end
SevenIsland_SevaultCanyon_EventScript_1ACC07:: @ 81ACC07
- trainerbattle 4, TRAINER_COOL_COUPLE_LEX_NYA, 0, Text_18CE20, Text_18CE5A, Text_18CEF4
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_COOL_COUPLE_LEX_NYA, 0, Text_18CE20, Text_18CE5A, Text_18CEF4
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACC32
@@ -7511,12 +7512,12 @@ SevenIsland_SevaultCanyon_EventScript_1ACC07:: @ 81ACC07
end
EventScript_1ACC32:: @ 81ACC32
- trainerbattle 7, TRAINER_COOL_COUPLE_LEX_NYA, 0, Text_1C4699, Text_18CE5A, Text_18CEF4
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, TRAINER_COOL_COUPLE_LEX_NYA, 0, Text_1C4699, Text_18CE5A, Text_18CEF4
msgbox Text_18CE78, 6
end
SevenIsland_TanobyRuins_EventScript_1ACC4D:: @ 81ACC4D
- trainerbattle 0, TRAINER_RUIN_MANIAC_BRANDON, 0, Text_18CFFB, Text_18D02A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_RUIN_MANIAC_BRANDON, 0, Text_18CFFB, Text_18D02A
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACC74
@@ -7524,12 +7525,12 @@ SevenIsland_TanobyRuins_EventScript_1ACC4D:: @ 81ACC4D
end
EventScript_1ACC74:: @ 81ACC74
- trainerbattle 5, TRAINER_RUIN_MANIAC_BRANDON, 0, Text_1C46D3, Text_18D02A
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_RUIN_MANIAC_BRANDON, 0, Text_1C46D3, Text_18D02A
msgbox Text_18D061, 6
end
SevenIsland_TanobyRuins_EventScript_1ACC8B:: @ 81ACC8B
- trainerbattle 0, TRAINER_RUIN_MANIAC_BENJAMIN, 0, Text_18D0D9, Text_18D108
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_RUIN_MANIAC_BENJAMIN, 0, Text_18D0D9, Text_18D108
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACCB2
@@ -7537,12 +7538,12 @@ SevenIsland_TanobyRuins_EventScript_1ACC8B:: @ 81ACC8B
end
EventScript_1ACCB2:: @ 81ACCB2
- trainerbattle 5, TRAINER_RUIN_MANIAC_BENJAMIN, 0, Text_1C470A, Text_18D108
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_RUIN_MANIAC_BENJAMIN, 0, Text_1C470A, Text_18D108
msgbox Text_18D125, 6
end
SevenIsland_TanobyRuins_EventScript_1ACCC9:: @ 81ACCC9
- trainerbattle 0, TRAINER_PAINTER_EDNA, 0, Text_18D18F, Text_18D1B5
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PAINTER_EDNA, 0, Text_18D18F, Text_18D1B5
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACCF0
@@ -7550,12 +7551,12 @@ SevenIsland_TanobyRuins_EventScript_1ACCC9:: @ 81ACCC9
end
EventScript_1ACCF0:: @ 81ACCF0
- trainerbattle 5, TRAINER_PAINTER_EDNA, 0, Text_1C4739, Text_18D1B5
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_PAINTER_EDNA, 0, Text_1C4739, Text_18D1B5
msgbox Text_18D1E3, 6
end
SevenIsland_TanobyRuins_EventScript_1ACD07:: @ 81ACD07
- trainerbattle 0, TRAINER_GENTLEMAN_CLIFFORD, 0, Text_18D22F, Text_18D26D
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_GENTLEMAN_CLIFFORD, 0, Text_18D22F, Text_18D26D
specialvar VAR_RESULT, ShouldTryRematchBattle
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_1ACD2E
@@ -7563,7 +7564,7 @@ SevenIsland_TanobyRuins_EventScript_1ACD07:: @ 81ACD07
end
EventScript_1ACD2E:: @ 81ACD2E
- trainerbattle 5, TRAINER_GENTLEMAN_CLIFFORD, 0, Text_1C476A, Text_18D26D
+ trainerbattle TRAINER_BATTLE_REMATCH, TRAINER_GENTLEMAN_CLIFFORD, 0, Text_1C476A, Text_18D26D
msgbox Text_18D284, 6
end
diff --git a/data/maps/CeladonCity_GameCorner/scripts.inc b/data/maps/CeladonCity_GameCorner/scripts.inc
index 2d433d4ba..487d9fa64 100644
--- a/data/maps/CeladonCity_GameCorner/scripts.inc
+++ b/data/maps/CeladonCity_GameCorner/scripts.inc
@@ -429,7 +429,7 @@ EventScript_16CABE:: @ 816CABE
return
CeladonCity_GameCorner_EventScript_16CAF5:: @ 816CAF5
- trainerbattle 2, TRAINER_TEAM_ROCKET_GRUNT_7, 0, Text_196E69, Text_196E95, EventScript_16CB10
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_TEAM_ROCKET_GRUNT_7, 0, Text_196E69, Text_196E95, EventScript_16CB10
msgbox gUnknown_8196E9B, 6
end
diff --git a/data/maps/CeladonCity_Gym/scripts.inc b/data/maps/CeladonCity_Gym/scripts.inc
index e0c5c4306..b92e99fe1 100644
--- a/data/maps/CeladonCity_Gym/scripts.inc
+++ b/data/maps/CeladonCity_Gym/scripts.inc
@@ -3,7 +3,7 @@ CeladonCity_Gym_MapScripts:: @ 816D060
CeladonCity_Gym_EventScript_16D061:: @ 816D061
famechecker FAMECHECKER_ERIKA, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
- trainerbattle 1, TRAINER_LEADER_ERIKA, 0, Text_197114, Text_197260, EventScript_16D0A0
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, TRAINER_LEADER_ERIKA, 0, Text_197114, Text_197260, EventScript_16D0A0
checkflag FLAG_GOT_TM19_FROM_ERIKA
goto_if FALSE, EventScript_16D0C6
famechecker FAMECHECKER_ERIKA, 4
@@ -38,39 +38,39 @@ EventScript_16D107:: @ 816D107
end
CeladonCity_Gym_EventScript_16D111:: @ 816D111
- trainerbattle 0, TRAINER_LASS_KAY, 0, Text_19747C, Text_1974C4
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_KAY, 0, Text_19747C, Text_1974C4
msgbox gUnknown_81974D6, 6
end
CeladonCity_Gym_EventScript_16D128:: @ 816D128
- trainerbattle 0, TRAINER_LASS_LISA, 0, Text_1976C5, Text_1976FF
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_LISA, 0, Text_1976C5, Text_1976FF
famechecker FAMECHECKER_ERIKA, 2
msgbox gUnknown_8197708, 6
end
CeladonCity_Gym_EventScript_16D14C:: @ 816D14C
- trainerbattle 0, TRAINER_PICNICKER_TINA, 0, Text_197595, Text_1975BB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_TINA, 0, Text_197595, Text_1975BB
msgbox gUnknown_81975D1, 6
end
CeladonCity_Gym_EventScript_16D163:: @ 816D163
- trainerbattle 0, TRAINER_BEAUTY_BRIDGET, 0, Text_1974FA, Text_19751C
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BEAUTY_BRIDGET, 0, Text_1974FA, Text_19751C
msgbox gUnknown_8197527, 6
end
CeladonCity_Gym_EventScript_16D17A:: @ 816D17A
- trainerbattle 0, TRAINER_BEAUTY_TAMIA, 0, Text_19760B, Text_197660
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BEAUTY_TAMIA, 0, Text_19760B, Text_197660
famechecker FAMECHECKER_ERIKA, 3
msgbox gUnknown_8197664, 6
end
CeladonCity_Gym_EventScript_16D19E:: @ 816D19E
- trainerbattle 0, TRAINER_BEAUTY_LORI, 0, Text_197747, Text_19777A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BEAUTY_LORI, 0, Text_197747, Text_19777A
msgbox gUnknown_8197788, 6
end
CeladonCity_Gym_EventScript_16D1B5:: @ 816D1B5
- trainerbattle 0, TRAINER_COOLTRAINER_MARY, 0, Text_1977E5, Text_197832
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_COOLTRAINER_MARY, 0, Text_1977E5, Text_197832
msgbox gUnknown_819783E, 6
end
diff --git a/data/maps/CeruleanCity/scripts.inc b/data/maps/CeruleanCity/scripts.inc
index 588df6ccd..bd660c660 100644
--- a/data/maps/CeruleanCity/scripts.inc
+++ b/data/maps/CeruleanCity/scripts.inc
@@ -73,15 +73,15 @@ EventScript_1664CC:: @ 81664CC
end
EventScript_166582:: @ 8166582
- trainerbattle 3, TRAINER_RIVAL_CERULEAN_SQUIRTLE, 0, Text_17EB71
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_CERULEAN_SQUIRTLE, 0, Text_17EB71
return
EventScript_16658D:: @ 816658D
- trainerbattle 3, TRAINER_RIVAL_CERULEAN_BULBASAUR, 0, Text_17EB71
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_CERULEAN_BULBASAUR, 0, Text_17EB71
return
EventScript_166598:: @ 8166598
- trainerbattle 3, TRAINER_RIVAL_CERULEAN_CHARMANDER, 0, Text_17EB71
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_CERULEAN_CHARMANDER, 0, Text_17EB71
return
EventScript_1665A3:: @ 81665A3
@@ -177,7 +177,7 @@ CeruleanCity_EventScript_166603:: @ 8166603
waitmessage
playbgm MUS_ROCKET, 0
waitbuttonpress
- trainerbattle 3, TRAINER_TEAM_ROCKET_GRUNT_5, 0, Text_17EE70
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_TEAM_ROCKET_GRUNT_5, 0, Text_17EE70
setvar VAR_MAP_SCENE_CERULEAN_CITY_ROCKET, 1
goto EventScript_16662E
end
@@ -228,7 +228,7 @@ EventScript_1666C3:: @ 81666C3
textcolor 0
msgbox Text_17EE0E
setvar VAR_LAST_TALKED, 2
- trainerbattle 3, TRAINER_TEAM_ROCKET_GRUNT_5, 0, Text_17EE70
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_TEAM_ROCKET_GRUNT_5, 0, Text_17EE70
setvar VAR_MAP_SCENE_CERULEAN_CITY_ROCKET, 1
goto EventScript_16662E
end
diff --git a/data/maps/CeruleanCity_Gym/scripts.inc b/data/maps/CeruleanCity_Gym/scripts.inc
index c53c9718b..a37d3435b 100644
--- a/data/maps/CeruleanCity_Gym/scripts.inc
+++ b/data/maps/CeruleanCity_Gym/scripts.inc
@@ -3,7 +3,7 @@ CeruleanCity_Gym_MapScripts:: @ 816AAA0
CeruleanCity_Gym_EventScript_16AAA1:: @ 816AAA1
famechecker FAMECHECKER_MISTY, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
- trainerbattle 1, TRAINER_LEADER_MISTY, 0, Text_1921EF, Text_19242D, EventScript_16AAD3
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, TRAINER_LEADER_MISTY, 0, Text_1921EF, Text_19242D, EventScript_16AAD3
checkflag FLAG_GOT_TM03_FROM_MISTY
goto_if FALSE, EventScript_16AAF9
msgbox gUnknown_81922BF
@@ -37,12 +37,12 @@ EventScript_16AB3A:: @ 816AB3A
end
CeruleanCity_Gym_EventScript_16AB44:: @ 816AB44
- trainerbattle 0, TRAINER_PICNICKER_DIANA, 0, Text_192481, Text_1924D0
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_DIANA, 0, Text_192481, Text_1924D0
msgbox gUnknown_81924E4, 6
end
CeruleanCity_Gym_EventScript_16AB5B:: @ 816AB5B
- trainerbattle 0, TRAINER_SWIMMER_MALE_LUIS, 0, Text_192524, Text_192547
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SWIMMER_MALE_LUIS, 0, Text_192524, Text_192547
famechecker FAMECHECKER_MISTY, 2
msgbox gUnknown_8192556, 6
end
diff --git a/data/maps/CinnabarIsland_Gym/scripts.inc b/data/maps/CinnabarIsland_Gym/scripts.inc
index 88df6972a..9e67b156d 100644
--- a/data/maps/CinnabarIsland_Gym/scripts.inc
+++ b/data/maps/CinnabarIsland_Gym/scripts.inc
@@ -54,7 +54,7 @@ EventScript_16D9CE:: @ 816D9CE
CinnabarIsland_Gym_EventScript_16D9D4:: @ 816D9D4
famechecker FAMECHECKER_BLAINE, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
- trainerbattle 1, TRAINER_LEADER_BLAINE, 0, Text_199543, Text_1995FA, EventScript_16DA06
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, TRAINER_LEADER_BLAINE, 0, Text_199543, Text_1995FA, EventScript_16DA06
checkflag FLAG_GOT_TM38_FROM_BLAINE
goto_if FALSE, EventScript_16DA34
msgbox gUnknown_819971D
@@ -90,12 +90,12 @@ EventScript_16DA75:: @ 816DA75
end
CinnabarIsland_Gym_EventScript_16DA7F:: @ 816DA7F
- trainerbattle 0, TRAINER_SUPER_NERD_ERIK, 0, Text_1997A5, Text_1997D6
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SUPER_NERD_ERIK, 0, Text_1997A5, Text_1997D6
msgbox gUnknown_81997EA, 6
end
CinnabarIsland_Gym_EventScript_16DA96:: @ 816DA96
- trainerbattle 2, TRAINER_SUPER_NERD_AVERY, 0, Text_1998BD, Text_1998ED, EventScript_16DAB1
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_SUPER_NERD_AVERY, 0, Text_1998BD, Text_1998ED, EventScript_16DAB1
msgbox gUnknown_8199911, 6
end
@@ -110,7 +110,7 @@ EventScript_16DABC:: @ 816DABC
return
CinnabarIsland_Gym_EventScript_16DAC2:: @ 816DAC2
- trainerbattle 2, TRAINER_SUPER_NERD_DEREK, 0, Text_1999B7, Text_1999DB, EventScript_16DAEA
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_SUPER_NERD_DEREK, 0, Text_1999B7, Text_1999DB, EventScript_16DAEA
famechecker FAMECHECKER_BLAINE, 2
msgbox gUnknown_81999DF, 6
end
@@ -126,7 +126,7 @@ EventScript_16DAF5:: @ 816DAF5
return
CinnabarIsland_Gym_EventScript_16DAFB:: @ 816DAFB
- trainerbattle 2, TRAINER_SUPER_NERD_ZAC, 0, Text_199AFC, Text_199B16, EventScript_16DB16
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_SUPER_NERD_ZAC, 0, Text_199AFC, Text_199B16, EventScript_16DB16
msgbox gUnknown_8199B27, 6
end
@@ -141,7 +141,7 @@ EventScript_16DB21:: @ 816DB21
return
CinnabarIsland_Gym_EventScript_16DB27:: @ 816DB27
- trainerbattle 2, TRAINER_BURGLAR_QUINN, 0, Text_19983F, Text_199870, EventScript_16DB42
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_BURGLAR_QUINN, 0, Text_19983F, Text_199870, EventScript_16DB42
msgbox gUnknown_819987D, 6
end
@@ -156,7 +156,7 @@ EventScript_16DB4D:: @ 816DB4D
return
CinnabarIsland_Gym_EventScript_16DB53:: @ 816DB53
- trainerbattle 2, TRAINER_BURGLAR_RAMON, 0, Text_199948, Text_199973, EventScript_16DB6E
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_BURGLAR_RAMON, 0, Text_199948, Text_199973, EventScript_16DB6E
msgbox gUnknown_8199986, 6
end
@@ -171,7 +171,7 @@ EventScript_16DB79:: @ 816DB79
return
CinnabarIsland_Gym_EventScript_16DB7F:: @ 816DB7F
- trainerbattle 2, TRAINER_BURGLAR_DUSTY, 0, Text_199A7F, Text_199AB9, EventScript_16DB9A
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_BURGLAR_DUSTY, 0, Text_199A7F, Text_199AB9, EventScript_16DB9A
msgbox gUnknown_8199AC9, 6
end
@@ -281,7 +281,7 @@ EventScript_16DC7A:: @ 816DC7A
call_if eq, EventScript_16DCC6
textcolor 0
msgbox gUnknown_819983F
- trainerbattle 3, TRAINER_BURGLAR_QUINN, 0, Text_199870
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_BURGLAR_QUINN, 0, Text_199870
checkflag FLAG_CINNABAR_GYM_QUIZ_1
goto_if TRUE, EventScript_16DC68
call EventScript_16DC58
@@ -360,7 +360,7 @@ EventScript_16DD51:: @ 816DD51
call_if eq, EventScript_16DD9D
textcolor 0
msgbox gUnknown_81998BD
- trainerbattle 3, TRAINER_SUPER_NERD_AVERY, 0, Text_1998ED
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_SUPER_NERD_AVERY, 0, Text_1998ED
checkflag FLAG_CINNABAR_GYM_QUIZ_2
goto_if TRUE, EventScript_16DC68
call EventScript_16DD31
@@ -448,7 +448,7 @@ EventScript_16DE2F:: @ 816DE2F
call_if eq, EventScript_16DE7B
textcolor 0
msgbox gUnknown_8199948
- trainerbattle 3, TRAINER_BURGLAR_RAMON, 0, Text_199973
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_BURGLAR_RAMON, 0, Text_199973
checkflag FLAG_CINNABAR_GYM_QUIZ_3
goto_if TRUE, EventScript_16DC68
call EventScript_16DE0F
@@ -527,7 +527,7 @@ EventScript_16DF06:: @ 816DF06
call_if eq, EventScript_16DF52
textcolor 0
msgbox gUnknown_81999B7
- trainerbattle 3, TRAINER_SUPER_NERD_DEREK, 0, Text_1999DB
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_SUPER_NERD_DEREK, 0, Text_1999DB
checkflag FLAG_CINNABAR_GYM_QUIZ_4
goto_if TRUE, EventScript_16DC68
call EventScript_16DEE6
@@ -606,7 +606,7 @@ EventScript_16DFDD:: @ 816DFDD
call_if eq, EventScript_16E029
textcolor 0
msgbox gUnknown_8199A7F
- trainerbattle 3, TRAINER_BURGLAR_DUSTY, 0, Text_199AB9
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_BURGLAR_DUSTY, 0, Text_199AB9
checkflag FLAG_CINNABAR_GYM_QUIZ_5
goto_if TRUE, EventScript_16DC68
call EventScript_16DFBD
@@ -685,7 +685,7 @@ EventScript_16E0B4:: @ 816E0B4
call_if eq, EventScript_16E100
textcolor 0
msgbox gUnknown_8199AFC
- trainerbattle 3, TRAINER_SUPER_NERD_ZAC, 0, Text_199B16
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_SUPER_NERD_ZAC, 0, Text_199B16
checkflag FLAG_CINNABAR_GYM_QUIZ_6
goto_if TRUE, EventScript_16DC68
call EventScript_16E094
diff --git a/data/maps/FiveIsland_LostCave_Room1/scripts.inc b/data/maps/FiveIsland_LostCave_Room1/scripts.inc
index a5e25d092..62880594c 100644
--- a/data/maps/FiveIsland_LostCave_Room1/scripts.inc
+++ b/data/maps/FiveIsland_LostCave_Room1/scripts.inc
@@ -2,6 +2,6 @@ FiveIsland_LostCave_Room1_MapScripts:: @ 8164BF6
.byte 0
FiveIsland_LostCave_Room1_EventScript_164BF7:: @ 8164BF7
- trainerbattle 0, TRAINER_RUIN_MANIAC_LAWSON, 0, Text_17CEF5, Text_17CF42
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_RUIN_MANIAC_LAWSON, 0, Text_17CEF5, Text_17CF42
msgbox gUnknown_817CF54, 6
end
diff --git a/data/maps/FiveIsland_LostCave_Room10/scripts.inc b/data/maps/FiveIsland_LostCave_Room10/scripts.inc
index 0829a0273..b214279d1 100644
--- a/data/maps/FiveIsland_LostCave_Room10/scripts.inc
+++ b/data/maps/FiveIsland_LostCave_Room10/scripts.inc
@@ -28,7 +28,7 @@ EventScript_164C52:: @ 8164C52
special sub_8110AB4
compare_var_to_value VAR_RESULT, 2
goto_if eq, EventScript_164CB6
- trainerbattle 3, TRAINER_LADY_SELPHY, 0, Text_17D086
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_LADY_SELPHY, 0, Text_17D086
msgbox gUnknown_817D0B2
closemessage
call EventScript_164CA5
diff --git a/data/maps/FiveIsland_LostCave_Room4/scripts.inc b/data/maps/FiveIsland_LostCave_Room4/scripts.inc
index 4b73aecb8..28913bb80 100644
--- a/data/maps/FiveIsland_LostCave_Room4/scripts.inc
+++ b/data/maps/FiveIsland_LostCave_Room4/scripts.inc
@@ -2,6 +2,6 @@ FiveIsland_LostCave_Room4_MapScripts:: @ 8164C10
.byte 0
FiveIsland_LostCave_Room4_EventScript_164C11:: @ 8164C11
- trainerbattle 0, TRAINER_PSYCHIC_LAURA, 0, Text_17CFC1, Text_17CFFB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PSYCHIC_LAURA, 0, Text_17CFC1, Text_17CFFB
msgbox gUnknown_817D037, 6
end
diff --git a/data/maps/FiveIsland_Meadow/scripts.inc b/data/maps/FiveIsland_Meadow/scripts.inc
index 23f3e40f3..51ddd9dd9 100644
--- a/data/maps/FiveIsland_Meadow/scripts.inc
+++ b/data/maps/FiveIsland_Meadow/scripts.inc
@@ -39,16 +39,16 @@ EventScript_168983:: @ 8168983
return
FiveIsland_Meadow_EventScript_16898D:: @ 816898D
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_49, 0, Text_18AC88, Text_18ACB3
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_49, 0, Text_18AC88, Text_18ACB3
msgbox gUnknown_818ACC5, 6
end
FiveIsland_Meadow_EventScript_1689A4:: @ 81689A4
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_50, 0, Text_18ACF0, Text_18AD39
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_50, 0, Text_18ACF0, Text_18AD39
msgbox gUnknown_818AD59, 6
end
FiveIsland_Meadow_EventScript_1689BB:: @ 81689BB
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_51, 0, Text_18ADC6, Text_18ADFB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_51, 0, Text_18ADC6, Text_18ADFB
msgbox gUnknown_818AE16, 6
end
diff --git a/data/maps/FiveIsland_RocketWarehouse/scripts.inc b/data/maps/FiveIsland_RocketWarehouse/scripts.inc
index 25416a6b4..e6fb90088 100644
--- a/data/maps/FiveIsland_RocketWarehouse/scripts.inc
+++ b/data/maps/FiveIsland_RocketWarehouse/scripts.inc
@@ -43,7 +43,7 @@ FiveIsland_RocketWarehouse_EventScript_163F81:: @ 8163F81
end
FiveIsland_RocketWarehouse_EventScript_163F93:: @ 8163F93
- trainerbattle 2, TRAINER_SCIENTIST_GIDEON, 0, Text_17BBAF, Text_17BC55, EventScript_163FCD
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_SCIENTIST_GIDEON, 0, Text_17BBAF, Text_17BC55, EventScript_163FCD
checkflag FLAG_SYS_CAN_LINK_WITH_RS
goto_if TRUE, EventScript_163FB7
msgbox gUnknown_817BCA3, 6
@@ -62,17 +62,17 @@ EventScript_163FCD:: @ 8163FCD
end
FiveIsland_RocketWarehouse_EventScript_163FE6:: @ 8163FE6
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_47, 0, Text_17B54D, Text_17B585
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_47, 0, Text_17B54D, Text_17B585
msgbox gUnknown_817B5A6, 6
end
FiveIsland_RocketWarehouse_EventScript_163FFD:: @ 8163FFD
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_48, 0, Text_17B677, Text_17B6D9
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_48, 0, Text_17B677, Text_17B6D9
msgbox gUnknown_817B6EF, 6
end
FiveIsland_RocketWarehouse_EventScript_164014:: @ 8164014
- trainerbattle 2, TRAINER_TEAM_ROCKET_ADMIN_2, 0, Text_17B8DA, Text_17B9FB, EventScript_16402F
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_TEAM_ROCKET_ADMIN_2, 0, Text_17B8DA, Text_17B9FB, EventScript_16402F
msgbox gUnknown_817BA64, 6
end
@@ -100,12 +100,12 @@ EventScript_164065:: @ 8164065
return
FiveIsland_RocketWarehouse_EventScript_164070:: @ 8164070
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_42, 0, Text_17B5D6, Text_17B62F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_42, 0, Text_17B5D6, Text_17B62F
msgbox gUnknown_817B642, 6
end
FiveIsland_RocketWarehouse_EventScript_164087:: @ 8164087
- trainerbattle 2, TRAINER_TEAM_ROCKET_ADMIN, 0, Text_17B72D, Text_17B79C, EventScript_1640A2
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_TEAM_ROCKET_ADMIN, 0, Text_17B72D, Text_17B79C, EventScript_1640A2
msgbox gUnknown_817B7FA, 6
end
diff --git a/data/maps/FourIsland_IcefallCave_Back/scripts.inc b/data/maps/FourIsland_IcefallCave_Back/scripts.inc
index eadc1f469..684c7506c 100644
--- a/data/maps/FourIsland_IcefallCave_Back/scripts.inc
+++ b/data/maps/FourIsland_IcefallCave_Back/scripts.inc
@@ -46,7 +46,7 @@ FourIsland_IcefallCave_Back_EventScript_163D98:: @ 8163D98
textcolor 0
msgbox gUnknown_817B20B
setvar VAR_LAST_TALKED, 4
- trainerbattle 3, TRAINER_TEAM_ROCKET_GRUNT_45, 0, Text_17B251
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_TEAM_ROCKET_GRUNT_45, 0, Text_17B251
applymovement 3, Movement_163F1B
waitmovement 0
textcolor 1
diff --git a/data/maps/FuchsiaCity_Gym/scripts.inc b/data/maps/FuchsiaCity_Gym/scripts.inc
index 57d866f6b..8160e0fb3 100644
--- a/data/maps/FuchsiaCity_Gym/scripts.inc
+++ b/data/maps/FuchsiaCity_Gym/scripts.inc
@@ -3,7 +3,7 @@ FuchsiaCity_Gym_MapScripts:: @ 816D54D
FuchsiaCity_Gym_EventScript_16D54E:: @ 816D54E
famechecker FAMECHECKER_KOGA, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
- trainerbattle 1, TRAINER_LEADER_KOGA, 0, Text_19832E, Text_198444, EventScript_16D580
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, TRAINER_LEADER_KOGA, 0, Text_19832E, Text_198444, EventScript_16D580
checkflag FLAG_GOT_TM06_FROM_KOGA
goto_if FALSE, EventScript_16D5A6
msgbox gUnknown_8198481
@@ -37,33 +37,33 @@ EventScript_16D5E7:: @ 816D5E7
end
FuchsiaCity_Gym_EventScript_16D5F1:: @ 816D5F1
- trainerbattle 0, TRAINER_TAMER_PHIL, 0, Text_198866, Text_1988B6
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TAMER_PHIL, 0, Text_198866, Text_1988B6
msgbox gUnknown_81988CB, 6
end
FuchsiaCity_Gym_EventScript_16D608:: @ 816D608
- trainerbattle 0, TRAINER_TAMER_EDGAR, 0, Text_19891F, Text_19897F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TAMER_EDGAR, 0, Text_19891F, Text_19897F
msgbox gUnknown_8198985, 6
end
FuchsiaCity_Gym_EventScript_16D61F:: @ 816D61F
- trainerbattle 0, TRAINER_JUGGLER_KIRK, 0, Text_19871E, Text_198779
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_JUGGLER_KIRK, 0, Text_19871E, Text_198779
famechecker FAMECHECKER_KOGA, 2
msgbox gUnknown_8198787, 6
end
FuchsiaCity_Gym_EventScript_16D643:: @ 816D643
- trainerbattle 0, TRAINER_JUGGLER_SHAWN, 0, Text_1989A1, Text_1989EA
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_JUGGLER_SHAWN, 0, Text_1989A1, Text_1989EA
msgbox gUnknown_8198A10, 6
end
FuchsiaCity_Gym_EventScript_16D65A:: @ 816D65A
- trainerbattle 0, TRAINER_JUGGLER_KAYDEN, 0, Text_198629, Text_1986B4
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_JUGGLER_KAYDEN, 0, Text_198629, Text_1986B4
msgbox gUnknown_81986C9, 6
end
FuchsiaCity_Gym_EventScript_16D671:: @ 816D671
- trainerbattle 0, TRAINER_JUGGLER_NATE, 0, Text_1987E8, Text_198812
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_JUGGLER_NATE, 0, Text_1987E8, Text_198812
msgbox gUnknown_8198825, 6
end
diff --git a/data/maps/MtEmber_Exterior/scripts.inc b/data/maps/MtEmber_Exterior/scripts.inc
index cea59adfc..1ee18f696 100644
--- a/data/maps/MtEmber_Exterior/scripts.inc
+++ b/data/maps/MtEmber_Exterior/scripts.inc
@@ -43,7 +43,7 @@ EventScript_1639A8:: @ 81639A8
waitmovement 0
playbgm MUS_ROCKET, 0
msgbox gUnknown_817AA06
- trainerbattle 3, TRAINER_TEAM_ROCKET_GRUNT_43, 0, Text_17AA34
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_TEAM_ROCKET_GRUNT_43, 0, Text_17AA34
msgbox gUnknown_817AA3F
checktrainerflag TRAINER_TEAM_ROCKET_GRUNT_44
goto_if eq, EventScript_1639DB
@@ -82,7 +82,7 @@ EventScript_163A1B:: @ 8163A1B
EventScript_163A25:: @ 8163A25
playbgm MUS_ROCKET, 0
msgbox gUnknown_817AA56
- trainerbattle 3, TRAINER_TEAM_ROCKET_GRUNT_44, 0, Text_17AA8A
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_TEAM_ROCKET_GRUNT_44, 0, Text_17AA8A
msgbox gUnknown_817AA99
checktrainerflag TRAINER_TEAM_ROCKET_GRUNT_43
goto_if eq, EventScript_1639DB
@@ -116,16 +116,16 @@ MtEmber_Exterior_EventScript_163A4E:: @ 8163A4E
end
MtEmber_Exterior_EventScript_163AB4:: @ 8163AB4
- trainerbattle 0, TRAINER_PKMN_RANGER_LOGAN, 0, Text_17AB73, Text_17ABAA
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PKMN_RANGER_LOGAN, 0, Text_17AB73, Text_17ABAA
msgbox gUnknown_817ABD8, 6
end
MtEmber_Exterior_EventScript_163ACB:: @ 8163ACB
- trainerbattle 0, TRAINER_PKMN_RANGER_BETH, 0, Text_17AC55, Text_17AC82
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PKMN_RANGER_BETH, 0, Text_17AC55, Text_17AC82
msgbox gUnknown_817ACA2, 6
end
MtEmber_Exterior_EventScript_163AE2:: @ 8163AE2
- trainerbattle 0, TRAINER_CRUSH_GIRL_JOCELYN, 0, Text_17AD06, Text_17AD6B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CRUSH_GIRL_JOCELYN, 0, Text_17AD06, Text_17AD6B
msgbox gUnknown_817AD89, 6
end
diff --git a/data/maps/MtMoon_1F/scripts.inc b/data/maps/MtMoon_1F/scripts.inc
index df67e7c8a..28bc65ec9 100644
--- a/data/maps/MtMoon_1F/scripts.inc
+++ b/data/maps/MtMoon_1F/scripts.inc
@@ -11,36 +11,36 @@ MtMoon_1F_EventScript_1605EE:: @ 81605EE
end
MtMoon_1F_EventScript_1605F7:: @ 81605F7
- trainerbattle 0, TRAINER_HIKER_MARCOS, 0, Text_17279D, Text_1727CB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_MARCOS, 0, Text_17279D, Text_1727CB
msgbox gUnknown_81727DF, 6
end
MtMoon_1F_EventScript_16060E:: @ 816060E
- trainerbattle 0, TRAINER_YOUNGSTER_JOSH, 0, Text_17281D, Text_172844
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_JOSH, 0, Text_17281D, Text_172844
msgbox gUnknown_8172863, 6
end
MtMoon_1F_EventScript_160625:: @ 8160625
- trainerbattle 0, TRAINER_LASS_MIRIAM, 0, Text_172896, Text_1728C3
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_MIRIAM, 0, Text_172896, Text_1728C3
msgbox gUnknown_81728D2, 6
end
MtMoon_1F_EventScript_16063C:: @ 816063C
- trainerbattle 0, TRAINER_LASS_IRIS, 0, Text_172972, Text_1729A4
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_IRIS, 0, Text_172972, Text_1729A4
msgbox gUnknown_81729AC, 6
end
MtMoon_1F_EventScript_160653:: @ 8160653
- trainerbattle 0, TRAINER_SUPER_NERD_JOVAN, 0, Text_17290B, Text_172927
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SUPER_NERD_JOVAN, 0, Text_17290B, Text_172927
msgbox gUnknown_817293C, 6
end
MtMoon_1F_EventScript_16066A:: @ 816066A
- trainerbattle 0, TRAINER_BUG_CATCHER_KENT, 0, Text_1729EA, Text_172A1A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_KENT, 0, Text_1729EA, Text_172A1A
msgbox gUnknown_8172A26, 6
end
MtMoon_1F_EventScript_160681:: @ 8160681
- trainerbattle 0, TRAINER_BUG_CATCHER_ROBBY, 0, Text_172A55, Text_172A8F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_ROBBY, 0, Text_172A55, Text_172A8F
msgbox gUnknown_8172A97, 6
end
diff --git a/data/maps/MtMoon_B2F/scripts.inc b/data/maps/MtMoon_B2F/scripts.inc
index caf90c005..5c26a3ad1 100644
--- a/data/maps/MtMoon_B2F/scripts.inc
+++ b/data/maps/MtMoon_B2F/scripts.inc
@@ -38,7 +38,7 @@ EventScript_1606DD:: @ 81606DD
playbgm MUS_EXEYE, 0
waitbuttonpress
setvar VAR_LAST_TALKED, 3
- trainerbattle 3, TRAINER_SUPER_NERD_MIGUEL, 0, Text_172B99
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_SUPER_NERD_MIGUEL, 0, Text_172B99
setvar VAR_MAP_SCENE_MT_MOON_B2F, 1
msgbox gUnknown_8172BAB
return
@@ -123,21 +123,21 @@ Movement_1607E0:: @ 81607E0
step_end
MtMoon_B2F_EventScript_1607E4:: @ 81607E4
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT, 0, Text_172C5A, Text_172CB8
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT, 0, Text_172C5A, Text_172CB8
msgbox gUnknown_8172CCB, 6
end
MtMoon_B2F_EventScript_1607FB:: @ 81607FB
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_2, 0, Text_172CFC, Text_172D46
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_2, 0, Text_172CFC, Text_172D46
msgbox gUnknown_8172D51, 6
end
MtMoon_B2F_EventScript_160812:: @ 8160812
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_3, 0, Text_172D82, Text_172DAF
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_3, 0, Text_172D82, Text_172DAF
msgbox gUnknown_8172DC1, 6
end
MtMoon_B2F_EventScript_160829:: @ 8160829
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_4, 0, Text_172DF0, Text_172E3E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_4, 0, Text_172DF0, Text_172E3E
msgbox gUnknown_8172E4B, 6
end
diff --git a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc
index 1cdb53ca1..850182c08 100644
--- a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc
+++ b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc
@@ -347,7 +347,7 @@ EventScript_16939C:: @ 816939C
end
EventScript_1693AC:: @ 81693AC
- trainerbattle 9, TRAINER_RIVAL_OAKS_LAB_SQUIRTLE, 3, Text_18DDEA, Text_18DE1A
+ trainerbattle TRAINER_BATTLE_TUTORIAL, TRAINER_RIVAL_OAKS_LAB_SQUIRTLE, 3, Text_18DDEA, Text_18DE1A
goto EventScript_1694C2
end
@@ -403,7 +403,7 @@ EventScript_169414:: @ 8169414
end
EventScript_169424:: @ 8169424
- trainerbattle 9, TRAINER_RIVAL_OAKS_LAB_CHARMANDER, 3, Text_18DDEA, Text_18DE1A
+ trainerbattle TRAINER_BATTLE_TUTORIAL, TRAINER_RIVAL_OAKS_LAB_CHARMANDER, 3, Text_18DDEA, Text_18DE1A
goto EventScript_1694C2
end
@@ -462,7 +462,7 @@ EventScript_16948F:: @ 816948F
end
EventScript_16949F:: @ 816949F
- trainerbattle 9, TRAINER_RIVAL_OAKS_LAB_BULBASAUR, 3, Text_18DDEA, Text_18DE1A
+ trainerbattle TRAINER_BATTLE_TUTORIAL, TRAINER_RIVAL_OAKS_LAB_BULBASAUR, 3, Text_18DDEA, Text_18DE1A
goto EventScript_1694C2
end
diff --git a/data/maps/PewterCity_Gym/scripts.inc b/data/maps/PewterCity_Gym/scripts.inc
index e496769c7..39a6be51b 100644
--- a/data/maps/PewterCity_Gym/scripts.inc
+++ b/data/maps/PewterCity_Gym/scripts.inc
@@ -3,7 +3,7 @@ PewterCity_Gym_MapScripts:: @ 816A592
PewterCity_Gym_EventScript_16A593:: @ 816A593
famechecker FAMECHECKER_BROCK, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
- trainerbattle 1, TRAINER_LEADER_BROCK, 0, Text_190CD4, Text_190E4F, EventScript_16A5C5
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, TRAINER_LEADER_BROCK, 0, Text_190CD4, Text_190E4F, EventScript_16A5C5
checkflag FLAG_GOT_TM39_FROM_BROCK
goto_if FALSE, EventScript_16A5F3
msgbox gUnknown_819110F
@@ -39,7 +39,7 @@ EventScript_16A634:: @ 816A634
end
PewterCity_Gym_EventScript_16A63E:: @ 816A63E
- trainerbattle 0, TRAINER_CAMPER_LIAM, 0, Text_1911EC, Text_191237
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CAMPER_LIAM, 0, Text_1911EC, Text_191237
msgbox gUnknown_819126B, 6
end
diff --git a/data/maps/PokemonLeague_AgathasRoom/scripts.inc b/data/maps/PokemonLeague_AgathasRoom/scripts.inc
index 4d4bcee59..260a2acff 100644
--- a/data/maps/PokemonLeague_AgathasRoom/scripts.inc
+++ b/data/maps/PokemonLeague_AgathasRoom/scripts.inc
@@ -78,11 +78,11 @@ EventScript_1628F2:: @ 81628F2
return
EventScript_1628FB:: @ 81628FB
- trainerbattle 3, TRAINER_ELITE_FOUR_AGATHA, 0, Text_1786D7
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_ELITE_FOUR_AGATHA, 0, Text_1786D7
return
EventScript_162906:: @ 8162906
- trainerbattle 3, TRAINER_ELITE_FOUR_AGATHA_2, 0, Text_1786D7
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_ELITE_FOUR_AGATHA_2, 0, Text_1786D7
return
EventScript_162911:: @ 8162911
diff --git a/data/maps/PokemonLeague_BrunosRoom/scripts.inc b/data/maps/PokemonLeague_BrunosRoom/scripts.inc
index 66c688505..afbaad9e6 100644
--- a/data/maps/PokemonLeague_BrunosRoom/scripts.inc
+++ b/data/maps/PokemonLeague_BrunosRoom/scripts.inc
@@ -77,11 +77,11 @@ EventScript_16275A:: @ 816275A
return
EventScript_162763:: @ 8162763
- trainerbattle 3, TRAINER_ELITE_FOUR_BRUNO, 0, Text_178409
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_ELITE_FOUR_BRUNO, 0, Text_178409
return
EventScript_16276E:: @ 816276E
- trainerbattle 3, TRAINER_ELITE_FOUR_BRUNO_2, 0, Text_178409
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_ELITE_FOUR_BRUNO_2, 0, Text_178409
return
EventScript_162779:: @ 8162779
diff --git a/data/maps/PokemonLeague_ChampionsRoom/scripts.inc b/data/maps/PokemonLeague_ChampionsRoom/scripts.inc
index f4f2427b4..8b0fff2ce 100644
--- a/data/maps/PokemonLeague_ChampionsRoom/scripts.inc
+++ b/data/maps/PokemonLeague_ChampionsRoom/scripts.inc
@@ -142,27 +142,27 @@ EventScript_162CBC:: @ 8162CBC
return
EventScript_162CC5:: @ 8162CC5
- trainerbattle 3, TRAINER_CHAMPION_FIRST_SQUIRTLE, 0, Text_178E3F
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_CHAMPION_FIRST_SQUIRTLE, 0, Text_178E3F
return
EventScript_162CD0:: @ 8162CD0
- trainerbattle 3, TRAINER_CHAMPION_FIRST_BULBASAUR, 0, Text_178E3F
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_CHAMPION_FIRST_BULBASAUR, 0, Text_178E3F
return
EventScript_162CDB:: @ 8162CDB
- trainerbattle 3, TRAINER_CHAMPION_FIRST_CHARMANDER, 0, Text_178E3F
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_CHAMPION_FIRST_CHARMANDER, 0, Text_178E3F
return
EventScript_162CE6:: @ 8162CE6
- trainerbattle 3, TRAINER_CHAMPION_REMATCH_SQUIRTLE, 0, Text_178E3F
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_CHAMPION_REMATCH_SQUIRTLE, 0, Text_178E3F
return
EventScript_162CF1:: @ 8162CF1
- trainerbattle 3, TRAINER_CHAMPION_REMATCH_BULBASAUR, 0, Text_178E3F
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_CHAMPION_REMATCH_BULBASAUR, 0, Text_178E3F
return
EventScript_162CFC:: @ 8162CFC
- trainerbattle 3, TRAINER_CHAMPION_REMATCH_CHARMANDER, 0, Text_178E3F
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_CHAMPION_REMATCH_CHARMANDER, 0, Text_178E3F
return
Movement_162D07:: @ 8162D07
diff --git a/data/maps/PokemonLeague_LancesRoom/scripts.inc b/data/maps/PokemonLeague_LancesRoom/scripts.inc
index 09cdb49b8..0ec0cb7e6 100644
--- a/data/maps/PokemonLeague_LancesRoom/scripts.inc
+++ b/data/maps/PokemonLeague_LancesRoom/scripts.inc
@@ -131,11 +131,11 @@ EventScript_162A82:: @ 8162A82
return
EventScript_162A8B:: @ 8162A8B
- trainerbattle 3, TRAINER_ELITE_FOUR_LANCE, 0, Text_178A15
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_ELITE_FOUR_LANCE, 0, Text_178A15
return
EventScript_162A96:: @ 8162A96
- trainerbattle 3, TRAINER_ELITE_FOUR_LANCE_2, 0, Text_178A15
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_ELITE_FOUR_LANCE_2, 0, Text_178A15
return
EventScript_162AA1:: @ 8162AA1
diff --git a/data/maps/PokemonLeague_LoreleisRoom/scripts.inc b/data/maps/PokemonLeague_LoreleisRoom/scripts.inc
index 705308e02..df1cf1579 100644
--- a/data/maps/PokemonLeague_LoreleisRoom/scripts.inc
+++ b/data/maps/PokemonLeague_LoreleisRoom/scripts.inc
@@ -82,11 +82,11 @@ EventScript_16264A:: @ 816264A
return
EventScript_162653:: @ 8162653
- trainerbattle 3, TRAINER_ELITE_FOUR_LORELEI, 0, Text_178191
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_ELITE_FOUR_LORELEI, 0, Text_178191
return
EventScript_16265E:: @ 816265E
- trainerbattle 3, TRAINER_ELITE_FOUR_LORELEI_2, 0, Text_178191
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_ELITE_FOUR_LORELEI_2, 0, Text_178191
return
EventScript_162669:: @ 8162669
diff --git a/data/maps/PokemonMansion_1F/scripts.inc b/data/maps/PokemonMansion_1F/scripts.inc
index 7e934c833..ceb59874a 100644
--- a/data/maps/PokemonMansion_1F/scripts.inc
+++ b/data/maps/PokemonMansion_1F/scripts.inc
@@ -23,11 +23,11 @@ PokemonMansion_1F_EventScript_162212:: @ 8162212
end
PokemonMansion_1F_EventScript_162226:: @ 8162226
- trainerbattle 0, TRAINER_SCIENTIST_TED, 0, Text_177364, Text_177391
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_TED, 0, Text_177364, Text_177391
msgbox gUnknown_8177397, 6
end
PokemonMansion_1F_EventScript_16223D:: @ 816223D
- trainerbattle 0, TRAINER_YOUNGSTER_JOHNSON, 0, Text_1773C6, Text_1773FD
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_JOHNSON, 0, Text_1773C6, Text_1773FD
msgbox gUnknown_8177418, 6
end
diff --git a/data/maps/PokemonMansion_2F/scripts.inc b/data/maps/PokemonMansion_2F/scripts.inc
index aaec8ebfd..c0bdae1e9 100644
--- a/data/maps/PokemonMansion_2F/scripts.inc
+++ b/data/maps/PokemonMansion_2F/scripts.inc
@@ -26,6 +26,6 @@ PokemonMansion_2F_EventScript_162281:: @ 8162281
end
PokemonMansion_2F_EventScript_16228A:: @ 816228A
- trainerbattle 0, TRAINER_BURGLAR_ARNIE, 0, Text_177498, Text_1774CB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BURGLAR_ARNIE, 0, Text_177498, Text_1774CB
msgbox gUnknown_81774E3, 6
end
diff --git a/data/maps/PokemonMansion_3F/scripts.inc b/data/maps/PokemonMansion_3F/scripts.inc
index 27da3d538..6546b024e 100644
--- a/data/maps/PokemonMansion_3F/scripts.inc
+++ b/data/maps/PokemonMansion_3F/scripts.inc
@@ -22,11 +22,11 @@ PokemonMansion_3F_EventScript_1622C5:: @ 81622C5
end
PokemonMansion_3F_EventScript_1622CE:: @ 81622CE
- trainerbattle 0, TRAINER_BURGLAR_SIMON, 0, Text_1775E7, Text_177602
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BURGLAR_SIMON, 0, Text_1775E7, Text_177602
msgbox gUnknown_8177608, 6
end
PokemonMansion_3F_EventScript_1622E5:: @ 81622E5
- trainerbattle 0, TRAINER_SCIENTIST_BRAYDON, 0, Text_177628, Text_177643
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_BRAYDON, 0, Text_177628, Text_177643
msgbox gUnknown_8177657, 6
end
diff --git a/data/maps/PokemonMansion_B1F/scripts.inc b/data/maps/PokemonMansion_B1F/scripts.inc
index 12f8b79e0..3baba4c34 100644
--- a/data/maps/PokemonMansion_B1F/scripts.inc
+++ b/data/maps/PokemonMansion_B1F/scripts.inc
@@ -22,11 +22,11 @@ PokemonMansion_B1F_EventScript_162320:: @ 8162320
end
PokemonMansion_B1F_EventScript_162329:: @ 8162329
- trainerbattle 0, TRAINER_BURGLAR_LEWIS, 0, Text_1776C0, Text_1776D7
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BURGLAR_LEWIS, 0, Text_1776C0, Text_1776D7
msgbox gUnknown_81776DE, 6
end
PokemonMansion_B1F_EventScript_162340:: @ 8162340
- trainerbattle 0, TRAINER_SCIENTIST_IVAN, 0, Text_177720, Text_177757
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_IVAN, 0, Text_177720, Text_177757
msgbox gUnknown_817776A, 6
end
diff --git a/data/maps/PokemonTower_2F/scripts.inc b/data/maps/PokemonTower_2F/scripts.inc
index 4a7eb0efb..ff5fd8b9b 100644
--- a/data/maps/PokemonTower_2F/scripts.inc
+++ b/data/maps/PokemonTower_2F/scripts.inc
@@ -64,15 +64,15 @@ EventScript_16334B:: @ 816334B
return
EventScript_16335D:: @ 816335D
- trainerbattle 3, TRAINER_RIVAL_POKENON_TOWER_SQUIRTLE, 0, Text_179D73
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_POKENON_TOWER_SQUIRTLE, 0, Text_179D73
return
EventScript_163368:: @ 8163368
- trainerbattle 3, TRAINER_RIVAL_POKENON_TOWER_BULBASAUR, 0, Text_179D73
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_POKENON_TOWER_BULBASAUR, 0, Text_179D73
return
EventScript_163373:: @ 8163373
- trainerbattle 3, TRAINER_RIVAL_POKENON_TOWER_CHARMANDER, 0, Text_179D73
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_POKENON_TOWER_CHARMANDER, 0, Text_179D73
return
EventScript_16337E:: @ 816337E
diff --git a/data/maps/PokemonTower_3F/scripts.inc b/data/maps/PokemonTower_3F/scripts.inc
index 8549cd256..653a4e434 100644
--- a/data/maps/PokemonTower_3F/scripts.inc
+++ b/data/maps/PokemonTower_3F/scripts.inc
@@ -2,16 +2,16 @@ PokemonTower_3F_MapScripts:: @ 81633A6
.byte 0
PokemonTower_3F_EventScript_1633A7:: @ 81633A7
- trainerbattle 0, TRAINER_CHANNELER_PATRICIA, 0, Text_179FA0, Text_179FBC
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_PATRICIA, 0, Text_179FA0, Text_179FBC
msgbox gUnknown_8179FD3, 6
end
PokemonTower_3F_EventScript_1633BE:: @ 81633BE
- trainerbattle 0, TRAINER_CHANNELER_CARLY, 0, Text_179F62, Text_179F72
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_CARLY, 0, Text_179F62, Text_179F72
msgbox gUnknown_8179F88, 6
end
PokemonTower_3F_EventScript_1633D5:: @ 81633D5
- trainerbattle 0, TRAINER_CHANNELER_HOPE, 0, Text_179F09, Text_179F21
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_HOPE, 0, Text_179F09, Text_179F21
msgbox gUnknown_8179F31, 6
end
diff --git a/data/maps/PokemonTower_4F/scripts.inc b/data/maps/PokemonTower_4F/scripts.inc
index 0047e6060..7aa23fbe8 100644
--- a/data/maps/PokemonTower_4F/scripts.inc
+++ b/data/maps/PokemonTower_4F/scripts.inc
@@ -2,16 +2,16 @@ PokemonTower_4F_MapScripts:: @ 81633EC
.byte 0
PokemonTower_4F_EventScript_1633ED:: @ 81633ED
- trainerbattle 0, TRAINER_CHANNELER_PAULA, 0, Text_17A004, Text_17A017
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_PAULA, 0, Text_17A004, Text_17A017
msgbox gUnknown_817A02B, 6
end
PokemonTower_4F_EventScript_163404:: @ 8163404
- trainerbattle 0, TRAINER_CHANNELER_LAUREL, 0, Text_17A046, Text_17A061
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_LAUREL, 0, Text_17A046, Text_17A061
msgbox gUnknown_817A067, 6
end
PokemonTower_4F_EventScript_16341B:: @ 816341B
- trainerbattle 0, TRAINER_CHANNELER_JODY, 0, Text_17A096, Text_17A0AB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_JODY, 0, Text_17A096, Text_17A0AB
msgbox gUnknown_817A0BB, 6
end
diff --git a/data/maps/PokemonTower_5F/scripts.inc b/data/maps/PokemonTower_5F/scripts.inc
index 0e6d48bc4..85517e241 100644
--- a/data/maps/PokemonTower_5F/scripts.inc
+++ b/data/maps/PokemonTower_5F/scripts.inc
@@ -22,21 +22,21 @@ PokemonTower_5F_EventScript_163453:: @ 8163453
end
PokemonTower_5F_EventScript_16345B:: @ 816345B
- trainerbattle 0, TRAINER_CHANNELER_TAMMY, 0, Text_17A11F, Text_17A132
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_TAMMY, 0, Text_17A11F, Text_17A132
msgbox gUnknown_817A138, 6
end
PokemonTower_5F_EventScript_163472:: @ 8163472
- trainerbattle 0, TRAINER_CHANNELER_RUTH, 0, Text_17A150, Text_17A164
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_RUTH, 0, Text_17A150, Text_17A164
msgbox gUnknown_817A176, 6
end
PokemonTower_5F_EventScript_163489:: @ 8163489
- trainerbattle 0, TRAINER_CHANNELER_KARINA, 0, Text_17A187, Text_17A190
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_KARINA, 0, Text_17A187, Text_17A190
msgbox gUnknown_817A194, 6
end
PokemonTower_5F_EventScript_1634A0:: @ 81634A0
- trainerbattle 0, TRAINER_CHANNELER_JANAE, 0, Text_17A1AA, Text_17A1B7
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_JANAE, 0, Text_17A1AA, Text_17A1B7
msgbox gUnknown_817A1BD, 6
end
diff --git a/data/maps/PokemonTower_6F/scripts.inc b/data/maps/PokemonTower_6F/scripts.inc
index 086f589de..1f889c052 100644
--- a/data/maps/PokemonTower_6F/scripts.inc
+++ b/data/maps/PokemonTower_6F/scripts.inc
@@ -36,16 +36,16 @@ Movement_163512:: @ 8163512
step_end
PokemonTower_6F_EventScript_163514:: @ 8163514
- trainerbattle 0, TRAINER_CHANNELER_ANGELICA, 0, Text_17A243, Text_17A253
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_ANGELICA, 0, Text_17A243, Text_17A253
msgbox gUnknown_817A25A, 6
end
PokemonTower_6F_EventScript_16352B:: @ 816352B
- trainerbattle 0, TRAINER_CHANNELER_EMILIA, 0, Text_17A272, Text_17A27F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_EMILIA, 0, Text_17A272, Text_17A27F
msgbox gUnknown_817A293, 6
end
PokemonTower_6F_EventScript_163542:: @ 8163542
- trainerbattle 0, TRAINER_CHANNELER_JENNIFER, 0, Text_17A2C8, Text_17A2DC
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_JENNIFER, 0, Text_17A2C8, Text_17A2DC
msgbox gUnknown_817A2E2, 6
end
diff --git a/data/maps/PokemonTower_7F/scripts.inc b/data/maps/PokemonTower_7F/scripts.inc
index 20fd57e6f..f39d15c7e 100644
--- a/data/maps/PokemonTower_7F/scripts.inc
+++ b/data/maps/PokemonTower_7F/scripts.inc
@@ -16,7 +16,7 @@ PokemonTower_7F_EventScript_16355A:: @ 816355A
end
PokemonTower_7F_EventScript_163586:: @ 8163586
- trainerbattle 2, TRAINER_TEAM_ROCKET_GRUNT_19, 0, Text_17A380, Text_17A3A4, EventScript_1635A1
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_TEAM_ROCKET_GRUNT_19, 0, Text_17A380, Text_17A3A4, EventScript_1635A1
msgbox gUnknown_817A3AF, 6
end
@@ -103,7 +103,7 @@ Movement_163633:: @ 8163633
step_end
PokemonTower_7F_EventScript_16363D:: @ 816363D
- trainerbattle 2, TRAINER_TEAM_ROCKET_GRUNT_20, 0, Text_17A3CD, Text_17A466, EventScript_163658
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_TEAM_ROCKET_GRUNT_20, 0, Text_17A3CD, Text_17A466, EventScript_163658
msgbox gUnknown_817A477, 6
end
@@ -169,7 +169,7 @@ Movement_1636CD:: @ 81636CD
step_end
PokemonTower_7F_EventScript_1636D6:: @ 81636D6
- trainerbattle 2, TRAINER_TEAM_ROCKET_GRUNT_21, 0, Text_17A4CF, Text_17A4EE, EventScript_1636F1
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_TEAM_ROCKET_GRUNT_21, 0, Text_17A4CF, Text_17A4EE, EventScript_1636F1
msgbox gUnknown_817A506, 6
end
diff --git a/data/maps/RockTunnel_1F/scripts.inc b/data/maps/RockTunnel_1F/scripts.inc
index f16127dc0..c2bb38afc 100644
--- a/data/maps/RockTunnel_1F/scripts.inc
+++ b/data/maps/RockTunnel_1F/scripts.inc
@@ -11,36 +11,36 @@ RockTunnel_1F_EventScript_162DE0:: @ 8162DE0
end
RockTunnel_1F_EventScript_162DE9:: @ 8162DE9
- trainerbattle 0, TRAINER_HIKER_LENNY, 0, Text_179366, Text_179388
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_LENNY, 0, Text_179366, Text_179388
msgbox gUnknown_8179396, 6
end
RockTunnel_1F_EventScript_162E00:: @ 8162E00
- trainerbattle 0, TRAINER_HIKER_OLIVER, 0, Text_1793F1, Text_17940E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_OLIVER, 0, Text_1793F1, Text_17940E
msgbox gUnknown_817943A, 6
end
RockTunnel_1F_EventScript_162E17:: @ 8162E17
- trainerbattle 0, TRAINER_HIKER_LUCAS, 0, Text_17947B, Text_1794AC
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_LUCAS, 0, Text_17947B, Text_1794AC
msgbox gUnknown_81794B4, 6
end
RockTunnel_1F_EventScript_162E2E:: @ 8162E2E
- trainerbattle 0, TRAINER_POKEMANIAC_ASHTON, 0, Text_1794D4, Text_1794EE
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_POKEMANIAC_ASHTON, 0, Text_1794D4, Text_1794EE
msgbox gUnknown_81794F9, 6
end
RockTunnel_1F_EventScript_162E45:: @ 8162E45
- trainerbattle 0, TRAINER_PICNICKER_LEAH, 0, Text_17951C, Text_179547
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_LEAH, 0, Text_17951C, Text_179547
msgbox gUnknown_8179558, 6
end
RockTunnel_1F_EventScript_162E5C:: @ 8162E5C
- trainerbattle 0, TRAINER_PICNICKER_ARIANA, 0, Text_1795E5, Text_179604
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_ARIANA, 0, Text_1795E5, Text_179604
msgbox gUnknown_8179613, 6
end
RockTunnel_1F_EventScript_162E73:: @ 8162E73
- trainerbattle 0, TRAINER_PICNICKER_DANA, 0, Text_179577, Text_1795A1
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_DANA, 0, Text_179577, Text_1795A1
msgbox gUnknown_81795B5, 6
end
diff --git a/data/maps/RockTunnel_B1F/scripts.inc b/data/maps/RockTunnel_B1F/scripts.inc
index 7ca22dde0..27650f752 100644
--- a/data/maps/RockTunnel_B1F/scripts.inc
+++ b/data/maps/RockTunnel_B1F/scripts.inc
@@ -2,41 +2,41 @@ RockTunnel_B1F_MapScripts:: @ 8162E8A
.byte 0
RockTunnel_B1F_EventScript_162E8B:: @ 8162E8B
- trainerbattle 0, TRAINER_PICNICKER_SOFIA, 0, Text_179657, Text_1796B9
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_SOFIA, 0, Text_179657, Text_1796B9
msgbox gUnknown_81796CE, 6
end
RockTunnel_B1F_EventScript_162EA2:: @ 8162EA2
- trainerbattle 0, TRAINER_PICNICKER_MARTHA, 0, Text_1798AD, Text_1798DD
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_MARTHA, 0, Text_1798AD, Text_1798DD
msgbox gUnknown_81798E9, 6
end
RockTunnel_B1F_EventScript_162EB9:: @ 8162EB9
- trainerbattle 0, TRAINER_HIKER_DUDLEY, 0, Text_1796E1, Text_179700
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_DUDLEY, 0, Text_1796E1, Text_179700
msgbox gUnknown_8179712, 6
end
RockTunnel_B1F_EventScript_162ED0:: @ 8162ED0
- trainerbattle 0, TRAINER_HIKER_ALLEN, 0, Text_179829, Text_179856
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_ALLEN, 0, Text_179829, Text_179856
msgbox gUnknown_817987A, 6
end
RockTunnel_B1F_EventScript_162EE7:: @ 8162EE7
- trainerbattle 0, TRAINER_HIKER_ERIC, 0, Text_179916, Text_179932
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_HIKER_ERIC, 0, Text_179916, Text_179932
msgbox gUnknown_817993E, 6
end
RockTunnel_B1F_EventScript_162EFE:: @ 8162EFE
- trainerbattle 0, TRAINER_POKEMANIAC_COOPER, 0, Text_17973A, Text_17975F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_POKEMANIAC_COOPER, 0, Text_17973A, Text_17975F
msgbox gUnknown_8179777, 6
end
RockTunnel_B1F_EventScript_162F15:: @ 8162F15
- trainerbattle 0, TRAINER_POKEMANIAC_STEVE, 0, Text_1797A4, Text_1797CB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_POKEMANIAC_STEVE, 0, Text_1797A4, Text_1797CB
msgbox gUnknown_81797DE, 6
end
RockTunnel_B1F_EventScript_162F2C:: @ 8162F2C
- trainerbattle 0, TRAINER_POKEMANIAC_WINSTON, 0, Text_179968, Text_179997
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_POKEMANIAC_WINSTON, 0, Text_179968, Text_179997
msgbox gUnknown_81799AC, 6
end
diff --git a/data/maps/RocketHideout_B1F/scripts.inc b/data/maps/RocketHideout_B1F/scripts.inc
index 1e8f1b9d2..6e2f8eeb3 100644
--- a/data/maps/RocketHideout_B1F/scripts.inc
+++ b/data/maps/RocketHideout_B1F/scripts.inc
@@ -13,27 +13,27 @@ RocketHideout_B1F_MapScript2_1611AA:: @ 81611AA
end
RocketHideout_B1F_EventScript_1611AE:: @ 81611AE
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_8, 0, Text_174ECA, Text_174EED
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_8, 0, Text_174ECA, Text_174EED
msgbox gUnknown_8174EFA, 6
end
RocketHideout_B1F_EventScript_1611C5:: @ 81611C5
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_9, 0, Text_174F2C, Text_174F60
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_9, 0, Text_174F2C, Text_174F60
msgbox gUnknown_8174F66, 6
end
RocketHideout_B1F_EventScript_1611DC:: @ 81611DC
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_10, 0, Text_174F94, Text_174FA4
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_10, 0, Text_174F94, Text_174FA4
msgbox gUnknown_8174FB3, 6
end
RocketHideout_B1F_EventScript_1611F3:: @ 81611F3
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_11, 0, Text_174FE1, Text_174FF8
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_11, 0, Text_174FE1, Text_174FF8
msgbox gUnknown_8175007, 6
end
RocketHideout_B1F_EventScript_16120A:: @ 816120A
- trainerbattle 2, TRAINER_TEAM_ROCKET_GRUNT_12, 0, Text_17503A, Text_17505A, EventScript_161225
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_TEAM_ROCKET_GRUNT_12, 0, Text_17503A, Text_17505A, EventScript_161225
msgbox gUnknown_8175060, 6
end
diff --git a/data/maps/RocketHideout_B2F/scripts.inc b/data/maps/RocketHideout_B2F/scripts.inc
index e3ed4b499..6264371b7 100644
--- a/data/maps/RocketHideout_B2F/scripts.inc
+++ b/data/maps/RocketHideout_B2F/scripts.inc
@@ -2,6 +2,6 @@ RocketHideout_B2F_MapScripts:: @ 81612A1
.byte 0
RocketHideout_B2F_EventScript_1612A2:: @ 81612A2
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_13, 0, Text_17508C, Text_1750BF
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_13, 0, Text_17508C, Text_1750BF
msgbox gUnknown_81750CC, 6
end
diff --git a/data/maps/RocketHideout_B3F/scripts.inc b/data/maps/RocketHideout_B3F/scripts.inc
index d322a36fb..5cc7fc7d8 100644
--- a/data/maps/RocketHideout_B3F/scripts.inc
+++ b/data/maps/RocketHideout_B3F/scripts.inc
@@ -2,11 +2,11 @@ RocketHideout_B3F_MapScripts:: @ 81612B9
.byte 0
RocketHideout_B3F_EventScript_1612BA:: @ 81612BA
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_14, 0, Text_17511A, Text_17514A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_14, 0, Text_17511A, Text_17514A
msgbox gUnknown_817515B, 6
end
RocketHideout_B3F_EventScript_1612D1:: @ 81612D1
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_15, 0, Text_17519E, Text_1751CE
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_15, 0, Text_17519E, Text_1751CE
msgbox gUnknown_81751E0, 6
end
diff --git a/data/maps/RocketHideout_B4F/scripts.inc b/data/maps/RocketHideout_B4F/scripts.inc
index 655ef389a..0ab5b0490 100644
--- a/data/maps/RocketHideout_B4F/scripts.inc
+++ b/data/maps/RocketHideout_B4F/scripts.inc
@@ -24,7 +24,7 @@ RocketHideout_B4F_EventScript_161317:: @ 8161317
waitmessage
playbgm MUS_ROCKET, 0
waitbuttonpress
- trainerbattle 3, TRAINER_BOSS_GIOVANNI, 0, Text_175318
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_BOSS_GIOVANNI, 0, Text_175318
msgbox gUnknown_817532D
fadescreen 1
closemessage
@@ -48,7 +48,7 @@ RocketHideout_B4F_EventScript_161363:: @ 8161363
end
RocketHideout_B4F_EventScript_161381:: @ 8161381
- trainerbattle 2, TRAINER_TEAM_ROCKET_GRUNT_18, 0, Text_175488, Text_1754B9, EventScript_16139D
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_TEAM_ROCKET_GRUNT_18, 0, Text_175488, Text_1754B9, EventScript_16139D
msgbox gUnknown_81754BD
release
end
@@ -72,7 +72,7 @@ RocketHideout_B4F_EventScript_1613AD:: @ 81613AD
end
RocketHideout_B4F_EventScript_1613CE:: @ 81613CE
- trainerbattle 2, TRAINER_TEAM_ROCKET_GRUNT_16, 0, Text_1753D0, Text_1753FE, EventScript_1613E9
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_TEAM_ROCKET_GRUNT_16, 0, Text_1753D0, Text_1753FE, EventScript_1613E9
msgbox gUnknown_817540C, 6
end
@@ -90,7 +90,7 @@ EventScript_1613E9:: @ 81613E9
end
RocketHideout_B4F_EventScript_161418:: @ 8161418
- trainerbattle 2, TRAINER_TEAM_ROCKET_GRUNT_17, 0, Text_175437, Text_175463, EventScript_161433
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_TEAM_ROCKET_GRUNT_17, 0, Text_175437, Text_175463, EventScript_161433
msgbox gUnknown_817546A, 6
end
diff --git a/data/maps/Route22/scripts.inc b/data/maps/Route22/scripts.inc
index 0996b20a0..8a775e09c 100644
--- a/data/maps/Route22/scripts.inc
+++ b/data/maps/Route22/scripts.inc
@@ -73,15 +73,15 @@ EventScript_16835B:: @ 816835B
return
EventScript_16836D:: @ 816836D
- trainerbattle 9, TRAINER_RIVAL_ROUTE22_EARLY_SQUIRTLE, 0, Text_188959, Text_18DE1A
+ trainerbattle TRAINER_BATTLE_TUTORIAL, TRAINER_RIVAL_ROUTE22_EARLY_SQUIRTLE, 0, Text_188959, Text_18DE1A
return
EventScript_16837C:: @ 816837C
- trainerbattle 9, TRAINER_RIVAL_ROUTE22_EARLY_BULBASAUR, 0, Text_188959, Text_18DE1A
+ trainerbattle TRAINER_BATTLE_TUTORIAL, TRAINER_RIVAL_ROUTE22_EARLY_BULBASAUR, 0, Text_188959, Text_18DE1A
return
EventScript_16838B:: @ 816838B
- trainerbattle 9, TRAINER_RIVAL_ROUTE22_EARLY_CHARMANDER, 0, Text_188959, Text_18DE1A
+ trainerbattle TRAINER_BATTLE_TUTORIAL, TRAINER_RIVAL_ROUTE22_EARLY_CHARMANDER, 0, Text_188959, Text_18DE1A
return
EventScript_16839A:: @ 816839A
@@ -235,15 +235,15 @@ EventScript_1684A7:: @ 81684A7
return
EventScript_1684B9:: @ 81684B9
- trainerbattle 3, TRAINER_RIVAL_ROUTE22_LATE_SQUIRTLE, 0, Text_188B08
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_ROUTE22_LATE_SQUIRTLE, 0, Text_188B08
return
EventScript_1684C4:: @ 81684C4
- trainerbattle 3, TRAINER_RIVAL_ROUTE22_LATE_BULBASAUR, 0, Text_188B08
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_ROUTE22_LATE_BULBASAUR, 0, Text_188B08
return
EventScript_1684CF:: @ 81684CF
- trainerbattle 3, TRAINER_RIVAL_ROUTE22_LATE_CHARMANDER, 0, Text_188B08
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_ROUTE22_LATE_CHARMANDER, 0, Text_188B08
return
Movement_1684DA:: @ 81684DA
diff --git a/data/maps/Route24/scripts.inc b/data/maps/Route24/scripts.inc
index 175cc7210..2760e17a3 100644
--- a/data/maps/Route24/scripts.inc
+++ b/data/maps/Route24/scripts.inc
@@ -60,7 +60,7 @@ EventScript_1686B9:: @ 81686B9
playbgm MUS_ROCKET, 0
waitbuttonpress
setvar VAR_LAST_TALKED, 1
- trainerbattle 3, TRAINER_TEAM_ROCKET_GRUNT_6, 0, Text_188DDC
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_TEAM_ROCKET_GRUNT_6, 0, Text_188DDC
msgbox gUnknown_8188DF1
setvar VAR_MAP_SCENE_ROUTE24, 1
return
diff --git a/data/maps/SSAnne_1F_Room2/scripts.inc b/data/maps/SSAnne_1F_Room2/scripts.inc
index 9e37f8eb8..ef73a522a 100644
--- a/data/maps/SSAnne_1F_Room2/scripts.inc
+++ b/data/maps/SSAnne_1F_Room2/scripts.inc
@@ -6,11 +6,11 @@ SSAnne_1F_Room2_EventScript_160BE6:: @ 8160BE6
end
SSAnne_1F_Room2_EventScript_160BEF:: @ 8160BEF
- trainerbattle 0, TRAINER_LASS_ANN, 0, Text_173A1A, Text_173A4F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_ANN, 0, Text_173A1A, Text_173A4F
msgbox gUnknown_8173A7A, 6
end
SSAnne_1F_Room2_EventScript_160C06:: @ 8160C06
- trainerbattle 0, TRAINER_YOUNGSTER_TYLER, 0, Text_173999, Text_1739B1
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_TYLER, 0, Text_173999, Text_1739B1
msgbox gUnknown_81739C5, 6
end
diff --git a/data/maps/SSAnne_1F_Room5/scripts.inc b/data/maps/SSAnne_1F_Room5/scripts.inc
index 3d42c7860..11040e58f 100644
--- a/data/maps/SSAnne_1F_Room5/scripts.inc
+++ b/data/maps/SSAnne_1F_Room5/scripts.inc
@@ -2,6 +2,6 @@ SSAnne_1F_Room5_MapScripts:: @ 8160C66
.byte 0
SSAnne_1F_Room5_EventScript_160C67:: @ 8160C67
- trainerbattle 0, TRAINER_GENTLEMAN_ARTHUR, 0, Text_173BD1, Text_173BFA
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_GENTLEMAN_ARTHUR, 0, Text_173BD1, Text_173BFA
msgbox gUnknown_8173C30, 6
end
diff --git a/data/maps/SSAnne_1F_Room7/scripts.inc b/data/maps/SSAnne_1F_Room7/scripts.inc
index 560764b08..96b0ae20a 100644
--- a/data/maps/SSAnne_1F_Room7/scripts.inc
+++ b/data/maps/SSAnne_1F_Room7/scripts.inc
@@ -2,6 +2,6 @@ SSAnne_1F_Room7_MapScripts:: @ 8160C7E
.byte 0
SSAnne_1F_Room7_EventScript_160C7F:: @ 8160C7F
- trainerbattle 0, TRAINER_GENTLEMAN_THOMAS, 0, Text_173C52, Text_173CB4
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_GENTLEMAN_THOMAS, 0, Text_173C52, Text_173CB4
msgbox gUnknown_8173CC4, 6
end
diff --git a/data/maps/SSAnne_2F_Corridor/scripts.inc b/data/maps/SSAnne_2F_Corridor/scripts.inc
index 22916f1be..82d75a686 100644
--- a/data/maps/SSAnne_2F_Corridor/scripts.inc
+++ b/data/maps/SSAnne_2F_Corridor/scripts.inc
@@ -83,15 +83,15 @@ EventScript_1609CA:: @ 81609CA
return
EventScript_1609DC:: @ 81609DC
- trainerbattle 3, TRAINER_RIVAL_SS_ANNE_SQUIRTLE, 0, Text_173110
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_SS_ANNE_SQUIRTLE, 0, Text_173110
return
EventScript_1609E7:: @ 81609E7
- trainerbattle 3, TRAINER_RIVAL_SS_ANNE_BULBASAUR, 0, Text_173110
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_SS_ANNE_BULBASAUR, 0, Text_173110
return
EventScript_1609F2:: @ 81609F2
- trainerbattle 3, TRAINER_RIVAL_SS_ANNE_CHARMANDER, 0, Text_173110
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_SS_ANNE_CHARMANDER, 0, Text_173110
return
EventScript_1609FD:: @ 81609FD
diff --git a/data/maps/SSAnne_2F_Room2/scripts.inc b/data/maps/SSAnne_2F_Room2/scripts.inc
index af5c392c2..cabf92f28 100644
--- a/data/maps/SSAnne_2F_Room2/scripts.inc
+++ b/data/maps/SSAnne_2F_Room2/scripts.inc
@@ -2,11 +2,11 @@ SSAnne_2F_Room2_MapScripts:: @ 8160CB0
.byte 0
SSAnne_2F_Room2_EventScript_160CB1:: @ 8160CB1
- trainerbattle 0, TRAINER_FISHERMAN_DALE, 0, Text_173DDB, Text_173DF7
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_DALE, 0, Text_173DDB, Text_173DF7
msgbox gUnknown_8173E04, 6
end
SSAnne_2F_Room2_EventScript_160CC8:: @ 8160CC8
- trainerbattle 0, TRAINER_GENTLEMAN_BROOKS, 0, Text_173D63, Text_173D92
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_GENTLEMAN_BROOKS, 0, Text_173D63, Text_173D92
msgbox gUnknown_8173DB6, 6
end
diff --git a/data/maps/SSAnne_2F_Room4/scripts.inc b/data/maps/SSAnne_2F_Room4/scripts.inc
index 506059759..330b18acc 100644
--- a/data/maps/SSAnne_2F_Room4/scripts.inc
+++ b/data/maps/SSAnne_2F_Room4/scripts.inc
@@ -2,11 +2,11 @@ SSAnne_2F_Room4_MapScripts:: @ 8160CF2
.byte 0
SSAnne_2F_Room4_EventScript_160CF3:: @ 8160CF3
- trainerbattle 0, TRAINER_GENTLEMAN_LAMAR, 0, Text_173F07, Text_173F42
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_GENTLEMAN_LAMAR, 0, Text_173F07, Text_173F42
msgbox gUnknown_8173F55, 6
end
SSAnne_2F_Room4_EventScript_160D0A:: @ 8160D0A
- trainerbattle 0, TRAINER_LASS_DAWN, 0, Text_173F83, Text_173FAB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_DAWN, 0, Text_173F83, Text_173FAB
msgbox gUnknown_8173FB9, 6
end
diff --git a/data/maps/SSAnne_B1F_Room1/scripts.inc b/data/maps/SSAnne_B1F_Room1/scripts.inc
index 337066e8c..06903353d 100644
--- a/data/maps/SSAnne_B1F_Room1/scripts.inc
+++ b/data/maps/SSAnne_B1F_Room1/scripts.inc
@@ -2,11 +2,11 @@ SSAnne_B1F_Room1_MapScripts:: @ 8160D47
.byte 0
SSAnne_B1F_Room1_EventScript_160D48:: @ 8160D48
- trainerbattle 0, TRAINER_FISHERMAN_BARNY, 0, Text_174177, Text_1741EF
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_FISHERMAN_BARNY, 0, Text_174177, Text_1741EF
msgbox gUnknown_817420E, 6
end
SSAnne_B1F_Room1_EventScript_160D5F:: @ 8160D5F
- trainerbattle 0, TRAINER_SAILOR_PHILLIP, 0, Text_1740F6, Text_174123
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SAILOR_PHILLIP, 0, Text_1740F6, Text_174123
msgbox gUnknown_817413A, 6
end
diff --git a/data/maps/SSAnne_B1F_Room2/scripts.inc b/data/maps/SSAnne_B1F_Room2/scripts.inc
index 04c9b1c33..01772cab8 100644
--- a/data/maps/SSAnne_B1F_Room2/scripts.inc
+++ b/data/maps/SSAnne_B1F_Room2/scripts.inc
@@ -2,6 +2,6 @@ SSAnne_B1F_Room2_MapScripts:: @ 8160D76
.byte 0
SSAnne_B1F_Room2_EventScript_160D77:: @ 8160D77
- trainerbattle 0, TRAINER_SAILOR_HUEY, 0, Text_174239, Text_17425C
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SAILOR_HUEY, 0, Text_174239, Text_17425C
msgbox gUnknown_8174272, 6
end
diff --git a/data/maps/SSAnne_B1F_Room3/scripts.inc b/data/maps/SSAnne_B1F_Room3/scripts.inc
index fcf19823a..da4ed9aaf 100644
--- a/data/maps/SSAnne_B1F_Room3/scripts.inc
+++ b/data/maps/SSAnne_B1F_Room3/scripts.inc
@@ -2,6 +2,6 @@ SSAnne_B1F_Room3_MapScripts:: @ 8160D8E
.byte 0
SSAnne_B1F_Room3_EventScript_160D8F:: @ 8160D8F
- trainerbattle 0, TRAINER_SAILOR_DYLAN, 0, Text_1742A6, Text_1742C3
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SAILOR_DYLAN, 0, Text_1742A6, Text_1742C3
msgbox gUnknown_81742D2, 6
end
diff --git a/data/maps/SSAnne_B1F_Room4/scripts.inc b/data/maps/SSAnne_B1F_Room4/scripts.inc
index 8a6b8fa8c..e9730a19e 100644
--- a/data/maps/SSAnne_B1F_Room4/scripts.inc
+++ b/data/maps/SSAnne_B1F_Room4/scripts.inc
@@ -2,11 +2,11 @@ SSAnne_B1F_Room4_MapScripts:: @ 8160DA6
.byte 0
SSAnne_B1F_Room4_EventScript_160DA7:: @ 8160DA7
- trainerbattle 0, TRAINER_SAILOR_LEONARD, 0, Text_174315, Text_174348
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SAILOR_LEONARD, 0, Text_174315, Text_174348
msgbox gUnknown_8174362, 6
end
SSAnne_B1F_Room4_EventScript_160DBE:: @ 8160DBE
- trainerbattle 0, TRAINER_SAILOR_DUNCAN, 0, Text_174385, Text_1743B3
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SAILOR_DUNCAN, 0, Text_174385, Text_1743B3
msgbox gUnknown_81743C8, 6
end
diff --git a/data/maps/SSAnne_Deck/scripts.inc b/data/maps/SSAnne_Deck/scripts.inc
index bf12690af..955625e2e 100644
--- a/data/maps/SSAnne_Deck/scripts.inc
+++ b/data/maps/SSAnne_Deck/scripts.inc
@@ -14,11 +14,11 @@ SSAnne_Deck_EventScript_160A7B:: @ 8160A7B
end
SSAnne_Deck_EventScript_160A84:: @ 8160A84
- trainerbattle 0, TRAINER_SAILOR_EDMOND, 0, Text_173308, Text_17332B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SAILOR_EDMOND, 0, Text_173308, Text_17332B
msgbox gUnknown_817333E, 6
end
SSAnne_Deck_EventScript_160A9B:: @ 8160A9B
- trainerbattle 0, TRAINER_SAILOR_TREVOR, 0, Text_173382, Text_1733A0
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SAILOR_TREVOR, 0, Text_173382, Text_1733A0
msgbox gUnknown_81733B5, 6
end
diff --git a/data/maps/SaffronCity_Dojo/scripts.inc b/data/maps/SaffronCity_Dojo/scripts.inc
index 9c0f5cba8..8481db66c 100644
--- a/data/maps/SaffronCity_Dojo/scripts.inc
+++ b/data/maps/SaffronCity_Dojo/scripts.inc
@@ -123,27 +123,27 @@ SaffronCity_Dojo_EventScript_16ED3D:: @ 816ED3D
end
SaffronCity_Dojo_EventScript_16ED46:: @ 816ED46
- trainerbattle 0, TRAINER_BLACK_BELT_HITOSHI, 0, Text_19B3DF, Text_19B40F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BLACK_BELT_HITOSHI, 0, Text_19B3DF, Text_19B40F
msgbox gUnknown_819B41F, 6
end
SaffronCity_Dojo_EventScript_16ED5D:: @ 816ED5D
- trainerbattle 0, TRAINER_BLACK_BELT_HIDEKI, 0, Text_19B2E0, Text_19B2FD
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BLACK_BELT_HIDEKI, 0, Text_19B2E0, Text_19B2FD
msgbox gUnknown_819B30F, 6
end
SaffronCity_Dojo_EventScript_16ED74:: @ 816ED74
- trainerbattle 0, TRAINER_BLACK_BELT_AARON, 0, Text_19B341, Text_19B396
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BLACK_BELT_AARON, 0, Text_19B341, Text_19B396
msgbox gUnknown_819B3AC, 6
end
SaffronCity_Dojo_EventScript_16ED8B:: @ 816ED8B
- trainerbattle 0, TRAINER_BLACK_BELT_MIKE, 0, Text_19B275, Text_19B292
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BLACK_BELT_MIKE, 0, Text_19B275, Text_19B292
msgbox gUnknown_819B29D, 6
end
SaffronCity_Dojo_EventScript_16EDA2:: @ 816EDA2
- trainerbattle 2, TRAINER_BLACK_BELT_KOICHI, 0, Text_19B12C, Text_19B193, EventScript_16EDD0
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_BLACK_BELT_KOICHI, 0, Text_19B12C, Text_19B193, EventScript_16EDD0
checkflag FLAG_GOT_HITMON_FROM_DOJO
goto_if TRUE, EventScript_16EDC6
msgbox gUnknown_819B1A7, 6
diff --git a/data/maps/SaffronCity_Gym/scripts.inc b/data/maps/SaffronCity_Gym/scripts.inc
index ebfc595c7..159cb1729 100644
--- a/data/maps/SaffronCity_Gym/scripts.inc
+++ b/data/maps/SaffronCity_Gym/scripts.inc
@@ -3,7 +3,7 @@ SaffronCity_Gym_MapScripts:: @ 816EDD7
SaffronCity_Gym_EventScript_16EDD8:: @ 816EDD8
famechecker FAMECHECKER_SABRINA, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
- trainerbattle 1, TRAINER_LEADER_SABRINA, 0, Text_19B53C, Text_19B602, EventScript_16EE0A
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, TRAINER_LEADER_SABRINA, 0, Text_19B53C, Text_19B602, EventScript_16EE0A
checkflag FLAG_GOT_TM04_FROM_SABRINA
goto_if FALSE, EventScript_16EE3D
msgbox gUnknown_819B7F2
@@ -38,38 +38,38 @@ EventScript_16EE7E:: @ 816EE7E
end
SaffronCity_Gym_EventScript_16EE88:: @ 816EE88
- trainerbattle 0, TRAINER_PSYCHIC_JOHAN, 0, Text_19B936, Text_19B957
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PSYCHIC_JOHAN, 0, Text_19B936, Text_19B957
msgbox gUnknown_819B96D, 6
end
SaffronCity_Gym_EventScript_16EE9F:: @ 816EE9F
- trainerbattle 0, TRAINER_PSYCHIC_TYRON, 0, Text_19BA45, Text_19BA9E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PSYCHIC_TYRON, 0, Text_19BA45, Text_19BA9E
famechecker FAMECHECKER_SABRINA, 5
msgbox gUnknown_819BAB4, 6
end
SaffronCity_Gym_EventScript_16EEC3:: @ 816EEC3
- trainerbattle 0, TRAINER_PSYCHIC_CAMERON, 0, Text_19BB49, Text_19BBA1
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PSYCHIC_CAMERON, 0, Text_19BB49, Text_19BBA1
msgbox gUnknown_819BBB3, 6
end
SaffronCity_Gym_EventScript_16EEDA:: @ 816EEDA
- trainerbattle 0, TRAINER_PSYCHIC_PRESTON, 0, Text_19BC57, Text_19BCBC
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PSYCHIC_PRESTON, 0, Text_19BC57, Text_19BCBC
msgbox gUnknown_819BCC4, 6
end
SaffronCity_Gym_EventScript_16EEF1:: @ 816EEF1
- trainerbattle 0, TRAINER_CHANNELER_AMANDA, 0, Text_19B86A, Text_19B8A8
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_AMANDA, 0, Text_19B86A, Text_19B8A8
msgbox gUnknown_819B8B9, 6
end
SaffronCity_Gym_EventScript_16EF08:: @ 816EF08
- trainerbattle 0, TRAINER_CHANNELER_STACY, 0, Text_19B998, Text_19B9EC
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_STACY, 0, Text_19B998, Text_19B9EC
msgbox gUnknown_819B9F7, 6
end
SaffronCity_Gym_EventScript_16EF1F:: @ 816EF1F
- trainerbattle 0, TRAINER_CHANNELER_TASHA, 0, Text_19BAE8, Text_19BB0D
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CHANNELER_TASHA, 0, Text_19BAE8, Text_19BB0D
msgbox gUnknown_819BB1F, 6
end
diff --git a/data/maps/SilphCo_10F/scripts.inc b/data/maps/SilphCo_10F/scripts.inc
index 58f28c644..0b8e0e2cb 100644
--- a/data/maps/SilphCo_10F/scripts.inc
+++ b/data/maps/SilphCo_10F/scripts.inc
@@ -26,11 +26,11 @@ SilphCo_10F_EventScript_161DB7:: @ 8161DB7
end
SilphCo_10F_EventScript_161DC0:: @ 8161DC0
- trainerbattle 0, TRAINER_SCIENTIST_TRAVIS, 0, Text_176D57, Text_176D73
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_TRAVIS, 0, Text_176D57, Text_176D73
msgbox gUnknown_8176D86, 6
end
SilphCo_10F_EventScript_161DD7:: @ 8161DD7
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_39, 0, Text_176CED, Text_176D18
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_39, 0, Text_176CED, Text_176D18
msgbox gUnknown_8176D25, 6
end
diff --git a/data/maps/SilphCo_11F/scripts.inc b/data/maps/SilphCo_11F/scripts.inc
index d418848ea..292498c7b 100644
--- a/data/maps/SilphCo_11F/scripts.inc
+++ b/data/maps/SilphCo_11F/scripts.inc
@@ -77,7 +77,7 @@ EventScript_161EA0:: @ 8161EA0
compare_var_to_value VAR_0x4001, 1
call_if eq, EventScript_161F12
setvar VAR_LAST_TALKED, 3
- trainerbattle 3, TRAINER_BOSS_GIOVANNI_2, 0, Text_1771AB
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_BOSS_GIOVANNI_2, 0, Text_1771AB
msgbox gUnknown_81771C2
closemessage
fadescreen 1
@@ -134,11 +134,11 @@ SilphCo_11F_EventScript_161F37:: @ 8161F37
end
SilphCo_11F_EventScript_161F40:: @ 8161F40
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_40, 0, Text_1772B8, Text_1772E7
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_40, 0, Text_1772B8, Text_1772E7
msgbox gUnknown_81772F9, 6
end
SilphCo_11F_EventScript_161F57:: @ 8161F57
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_41, 0, Text_17726A, Text_17728C
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_41, 0, Text_17726A, Text_17728C
msgbox gUnknown_817729B, 6
end
diff --git a/data/maps/SilphCo_2F/scripts.inc b/data/maps/SilphCo_2F/scripts.inc
index e0ca5906b..1d08e777b 100644
--- a/data/maps/SilphCo_2F/scripts.inc
+++ b/data/maps/SilphCo_2F/scripts.inc
@@ -20,21 +20,21 @@ SilphCo_2F_EventScript_161660:: @ 8161660
end
SilphCo_2F_EventScript_161669:: @ 8161669
- trainerbattle 0, TRAINER_SCIENTIST_CONNOR, 0, Text_175562, Text_17557E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_CONNOR, 0, Text_175562, Text_17557E
msgbox gUnknown_817559F, 6
end
SilphCo_2F_EventScript_161680:: @ 8161680
- trainerbattle 0, TRAINER_SCIENTIST_JERRY, 0, Text_1755C6, Text_1755E5
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_JERRY, 0, Text_1755C6, Text_1755E5
msgbox gUnknown_81755F2, 6
end
SilphCo_2F_EventScript_161697:: @ 8161697
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_23, 0, Text_17562D, Text_17564A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_23, 0, Text_17562D, Text_17564A
msgbox gUnknown_8175651, 6
end
SilphCo_2F_EventScript_1616AE:: @ 81616AE
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_24, 0, Text_1756AD, Text_1756D8
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_24, 0, Text_1756AD, Text_1756D8
msgbox gUnknown_81756E2, 6
end
diff --git a/data/maps/SilphCo_3F/scripts.inc b/data/maps/SilphCo_3F/scripts.inc
index 0ef319f8c..8187e8e45 100644
--- a/data/maps/SilphCo_3F/scripts.inc
+++ b/data/maps/SilphCo_3F/scripts.inc
@@ -28,11 +28,11 @@ SilphCo_3F_EventScript_1616FF:: @ 81616FF
end
SilphCo_3F_EventScript_161708:: @ 8161708
- trainerbattle 0, TRAINER_SCIENTIST_JOSE, 0, Text_175948, Text_17597D
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_JOSE, 0, Text_175948, Text_17597D
msgbox gUnknown_8175990, 6
end
SilphCo_3F_EventScript_16171F:: @ 816171F
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_25, 0, Text_1758F6, Text_175911
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_25, 0, Text_1758F6, Text_175911
msgbox gUnknown_817591C, 6
end
diff --git a/data/maps/SilphCo_4F/scripts.inc b/data/maps/SilphCo_4F/scripts.inc
index f2fadd471..176b6a4d3 100644
--- a/data/maps/SilphCo_4F/scripts.inc
+++ b/data/maps/SilphCo_4F/scripts.inc
@@ -28,16 +28,16 @@ SilphCo_4F_EventScript_161770:: @ 8161770
end
SilphCo_4F_EventScript_161779:: @ 8161779
- trainerbattle 0, TRAINER_SCIENTIST_RODNEY, 0, Text_175A90, Text_175AB0
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_RODNEY, 0, Text_175A90, Text_175AB0
msgbox gUnknown_8175AC8, 6
end
SilphCo_4F_EventScript_161790:: @ 8161790
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_26, 0, Text_175A2F, Text_175A5B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_26, 0, Text_175A2F, Text_175A5B
msgbox gUnknown_8175A62, 6
end
SilphCo_4F_EventScript_1617A7:: @ 81617A7
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_27, 0, Text_175B19, Text_175B2B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_27, 0, Text_175B19, Text_175B2B
msgbox gUnknown_8175B38, 6
end
diff --git a/data/maps/SilphCo_5F/scripts.inc b/data/maps/SilphCo_5F/scripts.inc
index 6630007c5..a87e88d33 100644
--- a/data/maps/SilphCo_5F/scripts.inc
+++ b/data/maps/SilphCo_5F/scripts.inc
@@ -42,21 +42,21 @@ SilphCo_5F_EventScript_16181C:: @ 816181C
end
SilphCo_5F_EventScript_161825:: @ 8161825
- trainerbattle 0, TRAINER_SCIENTIST_BEAU, 0, Text_175C40, Text_175C6D
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_BEAU, 0, Text_175C40, Text_175C6D
msgbox gUnknown_8175C7D, 6
end
SilphCo_5F_EventScript_16183C:: @ 816183C
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_28, 0, Text_175BE5, Text_175C09
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_28, 0, Text_175BE5, Text_175C09
msgbox gUnknown_8175C0F, 6
end
SilphCo_5F_EventScript_161853:: @ 8161853
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_29, 0, Text_175D28, Text_175D4B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_29, 0, Text_175D28, Text_175D4B
msgbox gUnknown_8175D59, 6
end
SilphCo_5F_EventScript_16186A:: @ 816186A
- trainerbattle 0, TRAINER_JUGGLER_DALTON, 0, Text_175CBD, Text_175CEB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_JUGGLER_DALTON, 0, Text_175CBD, Text_175CEB
msgbox gUnknown_8175CF9, 6
end
diff --git a/data/maps/SilphCo_6F/scripts.inc b/data/maps/SilphCo_6F/scripts.inc
index 2ac42a2b3..fd4d470eb 100644
--- a/data/maps/SilphCo_6F/scripts.inc
+++ b/data/maps/SilphCo_6F/scripts.inc
@@ -82,16 +82,16 @@ SilphCo_6F_EventScript_161936:: @ 8161936
end
SilphCo_6F_EventScript_16193F:: @ 816193F
- trainerbattle 0, TRAINER_SCIENTIST_TAYLOR, 0, Text_176136, Text_1761BD
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_TAYLOR, 0, Text_176136, Text_1761BD
msgbox gUnknown_81761C4, 6
end
SilphCo_6F_EventScript_161956:: @ 8161956
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_30, 0, Text_1760DE, Text_176104
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_30, 0, Text_1760DE, Text_176104
msgbox gUnknown_817610F, 6
end
SilphCo_6F_EventScript_16196D:: @ 816196D
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_31, 0, Text_1761F1, Text_17620E
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_31, 0, Text_1761F1, Text_17620E
msgbox gUnknown_817621B, 6
end
diff --git a/data/maps/SilphCo_7F/scripts.inc b/data/maps/SilphCo_7F/scripts.inc
index c76aac197..8f1fa6648 100644
--- a/data/maps/SilphCo_7F/scripts.inc
+++ b/data/maps/SilphCo_7F/scripts.inc
@@ -83,15 +83,15 @@ EventScript_161A7F:: @ 8161A7F
return
EventScript_161A80:: @ 8161A80
- trainerbattle 3, TRAINER_RIVAL_SILPH_SQUIRTLE, 0, Text_1767D0
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_SILPH_SQUIRTLE, 0, Text_1767D0
return
EventScript_161A8B:: @ 8161A8B
- trainerbattle 3, TRAINER_RIVAL_SILPH_BULBASAUR, 0, Text_1767D0
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_SILPH_BULBASAUR, 0, Text_1767D0
return
EventScript_161A96:: @ 8161A96
- trainerbattle 3, TRAINER_RIVAL_SILPH_CHARMANDER, 0, Text_1767D0
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_RIVAL_SILPH_CHARMANDER, 0, Text_1767D0
return
EventScript_161AA1:: @ 8161AA1
@@ -243,21 +243,21 @@ SilphCo_7F_EventScript_161BFA:: @ 8161BFA
end
SilphCo_7F_EventScript_161C03:: @ 8161C03
- trainerbattle 0, TRAINER_SCIENTIST_JOSHUA, 0, Text_1765E2, Text_17660C
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_JOSHUA, 0, Text_1765E2, Text_17660C
msgbox gUnknown_8176616, 6
end
SilphCo_7F_EventScript_161C1A:: @ 8161C1A
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_33, 0, Text_176643, Text_176669
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_33, 0, Text_176643, Text_176669
msgbox gUnknown_8176681, 6
end
SilphCo_7F_EventScript_161C31:: @ 8161C31
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_34, 0, Text_1766B3, Text_1766D7
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_34, 0, Text_1766B3, Text_1766D7
msgbox gUnknown_81766E5, 6
end
SilphCo_7F_EventScript_161C48:: @ 8161C48
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_35, 0, Text_176586, Text_1765A5
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_35, 0, Text_176586, Text_1765A5
msgbox gUnknown_81765B1, 6
end
diff --git a/data/maps/SilphCo_8F/scripts.inc b/data/maps/SilphCo_8F/scripts.inc
index 70bc954cc..30b19804b 100644
--- a/data/maps/SilphCo_8F/scripts.inc
+++ b/data/maps/SilphCo_8F/scripts.inc
@@ -26,16 +26,16 @@ SilphCo_8F_EventScript_161C90:: @ 8161C90
end
SilphCo_8F_EventScript_161C99:: @ 8161C99
- trainerbattle 0, TRAINER_SCIENTIST_PARKER, 0, Text_1769FD, Text_176A19
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_PARKER, 0, Text_1769FD, Text_176A19
msgbox gUnknown_8176A26, 6
end
SilphCo_8F_EventScript_161CB0:: @ 8161CB0
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_32, 0, Text_1769A2, Text_1769BE
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_32, 0, Text_1769A2, Text_1769BE
msgbox gUnknown_81769CF, 6
end
SilphCo_8F_EventScript_161CC7:: @ 8161CC7
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_36, 0, Text_176A56, Text_176A7C
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_36, 0, Text_176A56, Text_176A7C
msgbox gUnknown_8176A90, 6
end
diff --git a/data/maps/SilphCo_9F/scripts.inc b/data/maps/SilphCo_9F/scripts.inc
index 3a69c169a..b19f5a182 100644
--- a/data/maps/SilphCo_9F/scripts.inc
+++ b/data/maps/SilphCo_9F/scripts.inc
@@ -35,16 +35,16 @@ SilphCo_9F_EventScript_161D38:: @ 8161D38
end
SilphCo_9F_EventScript_161D41:: @ 8161D41
- trainerbattle 0, TRAINER_SCIENTIST_ED, 0, Text_176BFB, Text_176C2B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SCIENTIST_ED, 0, Text_176BFB, Text_176C2B
msgbox gUnknown_8176C3C, 6
end
SilphCo_9F_EventScript_161D58:: @ 8161D58
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_37, 0, Text_176BA3, Text_176BC8
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_37, 0, Text_176BA3, Text_176BC8
msgbox gUnknown_8176BD0, 6
end
SilphCo_9F_EventScript_161D6F:: @ 8161D6F
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_38, 0, Text_176C7A, Text_176CA0
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_38, 0, Text_176C7A, Text_176CA0
msgbox gUnknown_8176CB8, 6
end
diff --git a/data/maps/SixIsland_OutcastIsland/scripts.inc b/data/maps/SixIsland_OutcastIsland/scripts.inc
index 33d4d315c..3d7069cc8 100644
--- a/data/maps/SixIsland_OutcastIsland/scripts.inc
+++ b/data/maps/SixIsland_OutcastIsland/scripts.inc
@@ -2,6 +2,6 @@ SixIsland_OutcastIsland_MapScripts:: @ 8168B15
.byte 0
SixIsland_OutcastIsland_EventScript_168B16:: @ 8168B16
- trainerbattle 0, TRAINER_TEAM_ROCKET_GRUNT_46, 0, Text_18B35A, Text_18B3C2
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TEAM_ROCKET_GRUNT_46, 0, Text_18B35A, Text_18B3C2
msgbox gUnknown_818B3C8, 6
end
diff --git a/data/maps/SixIsland_PatternBush/scripts.inc b/data/maps/SixIsland_PatternBush/scripts.inc
index fb1ee80ad..11192b895 100644
--- a/data/maps/SixIsland_PatternBush/scripts.inc
+++ b/data/maps/SixIsland_PatternBush/scripts.inc
@@ -20,61 +20,61 @@ EventScript_164587:: @ 8164587
return
SixIsland_PatternBush_EventScript_164590:: @ 8164590
- trainerbattle 0, TRAINER_PKMN_BREEDER_BETHANY, 0, Text_17BF3A, Text_17BF66
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PKMN_BREEDER_BETHANY, 0, Text_17BF3A, Text_17BF66
msgbox gUnknown_817BF97, 6
end
SixIsland_PatternBush_EventScript_1645A7:: @ 81645A7
- trainerbattle 0, TRAINER_PKMN_BREEDER_ALLISON, 0, Text_17BFEB, Text_17C028
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PKMN_BREEDER_ALLISON, 0, Text_17BFEB, Text_17C028
msgbox gUnknown_817C056, 6
end
SixIsland_PatternBush_EventScript_1645BE:: @ 81645BE
- trainerbattle 0, TRAINER_BUG_CATCHER_GARRET, 0, Text_17C0BE, Text_17C0F2
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_GARRET, 0, Text_17C0BE, Text_17C0F2
msgbox gUnknown_817C113, 6
end
SixIsland_PatternBush_EventScript_1645D5:: @ 81645D5
- trainerbattle 0, TRAINER_BUG_CATCHER_JONAH, 0, Text_17C155, Text_17C196
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_JONAH, 0, Text_17C155, Text_17C196
msgbox gUnknown_817C1D0, 6
end
SixIsland_PatternBush_EventScript_1645EC:: @ 81645EC
- trainerbattle 0, TRAINER_BUG_CATCHER_VANCE, 0, Text_17C246, Text_17C275
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_VANCE, 0, Text_17C246, Text_17C275
msgbox gUnknown_817C2A4, 6
end
SixIsland_PatternBush_EventScript_164603:: @ 8164603
- trainerbattle 0, TRAINER_YOUNGSTER_NASH, 0, Text_17C2D9, Text_17C30D
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_NASH, 0, Text_17C2D9, Text_17C30D
msgbox gUnknown_817C31C, 6
end
SixIsland_PatternBush_EventScript_16461A:: @ 816461A
- trainerbattle 0, TRAINER_YOUNGSTER_CORDELL, 0, Text_17C373, Text_17C3A5
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_YOUNGSTER_CORDELL, 0, Text_17C373, Text_17C3A5
msgbox gUnknown_817C3CE, 6
end
SixIsland_PatternBush_EventScript_164631:: @ 8164631
- trainerbattle 0, TRAINER_LASS_DALIA, 0, Text_17C42B, Text_17C458
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_DALIA, 0, Text_17C42B, Text_17C458
msgbox gUnknown_817C490, 6
end
SixIsland_PatternBush_EventScript_164648:: @ 8164648
- trainerbattle 0, TRAINER_LASS_JOANA, 0, Text_17C4FE, Text_17C552
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_LASS_JOANA, 0, Text_17C4FE, Text_17C552
msgbox gUnknown_817C590, 6
end
SixIsland_PatternBush_EventScript_16465F:: @ 816465F
- trainerbattle 0, TRAINER_CAMPER_RILEY, 0, Text_17C5DB, Text_17C609
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_CAMPER_RILEY, 0, Text_17C5DB, Text_17C609
msgbox gUnknown_817C615, 6
end
SixIsland_PatternBush_EventScript_164676:: @ 8164676
- trainerbattle 0, TRAINER_PICNICKER_MARCY, 0, Text_17C63E, Text_17C660
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_PICNICKER_MARCY, 0, Text_17C63E, Text_17C660
msgbox gUnknown_817C68E, 6
end
SixIsland_PatternBush_EventScript_16468D:: @ 816468D
- trainerbattle 0, TRAINER_RUIN_MANIAC_LAYTON, 0, Text_17C6C9, Text_17C6FB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_RUIN_MANIAC_LAYTON, 0, Text_17C6C9, Text_17C6FB
msgbox gUnknown_817C728, 6
end
diff --git a/data/maps/ThreeIsland/scripts.inc b/data/maps/ThreeIsland/scripts.inc
index b3d27f9a8..93fdc39a5 100644
--- a/data/maps/ThreeIsland/scripts.inc
+++ b/data/maps/ThreeIsland/scripts.inc
@@ -227,7 +227,7 @@ EventScript_167A59:: @ 8167A59
goto_if eq, EventScript_167C35
msgbox gUnknown_818247D
setvar VAR_LAST_TALKED, 5
- trainerbattle 3, TRAINER_BIKER_GOON, 0, Text_1824B7
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_BIKER_GOON, 0, Text_1824B7
applymovement 5, Movement_167C5C
waitmovement 0
msgbox gUnknown_81824CF
@@ -237,7 +237,7 @@ EventScript_167A59:: @ 8167A59
playbgm MUS_SHOUNEN, 0
msgbox gUnknown_81824EF
setvar VAR_LAST_TALKED, 7
- trainerbattle 3, TRAINER_BIKER_GOON_2, 0, Text_182521
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_BIKER_GOON_2, 0, Text_182521
applymovement 7, Movement_167C5C
waitmovement 0
msgbox gUnknown_8182536
@@ -247,7 +247,7 @@ EventScript_167A59:: @ 8167A59
playbgm MUS_SHOUNEN, 0
msgbox gUnknown_8182582
setvar VAR_LAST_TALKED, 4
- trainerbattle 3, TRAINER_BIKER_GOON_3, 0, Text_1825D4
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_BIKER_GOON_3, 0, Text_1825D4
applymovement 4, Movement_1A75E7
waitmovement 0
applymovement 6, Movement_1A75ED
@@ -269,7 +269,7 @@ EventScript_167A59:: @ 8167A59
playbgm MUS_SHOUNEN, 0
msgbox gUnknown_8182623
setvar VAR_LAST_TALKED, 3
- trainerbattle 3, TRAINER_CUE_BALL_PAXTON, 0, Text_1826B7
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, TRAINER_CUE_BALL_PAXTON, 0, Text_1826B7
msgbox gUnknown_818271D
closemessage
fadescreen 1
diff --git a/data/maps/VermilionCity_Gym/scripts.inc b/data/maps/VermilionCity_Gym/scripts.inc
index 48fa76fe0..5d08e2b3a 100644
--- a/data/maps/VermilionCity_Gym/scripts.inc
+++ b/data/maps/VermilionCity_Gym/scripts.inc
@@ -209,7 +209,7 @@ EventScript_16B8EF:: @ 816B8EF
VermilionCity_Gym_EventScript_16B94A:: @ 816B94A
famechecker FAMECHECKER_LTSURGE, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
- trainerbattle 1, TRAINER_LEADER_LT_SURGE, 0, Text_194BA4, Text_194E03, EventScript_16B97C
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, TRAINER_LEADER_LT_SURGE, 0, Text_194BA4, Text_194E03, EventScript_16B97C
checkflag FLAG_GOT_TM34_FROM_SURGE
goto_if FALSE, EventScript_16B9AF
msgbox gUnknown_8194C8E
@@ -249,18 +249,18 @@ EventScript_16B9F0:: @ 816B9F0
end
VermilionCity_Gym_EventScript_16B9FA:: @ 816B9FA
- trainerbattle 0, TRAINER_SAILOR_DWAYNE, 0, Text_194FBD, Text_194FF1
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_SAILOR_DWAYNE, 0, Text_194FBD, Text_194FF1
famechecker FAMECHECKER_LTSURGE, 4
msgbox gUnknown_8195004, 6
end
VermilionCity_Gym_EventScript_16BA1E:: @ 816BA1E
- trainerbattle 0, TRAINER_ENGINEER_BAILY, 0, Text_194F1F, Text_194F6F
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_ENGINEER_BAILY, 0, Text_194F1F, Text_194F6F
msgbox gUnknown_8194F76, 6
end
VermilionCity_Gym_EventScript_16BA35:: @ 816BA35
- trainerbattle 2, TRAINER_GENTLEMAN_TUCKER, 0, Text_194E57, Text_194EA5, EventScript_16BA5D
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_GENTLEMAN_TUCKER, 0, Text_194E57, Text_194EA5, EventScript_16BA5D
famechecker FAMECHECKER_LTSURGE, 3
msgbox gUnknown_8194EBD, 6
end
diff --git a/data/maps/VictoryRoad_1F/scripts.inc b/data/maps/VictoryRoad_1F/scripts.inc
index a5b2a201d..20759c714 100644
--- a/data/maps/VictoryRoad_1F/scripts.inc
+++ b/data/maps/VictoryRoad_1F/scripts.inc
@@ -36,11 +36,11 @@ EventScript_160F62:: @ 8160F62
end
VictoryRoad_1F_EventScript_160F64:: @ 8160F64
- trainerbattle 0, TRAINER_COOLTRAINER_NAOMI, 0, Text_174710, Text_174738
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_COOLTRAINER_NAOMI, 0, Text_174710, Text_174738
msgbox gUnknown_8174744, 6
end
VictoryRoad_1F_EventScript_160F7B:: @ 8160F7B
- trainerbattle 0, TRAINER_COOLTRAINER_ROLANDO, 0, Text_174784, Text_1747B8
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_COOLTRAINER_ROLANDO, 0, Text_174784, Text_1747B8
msgbox gUnknown_81747C8, 6
end
diff --git a/data/maps/VictoryRoad_2F/scripts.inc b/data/maps/VictoryRoad_2F/scripts.inc
index 2118560fd..d2fa2e8b4 100644
--- a/data/maps/VictoryRoad_2F/scripts.inc
+++ b/data/maps/VictoryRoad_2F/scripts.inc
@@ -56,26 +56,26 @@ EventScript_161035:: @ 8161035
end
VictoryRoad_2F_EventScript_161037:: @ 8161037
- trainerbattle 0, TRAINER_POKEMANIAC_DAWSON, 0, Text_1747EF, Text_17482C
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_POKEMANIAC_DAWSON, 0, Text_1747EF, Text_17482C
msgbox gUnknown_817483E, 6
end
VictoryRoad_2F_EventScript_16104E:: @ 816104E
- trainerbattle 0, TRAINER_BLACK_BELT_DAISUKE, 0, Text_174877, Text_1748B4
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BLACK_BELT_DAISUKE, 0, Text_174877, Text_1748B4
msgbox gUnknown_81748BB, 6
end
VictoryRoad_2F_EventScript_161065:: @ 8161065
- trainerbattle 0, TRAINER_JUGGLER_NELSON, 0, Text_1748EE, Text_17491B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_JUGGLER_NELSON, 0, Text_1748EE, Text_17491B
msgbox gUnknown_8174927, 6
end
VictoryRoad_2F_EventScript_16107C:: @ 816107C
- trainerbattle 0, TRAINER_JUGGLER_GREGORY, 0, Text_174995, Text_1749B0
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_JUGGLER_GREGORY, 0, Text_174995, Text_1749B0
msgbox gUnknown_81749BB, 6
end
VictoryRoad_2F_EventScript_161093:: @ 8161093
- trainerbattle 0, TRAINER_TAMER_VINCENT, 0, Text_174942, Text_17495A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TAMER_VINCENT, 0, Text_174942, Text_17495A
msgbox gUnknown_8174969, 6
end
diff --git a/data/maps/VictoryRoad_3F/scripts.inc b/data/maps/VictoryRoad_3F/scripts.inc
index 75d60e4d3..fe77da24d 100644
--- a/data/maps/VictoryRoad_3F/scripts.inc
+++ b/data/maps/VictoryRoad_3F/scripts.inc
@@ -32,31 +32,31 @@ EventScript_161101:: @ 8161101
end
VictoryRoad_3F_EventScript_161103:: @ 8161103
- trainerbattle 0, TRAINER_COOLTRAINER_GEORGE, 0, Text_174B60, Text_174B83
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_COOLTRAINER_GEORGE, 0, Text_174B60, Text_174B83
msgbox gUnknown_8174B99, 6
end
VictoryRoad_3F_EventScript_16111A:: @ 816111A
- trainerbattle 0, TRAINER_COOLTRAINER_COLBY, 0, Text_174C8A, Text_174CA9
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_COOLTRAINER_COLBY, 0, Text_174C8A, Text_174CA9
msgbox gUnknown_8174CBD, 6
end
VictoryRoad_3F_EventScript_161131:: @ 8161131
- trainerbattle 0, TRAINER_COOLTRAINER_CAROLINE, 0, Text_174C30, Text_174C5A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_COOLTRAINER_CAROLINE, 0, Text_174C30, Text_174C5A
msgbox gUnknown_8174C67, 6
end
VictoryRoad_3F_EventScript_161148:: @ 8161148
- trainerbattle 0, TRAINER_COOLTRAINER_ALEXA, 0, Text_174BCA, Text_174BF4
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_COOLTRAINER_ALEXA, 0, Text_174BCA, Text_174BF4
msgbox gUnknown_8174C03, 6
end
VictoryRoad_3F_EventScript_16115F:: @ 816115F
- trainerbattle 4, TRAINER_COOL_COUPLE_RAY_TYRA, 0, Text_174D0C, Text_174D45, Text_174D96
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_COOL_COUPLE_RAY_TYRA, 0, Text_174D0C, Text_174D45, Text_174D96
msgbox gUnknown_8174D64, 6
end
VictoryRoad_3F_EventScript_16117A:: @ 816117A
- trainerbattle 4, TRAINER_COOL_COUPLE_RAY_TYRA, 0, Text_174E08, Text_174E39, Text_174E8D
+ trainerbattle TRAINER_BATTLE_DOUBLE, TRAINER_COOL_COUPLE_RAY_TYRA, 0, Text_174E08, Text_174E39, Text_174E8D
msgbox gUnknown_8174E48, 6
end
diff --git a/data/maps/ViridianCity_Gym/scripts.inc b/data/maps/ViridianCity_Gym/scripts.inc
index 197a38b74..f3d9bfe10 100644
--- a/data/maps/ViridianCity_Gym/scripts.inc
+++ b/data/maps/ViridianCity_Gym/scripts.inc
@@ -3,7 +3,7 @@ ViridianCity_Gym_MapScripts:: @ 8169EC9
ViridianCity_Gym_EventScript_169ECA:: @ 8169ECA
famechecker FAMECHECKER_GIOVANNI, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005
- trainerbattle 1, TRAINER_LEADER_GIOVANNI, 0, Text_18F352, Text_18F43F, EventScript_169F04
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, TRAINER_LEADER_GIOVANNI, 0, Text_18F352, Text_18F43F, EventScript_169F04
checkflag FLAG_GOT_TM26_FROM_GIOVANNI
goto_if FALSE, EventScript_169F2F
msgbox gUnknown_818F4A2
@@ -42,42 +42,42 @@ EventScript_169F70:: @ 8169F70
end
ViridianCity_Gym_EventScript_169F7A:: @ 8169F7A
- trainerbattle 0, TRAINER_TAMER_JASON, 0, Text_18F7F3, Text_18F824
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TAMER_JASON, 0, Text_18F7F3, Text_18F824
msgbox gUnknown_818F840, 6
end
ViridianCity_Gym_EventScript_169F91:: @ 8169F91
- trainerbattle 0, TRAINER_TAMER_COLE, 0, Text_18F98A, Text_18F9BB
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_TAMER_COLE, 0, Text_18F98A, Text_18F9BB
msgbox gUnknown_818F9CC, 6
end
ViridianCity_Gym_EventScript_169FA8:: @ 8169FA8
- trainerbattle 0, TRAINER_BLACK_BELT_ATSUSHI, 0, Text_18F7AD, Text_18F7D6
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BLACK_BELT_ATSUSHI, 0, Text_18F7AD, Text_18F7D6
msgbox gUnknown_818F7DD, 6
end
ViridianCity_Gym_EventScript_169FBF:: @ 8169FBF
- trainerbattle 0, TRAINER_BLACK_BELT_KIYO, 0, Text_18F86C, Text_18F899
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BLACK_BELT_KIYO, 0, Text_18F86C, Text_18F899
msgbox gUnknown_818F8A0, 6
end
ViridianCity_Gym_EventScript_169FD6:: @ 8169FD6
- trainerbattle 0, TRAINER_BLACK_BELT_TAKASHI, 0, Text_18F92C, Text_18F95A
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BLACK_BELT_TAKASHI, 0, Text_18F92C, Text_18F95A
msgbox gUnknown_818F960, 6
end
ViridianCity_Gym_EventScript_169FED:: @ 8169FED
- trainerbattle 0, TRAINER_COOLTRAINER_SAMUEL, 0, Text_18F9E7, Text_18FA2D
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_COOLTRAINER_SAMUEL, 0, Text_18F9E7, Text_18FA2D
msgbox gUnknown_818FA3B, 6
end
ViridianCity_Gym_EventScript_16A004:: @ 816A004
- trainerbattle 0, TRAINER_COOLTRAINER_YUJI, 0, Text_18F73B, Text_18F769
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_COOLTRAINER_YUJI, 0, Text_18F73B, Text_18F769
msgbox gUnknown_818F77B, 6
end
ViridianCity_Gym_EventScript_16A01B:: @ 816A01B
- trainerbattle 0, TRAINER_COOLTRAINER_WARREN, 0, Text_18F8CB, Text_18F8EE
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_COOLTRAINER_WARREN, 0, Text_18F8CB, Text_18F8EE
msgbox gUnknown_818F8FE, 6
end
diff --git a/data/maps/ViridianForest/scripts.inc b/data/maps/ViridianForest/scripts.inc
index f4e4ee898..84c22e5fb 100644
--- a/data/maps/ViridianForest/scripts.inc
+++ b/data/maps/ViridianForest/scripts.inc
@@ -39,26 +39,26 @@ ViridianForest_EventScript_160568:: @ 8160568
end
ViridianForest_EventScript_160571:: @ 8160571
- trainerbattle 0, TRAINER_BUG_CATCHER_RICK, 0, Text_1722C7, Text_1722F9
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_RICK, 0, Text_1722C7, Text_1722F9
msgbox gUnknown_8172315, 6
end
ViridianForest_EventScript_160588:: @ 8160588
- trainerbattle 0, TRAINER_BUG_CATCHER_DOUG, 0, Text_17234A, Text_17237D
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_DOUG, 0, Text_17234A, Text_17237D
msgbox gUnknown_8172398, 6
end
ViridianForest_EventScript_16059F:: @ 816059F
- trainerbattle 0, TRAINER_BUG_CATCHER_SAMMY, 0, Text_1723D4, Text_172402
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_SAMMY, 0, Text_1723D4, Text_172402
msgbox gUnknown_817241F, 6
end
ViridianForest_EventScript_1605B6:: @ 81605B6
- trainerbattle 0, TRAINER_BUG_CATCHER_ANTHONY, 0, Text_172482, Text_1724BF
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_ANTHONY, 0, Text_172482, Text_1724BF
msgbox gUnknown_81724DC, 6
end
ViridianForest_EventScript_1605CD:: @ 81605CD
- trainerbattle 0, TRAINER_BUG_CATCHER_CHARLIE, 0, Text_1724F9, Text_17251B
+ trainerbattle TRAINER_BATTLE_SINGLE, TRAINER_BUG_CATCHER_CHARLIE, 0, Text_1724F9, Text_17251B
msgbox gUnknown_8172527, 6
end
diff --git a/data/specials.inc b/data/specials.inc
index 169ea0182..516b5f768 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -322,7 +322,7 @@ gSpecials:: @ 815FD60
def_special Special_StartGroudonKyogreBattle
def_special Special_StartLegendaryBattle
def_special Special_StartRegiBattle
- def_special sub_8080398
+ def_special SetUpTrainerMovement
def_special nullsub_75
def_special nullsub_75
def_special sub_807B6C0
@@ -407,7 +407,7 @@ gSpecials:: @ 815FD60
def_special Special_CloseMuseumFossilPic
def_special sub_812781C
def_special sub_8127888
- def_special sub_80803FC
+ def_special SetBattledTrainerFlag
def_special sub_812B35C
def_special Special_SSAnneDepartureCutscene
def_special sub_8149A18
diff --git a/include/battle.h b/include/battle.h
index 7c1528072..40a2eba04 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -18,14 +18,6 @@
0x2 bit is responsible for the id of sent out pokemon. 0 means it's the first sent out pokemon, 1 it's the second one. (Triple battle didn't exist at the time yet.)
*/
-#define IDENTITY_PLAYER_MON1 0
-#define IDENTITY_OPPONENT_MON1 1
-#define IDENTITY_PLAYER_MON2 2
-#define IDENTITY_OPPONENT_MON2 3
-
-#define SIDE_PLAYER 0x0
-#define SIDE_OPPONENT 0x1
-
#define GET_BATTLER_POSITION(battler)((gBattlerPositions[battler]))
#define GET_BATTLER_SIDE(battler)((GetBattlerPosition(battler) & BIT_SIDE))
#define GET_BATTLER_SIDE2(battler)((GET_BATTLER_POSITION(battler) & BIT_SIDE))
@@ -36,40 +28,6 @@
#define STEVEN_PARTNER_ID 0xC03
#define SECRET_BASE_OPPONENT 0x400
-#define BATTLE_WON 0x1
-#define BATTLE_LOST 0x2
-#define BATTLE_DREW 0x3
-#define BATTLE_RAN 0x4
-#define BATTLE_PLAYER_TELEPORTED 0x5
-#define BATTLE_POKE_FLED 0x6
-#define BATTLE_CAUGHT 0x7
-#define BATTLE_SAFARI_OUT_OF_BALLS 0x8
-#define BATTLE_FORFEITED 0x9
-#define BATTLE_OPPONENT_TELEPORTED 0xA
-
-#define OUTCOME_LINK_BATTLE_RUN 0x80
-
-#define STATUS_NONE 0x0
-#define STATUS_SLEEP 0x7
-#define STATUS_POISON 0x8
-#define STATUS_BURN 0x10
-#define STATUS_FREEZE 0x20
-#define STATUS_PARALYSIS 0x40
-#define STATUS_TOXIC_POISON 0x80
-#define STATUS_TOXIC_COUNTER 0xF00
-
-#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON))
-#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON))
-
-#define SIDE_STATUS_REFLECT (1 << 0)
-#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
-#define SIDE_STATUS_X4 (1 << 2)
-#define SIDE_STATUS_SPIKES (1 << 4)
-#define SIDE_STATUS_SAFEGUARD (1 << 5)
-#define SIDE_STATUS_FUTUREATTACK (1 << 6)
-#define SIDE_STATUS_MIST (1 << 8)
-#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
-
#define B_ACTION_USE_MOVE 0
#define B_ACTION_USE_ITEM 1
#define B_ACTION_SWITCH 2
@@ -79,7 +37,7 @@
#define B_ACTION_SAFARI_POKEBLOCK 6
#define B_ACTION_SAFARI_GO_NEAR 7
#define B_ACTION_SAFARI_RUN 8
-#define B_ACTION_9 9
+#define B_ACTION_OLDMAN_THROW 9
#define B_ACTION_EXEC_SCRIPT 10
#define B_ACTION_TRY_FINISH 11
#define B_ACTION_FINISHED 12
@@ -87,31 +45,9 @@
#define B_ACTION_NOTHING_FAINTED 13 // when choosing an action
#define B_ACTION_NONE 0xFF
-#define MOVESTATUS_MISSED (1 << 0)
-#define MOVESTATUS_SUPEREFFECTIVE (1 << 1)
-#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2)
-#define MOVESTATUS_NOTAFFECTED (1 << 3)
-#define MOVESTATUS_ONEHITKO (1 << 4)
-#define MOVESTATUS_FAILED (1 << 5)
-#define MOVESTATUS_ENDURED (1 << 6)
-#define MOVESTATUS_HUNGON (1 << 7)
-
-#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))
-
#define MAX_TRAINER_ITEMS 4
#define MAX_MON_MOVES 4
-#define BATTLE_TERRAIN_GRASS 0
-#define BATTLE_TERRAIN_LONG_GRASS 1
-#define BATTLE_TERRAIN_SAND 2
-#define BATTLE_TERRAIN_UNDERWATER 3
-#define BATTLE_TERRAIN_WATER 4
-#define BATTLE_TERRAIN_POND 5
-#define BATTLE_TERRAIN_ROCK 6
-#define BATTLE_TERRAIN_CAVE 7
-#define BATTLE_TERRAIN_INSIDE 8
-#define BATTLE_TERRAIN_PLAIN 9
-
// array entries for battle communication
#define MULTIUSE_STATE 0x0
#define CURSOR_POSITION 0x1
@@ -133,29 +69,6 @@
#define MOVE_TARGET_FOES_AND_ALLY 0x20
#define MOVE_TARGET_OPPONENTS_FIELD 0x40
-// defines for the u8 array gTypeEffectiveness
-#define TYPE_EFFECT_ATK_TYPE(i)((gTypeEffectiveness[i + 0]))
-#define TYPE_EFFECT_DEF_TYPE(i)((gTypeEffectiveness[i + 1]))
-#define TYPE_EFFECT_MULTIPLIER(i)((gTypeEffectiveness[i + 2]))
-
-// defines for the gTypeEffectiveness multipliers
-#define TYPE_MUL_NO_EFFECT 0
-#define TYPE_MUL_NOT_EFFECTIVE 5
-#define TYPE_MUL_NORMAL 10
-#define TYPE_MUL_SUPER_EFFECTIVE 20
-
-// special type table Ids
-#define TYPE_FORESIGHT 0xFE
-#define TYPE_ENDTABLE 0xFF
-
-// for battle script commands
-#define CMP_EQUAL 0x0
-#define CMP_NOT_EQUAL 0x1
-#define CMP_GREATER_THAN 0x2
-#define CMP_LESS_THAN 0x3
-#define CMP_COMMON_BITS 0x4
-#define CMP_NO_COMMON_BITS 0x5
-
struct TrainerMonNoItemDefaultMoves
{
u16 iv;
@@ -210,13 +123,8 @@ struct Trainer
/*0x24*/ const union TrainerMonPtr party;
};
-#define PARTY_FLAG_CUSTOM_MOVES 0x1
-#define PARTY_FLAG_HAS_ITEM 0x2
-
extern const struct Trainer gTrainers[];
-#define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F))
-
struct ResourceFlags
{
u32 flags[4];
@@ -373,22 +281,6 @@ extern u8 gActiveBattler;
extern u8 gBattlerTarget;
extern u8 gAbsentBattlerFlags;
-// script's table id to bit
-#define AI_SCRIPT_CHECK_BAD_MOVE (1 << 0)
-#define AI_SCRIPT_TRY_TO_FAINT (1 << 1)
-#define AI_SCRIPT_CHECK_VIABILITY (1 << 2)
-#define AI_SCRIPT_SETUP_FIRST_TURN (1 << 3)
-#define AI_SCRIPT_RISKY (1 << 4)
-#define AI_SCRIPT_PREFER_STRONGEST_MOVE (1 << 5)
-#define AI_SCRIPT_PREFER_BATON_PASS (1 << 6)
-#define AI_SCRIPT_DOUBLE_BATTLE (1 << 7)
-#define AI_SCRIPT_HP_AWARE (1 << 8)
-#define AI_SCRIPT_UNKNOWN (1 << 9)
-// 10 - 28 are not used
-#define AI_SCRIPT_ROAMING (1 << 29)
-#define AI_SCRIPT_SAFARI (1 << 30)
-#define AI_SCRIPT_FIRST_BATTLE (1 << 31)
-
extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
struct UsedMoves
@@ -437,10 +329,6 @@ struct BattleResources
extern struct BattleResources *gBattleResources;
-#define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack)
-#define BATTLE_CALLBACKS_STACK (gBattleResources->battleCallbackStack)
-#define BATTLE_LVLUP_STATS (gBattleResources->statsBeforeLvlUp)
-
struct BattleResults
{
u8 playerFaintCounter; // 0x0
@@ -521,22 +409,20 @@ struct BattleStruct
u8 expGetterBattlerId;
u8 field_90;
u8 field_91;
- u8 AI_monToSwitchIntoId[MAX_BATTLERS_COUNT];
+ u8 AI_monToSwitchIntoId[2];
+ u8 field_94;
+ u8 field_95;
u8 field_96;
u8 field_97;
u8 lastTakenMove[MAX_BATTLERS_COUNT * 2 * 2]; // ask gamefreak why they declared it that way
u16 hpOnSwitchout[2];
u8 abilityPreventingSwitchout;
u8 hpScale;
- u8 field_AE;
- u8 field_AF;
- u8 field_B0;
- u8 field_B1;
- u8 field_B2;
- u8 field_B3;
+ u16 savedBattleTypeFlags;
+ void (*savedCallback)(void);
u8 synchronizeMoveEffect;
- u8 field_B5;
- u8 field_B6;
+ u8 multiplayerId;
+ u8 overworldWeatherDone;
u8 atkCancellerTracker;
u16 usedHeldItems[MAX_BATTLERS_COUNT];
u8 chosenItem[4]; // why is this an u8?
@@ -556,7 +442,12 @@ struct BattleStruct
u8 wishPerishSongBattlerId;
u8 field_182;
u8 field_183;
- u8 field_184[124]; // currently unknown
+ u8 field_184;
+ u8 field_185;
+ u8 field_186;
+ u8 field_187;
+ struct BattleEnigmaBerry battleEnigmaBerry;
+ u8 field_1A4[0x5C]; // currently unknown
}; // size == 0x200 bytes
extern struct BattleStruct *gBattleStruct;
@@ -579,72 +470,6 @@ extern struct BattleStruct *gBattleStruct;
gBattleMons[battlerId].type2 = type; \
}
-#define MOVE_EFFECT_SLEEP 0x1
-#define MOVE_EFFECT_POISON 0x2
-#define MOVE_EFFECT_BURN 0x3
-#define MOVE_EFFECT_FREEZE 0x4
-#define MOVE_EFFECT_PARALYSIS 0x5
-#define MOVE_EFFECT_TOXIC 0x6
-#define MOVE_EFFECT_CONFUSION 0x7
-#define MOVE_EFFECT_FLINCH 0x8
-#define MOVE_EFFECT_TRI_ATTACK 0x9
-#define MOVE_EFFECT_UPROAR 0xA
-#define MOVE_EFFECT_PAYDAY 0xB
-#define MOVE_EFFECT_CHARGING 0xC
-#define MOVE_EFFECT_WRAP 0xD
-#define MOVE_EFFECT_RECOIL_25 0xE
-#define MOVE_EFFECT_ATK_PLUS_1 0xF
-#define MOVE_EFFECT_DEF_PLUS_1 0x10
-#define MOVE_EFFECT_SPD_PLUS_1 0x11
-#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12
-#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13
-#define MOVE_EFFECT_ACC_PLUS_1 0x14
-#define MOVE_EFFECT_EVS_PLUS_1 0x15
-#define MOVE_EFFECT_ATK_MINUS_1 0x16
-#define MOVE_EFFECT_DEF_MINUS_1 0x17
-#define MOVE_EFFECT_SPD_MINUS_1 0x18
-#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19
-#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A
-#define MOVE_EFFECT_ACC_MINUS_1 0x1B
-#define MOVE_EFFECT_EVS_MINUS_1 0x1C
-#define MOVE_EFFECT_RECHARGE 0x1D
-#define MOVE_EFFECT_RAGE 0x1E
-#define MOVE_EFFECT_STEAL_ITEM 0x1F
-#define MOVE_EFFECT_PREVENT_ESCAPE 0x20
-#define MOVE_EFFECT_NIGHTMARE 0x21
-#define MOVE_EFFECT_ALL_STATS_UP 0x22
-#define MOVE_EFFECT_RAPIDSPIN 0x23
-#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24
-#define MOVE_EFFECT_ATK_DEF_DOWN 0x25
-#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26
-#define MOVE_EFFECT_ATK_PLUS_2 0x27
-#define MOVE_EFFECT_DEF_PLUS_2 0x28
-#define MOVE_EFFECT_SPD_PLUS_2 0x29
-#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A
-#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B
-#define MOVE_EFFECT_ACC_PLUS_2 0x2C
-#define MOVE_EFFECT_EVS_PLUS_2 0x2D
-#define MOVE_EFFECT_ATK_MINUS_2 0x2E
-#define MOVE_EFFECT_DEF_MINUS_2 0x2F
-#define MOVE_EFFECT_SPD_MINUS_2 0x30
-#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31
-#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32
-#define MOVE_EFFECT_ACC_MINUS_2 0x33
-#define MOVE_EFFECT_EVS_MINUS_2 0x34
-#define MOVE_EFFECT_THRASH 0x35
-#define MOVE_EFFECT_KNOCK_OFF 0x36
-#define MOVE_EFFECT_NOTHING_37 0x37
-#define MOVE_EFFECT_NOTHING_38 0x38
-#define MOVE_EFFECT_NOTHING_39 0x39
-#define MOVE_EFFECT_NOTHING_3A 0x3A
-#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B
-#define MOVE_EFFECT_NOTHING_3C 0x3C
-#define MOVE_EFFECT_NOTHING_3D 0x3D
-#define MOVE_EFFECT_NOTHING_3E 0x3E
-#define MOVE_EFFECT_NOTHING_3F 0x3F
-#define MOVE_EFFECT_AFFECTS_USER 0x40
-#define MOVE_EFFECT_CERTAIN 0x80
-
#define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8
#define GET_STAT_BUFF_VALUE2(n)((n & 0xF0))
#define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40
@@ -654,32 +479,6 @@ extern struct BattleStruct *gBattleStruct;
#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7))
-// used in many battle files, it seems as though Hisashi Sogabe wrote
-// some sort of macro to replace the use of actually calling memset.
-// Perhaps it was thought calling memset was much slower?
-
-// The compiler wont allow us to locally declare ptr in this macro; some
-// functions that invoke this macro will not match without this egregeous
-// assumption about the variable names, so in order to avoid this assumption,
-// we opt to pass the variables themselves, even though it is likely that
-// Sogabe assumed the variables were named src and dest. Trust me: I tried to
-// avoid assuming variable names, but the ROM just will not match without the
-// assumptions. Therefore, these macros are bad practice, but I'm putting them
-// here anyway.
-#define MEMSET_ALT(data, c, size, var, dest) \
-{ \
- dest = (u8 *)data; \
- for(var = 0; var < (u32)size; var++) \
- dest[var] = c; \
-} \
-
-#define MEMCPY_ALT(data, dest, size, var, src) \
-{ \
- src = (u8 *)data; \
- for(var = 0; var < (u32)size; var++) \
- dest[var] = src[var]; \
-} \
-
struct BattleScripting
{
s32 painSplitHp;
@@ -708,17 +507,6 @@ struct BattleScripting
u8 field_23;
};
-// functions
-
-// battle_1
-void LoadBattleTextboxAndBackground(void);
-void LoadBattleEntryBackground(void);
-void ApplyPlayerChosenFrameToBattleMenu(void);
-bool8 LoadChosenBattleElement(u8 caseId);
-void DrawMainBattleBackground(void);
-void task00_0800F6FC(u8 taskId);
-void sub_800F324(void);
-
enum
{
BACK_PIC_BRENDAN,
@@ -731,11 +519,6 @@ enum
BACK_PIC_STEVEN
};
-// rom_80A5C6C
-u8 GetBattlerSide(u8 bank);
-u8 GetBattlerPosition(u8 bank);
-u8 GetBattlerAtPosition(u8 bank);
-
struct BattleSpriteInfo
{
u16 invisible : 1; // 0x1
@@ -929,5 +712,8 @@ extern u16 gLastPrintedMoves[MAX_BATTLERS_COUNT];
extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT];
extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT];
extern u8 gBattleTerrain;
+extern struct UnknownPokemonStruct4 gUnknown_2022B58[3];
+extern u16 *gUnknown_2022BC0;
+extern u16 gRandomTurnNumber;
#endif // GUARD_BATTLE_H
diff --git a/include/battle_anim.h b/include/battle_anim.h
index feaa8816b..9db123f91 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -2,8 +2,9 @@
#define GUARD_BATTLE_ANIM_H
#include "battle.h"
-#include "constants/battle_anim.h"
+#include "data.h"
#include "task.h"
+#include "constants/battle_anim.h"
enum
{
@@ -166,8 +167,12 @@ void LaunchStatusAnimation(u8 bank, u8 statusAnimId);
u8 ItemIdToBallId(u16 itemId);
u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
+void sub_80EEFC8(u8 *, u8 *, u8 battlerId);
+void sub_80EF0E0(u8 batterId);
// battle_anim_mons.c
+extern const struct MonCoords gCastformFrontSpriteCoords[];
+
u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType);
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType);
u8 GetBattlerSpriteDefault_Y(u8 battlerId);
@@ -237,9 +242,9 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor);
u32 sub_8075BE8(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7);
u32 sub_8075CB8(u8 a1, u8 a2, u8 a3, u8 a4);
u8 sub_8075D80(u8 a1);
-void sub_8075D9C(struct Sprite *sprite);
+void AnimSpriteOnMonPos(struct Sprite *sprite);
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
-void sub_8075E80(struct Sprite *sprite);
+void AnimThrowProjectile(struct Sprite *sprite);
void sub_8075F0C(struct Sprite *sprite);
s16 CloneBattlerSpriteWithBlend(u8 animBattler);
void obj_delete_but_dont_free_vram(struct Sprite *sprite);
diff --git a/include/battle_bg.h b/include/battle_bg.h
index 6bf90a104..29571b410 100644
--- a/include/battle_bg.h
+++ b/include/battle_bg.h
@@ -1,6 +1,15 @@
#ifndef GUARD_BATTLE_BG_H
#define GUARD_BATTLE_BG_H
+#include "bg.h"
+
+extern const struct BgTemplate gBattleBgTemplates[];
+
void sub_800F34C(void);
+void DrawBattleEntryBackground(void);
+void sub_800F6FC(u8 taskId);
+void LoadBattleMenuWindowGfx(void);
+void LoadBattleTextboxAndBackground(void);
+void sub_800F324(void);
#endif // GUARD_BATTLE_BG_H
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index 6da4ca240..96f57c78a 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -260,16 +260,18 @@ void SetControllerToPlayerPartner(void);
void SetControllerToSafari(void);
// pokedude controller
-void SetControllerToPokedude(void);
+void SetControllerToPokeDude(void);
-// oak controller
-void SetControllerToOakOrOldman(void);
+// oak and old man controller
+void SetControllerToOakOrOldMan(void);
bool8 sub_80EB2E0(u8);
void sub_80EB2F4(u8);
void sub_80E8570(void);
void sub_80E85C0(void);
void sub_80E8598(void);
void sub_80E7988(void);
+void sub_80EB30C(void);
+void sub_80EB524(void);
// link opponent
void SetControllerToLinkOpponent(void);
diff --git a/include/battle_main.h b/include/battle_main.h
index 757ee3468..613171da9 100644
--- a/include/battle_main.h
+++ b/include/battle_main.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_MAIN_H
#define GUARD_BATTLE_MAIN_H
+#include "constants/abilities.h"
+
struct TrainerMoney
{
u8 classId;
@@ -43,61 +45,54 @@ struct UnknownPokemonStruct4
#define BOUNCE_MON 0x0
#define BOUNCE_HEALTHBOX 0x1
+extern const struct SpriteTemplate gUnknown_824EFF0;
+extern const struct OamData gOamData_824F010;
+extern const struct OamData gOamData_824F018;
+extern const u8 gTypeNames[][TYPE_NAME_LENGTH + 1];
+extern const u8 gStatusConditionString_PoisonJpn[8];
+extern const u8 gStatusConditionString_SleepJpn[8];
+extern const u8 gStatusConditionString_ParalysisJpn[8];
+extern const u8 gStatusConditionString_BurnJpn[8];
+extern const u8 gStatusConditionString_IceJpn[8];
+extern const u8 gStatusConditionString_ConfusionJpn[8];
+extern const u8 gStatusConditionString_LoveJpn[8];
+extern const u8 *const gStatusConditionStringsTable[7][2];
+extern const u8 gTypeEffectiveness[336];
+extern const struct TrainerMoney gTrainerMoneyTable[];
+extern const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT];
+extern const u8 gAbilityNames[ABILITIES_COUNT][ABILITY_NAME_LENGTH + 1];
+
void CB2_InitBattle(void);
void BattleMainCB2(void);
-void CB2_QuitRecordedBattle(void);
-void sub_8038528(struct Sprite* sprite);
-void sub_8038A04(void); // unused
+void FreeRestoreBattleData(void);
void VBlankCB_Battle(void);
+void nullsub_9(struct Sprite *sprite);
void sub_801182C(struct Sprite *sprite);
void sub_8011A1C(void);
-u32 sub_80391E0(u8 arrayId, u8 caseId);
-u32 sub_80397C4(u32 setId, u32 tableId);
-void oac_poke_opponent(struct Sprite *sprite);
-void SpriteCallbackDummy_2(struct Sprite *sprite);
-void sub_8039934(struct Sprite *sprite);
-void sub_8012098(struct Sprite *sprite);
+u32 sub_8011C44(u8 arrayId, u8 caseId);
+void SpriteCB_WildMon(struct Sprite *sprite);
+void SpriteCallbackDummy2(struct Sprite *sprite);
+void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
void sub_8012044(struct Sprite *sprite);
-void sub_8039B58(struct Sprite *sprite);
-void sub_8039BB4(struct Sprite *sprite);
-void sub_80105DC(struct Sprite *sprite);
+void sub_8012098(struct Sprite *sprite);
+void sub_80120C4(struct Sprite *sprite);
+void sub_8012100(struct Sprite *sprite);
void sub_8012110(struct Sprite *sprite);
-void DoBounceEffect(u8 bank, u8 b, s8 c, s8 d);
-void EndBounceEffect(u8 bank, bool8 b);
-void sub_8039E44(struct Sprite *sprite);
-void sub_8039E60(struct Sprite *sprite);
-void sub_8039E84(struct Sprite *sprite);
+void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude);
+void EndBounceEffect(u8 battler, u8 which);
+void sub_8012354(struct Sprite *sprite);
void sub_801236C(struct Sprite *sprite);
+void nullsub_12(void);
void BeginBattleIntro(void);
void SwitchInClearSetData(void);
void FaintClearSetData(void);
-void sub_803B3AC(void); // unused
-void sub_803B598(void); // unused
void BattleTurnPassed(void);
u8 IsRunningFromBattleImpossible(void);
-void sub_8013F6C(u8 battlerId);
+void sub_8013F6C(u8 battler);
void SwapTurnOrder(u8 id1, u8 id2);
-u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves);
+u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves);
void RunBattleScriptCommands_PopCallbacksStack(void);
void RunBattleScriptCommands(void);
-bool8 TryRunFromBattle(u8 bank);
-void sub_800FD9C(void);
-void sub_80120C4(struct Sprite *);
-void sub_8012100(struct Sprite *);
-void nullsub_12(void);
-void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
-
-extern const u8 gStatusConditionString_PoisonJpn[8];
-extern const u8 gStatusConditionString_SleepJpn[8];
-extern const u8 gStatusConditionString_ParalysisJpn[8];
-extern const u8 gStatusConditionString_BurnJpn[8];
-extern const u8 gStatusConditionString_IceJpn[8];
-extern const u8 gStatusConditionString_ConfusionJpn[8];
-extern const u8 gStatusConditionString_LoveJpn[8];
-
-extern const u8 * const gStatusConditionStringsTable[7][2];
-
-extern const u8 gTypeEffectiveness[336];
-extern const struct TrainerMoney gTrainerMoneyTable[];
+bool8 TryRunFromBattle(u8 battler);
#endif // GUARD_BATTLE_MAIN_H
diff --git a/include/battle_message.h b/include/battle_message.h
index ffc9d5bb7..130dc7ce9 100644
--- a/include/battle_message.h
+++ b/include/battle_message.h
@@ -238,4 +238,12 @@ extern const u8* const gStatNamesTable2[];
extern const u16 gMissStringIds[];
extern const u16 gTrappingMoves[];
+extern const u8 gText_Sleep[];
+extern const u8 gText_Poison[];
+extern const u8 gText_Burn[];
+extern const u8 gText_Paralysis[];
+extern const u8 gText_Ice[];
+extern const u8 gText_Confusion[];
+extern const u8 gText_Love[];
+
#endif // GUARD_BATTLE_MESSAGE_H
diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h
index 3f2699064..983d9fce6 100644
--- a/include/battle_script_commands.h
+++ b/include/battle_script_commands.h
@@ -7,13 +7,6 @@
#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
#define ACC_CURR_MOVE 0
-#define CMP_EQUAL 0x0
-#define CMP_NOT_EQUAL 0x1
-#define CMP_GREATER_THAN 0x2
-#define CMP_LESS_THAN 0x3
-#define CMP_COMMON_BITS 0x4
-#define CMP_NO_COMMON_BITS 0x5
-
#define ATK48_STAT_NEGATIVE 0x1
#define ATK48_STAT_BY_TWO 0x2
#define ATK48_BIT_x4 0x4
diff --git a/include/battle_scripts.h b/include/battle_scripts.h
index a13a8c097..184527587 100644
--- a/include/battle_scripts.h
+++ b/include/battle_scripts.h
@@ -227,5 +227,13 @@ extern const u8 BattleScript_FlushMessageBox[];
extern const u8 BattleScript_SpikesOnFaintedBattler[];
extern const u8 BattleScript_GhostBallDodge[];
extern const u8 gUnknown_81D9A88[];
+extern const u8 gUnknown_81D91A1[]; // knizz: silph scope unveil
+extern const u8 gUnknown_81D88D7[];
+
+extern const u8 *const gBattleScriptsForMoveEffects[];
+extern const u8 *const gBattlescriptsForBallThrow[];
+extern const u8 *const gBattlescriptsForRunningByItem[];
+extern const u8 *const gBattlescriptsForUsingItem[];
+extern const u8 *const gBattlescriptsForSafariActions[];
#endif // GUARD_BATTLE_SCRIPTS_H
diff --git a/include/battle_setup.h b/include/battle_setup.h
index 61395811b..809806e9b 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -3,20 +3,36 @@
#include "global.h"
-void BattleSetup_StartScriptedWildBattle(void);
-u8 BattleSetup_GetTerrainId(void);
-u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
-void BattleSetup_StartBattlePikeWildBattle(void);
void BattleSetup_StartWildBattle(void);
void BattleSetup_StartRoamerBattle(void);
-
-u8 HasTrainerAlreadyBeenFought(u16);
-void SetTrainerFlag(u16);
-void ClearTrainerFlag(u16);
-void BattleSetup_StartTrainerBattle(void);
-u8 *BattleSetup_GetScriptAddrAfterBattle(void);
-u8 *BattleSetup_GetTrainerPostBattleScript(void);
-void sub_80803FC(void);
+void ScrSpecial_StartOldManTutorialBattle(void);
+void BattleSetup_StartScriptedWildBattle(void);
+void ScrSpecial_StartMarowakBattle(void);
+void ScrSpecial_StartSouthernIslandBattle(void);
+void Special_StartLegendaryBattle(void);
+void Special_StartGroudonKyogreBattle(void);
+void Special_StartRegiBattle(void);
+u8 BattleSetup_GetTerrainId(void);
u8 sub_8080060(void);
+const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
+void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerScript);
+bool32 GetTrainerFlagFromScriptPointer(const u8 *data);
+void SetUpTrainerMovement(void);
+u8 ScrSpecial_GetTrainerBattleMode(void);
+u16 sub_80803D8(void);
+u16 ScrSpecial_HasTrainerBeenFought(void);
+void SetBattledTrainerFlag(void);
+bool8 HasTrainerBeenFought(u16 trainerId);
+void SetTrainerFlag(u16 trainerId);
+void ClearTrainerFlag(u16 trainerId);
+void BattleSetup_StartTrainerBattle(void);
+void ScrSpecial_StartTrainerEyeRematch(void);
+void ScrSpecial_ShowTrainerIntroSpeech(void);
+const u8 *BattleSetup_GetScriptAddrAfterBattle(void);
+const u8 *BattleSetup_GetTrainerPostBattleScript(void);
+void ScrSpecial_ShowTrainerNonBattlingSpeech(void);
+void PlayTrainerEncounterMusic(void);
+const u8 *GetTrainerALoseText(void);
+const u8 *GetTrainerWonSpeech(void);
#endif // GUARD_BATTLE_SETUP_H
diff --git a/include/berry.h b/include/berry.h
index 0e554a789..d55192301 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -63,7 +63,7 @@ void FieldObjectInteractionRemoveBerryTree(void);
u8 PlayerHasBerries(void);
void ResetBerryTreeSparkleFlags(void);
void sub_809C794(void);
-const struct Berry * sub_809C8A0(u8 berryIdx);
+const struct Berry * GetBerryInfo(u8 berryIdx);
extern const struct Berry gBerries[];
diff --git a/include/constants/abilities.h b/include/constants/abilities.h
index 4e2c4056c..4ad54c86f 100644
--- a/include/constants/abilities.h
+++ b/include/constants/abilities.h
@@ -80,4 +80,6 @@
#define ABILITY_CACOPHONY 76
#define ABILITY_AIR_LOCK 77
+#define ABILITIES_COUNT 78
+
#endif // GUARD_CONSTANTS_ABILITIES_H
diff --git a/include/constants/battle.h b/include/constants/battle.h
index a0099d23f..910b50562 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -44,38 +44,38 @@
#define BIT_FLANK 2
// Battle Type Flags
-#define BATTLE_TYPE_DOUBLE 0x0001
-#define BATTLE_TYPE_LINK 0x0002
-#define BATTLE_TYPE_IS_MASTER 0x0004 // In not-link battles, it's always set.
-#define BATTLE_TYPE_TRAINER 0x0008
-#define BATTLE_TYPE_FIRST_BATTLE 0x0010
-#define BATTLE_TYPE_20 0x0020
-#define BATTLE_TYPE_MULTI 0x0040
-#define BATTLE_TYPE_SAFARI 0x0080
-#define BATTLE_TYPE_BATTLE_TOWER 0x0100
-#define BATTLE_TYPE_OLDMAN_TUTORIAL 0x0200
-#define BATTLE_TYPE_ROAMER 0x0400
-#define BATTLE_TYPE_EREADER_TRAINER 0x0800
-#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
-#define BATTLE_TYPE_LEGENDARY 0x2000
-#define BATTLE_TYPE_REGI 0x4000
-#define BATTLE_TYPE_GHOST 0x8000
-#define BATTLE_TYPE_POKEDUDE 0x10000
-#define BATTLE_TYPE_PALACE 0x20000
-#define BATTLE_TYPE_ARENA 0x40000
-#define BATTLE_TYPE_TRAINER_TOWER 0x80000
-#define BATTLE_TYPE_PIKE 0x100000
-#define BATTLE_TYPE_PYRAMID 0x200000
-#define BATTLE_TYPE_INGAME_PARTNER 0x400000
-#define BATTLE_TYPE_x800000 0x800000
-#define BATTLE_TYPE_RECORDED 0x1000000
-#define BATTLE_TYPE_x2000000 0x2000000
-#define BATTLE_TYPE_TRAINER_HILL 0x4000000
-#define BATTLE_TYPE_SECRET_BASE 0x8000000
-#define BATTLE_TYPE_GROUDON 0x10000000
-#define BATTLE_TYPE_KYOGRE 0x20000000
-#define BATTLE_TYPE_RAYQUAZA 0x40000000
-#define BATTLE_TYPE_x80000000 0x80000000
+#define BATTLE_TYPE_DOUBLE 0x0001
+#define BATTLE_TYPE_LINK 0x0002
+#define BATTLE_TYPE_IS_MASTER 0x0004 // In not-link battles, it's always set.
+#define BATTLE_TYPE_TRAINER 0x0008
+#define BATTLE_TYPE_FIRST_BATTLE 0x0010
+#define BATTLE_TYPE_20 0x0020
+#define BATTLE_TYPE_MULTI 0x0040
+#define BATTLE_TYPE_SAFARI 0x0080
+#define BATTLE_TYPE_BATTLE_TOWER 0x0100
+#define BATTLE_TYPE_OLD_MAN_TUTORIAL 0x0200
+#define BATTLE_TYPE_ROAMER 0x0400
+#define BATTLE_TYPE_EREADER_TRAINER 0x0800
+#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
+#define BATTLE_TYPE_LEGENDARY 0x2000
+#define BATTLE_TYPE_REGI 0x4000
+#define BATTLE_TYPE_GHOST 0x8000
+#define BATTLE_TYPE_POKEDUDE 0x10000
+#define BATTLE_TYPE_PALACE 0x20000
+#define BATTLE_TYPE_ARENA 0x40000
+#define BATTLE_TYPE_TRAINER_TOWER 0x80000
+#define BATTLE_TYPE_PIKE 0x100000
+#define BATTLE_TYPE_PYRAMID 0x200000
+#define BATTLE_TYPE_INGAME_PARTNER 0x400000
+#define BATTLE_TYPE_x800000 0x800000
+#define BATTLE_TYPE_RECORDED 0x1000000
+#define BATTLE_TYPE_x2000000 0x2000000
+#define BATTLE_TYPE_TRAINER_HILL 0x4000000
+#define BATTLE_TYPE_SECRET_BASE 0x8000000
+#define BATTLE_TYPE_GROUDON 0x10000000
+#define BATTLE_TYPE_KYOGRE 0x20000000
+#define BATTLE_TYPE_RAYQUAZA 0x40000000
+#define BATTLE_TYPE_x80000000 0x80000000
#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID)
#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE)
@@ -293,4 +293,9 @@
#define BATTLE_TERRAIN_BUILDING 8
#define BATTLE_TERRAIN_PLAIN 9
+// Return value for IsRunningFromBattleImpossible.
+#define BATTLE_RUN_SUCCESS 0
+#define BATTLE_RUN_FORBIDDEN 1
+#define BATTLE_RUN_FAILURE 2
+
#endif // GUARD_CONSTANTS_BATTLE_H
diff --git a/include/constants/battle_setup.h b/include/constants/battle_setup.h
new file mode 100644
index 000000000..8f700dc04
--- /dev/null
+++ b/include/constants/battle_setup.h
@@ -0,0 +1,15 @@
+#ifndef GUARD_CONSTANTS_BATTLE_SETUP_H
+#define GUARD_CONSTANTS_BATTLE_SETUP_H
+
+#define TRAINER_BATTLE_SINGLE 0
+#define TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC 1
+#define TRAINER_BATTLE_CONTINUE_SCRIPT 2
+#define TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT 3
+#define TRAINER_BATTLE_DOUBLE 4
+#define TRAINER_BATTLE_REMATCH 5
+#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE 6
+#define TRAINER_BATTLE_REMATCH_DOUBLE 7
+#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC 8
+#define TRAINER_BATTLE_TUTORIAL 9
+
+#endif // GUARD_CONSTANTS_BATTLE_SETUP_H
diff --git a/include/constants/map_types.h b/include/constants/map_types.h
new file mode 100644
index 000000000..96ea73702
--- /dev/null
+++ b/include/constants/map_types.h
@@ -0,0 +1,15 @@
+#ifndef GUARD_CONSTANTS_MAP_TYPES_H
+#define GUARD_CONSTANTS_MAP_TYPES_H
+
+#define MAP_TYPE_0 0
+#define MAP_TYPE_TOWN 1
+#define MAP_TYPE_CITY 2
+#define MAP_TYPE_ROUTE 3
+#define MAP_TYPE_UNDERGROUND 4
+#define MAP_TYPE_UNDERWATER 5
+#define MAP_TYPE_OCEAN_ROUTE 6
+#define MAP_TYPE_7 7
+#define MAP_TYPE_INDOOR 8
+#define MAP_TYPE_SECRET_BASE 9
+
+#endif // GUARD_CONSTANTS_MAP_TYPES_H
diff --git a/include/constants/trainers.h b/include/constants/trainers.h
index 7359e9381..d8c429ed5 100644
--- a/include/constants/trainers.h
+++ b/include/constants/trainers.h
@@ -165,6 +165,8 @@
#define TRAINER_PIC_LADY 146
#define TRAINER_PIC_PAINTER 147
+#define TRAINER_SECRET_BASE 1024
+
#define F_TRAINER_FEMALE (1 << 7)
#define TRAINER_PIC_AQUA_LEADER_ARCHIE 0
diff --git a/include/data.h b/include/data.h
index 99594209b..9ea1f7c96 100644
--- a/include/data.h
+++ b/include/data.h
@@ -5,6 +5,7 @@
#include "constants/species.h"
#define SPECIES_SHINY_TAG 500
+#define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F))
struct MonCoords
{
@@ -16,8 +17,6 @@ struct MonCoords
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
extern const u8 gMoveNames[][13];
-extern const u8 gAbilityNames[][13];
-extern const u8 gTypeNames[][7];
extern const u16 gUnknown_8251CB8[];
extern const u16 gUnknown_8251FEE[];
extern const u16 gUnknown_8252324[];
diff --git a/include/event_scripts.h b/include/event_scripts.h
index c61e51f04..c0f0300b1 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -1155,6 +1155,15 @@ extern const u8 EventScript_SafariOutOfBalls[];
extern const u8 EventScript_ItemfinderDigUpUnderfootItem[];
+// battle_setup
+extern const u8 EventScript_DoTrainerBattle[];
+extern const u8 EventScript_TryDoDoubleTrainerBattle[];
+extern const u8 EventScript_TryDoNormalTrainerBattle[];
+extern const u8 EventScript_TryDoDoubleRematchBattle[];
+extern const u8 EventScript_TryDoRematchBattle[];
+extern const u8 gUnknown_81A4EB4[];
+extern const u8 EventScript_1C555B[];
+
// new_game
extern const u8 EventScript_ResetAllMapFlags[];
diff --git a/include/evolution_scene.h b/include/evolution_scene.h
index 1d87ceb76..6ceed99c1 100644
--- a/include/evolution_scene.h
+++ b/include/evolution_scene.h
@@ -3,8 +3,8 @@
#include "global.h"
-void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
-void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
+void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8, u8 partyID);
+void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8, u8 partyID);
void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID);
extern void (*gCB2_AfterEvolution)(void);
diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h
index 0a33138b3..ecb622de5 100644
--- a/include/field_control_avatar.h
+++ b/include/field_control_avatar.h
@@ -5,4 +5,7 @@
extern u32 gUnknown_3005078;
+void RestartWildEncounterImmunitySteps(void);
+void ClearPoisonStepCounter(void);
+
#endif //GUARD_FIELD_CONTROL_AVATAR_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 40d7ed933..6177cba1c 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -85,7 +85,7 @@ void sub_8063E28(struct MapObject *, struct Sprite *);
void FieldObjectSetHeldMovement(struct MapObject *, u8);
void npc_coords_shift_still(struct MapObject *);
void sub_805FE7C(struct MapObject *, u8);
-void npc_set_running_behaviour_etc(struct MapObject *, u8);
+void SetTrainerMovementType(struct MapObject *, u8);
u8 sub_80634F0(u8 direction);
u8 sub_8063500(u8 a0);
void EventObjectSetGraphicsId(struct MapObject *mapObject, u8 a1);
@@ -94,6 +94,7 @@ void npc_paltag_set_load(u8 mode);
bool8 FieldObjectIsMovementOverridden(struct MapObject *mapObject);
u8 FieldObjectCheckHeldMovementStatus(struct MapObject *mapObject);
u8 sub_8063F84(u8 direction);
+u8 GetTrainerFacingDirectionMovementType(u8 direction);
void CameraObjectSetFollowedObjectId(u8 spriteId);
// Exported data declarations
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 2c408afc9..1d431771b 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -13,8 +13,8 @@ u8 player_get_direction_upper_nybble(void);
u8 player_get_x22(void);
void sub_808D074(u8);
-void sub_805C270();
-void sub_805C780();
+void sub_805C270(void);
+void sub_805C780(void);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
u8 sub_805C808(u8);
void SetPlayerAvatarStateMask(u8 mask);
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index a4358081d..c0f25fa93 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -13,35 +13,6 @@ enum
CONNECTION_EMERGE
};
-// map types
-enum
-{
- MAP_TYPE_0,
- MAP_TYPE_TOWN,
- MAP_TYPE_CITY,
- MAP_TYPE_ROUTE,
- MAP_TYPE_UNDERGROUND,
- MAP_TYPE_UNDERWATER,
- MAP_TYPE_6,
- MAP_TYPE_7,
- MAP_TYPE_INDOOR,
- MAP_TYPE_SECRET_BASE
-};
-
-// map battle scenes
-enum
-{
- MAP_BATTLE_SCENE_NORMAL, // 0
- MAP_BATTLE_SCENE_GYM, // 1
- MAP_BATTLE_SCENE_MAGMA, // 2
- MAP_BATTLE_SCENE_AQUA, // 3
- MAP_BATTLE_SCENE_SIDNEY, // 4
- MAP_BATTLE_SCENE_PHOEBE, // 5
- MAP_BATTLE_SCENE_GLACIA, // 6
- MAP_BATTLE_SCENE_DRAKE, // 7
- MAP_BATTLE_SCENE_BATTLE_TOWER, // 8
-};
-
typedef void (*TilesetCB)(void);
struct Tileset
@@ -242,7 +213,7 @@ struct MapObject
/*0x0C*/ struct Coords16 coords1;
/*0x10*/ struct Coords16 coords2;
/*0x14*/ struct Coords16 coords3;
- /*0x18*/ u8 mapobj_unk_18:4; //current direction?
+ /*0x18*/ u8 facingDirection:4; //current direction?
/*0x18*/ u8 placeholder18:4;
/*0x19*/ union MapObjectRange range;
/*0x1A*/ u8 mapobj_unk_1A;
diff --git a/include/global.h b/include/global.h
index 5c4501be3..9588deae3 100644
--- a/include/global.h
+++ b/include/global.h
@@ -32,6 +32,13 @@
// GF's lingo
#define NELEMS ARRAY_COUNT
+#define SWAP(a, b, temp) \
+{ \
+ temp = a; \
+ a = b; \
+ b = temp; \
+}
+
// useful math macros
// Converts a number to Q8.8 fixed-point format
diff --git a/include/item.h b/include/item.h
index 69560a0e5..dd6271d13 100644
--- a/include/item.h
+++ b/include/item.h
@@ -37,7 +37,6 @@ void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity);
bool8 IsBagPocketNonEmpty(u8 pocket);
bool8 CheckBagHasItem(u16 itemId, u16 count);
bool8 CheckBagHasSpace(u16 itemId, u16 count);
-bool8 AddBagItem(u16 itemId, u16 count);
bool8 RemoveBagItem(u16 itemId, u16 count);
u8 GetPocketByItemId(u16 itemId);
void ClearItemSlots(struct ItemSlot *itemSlots, u8 b);
diff --git a/include/item_menu.h b/include/item_menu.h
index 166906ebe..d12b9f394 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -36,6 +36,7 @@ void ItemMenu_SetExitCallback(void (*)(void));
void DisplayItemMessageInBag(u8 taskId, u8 bgId, const u8 * string, TaskFunc followUpFunc);
void sub_810A1F8(u8 taskId);
void sub_8107ECC(void);
+void sub_810AF74(void);
void sub_8108DC8(u8 pocketId);
void sub_81089F4(u8 pocketId);
void sub_8107DB4(u8 menuType, u8 pocket, MainCallback callback);
diff --git a/include/link_rfu.h b/include/link_rfu.h
index 2be9dd3c9..f5aa682e6 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -11,7 +11,7 @@ bool32 MG_PrintTextOnWindow1AndWaitButton(u8 * cmdPtr, const u8 * src);
void sub_80FA190(void);
void MG_DrawCheckerboardPattern(void);
void task_add_05_task_del_08FA224_when_no_RfuFunc(void);
-bool8 IsRfuTaskFinished(void);
+bool8 IsLinkRfuTaskFinished(void);
void DestroyWirelessStatusIndicatorSprite(void);
void MEvent_CreateTask_CardOrNewsWithFriend(u8);
void MEvent_CreateTask_CardOrNewsOverWireless(u8);
diff --git a/include/map_obj_80688E4.h b/include/map_obj_80688E4.h
index bfac00378..bfd5dd3c7 100644
--- a/include/map_obj_80688E4.h
+++ b/include/map_obj_80688E4.h
@@ -3,7 +3,7 @@
#include "global.h"
-void player_bitmagic(void);
+void FreezeEventObjects(void);
void FreezeMapObject(struct MapObject *);
void FreezeMapObjectsExceptOne(u8 mapObjectId);
diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h
index 62bcfdd38..df03001bf 100644
--- a/include/metatile_behavior.h
+++ b/include/metatile_behavior.h
@@ -10,7 +10,7 @@ bool8 MetatileBehavior_IsJumpNorth(u8 metatileBehavior);
bool8 MetatileBehavior_IsJumpSouth(u8 metatileBehavior);
bool8 MetatileBehavior_IsTallGrass(u8 metatileBehavior);
bool8 MetatileBehavior_IsMB21OrSand(u8 metatileBehavior);
-bool8 MetatileBehavior_IsMB21OrWaterfallBottom(u8 metatileBehavior);
+bool8 MetatileBehavior_IsSandOrDeepSand(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse(u8 metatileBehavior);
bool8 MetatileBehavior_IsReflective(u8 metatileBehavior);
bool8 MetatileBehavior_IsIce(u8 metatileBehavior);
@@ -53,15 +53,15 @@ bool8 MetatileBehavior_IsPC(u8 metatileBehavior);
bool8 MetatileBehavior_IsPondWaterOrPuddle(u8 metatileBehavior);
bool8 MetatileBehavior_IsPuddle(u8 metatileBehavior);
bool8 MetatileBehavior_IsTallGrass_2(u8 metatileBehavior);
-bool8 MetatileBehavior_ReturnFalse_3(u8 metatileBehavior);
+bool8 MetatileBehavior_IsLongGrass(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_4(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_5(u8 metatileBehavior);
-bool8 MetatileBehavior_ReturnFalse_6(u8 metatileBehavior);
-bool8 MetatileBehavior_ReturnFalse_7(u8 metatileBehavior);
+bool8 MetatileBehavior_IsBridge(u8 metatileBehavior);
+bool8 MetatileBehavior_GetBridgeType(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedIsMB_01(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedIsTallGrass(u8 metatileBehavior);
-bool8 MetatileBehavior_IsMB0B(u8 metatileBehavior);
-bool8 MetatileBehavior_IsMB0C(u8 metatileBehavior);
+bool8 MetatileBehavior_IsIndoorEncounter(u8 metatileBehavior);
+bool8 MetatileBehavior_IsMountain(u8 metatileBehavior);
bool8 MetatileBehavior_IsDeepOrSemiDeepWater(u8 metatileBehavior);
bool8 MetatileBehavior_IsMB19(u8 metatileBehavior);
bool8 MetatileBehavior_IsWaterfallBottom(u8 metatileBehavior);
diff --git a/include/overworld.h b/include/overworld.h
index a5e975d1d..805ddc8a0 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -62,7 +62,7 @@ void sub_8084EBC(s16, s16);
void player_avatar_init_params_reset(void);
void Overworld_SetFlashLevel(s32 a1);
-//u8 Overworld_GetFlashLevel(void);
+u8 Overworld_GetFlashLevel(void);
void sub_8085524(u16);
void Overworld_SetSavedMusic(u16);
@@ -141,5 +141,6 @@ bool32 Overworld_DoScrollSceneForCredits(u8 *, const struct CreditsOverworldCmd
bool32 sub_8058318(void);
void CB2_ReturnToStartMenu(void);
+void CB2_WhiteOut(void);
#endif //GUARD_OVERWORLD_H
diff --git a/include/party_menu.h b/include/party_menu.h
index 5b9b6e1c4..53731bee6 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -84,5 +84,7 @@ bool8 IsMultiBattle(void);
void sub_8126EDC(void);
void PartyMenuInit_FromPlayerPc(void);
void CB2_PartyMenuFromStartMenu(void);
+void sub_8128198(void);
+void sub_8127FF4(u8 slot, u8 slot2);
#endif // GUARD_PARTY_MENU_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 77c8191f3..79933a22c 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -169,35 +169,6 @@ enum
EGG_GROUP_UNDISCOVERED
};
-enum
-{
- NATURE_HARDY,
- NATURE_LONELY,
- NATURE_BRAVE,
- NATURE_ADAMANT,
- NATURE_NAUGHTY,
- NATURE_BOLD,
- NATURE_DOCILE,
- NATURE_RELAXED,
- NATURE_IMPISH,
- NATURE_LAX,
- NATURE_TIMID,
- NATURE_HASTY,
- NATURE_SERIOUS,
- NATURE_JOLLY,
- NATURE_NAIVE,
- NATURE_MODEST,
- NATURE_MILD,
- NATURE_QUIET,
- NATURE_BASHFUL,
- NATURE_RASH,
- NATURE_CALM,
- NATURE_GENTLE,
- NATURE_SASSY,
- NATURE_CAREFUL,
- NATURE_QUIRKY,
-};
-
struct PokemonSubstruct0
{
u16 species;
@@ -629,10 +600,10 @@ u8 GetTrainerEncounterMusicId(u16 trainer);
void AdjustFriendship(struct Pokemon *mon, u8 event);
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
u16 GetMonEVCount(struct Pokemon *mon);
-void sub_8043A68(void);
+void RandomlyGivePartyPokerus(struct Pokemon *party);
u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
-void sub_8043B40(void);
+void PartySpreadPokerus(struct Pokemon *party);
bool8 TryIncrementMonLevel(struct Pokemon *mon);
u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm);
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
diff --git a/include/quest_log.h b/include/quest_log.h
index adfe27e1b..8165486ce 100644
--- a/include/quest_log.h
+++ b/include/quest_log.h
@@ -2,6 +2,7 @@
#define GUARD_QUEST_LOG_H
#include "global.h"
+#include "quest_log_battle.h"
struct UnkStruct_3005E90
{
@@ -14,6 +15,7 @@ struct UnkStruct_3005E90
u8 unk_2;
};
+extern u8 gUnknown_203ADFA;
extern u8 gUnknown_3005E88;
extern u16 sNumQuestLogs;
extern struct UnkStruct_3005E90 gUnknown_3005E90;
@@ -40,6 +42,8 @@ void sub_8112450(void);
void sub_8112364(void);
u8 sub_8112CAC(void);
void sub_81138F8(void);
+void sub_811231C(void);
+void sub_81139BC(void);
void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx);
void QuestLogSetFlagOrVar(bool8 isFlag, u16 idx, u16 value);
diff --git a/include/quest_log_battle.h b/include/quest_log_battle.h
new file mode 100644
index 000000000..45d656e14
--- /dev/null
+++ b/include/quest_log_battle.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_QUEST_LOG_BATTLE_H
+#define GUARD_QUEST_LOG_BATTLE_H
+
+#include "global.h"
+
+void sub_812BFDC(void);
+void sub_812C224(void);
+
+#endif // GUARD_QUEST_LOG_BATTLE_H
diff --git a/include/safari_zone.h b/include/safari_zone.h
index feaa93ed0..a50351570 100644
--- a/include/safari_zone.h
+++ b/include/safari_zone.h
@@ -16,4 +16,6 @@ void ExitSafariMode(void);
bool8 SafariZoneTakeStep(void);
void SafariZoneRetirePrompt(void);
+void CB2_EndSafariBattle(void);
+
#endif // GUARD_SAFARI_ZONE_H
diff --git a/include/script_pokemon_util_80A0058.h b/include/script_pokemon_util_80A0058.h
index e1d228589..768e838dd 100644
--- a/include/script_pokemon_util_80A0058.h
+++ b/include/script_pokemon_util_80A0058.h
@@ -4,5 +4,6 @@
bool8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unk1, u32 unk2, u8 unk3);
bool8 ScriptGiveEgg(u16 species);
void ScriptSetMonMoveSlot(u8 partyIdx, u16 move, u8 slot);
+void sp000_heal_pokemon(void);
#endif //GUARD_SCRIPT_POKEMON_UTIL_80A0058_H
diff --git a/include/strings.h b/include/strings.h
index 51396954c..9304b225d 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -231,6 +231,18 @@ extern const u8 gText_WhatWillPkmnDo[];
// battle_script_commands
extern const u8 gText_BattleYesNoChoice[];
+// battle_controller_oak_old_man
+extern const u8 gUnknown_83FDAE2[];
+extern const u8 gUnknown_83FDB92[];
+extern const u8 gUnknown_83FDBEF[];
+extern const u8 gUnknown_83FDC58[];
+extern const u8 gUnknown_83FDC95[];
+extern const u8 gUnknown_83FDD23[];
+extern const u8 gUnknown_83FDD64[];
+extern const u8 gUnknown_83FDDEB[];
+extern const u8 gUnknown_83FDCD2[];
+extern const u8 gUnknown_83FE6FA[];
+
// credits
extern const u8 gString_Dummy[];
extern const u8 gString_PokemonFireRed_Staff[]; // FR
diff --git a/include/vs_seeker.h b/include/vs_seeker.h
index efc014a4a..fdd6839df 100644
--- a/include/vs_seeker.h
+++ b/include/vs_seeker.h
@@ -6,9 +6,10 @@
void Task_VsSeeker_0(u8 taskId);
void sub_810CB90(void);
void sub_810CDE8(void);
-int sub_810CE64(u16 a0);
+int GetRematchTrainerId(u16 a0);
bool8 sub_810CF04(u8 a0);
u8 sub_810CF54();
void sub_810D0D0(void);
+void sub_810CB90(void);
#endif //GUARD_VS_SEEKER_H
diff --git a/ld_script.txt b/ld_script.txt
index 63c435a2f..676bdc911 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -65,8 +65,8 @@ SECTIONS {
src/main_menu.o(.text);
src/battle_controllers.o(.text);
src/decompress.o(.text);
- asm/battle_1.o(.text);
- asm/battle_2.o(.text);
+ asm/battle_bg.o(.text);
+ src/battle_main.o(.text);
src/battle_util.o(.text);
src/battle_script_commands.o(.text);
src/battle_util2.o(.text);
@@ -119,9 +119,9 @@ SECTIONS {
src/reset_save_heap.o(.text);
asm/field_weather.o(.text);
asm/field_weather_effects.o(.text);
- src/field_fadetransition.o(.text);;
+ src/field_fadetransition.o(.text);
asm/field_screen_effect.o(.text);
- asm/battle_setup.o(.text);
+ src/battle_setup.o(.text);
asm/cable_club.o(.text);
asm/trainer_see.o(.text);
asm/wild_encounter.o(.text);
@@ -208,7 +208,7 @@ SECTIONS {
asm/learn_move.o(.text);
src/fldeff_softboiled.o(.text);
asm/battle_tower.o(.text);
- asm/battle_controller_oak.o(.text);
+ src/battle_controller_oak_old_man.o(.text);
src/player_pc.o(.text);
src/intro.o(.text);
asm/battle_anim_special.o(.text);
@@ -385,6 +385,7 @@ SECTIONS {
src/main_menu.o(.rodata);
src/data.o(.rodata);
data/data.o(.rodata);
+ src/battle_main.o(.rodata);
src/battle_util.o(.rodata);
src/battle_script_commands.o(.rodata);
src/battle_controller_player.o(.rodata);
@@ -422,6 +423,8 @@ SECTIONS {
src/title_screen.o(.rodata);
data/field_weather.o(.rodata);
data/data_835B488.o(.rodata);
+ src/battle_setup.o(.rodata);
+ data/data_835B488.o(.rodata.83C6AB0);
src/pokemon_icon.o(.rodata);
data/data_835B488.o(.rodata.83D4100);
src/item_menu_icons.o(.rodata);
@@ -457,6 +460,7 @@ SECTIONS {
data/data_83FECCC.o(.rodata);
src/battle_controller_safari.o(.rodata);
data/data_83FECCC.o(.rodata.83FEDE4);
+ src/battle_controller_oak_old_man.o(.rodata);
src/player_pc.o(.rodata);
src/intro.o(.rodata);
data/data_83FECCC.o(.rodata.battle_anim_special);
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index c57825b4f..e66fdb2af 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -1,6 +1,6 @@
#include "global.h"
#include "battle.h"
-#include "battle_main.h"
+#include "battle_anim.h"
#include "util.h"
#include "item.h"
#include "random.h"
diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c
index e871937e7..c19af4cb7 100644
--- a/src/battle_anim_mons.c
+++ b/src/battle_anim_mons.c
@@ -28,7 +28,7 @@ static u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3);
static void sub_8075658(struct Sprite *sprite);
static void sub_80757E8(struct Sprite *sprite);
static bool8 sub_80758DC(void);
-static void sub_8075EF0(struct Sprite *sprite);
+static void AnimThrowProjectile_Step(struct Sprite *sprite);
static void sub_80760D0(u8 taskId);
static void AnimTask_BlendMonInAndOutSetup(struct Task *task);
static void AnimTask_BlendMonInAndOutStep(u8 taskId);
@@ -1336,7 +1336,7 @@ static u8 GetBattlerAtPosition_(u8 position)
return GetBattlerAtPosition(position);
}
-void sub_8075D9C(struct Sprite *sprite)
+void AnimSpriteOnMonPos(struct Sprite *sprite)
{
bool8 var;
@@ -1390,7 +1390,7 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
-void sub_8075E80(struct Sprite *sprite)
+void AnimThrowProjectile(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, 1);
if (GetBattlerSide(gBattleAnimAttacker))
@@ -1400,10 +1400,10 @@ void sub_8075E80(struct Sprite *sprite)
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
sprite->data[5] = gBattleAnimArgs[5];
InitAnimArcTranslation(sprite);
- sprite->callback = sub_8075EF0;
+ sprite->callback = AnimThrowProjectile_Step;
}
-static void sub_8075EF0(struct Sprite *sprite)
+static void AnimThrowProjectile_Step(struct Sprite *sprite)
{
if (TranslateAnimHorizontalArc(sprite))
DestroyAnimSprite(sprite);
diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c
new file mode 100644
index 000000000..99391ab3e
--- /dev/null
+++ b/src/battle_controller_oak_old_man.c
@@ -0,0 +1,2295 @@
+#include "global.h"
+#include "task.h"
+#include "pokemon.h"
+#include "pokeball.h"
+#include "party_menu.h"
+#include "bg.h"
+#include "data.h"
+#include "palette.h"
+#include "util.h"
+#include "m4a.h"
+#include "link.h"
+#include "sound.h"
+#include "item.h"
+#include "item_menu.h"
+#include "text.h"
+#include "strings.h"
+#include "string_util.h"
+#include "window.h"
+#include "battle.h"
+#include "battle_anim.h"
+#include "battle_controllers.h"
+#include "battle_interface.h"
+#include "battle_message.h"
+#include "reshow_battle_screen.h"
+#include "constants/songs.h"
+#include "constants/items.h"
+
+static void OakOldManHandleGetMonData(void);
+static void OakOldManHandleGetRawMonData(void);
+static void OakOldManHandleSetMonData(void);
+static void OakOldManHandleSetRawMonData(void);
+static void OakOldManHandleLoadMonSprite(void);
+static void OakOldManHandleSwitchInAnim(void);
+static void OakOldManHandleReturnMonToBall(void);
+static void OakOldManHandleDrawTrainerPic(void);
+static void OakOldManHandleTrainerSlide(void);
+static void OakOldManHandleTrainerSlideBack(void);
+static void OakOldManHandleFaintAnimation(void);
+static void OakOldManHandlePaletteFade(void);
+static void OakOldManHandleSuccessBallThrowAnim(void);
+static void OakOldManHandleBallThrowAnim(void);
+static void OakOldManHandlePause(void);
+static void OakOldManHandleMoveAnimation(void);
+static void OakOldManHandlePrintString(void);
+static void OakOldManHandlePrintSelectionString(void);
+static void OakOldManHandleChooseAction(void);
+static void OakOldManHandleUnknownYesNoBox(void);
+static void OakOldManHandleChooseMove(void);
+static void OakOldManHandleChooseItem(void);
+static void OakOldManHandleChoosePokemon(void);
+static void OakOldManHandleCmd23(void);
+static void OakOldManHandleHealthBarUpdate(void);
+static void OakOldManHandleExpUpdate(void);
+static void OakOldManHandleStatusIconUpdate(void);
+static void OakOldManHandleStatusAnimation(void);
+static void OakOldManHandleStatusXor(void);
+static void OakOldManHandleDataTransfer(void);
+static void OakOldManHandleDMA3Transfer(void);
+static void OakOldManHandlePlayBGM(void);
+static void OakOldManHandleCmd32(void);
+static void OakOldManHandleTwoReturnValues(void);
+static void OakOldManHandleChosenMonReturnValue(void);
+static void OakOldManHandleOneReturnValue(void);
+static void OakOldManHandleOneReturnValue_Duplicate(void);
+static void OakOldManHandleCmd37(void);
+static void OakOldManHandleCmd38(void);
+static void OakOldManHandleCmd39(void);
+static void OakOldManHandleCmd40(void);
+static void OakOldManHandleHitAnimation(void);
+static void OakOldManHandleCmd42(void);
+static void OakOldManHandlePlaySE(void);
+static void OakOldManHandlePlayFanfare(void);
+static void OakOldManHandleFaintingCry(void);
+static void OakOldManHandleIntroSlide(void);
+static void OakOldManHandleIntroTrainerBallThrow(void);
+static void OakOldManHandleDrawPartyStatusSummary(void);
+static void OakOldManHandleHidePartyStatusSummary(void);
+static void OakOldManHandleEndBounceEffect(void);
+static void OakOldManHandleSpriteInvisibility(void);
+static void OakOldManHandleBattleAnimation(void);
+static void OakOldManHandleLinkStandbyMsg(void);
+static void OakOldManHandleResetActionMoveSelection(void);
+static void OakOldManHandleCmd55(void);
+static void OakOldManCmdEnd(void);
+
+static void OakOldManBufferRunCommand(void);
+static void OakOldManBufferExecCompleted(void);
+static void WaitForMonSelection(void);
+static void CompleteWhenChoseItem(void);
+static void sub_80E8704(void);
+static void sub_80E7CD8(void);
+static void sub_80E835C(void);
+static void Task_LaunchLvlUpAnim(u8 taskId);
+static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId);
+static void CompleteOnInactiveTextPrinter2(void);
+static void Task_PrepareToGiveExpWithExpBar(u8 taskId);
+static void sub_80E804C(u8 taskId);
+static void Task_UpdateLvlInHealthbox(u8 taskId);
+static void sub_80E85D4(const u8 *text, u8 a1);
+static u32 CopyOakOldManMonData(u8 monId, u8 *dst);
+static void SetOakOldManMonData(u8 monId);
+static void OakOldManDoMoveAnimation(void);
+static void HandleInputChooseAction(void);
+static void sub_80EB0A8(u8 taskId);
+
+static void (*const sOakOldManBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
+{
+ OakOldManHandleGetMonData,
+ OakOldManHandleGetRawMonData,
+ OakOldManHandleSetMonData,
+ OakOldManHandleSetRawMonData,
+ OakOldManHandleLoadMonSprite,
+ OakOldManHandleSwitchInAnim,
+ OakOldManHandleReturnMonToBall,
+ OakOldManHandleDrawTrainerPic,
+ OakOldManHandleTrainerSlide,
+ OakOldManHandleTrainerSlideBack,
+ OakOldManHandleFaintAnimation,
+ OakOldManHandlePaletteFade,
+ OakOldManHandleSuccessBallThrowAnim,
+ OakOldManHandleBallThrowAnim,
+ OakOldManHandlePause,
+ OakOldManHandleMoveAnimation,
+ OakOldManHandlePrintString,
+ OakOldManHandlePrintSelectionString,
+ OakOldManHandleChooseAction,
+ OakOldManHandleUnknownYesNoBox,
+ OakOldManHandleChooseMove,
+ OakOldManHandleChooseItem,
+ OakOldManHandleChoosePokemon,
+ OakOldManHandleCmd23,
+ OakOldManHandleHealthBarUpdate,
+ OakOldManHandleExpUpdate,
+ OakOldManHandleStatusIconUpdate,
+ OakOldManHandleStatusAnimation,
+ OakOldManHandleStatusXor,
+ OakOldManHandleDataTransfer,
+ OakOldManHandleDMA3Transfer,
+ OakOldManHandlePlayBGM,
+ OakOldManHandleCmd32,
+ OakOldManHandleTwoReturnValues,
+ OakOldManHandleChosenMonReturnValue,
+ OakOldManHandleOneReturnValue,
+ OakOldManHandleOneReturnValue_Duplicate,
+ OakOldManHandleCmd37,
+ OakOldManHandleCmd38,
+ OakOldManHandleCmd39,
+ OakOldManHandleCmd40,
+ OakOldManHandleHitAnimation,
+ OakOldManHandleCmd42,
+ OakOldManHandlePlaySE,
+ OakOldManHandlePlayFanfare,
+ OakOldManHandleFaintingCry,
+ OakOldManHandleIntroSlide,
+ OakOldManHandleIntroTrainerBallThrow,
+ OakOldManHandleDrawPartyStatusSummary,
+ OakOldManHandleHidePartyStatusSummary,
+ OakOldManHandleEndBounceEffect,
+ OakOldManHandleSpriteInvisibility,
+ OakOldManHandleBattleAnimation,
+ OakOldManHandleLinkStandbyMsg,
+ OakOldManHandleResetActionMoveSelection,
+ OakOldManHandleCmd55,
+ OakOldManCmdEnd,
+};
+
+static void nullsub_81(void)
+{
+}
+
+void SetControllerToOakOrOldMan(void)
+{
+ gBattlerControllerFuncs[gActiveBattler] = OakOldManBufferRunCommand;
+ gBattleStruct->field_94 = 0;
+ gBattleStruct->field_95 = 0;
+ gBattleStruct->field_96 = 0;
+ gBattleStruct->field_97 = 0;
+}
+
+static void OakOldManBufferRunCommand(void)
+{
+ if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
+ {
+ if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sOakOldManBufferCommands))
+ sOakOldManBufferCommands[gBattleBufferA[gActiveBattler][0]]();
+ else
+ OakOldManBufferExecCompleted();
+ }
+}
+
+static void HandleInputChooseAction(void)
+{
+ u16 itemId = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
+
+ DoBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX, 7, 1);
+ DoBounceEffect(gActiveBattler, BOUNCE_MON, 7, 1);
+ if (JOY_NEW(A_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+
+ switch (gActionSelectionCursor[gActiveBattler])
+ {
+ case 0:
+ BtlController_EmitTwoReturnValues(1, B_ACTION_USE_MOVE, 0);
+ break;
+ case 1:
+ BtlController_EmitTwoReturnValues(1, B_ACTION_USE_ITEM, 0);
+ break;
+ case 2:
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0);
+ break;
+ case 3:
+ BtlController_EmitTwoReturnValues(1, B_ACTION_RUN, 0);
+ break;
+ }
+ OakOldManBufferExecCompleted();
+ }
+ else if (JOY_NEW(DPAD_LEFT))
+ {
+ if (gActionSelectionCursor[gActiveBattler] & 1) // if is B_ACTION_USE_ITEM or B_ACTION_RUN
+ {
+ PlaySE(SE_SELECT);
+ ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]);
+ gActionSelectionCursor[gActiveBattler] ^= 1;
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
+ }
+ }
+ else if (JOY_NEW(DPAD_RIGHT))
+ {
+ if (!(gActionSelectionCursor[gActiveBattler] & 1)) // if is B_ACTION_USE_MOVE or B_ACTION_SWITCH
+ {
+ PlaySE(SE_SELECT);
+ ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]);
+ gActionSelectionCursor[gActiveBattler] ^= 1;
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
+ }
+ }
+ else if (JOY_NEW(DPAD_UP))
+ {
+ if (gActionSelectionCursor[gActiveBattler] & 2) // if is B_ACTION_SWITCH or B_ACTION_RUN
+ {
+ PlaySE(SE_SELECT);
+ ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]);
+ gActionSelectionCursor[gActiveBattler] ^= 2;
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
+ }
+ }
+ else if (JOY_NEW(DPAD_DOWN))
+ {
+ if (!(gActionSelectionCursor[gActiveBattler] & 2)) // if is B_ACTION_USE_MOVE or B_ACTION_USE_ITEM
+ {
+ PlaySE(SE_SELECT);
+ ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]);
+ gActionSelectionCursor[gActiveBattler] ^= 2;
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
+ }
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ && GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT
+ && !(gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)])
+ && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
+ {
+ if (gBattleBufferA[gActiveBattler][1] == B_ACTION_USE_ITEM)
+ {
+ // Add item to bag if it is a ball
+ if (itemId <= ITEM_PREMIER_BALL)
+ AddBagItem(itemId, 1);
+ else
+ return;
+ }
+ PlaySE(SE_SELECT);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_CANCEL_PARTNER, 0);
+ OakOldManBufferExecCompleted();
+ }
+ }
+ else if (JOY_NEW(START_BUTTON))
+ {
+ SwapHpBarsWithHpText();
+ }
+}
+
+static void sub_80E7844(void)
+{
+ switch (gBattleStruct->field_94)
+ {
+ case 0:
+ gBattleStruct->field_96 = 64;
+ ++gBattleStruct->field_94;
+ // fall through
+ case 1:
+ if (--gBattleStruct->field_96 == 0)
+ {
+ PlaySE(SE_SELECT);
+ ActionSelectionDestroyCursorAt(0);
+ ActionSelectionCreateCursorAt(1, 0);
+ gBattleStruct->field_96 = 64;
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 2:
+ if (--gBattleStruct->field_96 == 0)
+ {
+ PlaySE(SE_SELECT);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_USE_ITEM, 0);
+ OakOldManBufferExecCompleted();
+ }
+ break;
+ }
+}
+
+static void CompleteOnBattlerSpriteCallbackDummy(void)
+{
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
+ OakOldManBufferExecCompleted();
+}
+
+static void CompleteOnInactiveTextPrinter(void)
+{
+ if (!IsTextPrinterActive(0))
+ OakOldManBufferExecCompleted();
+}
+
+static void sub_80E7930(void)
+{
+ if (!gPaletteFade.active)
+ {
+ gMain.inBattle = FALSE;
+ gMain.callback1 = gPreBattleCallback1;
+ SetMainCallback2(gMain.savedCallback);
+ }
+}
+
+static void CompleteOnSpecialAnimDone(void)
+{
+ if (!gDoingBattleAnim)
+ OakOldManBufferExecCompleted();
+}
+
+void sub_80E7988(void)
+{
+ HandleInputChooseMove();
+ if (!(gBattleControllerExecFlags & gBitTable[gActiveBattler]))
+ OakOldManBufferExecCompleted();
+}
+
+static void OpenPartyMenuToChooseMon(void)
+{
+ if (!gPaletteFade.active)
+ {
+ u8 caseId;
+
+ gBattlerControllerFuncs[gActiveBattler] = WaitForMonSelection;
+ caseId = gTasks[gUnknown_3004FFC[gActiveBattler]].data[0];
+ DestroyTask(gUnknown_3004FFC[gActiveBattler]);
+ FreeAllWindowBuffers();
+ OpenPartyMenuInBattle(caseId);
+ }
+}
+
+static void WaitForMonSelection(void)
+{
+ if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
+ {
+ if (gUnknown_203B0C0 == 1)
+ BtlController_EmitChosenMonReturnValue(1, gUnknown_203B0C1, gUnknown_203B0DC);
+ else
+ BtlController_EmitChosenMonReturnValue(1, 6, NULL);
+ OakOldManBufferExecCompleted();
+ }
+}
+
+static void OpenBagAndChooseItem(void)
+{
+ if (!gPaletteFade.active)
+ {
+ gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChoseItem;
+ nullsub_44();
+ FreeAllWindowBuffers();
+ if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ sub_8107ECC();
+ else
+ sub_810AF74();
+ }
+}
+
+static void CompleteWhenChoseItem(void)
+{
+ if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
+ {
+ if (!sub_80EB2E0(4)
+ && gSpecialVar_ItemId == ITEM_POTION
+ && gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ {
+ sub_80EB2F4(4);
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E8704;
+ }
+ else
+ {
+ BtlController_EmitOneReturnValue(1, gSpecialVar_ItemId);
+ OakOldManBufferExecCompleted();
+ }
+ }
+}
+
+static void sub_80E7B4C(void)
+{
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
+ sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
+ sub_80F1720(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
+ {
+ if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
+ {
+ DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler ^ BIT_FLANK]]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
+ &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
+ HEALTHBOX_ALL);
+ sub_804BD94(gActiveBattler ^ BIT_FLANK);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
+ }
+ DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
+ &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
+ HEALTHBOX_ALL);
+ sub_804BD94(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
+ gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E7CD8;
+ }
+}
+
+static void sub_80E7CD8(void)
+{
+ bool32 r4 = FALSE;
+
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
+ r4 = TRUE;
+ if (r4
+ && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1
+ && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1)
+ {
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0;
+ FreeSpriteTilesByTag(0x27F9);
+ FreeSpritePaletteByTag(0x27F9);
+ CreateTask(c3_0802FDF4, 10);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E835C;
+ }
+}
+
+#define tExpTask_monId data[0]
+#define tExpTask_gainedExp data[1]
+#define tExpTask_battler data[2]
+#define tExpTask_frames data[10]
+
+static void Task_GiveExpToMon(u8 taskId)
+{
+ u32 monId = (u8)(gTasks[taskId].tExpTask_monId);
+ u8 battlerId = gTasks[taskId].tExpTask_battler;
+ s16 gainedExp = gTasks[taskId].tExpTask_gainedExp;
+
+ if (IsDoubleBattle() == TRUE || monId != gBattlerPartyIndexes[battlerId]) // Give exp without moving the expbar.
+ {
+ struct Pokemon *mon = &gPlayerParty[monId];
+ u16 species = GetMonData(mon, MON_DATA_SPECIES);
+ u8 level = GetMonData(mon, MON_DATA_LEVEL);
+ u32 currExp = GetMonData(mon, MON_DATA_EXP);
+ u32 nextLvlExp = gExperienceTables[gBaseStats[species].growthRate][level + 1];
+
+ if (currExp + gainedExp >= nextLvlExp)
+ {
+ u8 savedActiveBattler;
+
+ SetMonData(mon, MON_DATA_EXP, &nextLvlExp);
+ CalculateMonStats(mon);
+ gainedExp -= nextLvlExp - currExp;
+ savedActiveBattler = gActiveBattler;
+ gActiveBattler = battlerId;
+ BtlController_EmitTwoReturnValues(1, RET_VALUE_LEVELED_UP, gainedExp);
+ gActiveBattler = savedActiveBattler;
+ if (IsDoubleBattle() == TRUE
+ && ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[battlerId ^ BIT_FLANK]))
+ gTasks[taskId].func = Task_LaunchLvlUpAnim;
+ else
+ gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter;
+ }
+ else
+ {
+ currExp += gainedExp;
+ SetMonData(mon, MON_DATA_EXP, &currExp);
+ gBattlerControllerFuncs[battlerId] = CompleteOnInactiveTextPrinter2;
+ DestroyTask(taskId);
+ }
+ }
+ else
+ {
+ gTasks[taskId].func = Task_PrepareToGiveExpWithExpBar;
+ }
+}
+
+static void Task_PrepareToGiveExpWithExpBar(u8 taskId)
+{
+ u8 monIndex = gTasks[taskId].tExpTask_monId;
+ s32 gainedExp = gTasks[taskId].tExpTask_gainedExp;
+ u8 battlerId = gTasks[taskId].tExpTask_battler;
+ struct Pokemon *mon = &gPlayerParty[monIndex];
+ u8 level = GetMonData(mon, MON_DATA_LEVEL);
+ u16 species = GetMonData(mon, MON_DATA_SPECIES);
+ u32 exp = GetMonData(mon, MON_DATA_EXP);
+ u32 currLvlExp = gExperienceTables[gBaseStats[species].growthRate][level];
+ u32 expToNextLvl;
+
+ exp -= currLvlExp;
+ expToNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLvlExp;
+ SetBattleBarStruct(battlerId, gHealthboxSpriteIds[battlerId], expToNextLvl, exp, -gainedExp);
+ PlaySE(SE_EXP);
+ gTasks[taskId].func = sub_80E804C;
+}
+
+static void sub_80E804C(u8 taskId)
+{
+ if (gTasks[taskId].tExpTask_frames < 13)
+ {
+ ++gTasks[taskId].tExpTask_frames;
+ }
+ else
+ {
+ u8 monId = gTasks[taskId].tExpTask_monId;
+ s16 gainedExp = gTasks[taskId].tExpTask_gainedExp;
+ u8 battlerId = gTasks[taskId].tExpTask_battler;
+ s16 newExpPoints;
+
+ newExpPoints = MoveBattleBar(battlerId, gHealthboxSpriteIds[battlerId], EXP_BAR, 0);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[battlerId]);
+ if (newExpPoints == -1) // The bar has been filled with given exp points.
+ {
+ u8 level;
+ s32 currExp;
+ u16 species;
+ s32 expOnNextLvl;
+
+ m4aSongNumStop(SE_EXP);
+ level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
+ currExp = GetMonData(&gPlayerParty[monId], MON_DATA_EXP);
+ species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
+ expOnNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1];
+ if (currExp + gainedExp >= expOnNextLvl)
+ {
+ u8 savedActiveBattler;
+
+ SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &expOnNextLvl);
+ CalculateMonStats(&gPlayerParty[monId]);
+ gainedExp -= expOnNextLvl - currExp;
+ savedActiveBattler = gActiveBattler;
+ gActiveBattler = battlerId;
+ BtlController_EmitTwoReturnValues(1, RET_VALUE_LEVELED_UP, gainedExp);
+ gActiveBattler = savedActiveBattler;
+ gTasks[taskId].func = Task_LaunchLvlUpAnim;
+ }
+ else
+ {
+ currExp += gainedExp;
+ SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &currExp);
+ gBattlerControllerFuncs[battlerId] = CompleteOnInactiveTextPrinter2;
+ DestroyTask(taskId);
+ }
+ }
+ }
+}
+
+static void Task_LaunchLvlUpAnim(u8 taskId)
+{
+ u8 battlerId = gTasks[taskId].tExpTask_battler;
+ u8 monIndex = gTasks[taskId].tExpTask_monId;
+
+ if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])
+ battlerId ^= BIT_FLANK;
+ InitAndLaunchSpecialAnimation(battlerId, battlerId, battlerId, B_ANIM_LVL_UP);
+ gTasks[taskId].func = Task_UpdateLvlInHealthbox;
+}
+
+static void Task_UpdateLvlInHealthbox(u8 taskId)
+{
+ u8 battlerId = gTasks[taskId].tExpTask_battler;
+
+ if (!gBattleSpritesDataPtr->healthBoxesData[battlerId].specialAnimActive)
+ {
+ u8 monIndex = gTasks[taskId].tExpTask_monId;
+
+ GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value.
+ if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL);
+ else
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId], &gPlayerParty[monIndex], HEALTHBOX_ALL);
+ gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter;
+ }
+}
+
+static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId)
+{
+ u8 monIndex = gTasks[taskId].tExpTask_monId;
+ u8 battlerId;
+
+ GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value
+ battlerId = gTasks[taskId].tExpTask_battler;
+ gBattlerControllerFuncs[battlerId] = CompleteOnInactiveTextPrinter2;
+ DestroyTask(taskId);
+}
+
+static void sub_80E82F4(void)
+{
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT)
+ {
+ FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
+ OakOldManBufferExecCompleted();
+ }
+}
+
+static void sub_80E835C(void)
+{
+ u32 mask;
+
+ switch (gBattleStruct->field_94)
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ sub_80EEFC8(&gBattleStruct->field_95, &gBattleStruct->field_97, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT));
+ BeginNormalPaletteFade(0xFFFFFF7E,
+ 4,
+ 0,
+ 8,
+ RGB_BLACK);
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ sub_80EB30C();
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 2:
+ BattleStringExpandPlaceholdersToDisplayedString(gUnknown_83FDAE2);
+ BattlePutTextOnWindow(gDisplayedStringBattle, 24);
+ ++gBattleStruct->field_94;
+ break;
+ case 3:
+ if (!IsTextPrinterActive(24))
+ {
+ mask = (gBitTable[gBattleStruct->field_95] | gBitTable[gBattleStruct->field_97]) << 16;
+ BeginNormalPaletteFade(mask,
+ 4,
+ 8,
+ 0,
+ RGB_BLACK);
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 4:
+ if (!gPaletteFade.active)
+ {
+ BattleStringExpandPlaceholdersToDisplayedString(gUnknown_83FDB92);
+ BattlePutTextOnWindow(gDisplayedStringBattle, 24);
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 5:
+ if (!IsTextPrinterActive(24))
+ {
+ mask = (gBitTable[gBattleStruct->field_95] | gBitTable[gBattleStruct->field_97]) << 16;
+ BeginNormalPaletteFade(mask,
+ 4,
+ 0,
+ 8,
+ RGB_BLACK);
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 6:
+ if (!gPaletteFade.active)
+ {
+ BattleStringExpandPlaceholdersToDisplayedString(gUnknown_83FDBEF);
+ BattlePutTextOnWindow(gDisplayedStringBattle, 24);
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 7:
+ if (!IsTextPrinterActive(24))
+ {
+ BeginNormalPaletteFade(0xFFFFFF7E,
+ 4,
+ 8,
+ 0,
+ RGB_BLACK);
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 8:
+ if (!gPaletteFade.active)
+ {
+ sub_80EF0E0(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT));
+ sub_80EB524();
+ gBattleStruct->field_94 = 0;
+ OakOldManBufferExecCompleted();
+ }
+ break;
+ }
+}
+
+void sub_80E8570(void)
+{
+ sub_80E85D4(gUnknown_83FDC58, 1);
+}
+
+static void sub_80E8584(void)
+{
+ sub_80E85D4(gUnknown_83FDC95, 64);
+}
+
+void sub_80E8598(void)
+{
+ sub_80E85D4(gUnknown_83FDD23, 1);
+}
+
+static void sub_80E85AC(void)
+{
+ sub_80E85D4(gUnknown_83FDD64, 64);
+}
+
+void sub_80E85C0(void)
+{
+ sub_80E85D4(gUnknown_83FDDEB, 64);
+}
+
+static void sub_80E85D4(const u8 *text, u8 a2)
+{
+ switch (gBattleStruct->field_94)
+ {
+ case 0:
+ if (!IsTextPrinterActive(0))
+ {
+ gBattleStruct->field_97 = a2;
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 1:
+ if (--gBattleStruct->field_97 == 0)
+ {
+ BeginNormalPaletteFade(0xFFFFFF7E,
+ 4,
+ 0,
+ 8,
+ RGB_BLACK);
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 2:
+ if (!gPaletteFade.active)
+ {
+ sub_80EB30C();
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 3:
+ BattleStringExpandPlaceholdersToDisplayedString(text);
+ BattlePutTextOnWindow(gDisplayedStringBattle, 24);
+ ++gBattleStruct->field_94;
+ break;
+ case 4:
+ if (!IsTextPrinterActive(24))
+ {
+ BeginNormalPaletteFade(0xFFFFFF7E,
+ 4,
+ 8,
+ 0,
+ RGB_BLACK);
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 5:
+ if (!gPaletteFade.active)
+ {
+ sub_80EB524();
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
+ OakOldManBufferExecCompleted();
+ else
+ OpponentBufferExecCompleted();
+ gBattleCommunication[MSG_DISPLAY] = 0;
+ gBattleStruct->field_94 = 0;
+ }
+ break;
+ }
+}
+
+static void sub_80E8704(void)
+{
+ u32 mask;
+
+ switch (gBattleStruct->field_94)
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ sub_80EEFC8(&gBattleStruct->field_95, &gBattleStruct->field_97, gActiveBattler);
+ BeginNormalPaletteFade(0xFFFFFF7E,
+ 4,
+ 0,
+ 8,
+ RGB_BLACK);
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ mask = (gBitTable[gBattleStruct->field_95] | gBitTable[gBattleStruct->field_97]) << 16;
+ BeginNormalPaletteFade(mask,
+ 4,
+ 8,
+ 0,
+ RGB_BLACK);
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 2:
+ if (!gPaletteFade.active)
+ {
+ sub_80EB30C();
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 3:
+ BattleStringExpandPlaceholdersToDisplayedString(gUnknown_83FDCD2);
+ BattlePutTextOnWindow(gDisplayedStringBattle, 24);
+ ++gBattleStruct->field_94;
+ break;
+ case 4:
+ if (!IsTextPrinterActive(24))
+ {
+ mask = (gBitTable[gBattleStruct->field_95] | gBitTable[gBattleStruct->field_97]) << 16;
+ BeginNormalPaletteFade(mask,
+ 4,
+ 0,
+ 8,
+ RGB_BLACK);
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 5:
+ if (!gPaletteFade.active)
+ {
+ BeginNormalPaletteFade(0xFFFFFF7E,
+ 4,
+ 8,
+ 0,
+ RGB_BLACK);
+ ++gBattleStruct->field_94;
+ }
+ break;
+ case 6:
+ if (!gPaletteFade.active)
+ {
+ sub_80EB524();
+ BtlController_EmitOneReturnValue(1, gSpecialVar_ItemId);
+ OakOldManBufferExecCompleted();
+ gBattleStruct->field_94 = 0;
+ }
+ break;
+ }
+}
+
+static void CompleteOnHealthbarDone(void)
+{
+ s16 hpValue = MoveBattleBar(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
+
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
+ if (hpValue != -1)
+ {
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
+ }
+ else
+ {
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ OakOldManBufferExecCompleted();
+ }
+}
+
+static void CompleteOnInactiveTextPrinter2(void)
+{
+ if (!IsTextPrinterActive(0))
+ OakOldManBufferExecCompleted();
+}
+
+static void DoHitAnimBlinkSpriteEffect(void)
+{
+ u8 spriteId = gBattlerSpriteIds[gActiveBattler];
+
+ if (gSprites[spriteId].data[1] == 32)
+ {
+ gSprites[spriteId].data[1] = 0;
+ gSprites[spriteId].invisible = FALSE;
+ gDoingBattleAnim = FALSE;
+ OakOldManBufferExecCompleted();
+ }
+ else
+ {
+ if ((gSprites[spriteId].data[1] % 4) == 0)
+ gSprites[spriteId].invisible ^= 1;
+ ++gSprites[spriteId].data[1];
+ }
+}
+
+static void sub_80E89C4(void)
+{
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
+ {
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
+ OakOldManBufferExecCompleted();
+ }
+}
+
+static void CompleteOnBattlerSpriteCallbackDummy2(void)
+{
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
+ OakOldManBufferExecCompleted();
+}
+
+static void CompleteOnFinishedBattleAnimation(void)
+{
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManBufferExecCompleted(void)
+{
+ gBattlerControllerFuncs[gActiveBattler] = OakOldManBufferRunCommand;
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ u8 playerId = GetMultiplayerId();
+
+ PrepareBufferDataTransferLink(2, 4, &playerId);
+ gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP;
+ }
+ else
+ {
+ gBattleControllerExecFlags &= ~gBitTable[gActiveBattler];
+ }
+}
+
+static void CompleteOnFinishedStatusAnimation(void)
+{
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleGetMonData(void)
+{
+ u8 monData[sizeof(struct Pokemon) * 2 + 56]; // this allows to get full data of two pokemon, trying to get more will result in overwriting data
+ u32 size = 0;
+ u8 monToCheck;
+ s32 i;
+
+ if (gBattleBufferA[gActiveBattler][2] == 0)
+ {
+ size += CopyOakOldManMonData(gBattlerPartyIndexes[gActiveBattler], monData);
+ }
+ else
+ {
+ monToCheck = gBattleBufferA[gActiveBattler][2];
+ for (i = 0; i < PARTY_SIZE; ++i)
+ {
+ if (monToCheck & 1)
+ size += CopyOakOldManMonData(i, monData + size);
+ monToCheck >>= 1;
+ }
+ }
+ BtlController_EmitDataTransfer(1, size, monData);
+ OakOldManBufferExecCompleted();
+}
+
+static u32 CopyOakOldManMonData(u8 monId, u8 *dst)
+{
+ struct BattlePokemon battleMon;
+ struct MovePpInfo moveData;
+ u8 nickname[20];
+ u8 *src;
+ s16 data16;
+ u32 data32;
+ s32 size = 0;
+
+ switch (gBattleBufferA[gActiveBattler][1])
+ {
+ case REQUEST_ALL_BATTLE:
+ battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
+ battleMon.item = GetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM);
+ for (size = 0; size < MAX_MON_MOVES; ++size)
+ {
+ battleMon.moves[size] = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + size);
+ battleMon.pp[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size);
+ }
+ battleMon.ppBonuses = GetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES);
+ battleMon.friendship = GetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP);
+ battleMon.experience = GetMonData(&gPlayerParty[monId], MON_DATA_EXP);
+ battleMon.hpIV = GetMonData(&gPlayerParty[monId], MON_DATA_HP_IV);
+ battleMon.attackIV = GetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV);
+ battleMon.defenseIV = GetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV);
+ battleMon.speedIV = GetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV);
+ battleMon.spAttackIV = GetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV);
+ battleMon.spDefenseIV = GetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV);
+ battleMon.personality = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY);
+ battleMon.status1 = GetMonData(&gPlayerParty[monId], MON_DATA_STATUS);
+ battleMon.level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
+ battleMon.hp = GetMonData(&gPlayerParty[monId], MON_DATA_HP);
+ battleMon.maxHP = GetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP);
+ battleMon.attack = GetMonData(&gPlayerParty[monId], MON_DATA_ATK);
+ battleMon.defense = GetMonData(&gPlayerParty[monId], MON_DATA_DEF);
+ battleMon.speed = GetMonData(&gPlayerParty[monId], MON_DATA_SPEED);
+ battleMon.spAttack = GetMonData(&gPlayerParty[monId], MON_DATA_SPATK);
+ battleMon.spDefense = GetMonData(&gPlayerParty[monId], MON_DATA_SPDEF);
+ battleMon.isEgg = GetMonData(&gPlayerParty[monId], MON_DATA_IS_EGG);
+ battleMon.abilityNum = GetMonData(&gPlayerParty[monId], MON_DATA_ABILITY_NUM);
+ battleMon.otId = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID);
+ GetMonData(&gPlayerParty[monId], MON_DATA_NICKNAME, nickname);
+ StringCopy10(battleMon.nickname, nickname);
+ GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName);
+ src = (u8 *)&battleMon;
+ for (size = 0; size < sizeof(battleMon); ++size)
+ dst[size] = src[size];
+ break;
+ case REQUEST_SPECIES_BATTLE:
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
+ dst[0] = data16;
+ dst[1] = data16 >> 8;
+ size = 2;
+ break;
+ case REQUEST_HELDITEM_BATTLE:
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM);
+ dst[0] = data16;
+ dst[1] = data16 >> 8;
+ size = 2;
+ break;
+ case REQUEST_MOVES_PP_BATTLE:
+ for (size = 0; size < MAX_MON_MOVES; ++size)
+ {
+ moveData.moves[size] = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + size);
+ moveData.pp[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size);
+ }
+ moveData.ppBonuses = GetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES);
+ src = (u8 *)(&moveData);
+ for (size = 0; size < sizeof(moveData); ++size)
+ dst[size] = src[size];
+ break;
+ case REQUEST_MOVE1_BATTLE:
+ case REQUEST_MOVE2_BATTLE:
+ case REQUEST_MOVE3_BATTLE:
+ case REQUEST_MOVE4_BATTLE:
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE);
+ dst[0] = data16;
+ dst[1] = data16 >> 8;
+ size = 2;
+ break;
+ case REQUEST_PP_DATA_BATTLE:
+ for (size = 0; size < MAX_MON_MOVES; ++size)
+ dst[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size);
+ dst[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES);
+ ++size;
+ break;
+ case REQUEST_PPMOVE1_BATTLE:
+ case REQUEST_PPMOVE2_BATTLE:
+ case REQUEST_PPMOVE3_BATTLE:
+ case REQUEST_PPMOVE4_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE);
+ size = 1;
+ break;
+ case REQUEST_OTID_BATTLE:
+ data32 = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID);
+ dst[0] = (data32 & 0x000000FF);
+ dst[1] = (data32 & 0x0000FF00) >> 8;
+ dst[2] = (data32 & 0x00FF0000) >> 16;
+ size = 3;
+ break;
+ case REQUEST_EXP_BATTLE:
+ data32 = GetMonData(&gPlayerParty[monId], MON_DATA_EXP);
+ dst[0] = (data32 & 0x000000FF);
+ dst[1] = (data32 & 0x0000FF00) >> 8;
+ dst[2] = (data32 & 0x00FF0000) >> 16;
+ size = 3;
+ break;
+ case REQUEST_HP_EV_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_HP_EV);
+ size = 1;
+ break;
+ case REQUEST_ATK_EV_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV);
+ size = 1;
+ break;
+ case REQUEST_DEF_EV_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV);
+ size = 1;
+ break;
+ case REQUEST_SPEED_EV_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV);
+ size = 1;
+ break;
+ case REQUEST_SPATK_EV_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV);
+ size = 1;
+ break;
+ case REQUEST_SPDEF_EV_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV);
+ size = 1;
+ break;
+ case REQUEST_FRIENDSHIP_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP);
+ size = 1;
+ break;
+ case REQUEST_POKERUS_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_POKERUS);
+ size = 1;
+ break;
+ case REQUEST_MET_LOCATION_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION);
+ size = 1;
+ break;
+ case REQUEST_MET_LEVEL_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL);
+ size = 1;
+ break;
+ case REQUEST_MET_GAME_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME);
+ size = 1;
+ break;
+ case REQUEST_POKEBALL_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL);
+ size = 1;
+ break;
+ case REQUEST_ALL_IVS_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_HP_IV);
+ dst[1] = GetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV);
+ dst[2] = GetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV);
+ dst[3] = GetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV);
+ dst[4] = GetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV);
+ dst[5] = GetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV);
+ size = 6;
+ break;
+ case REQUEST_HP_IV_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_HP_IV);
+ size = 1;
+ break;
+ case REQUEST_ATK_IV_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV);
+ size = 1;
+ break;
+ case REQUEST_DEF_IV_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV);
+ size = 1;
+ break;
+ case REQUEST_SPEED_IV_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV);
+ size = 1;
+ break;
+ case REQUEST_SPATK_IV_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV);
+ size = 1;
+ break;
+ case REQUEST_SPDEF_IV_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV);
+ size = 1;
+ break;
+ case REQUEST_PERSONALITY_BATTLE:
+ data32 = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY);
+ dst[0] = (data32 & 0x000000FF);
+ dst[1] = (data32 & 0x0000FF00) >> 8;
+ dst[2] = (data32 & 0x00FF0000) >> 16;
+ dst[3] = (data32 & 0xFF000000) >> 24;
+ size = 4;
+ break;
+ case REQUEST_CHECKSUM_BATTLE:
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM);
+ dst[0] = data16;
+ dst[1] = data16 >> 8;
+ size = 2;
+ break;
+ case REQUEST_STATUS_BATTLE:
+ data32 = GetMonData(&gPlayerParty[monId], MON_DATA_STATUS);
+ dst[0] = (data32 & 0x000000FF);
+ dst[1] = (data32 & 0x0000FF00) >> 8;
+ dst[2] = (data32 & 0x00FF0000) >> 16;
+ dst[3] = (data32 & 0xFF000000) >> 24;
+ size = 4;
+ break;
+ case REQUEST_LEVEL_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
+ size = 1;
+ break;
+ case REQUEST_HP_BATTLE:
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_HP);
+ dst[0] = data16;
+ dst[1] = data16 >> 8;
+ size = 2;
+ break;
+ case REQUEST_MAX_HP_BATTLE:
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP);
+ dst[0] = data16;
+ dst[1] = data16 >> 8;
+ size = 2;
+ break;
+ case REQUEST_ATK_BATTLE:
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_ATK);
+ dst[0] = data16;
+ dst[1] = data16 >> 8;
+ size = 2;
+ break;
+ case REQUEST_DEF_BATTLE:
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_DEF);
+ dst[0] = data16;
+ dst[1] = data16 >> 8;
+ size = 2;
+ break;
+ case REQUEST_SPEED_BATTLE:
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_SPEED);
+ dst[0] = data16;
+ dst[1] = data16 >> 8;
+ size = 2;
+ break;
+ case REQUEST_SPATK_BATTLE:
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_SPATK);
+ dst[0] = data16;
+ dst[1] = data16 >> 8;
+ size = 2;
+ break;
+ case REQUEST_SPDEF_BATTLE:
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_SPDEF);
+ dst[0] = data16;
+ dst[1] = data16 >> 8;
+ size = 2;
+ break;
+ case REQUEST_COOL_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_COOL);
+ size = 1;
+ break;
+ case REQUEST_BEAUTY_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY);
+ size = 1;
+ break;
+ case REQUEST_CUTE_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_CUTE);
+ size = 1;
+ break;
+ case REQUEST_SMART_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_SMART);
+ size = 1;
+ break;
+ case REQUEST_TOUGH_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_TOUGH);
+ size = 1;
+ break;
+ case REQUEST_SHEEN_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_SHEEN);
+ size = 1;
+ break;
+ case REQUEST_COOL_RIBBON_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON);
+ size = 1;
+ break;
+ case REQUEST_BEAUTY_RIBBON_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON);
+ size = 1;
+ break;
+ case REQUEST_CUTE_RIBBON_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON);
+ size = 1;
+ break;
+ case REQUEST_SMART_RIBBON_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON);
+ size = 1;
+ break;
+ case REQUEST_TOUGH_RIBBON_BATTLE:
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON);
+ size = 1;
+ break;
+ }
+ return size;
+}
+
+static void OakOldManHandleGetRawMonData(void)
+{
+ PlayerHandleGetRawMonData();
+}
+
+static void OakOldManHandleSetMonData(void)
+{
+ u8 monToCheck;
+ u8 i;
+
+ if (gBattleBufferA[gActiveBattler][2] == 0)
+ {
+ SetOakOldManMonData(gBattlerPartyIndexes[gActiveBattler]);
+ }
+ else
+ {
+ monToCheck = gBattleBufferA[gActiveBattler][2];
+ for (i = 0; i < PARTY_SIZE; ++i)
+ {
+ if (monToCheck & 1)
+ SetOakOldManMonData(i);
+ monToCheck >>= 1;
+ }
+ }
+ OakOldManBufferExecCompleted();
+}
+
+static void SetOakOldManMonData(u8 monId)
+{
+ struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3];
+ struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3];
+ s32 i;
+
+ switch (gBattleBufferA[gActiveBattler][1])
+ {
+ case REQUEST_ALL_BATTLE:
+ {
+ u8 iv;
+
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &battlePokemon->species);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &battlePokemon->item);
+ for (i = 0; i < MAX_MON_MOVES; ++i)
+ {
+ SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + i, &battlePokemon->pp[i]);
+ }
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &battlePokemon->ppBonuses);
+ SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &battlePokemon->friendship);
+ SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &battlePokemon->experience);
+ iv = battlePokemon->hpIV;
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &iv);
+ iv = battlePokemon->attackIV;
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &iv);
+ iv = battlePokemon->defenseIV;
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &iv);
+ iv = battlePokemon->speedIV;
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &iv);
+ iv = battlePokemon->spAttackIV;
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &iv);
+ iv = battlePokemon->spDefenseIV;
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &iv);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &battlePokemon->personality);
+ SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &battlePokemon->status1);
+ SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &battlePokemon->level);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP, &battlePokemon->hp);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &battlePokemon->maxHP);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &battlePokemon->attack);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &battlePokemon->defense);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &battlePokemon->speed);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &battlePokemon->spAttack);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &battlePokemon->spDefense);
+ }
+ break;
+ case REQUEST_SPECIES_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_HELDITEM_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_MOVES_PP_BATTLE:
+ for (i = 0; i < MAX_MON_MOVES; ++i)
+ {
+ SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + i, &moveData->moves[i]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + i, &moveData->pp[i]);
+ }
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
+ break;
+ case REQUEST_MOVE1_BATTLE:
+ case REQUEST_MOVE2_BATTLE:
+ case REQUEST_MOVE3_BATTLE:
+ case REQUEST_MOVE4_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_PP_DATA_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]);
+ break;
+ case REQUEST_PPMOVE1_BATTLE:
+ case REQUEST_PPMOVE2_BATTLE:
+ case REQUEST_PPMOVE3_BATTLE:
+ case REQUEST_PPMOVE4_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_OTID_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_EXP_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_HP_EV_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_ATK_EV_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_DEF_EV_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_SPEED_EV_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_SPATK_EV_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_SPDEF_EV_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_FRIENDSHIP_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_POKERUS_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_MET_LOCATION_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_MET_LEVEL_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_MET_GAME_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_POKEBALL_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_ALL_IVS_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]);
+ break;
+ case REQUEST_HP_IV_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_ATK_IV_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_DEF_IV_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_SPEED_IV_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_SPATK_IV_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_SPDEF_IV_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_PERSONALITY_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_CHECKSUM_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_STATUS_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_LEVEL_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_HP_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_MAX_HP_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_ATK_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_DEF_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_SPEED_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_SPATK_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_SPDEF_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_COOL_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_BEAUTY_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_CUTE_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_SMART_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_TOUGH_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_SHEEN_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_COOL_RIBBON_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_BEAUTY_RIBBON_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_CUTE_RIBBON_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_SMART_RIBBON_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ case REQUEST_TOUGH_RIBBON_BATTLE:
+ SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]);
+ break;
+ }
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+}
+
+static void OakOldManHandleSetRawMonData(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleLoadMonSprite(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleSwitchInAnim(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleReturnMonToBall(void)
+{
+ if (gBattleBufferA[gActiveBattler][1] == 0)
+ {
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON);
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E89C4;
+ }
+ else
+ {
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
+ OakOldManBufferExecCompleted();
+ }
+}
+
+static void OakOldManHandleDrawTrainerPic(void)
+{
+ if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ {
+ DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler);
+ SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
+ 80,
+ (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80,
+ 30);
+ }
+ else
+ {
+ DecompressTrainerBackPalette(5, gActiveBattler);
+ SetMultiuseSpriteTemplateToTrainerBack(5, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
+ 80,
+ (8 - gTrainerBackPicCoords[5].size) * 4 + 80,
+ 30);
+ }
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8033EEC;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy;
+}
+
+static void OakOldManHandleTrainerSlide(void)
+{
+ if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ {
+ DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler);
+ SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
+ 80,
+ (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80,
+ 30);
+ }
+ else
+ {
+ DecompressTrainerBackPalette(5, gActiveBattler);
+ SetMultiuseSpriteTemplateToTrainerBack(5, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
+ 80,
+ (8 - gTrainerBackPicCoords[5].size) * 4 + 80,
+ 30);
+ }
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8033EEC;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy2;
+}
+
+static void OakOldManHandleTrainerSlideBack(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleFaintAnimation(void)
+{
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0)
+ {
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
+ ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState;
+ }
+ else
+ {
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
+ {
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ PlaySE12WithPanning(SE_POKE_DEAD, SOUND_PAN_ATTACKER);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8012110;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E82F4;
+ }
+ }
+}
+
+static void OakOldManHandlePaletteFade(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleSuccessBallThrowAnim(void)
+{
+ gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS;
+ gDoingBattleAnim = TRUE;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW);
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone;
+}
+
+static void OakOldManHandleBallThrowAnim(void)
+{
+ u8 ballThrowCaseId = gBattleBufferA[gActiveBattler][1];
+
+ gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId;
+ gDoingBattleAnim = TRUE;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW);
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone;
+}
+
+static void OakOldManHandlePause(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleMoveAnimation(void)
+{
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+
+ gAnimMoveTurn = gBattleBufferA[gActiveBattler][3];
+ gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8);
+ gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24);
+ gAnimFriendship = gBattleBufferA[gActiveBattler][10];
+ gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8);
+ gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16];
+ gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality;
+ if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE
+ {
+ OakOldManBufferExecCompleted();
+ }
+ else
+ {
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = OakOldManDoMoveAnimation;
+ }
+}
+
+static void OakOldManDoMoveAnimation(void)
+{
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
+ {
+ case 0:
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
+ break;
+ case 1:
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
+ {
+ sub_8035450(0);
+ DoMoveAnim(move);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
+ }
+ break;
+ case 2:
+ gAnimScriptCallback();
+ if (!gAnimScriptActive)
+ {
+ sub_8035450(1);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3;
+ }
+ break;
+ case 3:
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
+ {
+ CopyAllBattleSpritesInvisibilities();
+ TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ OakOldManBufferExecCompleted();
+ }
+ break;
+ }
+}
+
+static void OakOldManHandlePrintString(void)
+{
+ u16 *stringId;
+
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
+ if (gBattleTypeFlags & BATTLE_TYPE_OLD_MAN_TUTORIAL && *stringId == 1)
+ {
+ OakOldManBufferExecCompleted();
+ }
+ else
+ {
+ BufferStringBattle(*stringId);
+ if (sub_80D89B0(*stringId))
+ BattlePutTextOnWindow(gDisplayedStringBattle, 64);
+ else
+ BattlePutTextOnWindow(gDisplayedStringBattle, 0);
+ if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ {
+ switch (*stringId)
+ {
+ case 216:
+ if (!sub_80EB2E0(2))
+ {
+ sub_80EB2F4(2);
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E8584;
+ return;
+ }
+ break;
+ case 30:
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E85AC;
+ return;
+ case 383:
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E85C0;
+ return;
+ case 227:
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E8598;
+ return;
+ }
+ }
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
+ }
+}
+
+static void OakOldManHandlePrintSelectionString(void)
+{
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
+ OakOldManHandlePrintString();
+ else
+ OakOldManBufferExecCompleted();
+}
+
+static void sub_80EA690(void)
+{
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 160;
+ if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseAction;
+ else
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E7844;
+ }
+}
+
+static void OakOldManHandleChooseAction(void)
+{
+ s32 i;
+
+ gBattlerControllerFuncs[gActiveBattler] = sub_80EA690;
+ BattlePutTextOnWindow(gUnknown_83FDA4C, 0);
+ BattlePutTextOnWindow(gUnknown_83FE725, 2);
+ for (i = 0; i < MAX_MON_MOVES; ++i)
+ ActionSelectionDestroyCursorAt((u8)i);
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
+ if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo);
+ else
+ BattleStringExpandPlaceholdersToDisplayedString(gUnknown_83FE6FA);
+ BattlePutTextOnWindow(gDisplayedStringBattle, 1);
+}
+
+static void OakOldManHandleUnknownYesNoBox(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void sub_80EA798(void)
+{
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 320;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E7988;
+ }
+}
+
+static void OakOldManHandleChooseMove(void)
+{
+ if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ {
+ InitMoveSelectionsVarsAndStrings();
+ gBattlerControllerFuncs[gActiveBattler] = sub_80EA798;
+ }
+ else
+ {
+ switch (gBattleStruct->field_95)
+ {
+ case 0:
+ InitMoveSelectionsVarsAndStrings();
+ ++gBattleStruct->field_95;
+ gBattleStruct->field_97 = 80;
+ // fall through
+ case 1:
+ if (--gBattleStruct->field_97 == 0)
+ {
+ PlaySE(SE_SELECT);
+ BtlController_EmitTwoReturnValues(1, 10, 0x100);
+ OakOldManBufferExecCompleted();
+ }
+ break;
+ }
+ }
+}
+
+static void OakOldManHandleChooseItem(void)
+{
+ s32 i;
+
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
+ gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem;
+ gBattlerInMenuId = gActiveBattler;
+ for (i = 0; i < 3; ++i)
+ gUnknown_203B0DC[i] = gBattleBufferA[gActiveBattler][i + 1];
+}
+
+static void OakOldManHandleChoosePokemon(void)
+{
+ s32 i;
+
+ gUnknown_3004FFC[gActiveBattler] = CreateTask(TaskDummy, 0xFF);
+ gTasks[gUnknown_3004FFC[gActiveBattler]].data[0] = gBattleBufferA[gActiveBattler][1] & 0xF;
+ *(&gBattleStruct->battlerPreventingSwitchout) = gBattleBufferA[gActiveBattler][1] >> 4;
+ *(&gBattleStruct->field_8B) = gBattleBufferA[gActiveBattler][2];
+ *(&gBattleStruct->abilityPreventingSwitchout) = gBattleBufferA[gActiveBattler][3];
+ for (i = 0; i < 3; ++i)
+ gUnknown_203B0DC[i] = gBattleBufferA[gActiveBattler][4 + i];
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
+ gBattlerControllerFuncs[gActiveBattler] = OpenPartyMenuToChooseMon;
+ gBattlerInMenuId = gActiveBattler;
+}
+
+static void OakOldManHandleCmd23(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleHealthBarUpdate(void)
+{
+ s16 hpVal;
+
+ LoadBattleBarGfx(0);
+ hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
+ if (hpVal != INSTANT_HP_BAR_DROP)
+ {
+ u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
+ u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP);
+
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal);
+ }
+ else
+ {
+ u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
+
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal);
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], 0, HP_CURRENT);
+ }
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone;
+}
+
+static void OakOldManHandleExpUpdate(void)
+{
+ u8 monId = gBattleBufferA[gActiveBattler][1];
+
+ if (GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL) >= MAX_LEVEL)
+ {
+ OakOldManBufferExecCompleted();
+ }
+ else
+ {
+ s16 expPointsToGive;
+ u8 taskId;
+
+ LoadBattleBarGfx(1);
+ GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); // Unused return value.
+ expPointsToGive = T1_READ_16(&gBattleBufferA[gActiveBattler][2]);
+ taskId = CreateTask(Task_GiveExpToMon, 10);
+ gTasks[taskId].tExpTask_monId = monId;
+ gTasks[taskId].tExpTask_gainedExp = expPointsToGive;
+ gTasks[taskId].tExpTask_battler = gActiveBattler;
+ gBattlerControllerFuncs[gActiveBattler] = nullsub_81;
+ }
+}
+
+static void OakOldManHandleStatusIconUpdate(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleStatusAnimation(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleStatusXor(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleDataTransfer(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleDMA3Transfer(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandlePlayBGM(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleCmd32(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleTwoReturnValues(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleChosenMonReturnValue(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleOneReturnValue(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleOneReturnValue_Duplicate(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleCmd37(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleCmd38(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleCmd39(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleCmd40(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleHitAnimation(void)
+{
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE)
+ {
+ OakOldManBufferExecCompleted();
+ }
+ else
+ {
+ gDoingBattleAnim = TRUE;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ DoHitAnimHealthboxEffect(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect;
+ }
+}
+
+static void OakOldManHandleCmd42(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandlePlaySE(void)
+{
+ PlaySE(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandlePlayFanfare(void)
+{
+ PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleFaintingCry(void)
+{
+ u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
+
+ PlayCry1(species, 25);
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleIntroSlide(void)
+{
+ HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
+ gIntroSlideFlags |= 1;
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleIntroTrainerBallThrow(void)
+{
+ u8 paletteNum;
+ u8 taskId;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ {
+ SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler;
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_80335F8);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
+ paletteNum = AllocSpritePalette(0xD6F8);
+ LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
+ taskId = CreateTask(sub_80EB0A8, 5);
+ gTasks[taskId].data[0] = gActiveBattler;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown)
+ gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary;
+ gBattleSpritesDataPtr->animationData->field_9_x1 = 1;
+ gBattlerControllerFuncs[gActiveBattler] = nullsub_13;
+ }
+ else
+ {
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown)
+ gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary;
+ OakOldManBufferExecCompleted();
+ }
+}
+
+static void sub_80EAF34(u8 battlerId)
+{
+ u16 species;
+
+ gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies = SPECIES_NONE;
+ gBattlerPartyIndexes[battlerId] = gBattleBufferA[battlerId][1];
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES);
+ gUnknown_3004FFC[battlerId] = CreateInvisibleSpriteWithCallback(sub_8033E3C);
+ SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId));
+ gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
+ GetBattlerSpriteCoord(battlerId, 2),
+ GetBattlerSpriteDefault_Y(battlerId),
+ GetBattlerSpriteSubpriority(battlerId));
+ gSprites[gUnknown_3004FFC[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
+ gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId;
+ gSprites[gBattlerSpriteIds[battlerId]].data[2] = species;
+ gSprites[gBattlerSpriteIds[battlerId]].oam.paletteNum = battlerId;
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerId]], gBattleMonForms[battlerId]);
+ gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE;
+ gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy;
+ gSprites[gUnknown_3004FFC[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT);
+}
+
+static void sub_80EB0A8(u8 taskId)
+{
+ if (gTasks[taskId].data[1] < 31)
+ {
+ ++gTasks[taskId].data[1];
+ }
+ else
+ {
+ u8 savedActiveBattler = gActiveBattler;
+
+ gActiveBattler = gTasks[taskId].data[0];
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_80EAF34(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E7B4C;
+ gActiveBattler = savedActiveBattler;
+ DestroyTask(taskId);
+ }
+}
+
+static void OakOldManHandleDrawPartyStatusSummary(void)
+{
+ if (gBattleBufferA[gActiveBattler][1] != 0
+ && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
+ {
+ OakOldManBufferExecCompleted();
+ }
+ else
+ {
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = TRUE;
+ gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler,
+ (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4],
+ gBattleBufferA[gActiveBattler][1],
+ gBattleBufferA[gActiveBattler][2]);
+ OakOldManBufferExecCompleted();
+ }
+}
+
+static void OakOldManHandleHidePartyStatusSummary(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleEndBounceEffect(void)
+{
+ EndBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX);
+ EndBounceEffect(gActiveBattler, BOUNCE_MON);
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleSpriteInvisibility(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleBattleAnimation(void)
+{
+ u8 animationId = gBattleBufferA[gActiveBattler][1];
+ u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
+
+ if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
+ OakOldManBufferExecCompleted();
+ else
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
+}
+
+static void OakOldManHandleLinkStandbyMsg(void)
+{
+ switch (gBattleBufferA[gActiveBattler][1])
+ {
+ case 0:
+ case 1:
+ EndBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX);
+ EndBounceEffect(gActiveBattler, BOUNCE_MON);
+ break;
+ case 2:
+ break;
+ }
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleResetActionMoveSelection(void)
+{
+ OakOldManBufferExecCompleted();
+}
+
+static void OakOldManHandleCmd55(void)
+{
+ gBattleOutcome = gBattleBufferA[gActiveBattler][1];
+ FadeOutMapMusic(5);
+ BeginFastPaletteFade(3);
+ OakOldManBufferExecCompleted();
+ if (!(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) && gBattleTypeFlags & BATTLE_TYPE_LINK)
+ gBattlerControllerFuncs[gActiveBattler] = sub_80E7930;
+}
+
+static void OakOldManCmdEnd(void)
+{
+}
+
+bool8 sub_80EB2E0(u8 a1)
+{
+ return gBattleStruct->field_96 & a1;
+}
+
+void sub_80EB2F4(u8 a1)
+{
+ gBattleStruct->field_96 |= a1;
+}
+
+void sub_80EB30C(void)
+{
+ u32 width = 0x1A;
+ u32 pal = 7;
+
+ FillBgTilemapBufferRect(0, 0x30, 0, 0xE, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0x31, 1, 0xE, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0x32, 2, 0xE, width, 1, pal);
+ FillBgTilemapBufferRect(0, 0x33, 0x1C, 0xE, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0x34, 0x1D, 0xE, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0x35, 0, 0xF, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0x36, 1, 0xF, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0x38, 0x1C, 0xF, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0x39, 0x1D, 0xF, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0x3A, 0, 0x10, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0x3B, 1, 0x10, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0x3C, 0x1C, 0x10, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0x3D, 0x1D, 0x10, 1, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x3A), 0, 0x11, 1, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x3B), 1, 0x11, 1, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x3C), 0x1C, 0x11, 1, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x3D), 0x1D, 0x11, 1, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x35), 0, 0x12, 1, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x36), 1, 0x12, 1, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x38), 0x1C, 0x12, 1, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x39), 0x1D, 0x12, 1, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x30), 0, 0x13, 1, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x31), 1, 0x13, 1, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x32), 2, 0x13, width, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x33), 0x1C, 0x13, 1, 1, pal);
+ FillBgTilemapBufferRect(0, BG_TILE_V_FLIP(0x34), 0x1D, 0x13, 1, 1, pal);
+}
+
+void sub_80EB524(void)
+{
+ u32 pal = 0;
+ u32 width = 0x1A;
+ u32 height;
+
+ FillBgTilemapBufferRect(0, 3, 0, 0xE, 1, 1, pal);
+ height = 4;
+ FillBgTilemapBufferRect(0, 4, 1, 0xE, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 5, 2, 0xE, width, 1, pal);
+ FillBgTilemapBufferRect(0, 6, 0x1C, 0xE, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 7, 0x1D, 0xE, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 8, 0, 0xF, 1, height, pal);
+ FillBgTilemapBufferRect(0, 9, 1, 0xF, 1, height, pal);
+ FillBgTilemapBufferRect(0, 0xA, 2, 0xF, width, height, pal);
+ FillBgTilemapBufferRect(0, 0xB, 0x1C, 0xF, 1, height, pal);
+ FillBgTilemapBufferRect(0, 0xC, 0x1D, 0xF, 1, height, pal);
+ FillBgTilemapBufferRect(0, 0xD, 0, 0x13, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0xE, 1, 0x13, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0xF, 2, 0x13, width, 1, pal);
+ FillBgTilemapBufferRect(0, 0x10, 0x1C, 0x13, 1, 1, pal);
+ FillBgTilemapBufferRect(0, 0x11, 0x1D, 0x13, 1, 1, pal);
+}
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index 794b83b73..a9173f1a9 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -45,7 +45,7 @@ static void OpponentHandleTrainerSlideBack(void);
static void OpponentHandleFaintAnimation(void);
static void OpponentHandlePaletteFade(void);
static void OpponentHandleSuccessBallThrowAnim(void);
-static void OpponentHandleBallThrow(void);
+static void OpponentHandleBallThrowAnim(void);
static void OpponentHandlePause(void);
static void OpponentHandleMoveAnimation(void);
static void OpponentHandlePrintString(void);
@@ -116,7 +116,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
OpponentHandleFaintAnimation,
OpponentHandlePaletteFade,
OpponentHandleSuccessBallThrowAnim,
- OpponentHandleBallThrow,
+ OpponentHandleBallThrowAnim,
OpponentHandlePause,
OpponentHandleMoveAnimation,
OpponentHandlePrintString,
@@ -1231,7 +1231,7 @@ static void OpponentHandleSuccessBallThrowAnim(void)
OpponentBufferExecCompleted();
}
-static void OpponentHandleBallThrow(void)
+static void OpponentHandleBallThrowAnim(void)
{
OpponentBufferExecCompleted();
}
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index a9bb5bc6e..f8d5958ba 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -839,7 +839,7 @@ void sub_802F6A8(void)
else
{
m4aSongNumStop(SE_HINSI);
- gMain.inBattle = 0;
+ gMain.inBattle = FALSE;
gMain.callback1 = gPreBattleCallback1;
SetMainCallback2(gMain.savedCallback);
}
@@ -1318,7 +1318,6 @@ static void WaitForMonSelection(void)
BtlController_EmitChosenMonReturnValue(1, gUnknown_203B0C1, gUnknown_203B0DC);
else
BtlController_EmitChosenMonReturnValue(1, 6, NULL);
-
if ((gBattleBufferA[gActiveBattler][1] & 0xF) == 1)
PrintLinkStandbyMsg();
PlayerBufferExecCompleted();
diff --git a/src/battle_controllers.c b/src/battle_controllers.c
index 544af1006..f3530fc4b 100644
--- a/src/battle_controllers.c
+++ b/src/battle_controllers.c
@@ -85,9 +85,9 @@ static void InitSinglePlayerBtlControllers(void)
gBattleMainFunc = BeginBattleIntro;
if (gBattleTypeFlags & BATTLE_TYPE_POKEDUDE)
{
- gBattlerControllerFuncs[0] = SetControllerToPokedude;
+ gBattlerControllerFuncs[0] = SetControllerToPokeDude;
gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattlerControllerFuncs[1] = SetControllerToPokedude;
+ gBattlerControllerFuncs[1] = SetControllerToPokeDude;
gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
gBattlersCount = 2;
}
@@ -95,8 +95,8 @@ static void InitSinglePlayerBtlControllers(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
gBattlerControllerFuncs[0] = SetControllerToSafari;
- else if (gBattleTypeFlags & (BATTLE_TYPE_OLDMAN_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE))
- gBattlerControllerFuncs[0] = SetControllerToOakOrOldman;
+ else if (gBattleTypeFlags & (BATTLE_TYPE_OLD_MAN_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE))
+ gBattlerControllerFuncs[0] = SetControllerToOakOrOldMan;
else
gBattlerControllerFuncs[0] = SetControllerToPlayer;
gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
@@ -110,13 +110,13 @@ static void InitSinglePlayerBtlControllers(void)
gBattleMainFunc = BeginBattleIntro;
if (gBattleTypeFlags & BATTLE_TYPE_POKEDUDE)
{
- gBattlerControllerFuncs[0] = SetControllerToPokedude;
+ gBattlerControllerFuncs[0] = SetControllerToPokeDude;
gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattlerControllerFuncs[1] = SetControllerToPokedude;
+ gBattlerControllerFuncs[1] = SetControllerToPokeDude;
gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
- gBattlerControllerFuncs[2] = SetControllerToPokedude;
+ gBattlerControllerFuncs[2] = SetControllerToPokeDude;
gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT;
- gBattlerControllerFuncs[3] = SetControllerToPokedude;
+ gBattlerControllerFuncs[3] = SetControllerToPokeDude;
gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT;
gBattlersCount = MAX_BATTLERS_COUNT;
}
@@ -774,7 +774,7 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID)
sBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY;
sBattleBuffersTransferData[2] = stringID;
sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
- stringInfo = (struct BattleMsgData*)(&sBattleBuffersTransferData[4]);
+ stringInfo = (struct BattleMsgData *)(&sBattleBuffersTransferData[4]);
stringInfo->currentMove = gCurrentMove;
stringInfo->originallyUsedMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem;
diff --git a/src/battle_main.c b/src/battle_main.c
new file mode 100644
index 000000000..1b1614a5a
--- /dev/null
+++ b/src/battle_main.c
@@ -0,0 +1,4412 @@
+#include "global.h"
+#include "battle.h"
+#include "battle_anim.h"
+#include "battle_ai_script_commands.h"
+#include "battle_controllers.h"
+#include "battle_interface.h"
+#include "battle_main.h"
+#include "battle_message.h"
+#include "battle_scripts.h"
+#include "battle_setup.h"
+#include "battle_tower.h"
+#include "battle_string_ids.h"
+#include "berry.h"
+#include "bg.h"
+#include "data.h"
+#include "decompress.h"
+#include "dma3.h"
+#include "event_data.h"
+#include "evolution_scene.h"
+#include "graphics.h"
+#include "gpu_regs.h"
+#include "help_system.h"
+#include "international_string_util.h"
+#include "item.h"
+#include "link.h"
+#include "link_rfu.h"
+#include "load_save.h"
+#include "main.h"
+#include "malloc.h"
+#include "m4a.h"
+#include "palette.h"
+#include "party_menu.h"
+#include "pokeball.h"
+#include "pokedex.h"
+#include "pokemon.h"
+#include "quest_log.h"
+#include "random.h"
+#include "roamer.h"
+#include "safari_zone.h"
+#include "scanline_effect.h"
+#include "sound.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "strings.h"
+#include "task.h"
+#include "text.h"
+#include "trig.h"
+#include "vs_seeker.h"
+#include "util.h"
+#include "window.h"
+#include "cable_club.h"
+#include "constants/abilities.h"
+#include "constants/battle_move_effects.h"
+#include "constants/hold_effects.h"
+#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/pokemon.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "constants/trainers.h"
+#include "constants/trainer_classes.h"
+
+static void sub_80111EC(struct Sprite *sprite);
+static void HandleAction_UseMove(void);
+static void HandleAction_Switch(void);
+static void HandleAction_UseItem(void);
+static void HandleAction_Run(void);
+static void HandleAction_WatchesCarefully(void);
+static void HandleAction_SafariZoneBallThrow(void);
+static void HandleAction_ThrowPokeblock(void);
+static void HandleAction_GoNear(void);
+static void HandleAction_SafariZoneRun(void);
+static void HandleAction_OldManBallThrow(void);
+static void HandleAction_TryFinish(void);
+static void HandleAction_NothingIsFainted(void);
+static void HandleAction_ActionFinished(void);
+static void HandleEndTurn_ContinueBattle(void);
+static void HandleEndTurn_BattleWon(void);
+static void HandleEndTurn_BattleLost(void);
+static void HandleEndTurn_RanFromBattle(void);
+static void HandleEndTurn_MonFled(void);
+static void HandleEndTurn_FinishBattle(void);
+static void CB2_InitBattleInternal(void);
+static void CB2_PreInitMultiBattle(void);
+static void CB2_HandleStartMultiBattle(void);
+static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum);
+static void CB2_HandleStartBattle(void);
+static void TryCorrectShedinjaLanguage(struct Pokemon *mon);
+static void BattleMainCB1(void);
+static void CB2_QuitPokeDudeBattle(void);
+static void sub_80111FC(struct Sprite *sprite);
+static void sub_8011B94(void);
+static void sub_8011BB0(void);
+static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite);
+static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite);
+static void sub_8011E3C(struct Sprite *sprite);
+static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite);
+static void sub_8012060(struct Sprite *sprite);
+static void oac_poke_ally_(struct Sprite *sprite);
+static void SpriteCallbackDummy3(struct Sprite *sprite);
+static void SpriteCB_BounceEffect(struct Sprite *sprite);
+static void sub_8012398(struct Sprite *sprite);
+static void BattleStartClearSetData(void);
+static void BattleIntroGetMonsData(void);
+static void TurnValuesCleanUp(bool8 var0);
+static void SpecialStatusesClear(void);
+static void BattleIntroPrepareBackgroundSlide(void);
+static void BattleIntroDrawTrainersOrMonsSprites(void);
+static void BattleIntroDrawPartySummaryScreens(void);
+static void BattleIntroPrintTrainerWantsToBattle(void);
+static void BattleIntroPrintWildMonAttacked(void);
+static void BattleIntroPrintOpponentSendsOut(void);
+static void BattleIntroPrintPlayerSendsOut(void);
+static void BattleIntroRecordMonsToDex(void);
+static void BattleIntroOpponentSendsOutMonAnimation(void);
+static void BattleIntroPlayerSendsOutMonAnimation(void);
+static void TryDoEventsBeforeFirstTurn(void);
+static void HandleTurnActionSelectionState(void);
+static void RunTurnActionsFunctions(void);
+static void SetActionsAndBattlersTurnOrder(void);
+static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void);
+static void HandleEndTurn_FinishBattle(void);
+static void FreeResetData_ReturnToOvOrDoEvolutions(void);
+static void ReturnFromBattleToOverworld(void);
+static void TryEvolvePokemon(void);
+static void WaitForEvoSceneToFinish(void);
+
+EWRAM_DATA u16 gBattle_BG0_X = 0;
+EWRAM_DATA u16 gBattle_BG0_Y = 0;
+EWRAM_DATA u16 gBattle_BG1_X = 0;
+EWRAM_DATA u16 gBattle_BG1_Y = 0;
+EWRAM_DATA u16 gBattle_BG2_X = 0;
+EWRAM_DATA u16 gBattle_BG2_Y = 0;
+EWRAM_DATA u16 gBattle_BG3_X = 0;
+EWRAM_DATA u16 gBattle_BG3_Y = 0;
+EWRAM_DATA u16 gBattle_WIN0H = 0;
+EWRAM_DATA u16 gBattle_WIN0V = 0;
+EWRAM_DATA u16 gBattle_WIN1H = 0;
+EWRAM_DATA u16 gBattle_WIN1V = 0;
+EWRAM_DATA u8 gDisplayedStringBattle[300] = {0};
+EWRAM_DATA u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT] = {0};
+EWRAM_DATA u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT] = {0};
+EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT] = {0};
+static EWRAM_DATA u32 gUnknown_2022AE8[25] = {0};
+EWRAM_DATA u32 gBattleTypeFlags = 0;
+EWRAM_DATA u8 gBattleTerrain = 0;
+EWRAM_DATA u32 gUnknown_2022B54 = 0;
+EWRAM_DATA struct UnknownPokemonStruct4 gUnknown_2022B58[3] = {0};
+EWRAM_DATA u8 *gUnknown_2022BB8 = NULL;
+EWRAM_DATA u8 *gUnknown_2022BBC = NULL;
+EWRAM_DATA u16 *gUnknown_2022BC0 = NULL;
+EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0};
+EWRAM_DATA u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200] = {0};
+EWRAM_DATA u8 gActiveBattler = 0;
+EWRAM_DATA u32 gBattleControllerExecFlags = 0;
+EWRAM_DATA u8 gBattlersCount = 0;
+EWRAM_DATA u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gBattlerPositions[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gBattlerByTurnOrder[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gCurrentTurnActionNumber = 0;
+EWRAM_DATA u8 gCurrentActionFuncId = 0;
+EWRAM_DATA struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gCurrMovePos = 0;
+EWRAM_DATA u8 gChosenMovePos = 0;
+EWRAM_DATA u16 gCurrentMove = 0;
+EWRAM_DATA u16 gChosenMove = 0;
+EWRAM_DATA u16 gCalledMove = 0;
+EWRAM_DATA s32 gBattleMoveDamage = 0;
+EWRAM_DATA s32 gHpDealt = 0;
+EWRAM_DATA s32 gTakenDmg[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gLastUsedItem = 0;
+EWRAM_DATA u8 gLastUsedAbility = 0;
+EWRAM_DATA u8 gBattlerAttacker = 0;
+EWRAM_DATA u8 gBattlerTarget = 0;
+EWRAM_DATA u8 gBattlerFainted = 0;
+EWRAM_DATA u8 gEffectBattler = 0;
+EWRAM_DATA u8 gPotentialItemEffectBattler = 0;
+EWRAM_DATA u8 gAbsentBattlerFlags = 0;
+EWRAM_DATA u8 gCritMultiplier = 0;
+EWRAM_DATA u8 gMultiHitCounter = 0;
+EWRAM_DATA const u8 *gBattlescriptCurrInstr = NULL;
+EWRAM_DATA u32 gUnusedBattleMainVar = 0;
+EWRAM_DATA u8 gChosenActionByBattler[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA const u8 *gSelectionBattleScripts[MAX_BATTLERS_COUNT] = {NULL};
+EWRAM_DATA u16 gLastPrintedMoves[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gLastMoves[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gLastLandedMoves[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gLastHitByType[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gLastResultingMoves[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gLockedMoves[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gLastHitBy[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gMoveResultFlags = 0;
+EWRAM_DATA u32 gHitMarker = 0;
+static EWRAM_DATA u8 gUnknown_2023DD4[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gUnknown_2023DDC = 0;
+EWRAM_DATA u16 gSideStatuses[2] = {0};
+EWRAM_DATA struct SideTimer gSideTimers[2] = {0};
+EWRAM_DATA u32 gStatuses3[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gPauseCounterBattle = 0;
+EWRAM_DATA u16 gPaydayMoney = 0;
+EWRAM_DATA u16 gRandomTurnNumber = 0;
+EWRAM_DATA u8 gBattleCommunication[BATTLE_COMMUNICATION_ENTRIES_COUNT] = {0};
+EWRAM_DATA u8 gBattleOutcome = 0;
+EWRAM_DATA struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u16 gBattleWeather = 0;
+EWRAM_DATA struct WishFutureKnock gWishFutureKnock = {0};
+EWRAM_DATA u16 gIntroSlideFlags = 0;
+EWRAM_DATA u8 gSentPokesToOpponent[2] = {0};
+EWRAM_DATA u16 gDynamicBasePower = 0;
+EWRAM_DATA u16 gExpShareExp = 0;
+EWRAM_DATA struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA struct BattleScripting gBattleScripting = {0};
+EWRAM_DATA struct BattleStruct *gBattleStruct = NULL;
+EWRAM_DATA u8 *gLinkBattleSendBuffer = NULL;
+EWRAM_DATA u8 *gLinkBattleRecvBuffer = NULL;
+EWRAM_DATA struct BattleResources *gBattleResources = NULL;
+EWRAM_DATA u8 gActionSelectionCursor[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gBattlerStatusSummaryTaskId[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA u8 gBattlerInMenuId = 0;
+EWRAM_DATA bool8 gDoingBattleAnim = FALSE;
+EWRAM_DATA u32 gTransformedPersonalities[MAX_BATTLERS_COUNT] = {0};
+EWRAM_DATA struct BattleSpriteData *gBattleSpritesDataPtr = NULL;
+EWRAM_DATA struct MonSpritesGfx *gMonSpritesGfxPtr = NULL;
+EWRAM_DATA u16 gBattleMovePower = 0;
+EWRAM_DATA u16 gMoveToLearn = 0;
+EWRAM_DATA u8 gBattleMonForms[MAX_BATTLERS_COUNT] = {0};
+
+void (*gPreBattleCallback1)(void);
+void (*gBattleMainFunc)(void);
+struct BattleResults gBattleResults;
+u8 gLeveledUpInBattle;
+void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
+u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
+u8 gMultiUsePlayerCursor;
+u8 gNumberOfMovesToChoose;
+u8 gUnknown_3004FFC[MAX_BATTLERS_COUNT];
+
+static const struct ScanlineEffectParams sIntroScanlineParams16Bit =
+{
+ &REG_BG3HOFS, SCANLINE_EFFECT_DMACNT_16BIT, 1
+};
+
+const struct SpriteTemplate gUnknown_824EFF0 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80111EC,
+};
+
+static const u8 sText_ShedinjaJpnName[] = _("ヌケニン"); // Nukenin
+
+const struct OamData gOamData_824F010 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_NORMAL,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(64x64),
+ .x = 0,
+ .size = SPRITE_SIZE(64x64),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const struct OamData gOamData_824F018 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_NORMAL,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(64x64),
+ .x = 0,
+ .size = SPRITE_SIZE(64x64),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 2,
+ .affineParam = 0,
+};
+
+// not used
+static const union AnimCmd gUnknown_824F020[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_JUMP(0),
+};
+
+// not used
+static const union AnimCmd *const gUnknown_824F028[] =
+{
+ gUnknown_824F020,
+};
+
+// not used
+static const union AffineAnimCmd gUnknown_824F02C[] =
+{
+ AFFINEANIMCMD_FRAME(-0x10, 0x0, 0, 4),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 0x3C),
+ AFFINEANIMCMD_JUMP(1),
+};
+
+// not used
+static const union AffineAnimCmd *const gUnknown_824F044[] =
+{
+ gUnknown_824F02C,
+};
+
+static const s8 gUnknown_824F048[] = { -32, -16, -16, -32, -32, 0, 0, 0 };
+
+// format: attacking type, defending type, damage multiplier
+// the multiplier is a (decimal) fixed-point number:
+// 20 is ×2.0 TYPE_MUL_SUPER_EFFECTIVE
+// 10 is ×1.0 TYPE_MUL_NORMAL
+// 05 is ×0.5 TYPE_MUL_NOT_EFFECTIVE
+// 00 is ×0.0 TYPE_MUL_NO_EFFECT
+const u8 gTypeEffectiveness[336] =
+{
+ TYPE_NORMAL, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_NORMAL, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIRE, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIRE, TYPE_WATER, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIRE, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIRE, TYPE_ICE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIRE, TYPE_BUG, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIRE, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIRE, TYPE_DRAGON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIRE, TYPE_STEEL, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_WATER, TYPE_FIRE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_WATER, TYPE_WATER, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_WATER, TYPE_GRASS, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_WATER, TYPE_GROUND, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_WATER, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_WATER, TYPE_DRAGON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ELECTRIC, TYPE_WATER, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ELECTRIC, TYPE_ELECTRIC, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ELECTRIC, TYPE_GRASS, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ELECTRIC, TYPE_GROUND, TYPE_MUL_NO_EFFECT,
+ TYPE_ELECTRIC, TYPE_FLYING, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ELECTRIC, TYPE_DRAGON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_WATER, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GRASS, TYPE_GRASS, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_POISON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_GROUND, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GRASS, TYPE_FLYING, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_BUG, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GRASS, TYPE_DRAGON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GRASS, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ICE, TYPE_WATER, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ICE, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ICE, TYPE_ICE, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ICE, TYPE_GROUND, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ICE, TYPE_FLYING, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ICE, TYPE_DRAGON, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ICE, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ICE, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_NORMAL, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_ICE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_POISON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_FLYING, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_PSYCHIC, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_BUG, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_DARK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FIGHTING, TYPE_STEEL, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_POISON, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_POISON, TYPE_POISON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_POISON, TYPE_GROUND, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_POISON, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_POISON, TYPE_GHOST, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_POISON, TYPE_STEEL, TYPE_MUL_NO_EFFECT,
+ TYPE_GROUND, TYPE_FIRE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GROUND, TYPE_ELECTRIC, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GROUND, TYPE_GRASS, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GROUND, TYPE_POISON, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GROUND, TYPE_FLYING, TYPE_MUL_NO_EFFECT,
+ TYPE_GROUND, TYPE_BUG, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GROUND, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GROUND, TYPE_STEEL, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FLYING, TYPE_ELECTRIC, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FLYING, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FLYING, TYPE_FIGHTING, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FLYING, TYPE_BUG, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_FLYING, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FLYING, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_PSYCHIC, TYPE_FIGHTING, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_PSYCHIC, TYPE_POISON, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_PSYCHIC, TYPE_PSYCHIC, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_PSYCHIC, TYPE_DARK, TYPE_MUL_NO_EFFECT,
+ TYPE_PSYCHIC, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_BUG, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_BUG, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_BUG, TYPE_FIGHTING, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_BUG, TYPE_POISON, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_BUG, TYPE_FLYING, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_BUG, TYPE_PSYCHIC, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_BUG, TYPE_GHOST, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_BUG, TYPE_DARK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_BUG, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ROCK, TYPE_FIRE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ROCK, TYPE_ICE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ROCK, TYPE_FIGHTING, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ROCK, TYPE_GROUND, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_ROCK, TYPE_FLYING, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ROCK, TYPE_BUG, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_ROCK, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GHOST, TYPE_NORMAL, TYPE_MUL_NO_EFFECT,
+ TYPE_GHOST, TYPE_PSYCHIC, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_GHOST, TYPE_DARK, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GHOST, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_GHOST, TYPE_GHOST, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_DRAGON, TYPE_DRAGON, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_DRAGON, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_DARK, TYPE_FIGHTING, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_DARK, TYPE_PSYCHIC, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_DARK, TYPE_GHOST, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_DARK, TYPE_DARK, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_DARK, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_STEEL, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_STEEL, TYPE_WATER, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_STEEL, TYPE_ELECTRIC, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_STEEL, TYPE_ICE, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_STEEL, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
+ TYPE_STEEL, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
+ TYPE_FORESIGHT, TYPE_FORESIGHT, TYPE_MUL_NO_EFFECT,
+ TYPE_NORMAL, TYPE_GHOST, TYPE_MUL_NO_EFFECT,
+ TYPE_FIGHTING, TYPE_GHOST, TYPE_MUL_NO_EFFECT,
+ TYPE_ENDTABLE, TYPE_ENDTABLE, TYPE_MUL_NO_EFFECT
+};
+
+const u8 gTypeNames[][TYPE_NAME_LENGTH + 1] =
+{
+ _("NORMAL"),
+ _("FIGHT"),
+ _("FLYING"),
+ _("POISON"),
+ _("GROUND"),
+ _("ROCK"),
+ _("BUG"),
+ _("GHOST"),
+ _("STEEL"),
+ _("???"),
+ _("FIRE"),
+ _("WATER"),
+ _("GRASS"),
+ _("ELECTR"),
+ _("PSYCHC"),
+ _("ICE"),
+ _("DRAGON"),
+ _("DARK"),
+};
+
+// This is a factor in how much money you get for beating a trainer.
+const struct TrainerMoney gTrainerMoneyTable[] =
+{
+ { CLASS_LEADER_2, 25 },
+ { CLASS_ELITE_FOUR_2, 25 },
+ { CLASS_PKMN_PROF, 25 },
+ { CLASS_RIVAL, 4 },
+ { CLASS_RIVAL_2, 9 },
+ { CLASS_CHAMPION_2, 25 },
+ { CLASS_YOUNGSTER_2, 4 },
+ { CLASS_BUG_CATCHER_2, 3 },
+ { CLASS_HIKER_2, 9 },
+ { CLASS_BIRD_KEEPER_2, 6 },
+ { CLASS_PICNICKER_2, 5 },
+ { CLASS_SUPER_NERD, 6 },
+ { CLASS_FISHERMAN_2, 9 },
+ { CLASS_TEAM_ROCKET, 8 },
+ { CLASS_LASS_2, 4 },
+ { CLASS_BEAUTY_2, 18 },
+ { CLASS_BLACK_BELT_2, 6 },
+ { CLASS_CUE_BALL, 6 },
+ { CLASS_CHANNELER, 8 },
+ { CLASS_ROCKER, 6 },
+ { CLASS_GENTLEMAN_2, 18 },
+ { CLASS_BURGLAR, 22 },
+ { CLASS_SWIMMER_MALE_2, 1 },
+ { CLASS_ENGINEER, 12 },
+ { CLASS_JUGGLER, 10 },
+ { CLASS_SAILOR_2, 8 },
+ { CLASS_COOLTRAINER_2, 9 },
+ { CLASS_POKEMANIAC_2, 12 },
+ { CLASS_TAMER, 10 },
+ { CLASS_CAMPER_2, 5 },
+ { CLASS_PSYCHIC_2, 5 },
+ { CLASS_BIKER, 5 },
+ { CLASS_GAMER, 18 },
+ { CLASS_SCIENTIST, 12 },
+ { CLASS_CRUSH_GIRL, 6 },
+ { CLASS_TUBER_3, 1 },
+ { CLASS_PKMN_BREEDER_2, 7 },
+ { CLASS_PKMN_RANGER_2, 9 },
+ { CLASS_AROMA_LADY_2, 7 },
+ { CLASS_RUIN_MANIAC_2, 12 },
+ { CLASS_LADY_2, 50 },
+ { CLASS_PAINTER, 4 },
+ { CLASS_TWINS_2, 3 },
+ { CLASS_YOUNG_COUPLE_2, 7 },
+ { CLASS_SIS_AND_BRO_2, 1 },
+ { CLASS_COOL_COUPLE, 6 },
+ { CLASS_CRUSH_KIN, 6 },
+ { CLASS_SWIMMER_FEMALE_2, 1 },
+ { CLASS_PLAYER, 1 },
+ { CLASS_LEADER, 25 },
+ { CLASS_ELITE_FOUR, 25 },
+ { CLASS_LASS, 4 },
+ { CLASS_YOUNGSTER, 4 },
+ { CLASS_PKMN_TRAINER_3, 15 },
+ { CLASS_HIKER, 10 },
+ { CLASS_BEAUTY, 20 },
+ { CLASS_FISHERMAN, 10 },
+ { CLASS_LADY, 50 },
+ { CLASS_TRIATHLETE, 10 },
+ { CLASS_TEAM_AQUA, 5 },
+ { CLASS_TWINS, 3 },
+ { CLASS_SWIMMER_FEMALE, 2 },
+ { CLASS_BUG_CATCHER, 4 },
+ { CLASS_SCHOOL_KID, 5 },
+ { CLASS_RICH_BOY, 50 },
+ { CLASS_SR_AND_JR, 4 },
+ { CLASS_BLACK_BELT, 8 },
+ { CLASS_TUBER, 1 },
+ { CLASS_HEX_MANIAC, 6 },
+ { CLASS_PKMN_BREEDER, 10 },
+ { CLASS_TEAM_MAGMA, 5 },
+ { CLASS_INTERVIEWER, 12 },
+ { CLASS_TUBER_2, 1 },
+ { CLASS_YOUNG_COUPLE, 8 },
+ { CLASS_GUITARIST, 8 },
+ { CLASS_GENTLEMAN, 20 },
+ { CLASS_CHAMPION, 50 },
+ { CLASS_MAGMA_LEADER, 20 },
+ { CLASS_BATTLE_GIRL, 6 },
+ { CLASS_SWIMMER_MALE, 2 },
+ { CLASS_POKEFAN, 20 },
+ { CLASS_EXPERT, 10 },
+ { CLASS_DRAGON_TAMER, 12 },
+ { CLASS_BIRD_KEEPER, 8 },
+ { CLASS_NINJA_BOY, 3 },
+ { CLASS_PARASOL_LADY, 10 },
+ { CLASS_BUG_MANIAC, 15 },
+ { CLASS_SAILOR, 8 },
+ { CLASS_COLLECTOR, 15 },
+ { CLASS_PKMN_RANGER, 12 },
+ { CLASS_MAGMA_ADMIN, 10 },
+ { CLASS_AROMA_LADY, 10 },
+ { CLASS_RUIN_MANIAC, 15 },
+ { CLASS_COOLTRAINER, 12 },
+ { CLASS_POKEMANIAC, 15 },
+ { CLASS_KINDLER, 8 },
+ { CLASS_CAMPER, 4 },
+ { CLASS_PICNICKER, 4 },
+ { CLASS_PSYCHIC, 6 },
+ { CLASS_SIS_AND_BRO, 3 },
+ { CLASS_OLD_COUPLE, 10 },
+ { CLASS_AQUA_ADMIN, 10 },
+ { CLASS_AQUA_LEADER, 20 },
+ { CLASS_BOSS, 25 },
+ { 0xFF, 5 },
+};
+
+#include "data/text/abilities.h"
+
+static void (*const sTurnActionsFuncsTable[])(void) =
+{
+ [B_ACTION_USE_MOVE] = HandleAction_UseMove,
+ [B_ACTION_USE_ITEM] = HandleAction_UseItem,
+ [B_ACTION_SWITCH] = HandleAction_Switch,
+ [B_ACTION_RUN] = HandleAction_Run,
+ [B_ACTION_SAFARI_WATCH_CAREFULLY] = HandleAction_WatchesCarefully,
+ [B_ACTION_SAFARI_BALL] = HandleAction_SafariZoneBallThrow,
+ [B_ACTION_SAFARI_POKEBLOCK] = HandleAction_ThrowPokeblock,
+ [B_ACTION_SAFARI_GO_NEAR] = HandleAction_GoNear,
+ [B_ACTION_SAFARI_RUN] = HandleAction_SafariZoneRun,
+ [B_ACTION_OLDMAN_THROW] = HandleAction_OldManBallThrow,
+ [B_ACTION_EXEC_SCRIPT] = HandleAction_RunBattleScript,
+ [B_ACTION_TRY_FINISH] = HandleAction_TryFinish,
+ [B_ACTION_FINISHED] = HandleAction_ActionFinished,
+ [B_ACTION_NOTHING_FAINTED] = HandleAction_NothingIsFainted,
+};
+
+static void (*const sEndTurnFuncsTable[])(void) =
+{
+ [0] = HandleEndTurn_ContinueBattle, //B_OUTCOME_NONE?
+ [B_OUTCOME_WON] = HandleEndTurn_BattleWon,
+ [B_OUTCOME_LOST] = HandleEndTurn_BattleLost,
+ [B_OUTCOME_DREW] = HandleEndTurn_BattleLost,
+ [B_OUTCOME_RAN] = HandleEndTurn_RanFromBattle,
+ [B_OUTCOME_PLAYER_TELEPORTED] = HandleEndTurn_FinishBattle,
+ [B_OUTCOME_MON_FLED] = HandleEndTurn_MonFled,
+ [B_OUTCOME_CAUGHT] = HandleEndTurn_FinishBattle,
+ [B_OUTCOME_NO_SAFARI_BALLS] = HandleEndTurn_FinishBattle,
+};
+
+const u8 gStatusConditionString_PoisonJpn[8] = _("どく$$$$$");
+const u8 gStatusConditionString_SleepJpn[8] = _("ねむり$$$$");
+const u8 gStatusConditionString_ParalysisJpn[8] = _("まひ$$$$$");
+const u8 gStatusConditionString_BurnJpn[8] = _("やけど$$$$");
+const u8 gStatusConditionString_IceJpn[8] = _("こおり$$$$");
+const u8 gStatusConditionString_ConfusionJpn[8] = _("こんらん$$$");
+const u8 gStatusConditionString_LoveJpn[8] = _("メロメロ$$$");
+
+const u8 *const gStatusConditionStringsTable[7][2] =
+{
+ { gStatusConditionString_PoisonJpn, gText_Poison },
+ { gStatusConditionString_SleepJpn, gText_Sleep },
+ { gStatusConditionString_ParalysisJpn, gText_Paralysis },
+ { gStatusConditionString_BurnJpn, gText_Burn },
+ { gStatusConditionString_IceJpn, gText_Ice },
+ { gStatusConditionString_ConfusionJpn, gText_Confusion },
+ { gStatusConditionString_LoveJpn, gText_Love }
+};
+
+void CB2_InitBattle(void)
+{
+ MoveSaveBlocks_ResetHeap();
+ AllocateBattleResources();
+ AllocateBattleSpritesData();
+ AllocateMonSpritesGfx();
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ HandleLinkBattleSetup();
+ SetMainCallback2(CB2_PreInitMultiBattle);
+ gBattleCommunication[MULTIUSE_STATE] = 0;
+ }
+ else
+ {
+ CB2_InitBattleInternal();
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK))
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ HelpSystem_SetSomeVariable2(0x19);
+ else
+ HelpSystem_SetSomeVariable2(0x18);
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
+ {
+ HelpSystem_SetSomeVariable2(0x1A);
+ }
+ else
+ {
+ HelpSystem_SetSomeVariable2(0x17);
+ }
+ }
+ }
+}
+
+static void CB2_InitBattleInternal(void)
+{
+ s32 i;
+
+ SetHBlankCallback(NULL);
+ SetVBlankCallback(NULL);
+ CpuFill32(0, (void *)VRAM, VRAM_SIZE);
+ SetGpuReg(REG_OFFSET_MOSAIC, 0);
+ SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0xF0));
+ SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0x50, 0x51));
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, 0);
+ gBattle_WIN0H = WIN_RANGE(0, 0xF0);
+ gBattle_WIN0V = WIN_RANGE(0x50, 0x51);
+ ScanlineEffect_Clear();
+ for (i = 0; i < 80; ++i)
+ {
+ gScanlineEffectRegBuffers[0][i] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = 0xF0;
+ }
+ for (; i < 160; ++i)
+ {
+ gScanlineEffectRegBuffers[0][i] = 0xFF10;
+ gScanlineEffectRegBuffers[1][i] = 0xFF10;
+ }
+ ScanlineEffect_SetParams(sIntroScanlineParams16Bit);
+ ResetPaletteFade();
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
+ gBattleTerrain = BattleSetup_GetTerrainId();
+ sub_800F34C();
+ LoadBattleTextboxAndBackground();
+ ResetSpriteData();
+ ResetTasks();
+ DrawBattleEntryBackground();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 4;
+ SetVBlankCallback(VBlankCB_Battle);
+ SetUpBattleVars();
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ SetMainCallback2(CB2_HandleStartMultiBattle);
+ else
+ SetMainCallback2(CB2_HandleStartBattle);
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK))
+ {
+ CreateNPCTrainerParty(&gEnemyParty[0], gTrainerBattleOpponent_A);
+ SetWildMonHeldItem();
+ }
+ gMain.inBattle = TRUE;
+ for (i = 0; i < PARTY_SIZE; ++i)
+ AdjustFriendship(&gPlayerParty[i], 3);
+ gBattleCommunication[MULTIUSE_STATE] = 0;
+}
+
+static void sub_800FFEC(void)
+{
+ u16 r6 = 0;
+ u16 species = SPECIES_NONE;
+ u16 hp = 0;
+ u32 status = 0;
+ s32 i;
+
+ for (i = 0; i < PARTY_SIZE; ++i)
+ {
+ species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
+ hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
+ status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
+ if (species == SPECIES_NONE)
+ continue;
+ if (species != SPECIES_EGG && hp != 0 && status == 0)
+ r6 |= 1 << i * 2;
+ if (species == SPECIES_NONE)
+ continue;
+ if (hp != 0 && (species == SPECIES_EGG || status != 0))
+ r6 |= 2 << i * 2;
+ if (species == SPECIES_NONE)
+ continue;
+ if (species != SPECIES_EGG && hp == 0)
+ r6 |= 3 << i * 2;
+ }
+ gBattleStruct->field_186 = r6;
+ *(&gBattleStruct->field_187) = r6 >> 8;
+}
+
+static void SetPlayerBerryDataInBattleStruct(void)
+{
+ s32 i;
+ struct BattleStruct *battleStruct = gBattleStruct;
+ struct BattleEnigmaBerry *battleBerry = &battleStruct->battleEnigmaBerry;
+
+ if (IsEnigmaBerryValid() == TRUE)
+ {
+ for (i = 0; i < BERRY_NAME_LENGTH; ++i)
+ battleBerry->name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i];
+ battleBerry->name[i] = EOS;
+ for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; ++i)
+ battleBerry->itemEffect[i] = gSaveBlock1Ptr->enigmaBerry.itemEffect[i];
+ battleBerry->holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
+ battleBerry->holdEffectParam = gSaveBlock1Ptr->enigmaBerry.holdEffectParam;
+ }
+ else
+ {
+ const struct Berry *berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY));
+
+ for (i = 0; i < BERRY_NAME_LENGTH; ++i)
+ battleBerry->name[i] = berryData->name[i];
+ battleBerry->name[i] = EOS;
+ for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; ++i)
+ battleBerry->itemEffect[i] = 0;
+ battleBerry->holdEffect = HOLD_EFFECT_NONE;
+ battleBerry->holdEffectParam = 0;
+ }
+}
+
+static void SetAllPlayersBerryData(void)
+{
+ s32 i, j;
+
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK))
+ {
+ if (IsEnigmaBerryValid() == TRUE)
+ {
+ for (i = 0; i < BERRY_NAME_LENGTH; ++i)
+ {
+ gEnigmaBerries[0].name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i];
+ gEnigmaBerries[2].name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i];
+ }
+ gEnigmaBerries[0].name[i] = EOS;
+ gEnigmaBerries[2].name[i] = EOS;
+ for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; ++i)
+ {
+ gEnigmaBerries[0].itemEffect[i] = gSaveBlock1Ptr->enigmaBerry.itemEffect[i];
+ gEnigmaBerries[2].itemEffect[i] = gSaveBlock1Ptr->enigmaBerry.itemEffect[i];
+ }
+ gEnigmaBerries[0].holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
+ gEnigmaBerries[2].holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
+ gEnigmaBerries[0].holdEffectParam = gSaveBlock1Ptr->enigmaBerry.holdEffectParam;
+ gEnigmaBerries[2].holdEffectParam = gSaveBlock1Ptr->enigmaBerry.holdEffectParam;
+ }
+ else
+ {
+ const struct Berry *berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY));
+
+ for (i = 0; i < BERRY_NAME_LENGTH; ++i)
+ {
+ gEnigmaBerries[0].name[i] = berryData->name[i];
+ gEnigmaBerries[2].name[i] = berryData->name[i];
+ }
+ gEnigmaBerries[0].name[i] = EOS;
+ gEnigmaBerries[2].name[i] = EOS;
+ for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; ++i)
+ {
+ gEnigmaBerries[0].itemEffect[i] = 0;
+ gEnigmaBerries[2].itemEffect[i] = 0;
+ }
+ gEnigmaBerries[0].holdEffect = HOLD_EFFECT_NONE;
+ gEnigmaBerries[2].holdEffect = HOLD_EFFECT_NONE;
+ gEnigmaBerries[0].holdEffectParam = 0;
+ gEnigmaBerries[2].holdEffectParam = 0;
+ }
+ }
+ else
+ {
+ s32 numPlayers;
+ struct BattleEnigmaBerry *src;
+ u8 battlerId;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ for (i = 0; i < 4; ++i)
+ {
+ src = (struct BattleEnigmaBerry *)(gBlockRecvBuffer[i] + 2);
+ battlerId = gLinkPlayers[i].id;
+ for (j = 0; j < BERRY_NAME_LENGTH; ++j)
+ gEnigmaBerries[battlerId].name[j] = src->name[j];
+ gEnigmaBerries[battlerId].name[j] = EOS;
+ for (j = 0; j < BERRY_ITEM_EFFECT_COUNT; ++j)
+ gEnigmaBerries[battlerId].itemEffect[j] = src->itemEffect[j];
+ gEnigmaBerries[battlerId].holdEffect = src->holdEffect;
+ gEnigmaBerries[battlerId].holdEffectParam = src->holdEffectParam;
+ }
+ }
+ else
+ {
+ for (i = 0; i < 2; ++i)
+ {
+ src = (struct BattleEnigmaBerry *)(gBlockRecvBuffer[i] + 2);
+ for (j = 0; j < BERRY_NAME_LENGTH; ++j)
+ {
+ gEnigmaBerries[i].name[j] = src->name[j];
+ gEnigmaBerries[i + 2].name[j] = src->name[j];
+ }
+ gEnigmaBerries[i].name[j] = EOS;
+ gEnigmaBerries[i + 2].name[j] = EOS;
+ for (j = 0; j < BERRY_ITEM_EFFECT_COUNT; ++j)
+ {
+ gEnigmaBerries[i].itemEffect[j] = src->itemEffect[j];
+ gEnigmaBerries[i + 2].itemEffect[j] = src->itemEffect[j];
+ }
+ gEnigmaBerries[i].holdEffect = src->holdEffect;
+ gEnigmaBerries[i + 2].holdEffect = src->holdEffect;
+ gEnigmaBerries[i].holdEffectParam = src->holdEffectParam;
+ gEnigmaBerries[i + 2].holdEffectParam = src->holdEffectParam;
+ }
+ }
+ }
+}
+
+static void sub_8010414(u8 arg0, u8 arg1)
+{
+ u8 var = 0;
+
+ if (gBlockRecvBuffer[0][0] == 256)
+ {
+ if (arg1 == 0)
+ gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER;
+ else
+ gBattleTypeFlags |= BATTLE_TYPE_TRAINER;
+ ++var;
+ }
+ if (var == 0)
+ {
+ s32 i;
+
+ for (i = 0; i < arg0; ++i)
+ if (gBlockRecvBuffer[0][0] != gBlockRecvBuffer[i][0])
+ break;
+ if (i == arg0)
+ {
+ if (arg1 == 0)
+ gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER;
+ else
+ gBattleTypeFlags |= BATTLE_TYPE_TRAINER;
+ ++var;
+ }
+ if (var == 0)
+ {
+ for (i = 0; i < arg0; ++i)
+ {
+ if (gBlockRecvBuffer[i][0] == 0x201)
+ if (i != arg1 && i < arg1)
+ break;
+ if (gBlockRecvBuffer[i][0] > 0x201 && i != arg1)
+ break;
+ }
+ if (i == arg0)
+ gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER;
+ else
+ gBattleTypeFlags |= BATTLE_TYPE_TRAINER;
+ }
+ }
+}
+
+static void CB2_HandleStartBattle(void)
+{
+ u8 playerMultiplayerId;
+ u8 enemyMultiplayerId;
+
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ playerMultiplayerId = GetMultiplayerId();
+ gBattleStruct->multiplayerId = playerMultiplayerId;
+ enemyMultiplayerId = playerMultiplayerId ^ BIT_SIDE;
+ switch (gBattleCommunication[MULTIUSE_STATE])
+ {
+ case 0:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ ShowBg(3);
+ sub_80357C8();
+ gBattleCommunication[MULTIUSE_STATE] = 1;
+ }
+ if (gWirelessCommType)
+ LoadWirelessStatusIndicatorSpriteGfx();
+ break;
+ case 1:
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ if (IsLinkTaskFinished())
+ {
+ *(&gBattleStruct->field_184) = 1;
+ *(&gBattleStruct->field_185) = 2;
+ sub_800FFEC();
+ SetPlayerBerryDataInBattleStruct();
+ SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_184, 32);
+ gBattleCommunication[MULTIUSE_STATE] = 2;
+ }
+ if (gWirelessCommType != 0)
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ }
+ }
+ else
+ {
+ gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER;
+ gBattleCommunication[MULTIUSE_STATE] = 15;
+ SetAllPlayersBerryData();
+ }
+ break;
+ case 2:
+ if ((GetBlockReceivedStatus() & 3) == 3)
+ {
+ u8 taskId;
+
+ ResetBlockReceivedFlags();
+ sub_8010414(2, playerMultiplayerId);
+ SetAllPlayersBerryData();
+ taskId = CreateTask(sub_800F6FC, 0);
+ gTasks[taskId].data[1] = 270;
+ gTasks[taskId].data[2] = 90;
+ gTasks[taskId].data[5] = 0;
+ gTasks[taskId].data[3] = gBattleStruct->field_186 | (gBattleStruct->field_187 << 8);
+ gTasks[taskId].data[4] = gBlockRecvBuffer[enemyMultiplayerId][1];
+ SetDeoxysStats();
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 3:
+ if (IsLinkTaskFinished())
+ {
+ SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(struct Pokemon) * 2);
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 4:
+ if ((GetBlockReceivedStatus() & 3) == 3)
+ {
+ ResetBlockReceivedFlags();
+ memcpy(gEnemyParty, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2);
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 7:
+ if (IsLinkTaskFinished())
+ {
+ SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(struct Pokemon) * 2);
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 8:
+ if ((GetBlockReceivedStatus() & 3) == 3)
+ {
+ ResetBlockReceivedFlags();
+ memcpy(gEnemyParty + 2, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2);
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 11:
+ if (IsLinkTaskFinished())
+ {
+ SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 4, sizeof(struct Pokemon) * 2);
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 12:
+ if ((GetBlockReceivedStatus() & 3) == 3)
+ {
+ ResetBlockReceivedFlags();
+ memcpy(gEnemyParty + 4, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2);
+ TryCorrectShedinjaLanguage(&gEnemyParty[0]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[1]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[2]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[3]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[4]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[5]);
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 15:
+ sub_800D30C();
+ ++gBattleCommunication[MULTIUSE_STATE];
+ gBattleCommunication[SPRITES_INIT_STATE1] = 0;
+ gBattleCommunication[SPRITES_INIT_STATE2] = 0;
+ break;
+ case 16:
+ if (BattleInitAllSprites(&gBattleCommunication[SPRITES_INIT_STATE1], &gBattleCommunication[SPRITES_INIT_STATE2]))
+ {
+ gPreBattleCallback1 = gMain.callback1;
+ gMain.callback1 = BattleMainCB1;
+ SetMainCallback2(BattleMainCB2);
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gBattleTypeFlags |= BATTLE_TYPE_20;
+ }
+ }
+ break;
+ case 5:
+ case 9:
+ case 13:
+ ++gBattleCommunication[MULTIUSE_STATE];
+ gBattleCommunication[1] = 1;
+ case 6:
+ case 10:
+ case 14:
+ if (--gBattleCommunication[1] == 0)
+ ++gBattleCommunication[MULTIUSE_STATE];
+ break;
+ }
+}
+
+static void sub_80108C4(void)
+{
+ s32 i, j;
+ u8 *nick, *cur;
+
+ for (i = 0; i < 3; ++i)
+ {
+ gUnknown_2022B58[i].species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES);
+ gUnknown_2022B58[i].heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
+ nick = gUnknown_2022B58[i].nickname;
+ GetMonData(&gPlayerParty[i], MON_DATA_NICKNAME, nick);
+ gUnknown_2022B58[i].level = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL);
+ gUnknown_2022B58[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
+ gUnknown_2022B58[i].maxhp = GetMonData(&gPlayerParty[i], MON_DATA_MAX_HP);
+ gUnknown_2022B58[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
+ gUnknown_2022B58[i].personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY);
+ gUnknown_2022B58[i].gender = GetMonGender(&gPlayerParty[i]);
+ StripExtCtrlCodes(nick);
+ if (GetMonData(&gPlayerParty[i], MON_DATA_LANGUAGE) != LANGUAGE_JAPANESE)
+ {
+ for (cur = nick, j = 0; cur[j] != EOS; ++j)
+ ;
+ while (j < 6)
+ cur[j++] = 0;
+ cur[j] = EOS;
+ }
+ }
+ memcpy(&gBattleStruct->field_184, gUnknown_2022B58, sizeof(gUnknown_2022B58));
+}
+
+static void CB2_PreInitMultiBattle(void)
+{
+ s32 i;
+ u8 playerMultiplierId;
+ u8 r4 = 0xF;
+ u16 *savedBattleTypeFlags;
+ void (**savedCallback)(void);
+
+ playerMultiplierId = GetMultiplayerId();
+ gBattleStruct->multiplayerId = playerMultiplierId;
+ savedCallback = &gBattleStruct->savedCallback;
+ savedBattleTypeFlags = &gBattleStruct->savedBattleTypeFlags;
+
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ switch (gBattleCommunication[MULTIUSE_STATE])
+ {
+ case 0:
+ if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished())
+ {
+ sub_80108C4();
+ SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_184, sizeof(gUnknown_2022B58));
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 1:
+ if ((GetBlockReceivedStatus() & r4) == r4)
+ {
+ ResetBlockReceivedFlags();
+ for (i = 0; i < 4; ++i)
+ {
+ if (i == playerMultiplierId)
+ continue;
+ if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[playerMultiplierId].id & 1))
+ || (gLinkPlayers[i].id & 1 && gLinkPlayers[playerMultiplierId].id & 1))
+ memcpy(gUnknown_2022B58, gBlockRecvBuffer[i], sizeof(gUnknown_2022B58));
+ }
+ ++gBattleCommunication[MULTIUSE_STATE];
+ *savedCallback = gMain.savedCallback;
+ *savedBattleTypeFlags = gBattleTypeFlags;
+ gMain.savedCallback = CB2_PreInitMultiBattle;
+ sub_8128198();
+ }
+ break;
+ case 2:
+ if (!gPaletteFade.active)
+ {
+ ++gBattleCommunication[MULTIUSE_STATE];
+ if (gWirelessCommType)
+ sub_800AB9C();
+ else
+ sub_800AAC0();
+ }
+ break;
+ case 3:
+ if (gWirelessCommType)
+ {
+ if (IsLinkRfuTaskFinished())
+ {
+ gBattleTypeFlags = *savedBattleTypeFlags;
+ gMain.savedCallback = *savedCallback;
+ SetMainCallback2(CB2_InitBattleInternal);
+ }
+ }
+ else if (gReceivedRemoteLinkPlayers == 0)
+ {
+ gBattleTypeFlags = *savedBattleTypeFlags;
+ gMain.savedCallback = *savedCallback;
+ SetMainCallback2(CB2_InitBattleInternal);
+ }
+ break;
+ }
+}
+
+static void CB2_HandleStartMultiBattle(void)
+{
+ u8 playerMultiplayerId;
+ s32 id;
+ u8 taskId;
+
+ playerMultiplayerId = GetMultiplayerId();
+ gBattleStruct->multiplayerId = playerMultiplayerId;
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ switch (gBattleCommunication[MULTIUSE_STATE])
+ {
+ case 0:
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ ShowBg(3);
+ sub_80357C8();
+ gBattleCommunication[MULTIUSE_STATE] = 1;
+ }
+ if (gWirelessCommType)
+ LoadWirelessStatusIndicatorSpriteGfx();
+ break;
+ case 1:
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ if (IsLinkTaskFinished())
+ {
+ *(&gBattleStruct->field_184) = 1;
+ *(&gBattleStruct->field_185) = 2;
+ sub_800FFEC();
+ SetPlayerBerryDataInBattleStruct();
+ SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_184, 32);
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ if (gWirelessCommType)
+ CreateWirelessStatusIndicatorSprite(0, 0);
+ }
+ break;
+ case 2:
+ if ((GetBlockReceivedStatus() & 0xF) == 0xF)
+ {
+ ResetBlockReceivedFlags();
+ sub_8010414(4, playerMultiplayerId);
+ SetAllPlayersBerryData();
+ SetDeoxysStats();
+ memcpy(gDecompressionBuffer, gPlayerParty, sizeof(struct Pokemon) * 3);
+ taskId = CreateTask(sub_800F6FC, 0);
+ gTasks[taskId].data[1] = 270;
+ gTasks[taskId].data[2] = 90;
+ gTasks[taskId].data[5] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[4] = 0;
+ for (id = 0; id < MAX_LINK_PLAYERS; ++id)
+ {
+ switch (gLinkPlayers[id].id)
+ {
+ case 0:
+ gTasks[taskId].data[3] |= gBlockRecvBuffer[id][1] & 0x3F;
+ break;
+ case 1:
+ gTasks[taskId].data[4] |= gBlockRecvBuffer[id][1] & 0x3F;
+ break;
+ case 2:
+ gTasks[taskId].data[3] |= (gBlockRecvBuffer[id][1] & 0x3F) << 6;
+ break;
+ case 3:
+ gTasks[taskId].data[4] |= (gBlockRecvBuffer[id][1] & 0x3F) << 6;
+ break;
+ }
+ }
+ ZeroPlayerPartyMons();
+ ZeroEnemyPartyMons();
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ else
+ {
+ break;
+ }
+ // fall through
+ case 3:
+ if (IsLinkTaskFinished())
+ {
+ SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer, sizeof(struct Pokemon) * 2);
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 4:
+ if ((GetBlockReceivedStatus() & 0xF) == 0xF)
+ {
+ ResetBlockReceivedFlags();
+ for (id = 0; id < MAX_LINK_PLAYERS; ++id)
+ {
+ if (id == playerMultiplayerId)
+ {
+ switch (gLinkPlayers[id].id)
+ {
+ case 0:
+ case 3:
+ memcpy(gPlayerParty, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2);
+ break;
+ case 1:
+ case 2:
+ memcpy(gPlayerParty + 3, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2);
+ break;
+ }
+ }
+ else
+ {
+ if ((!(gLinkPlayers[id].id & 1) && !(gLinkPlayers[playerMultiplayerId].id & 1))
+ || ((gLinkPlayers[id].id & 1) && (gLinkPlayers[playerMultiplayerId].id & 1)))
+ {
+ switch (gLinkPlayers[id].id)
+ {
+ case 0:
+ case 3:
+ memcpy(gPlayerParty, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2);
+ break;
+ case 1:
+ case 2:
+ memcpy(gPlayerParty + 3, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2);
+ break;
+ }
+ }
+ else
+ {
+ switch (gLinkPlayers[id].id)
+ {
+ case 0:
+ case 3:
+ memcpy(gEnemyParty, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2);
+ break;
+ case 1:
+ case 2:
+ memcpy(gEnemyParty + 3, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2);
+ break;
+ }
+ }
+ }
+ }
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 7:
+ if (IsLinkTaskFinished())
+ {
+ SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer + sizeof(struct Pokemon) * 2, sizeof(struct Pokemon));
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 8:
+ if ((GetBlockReceivedStatus() & 0xF) == 0xF)
+ {
+ ResetBlockReceivedFlags();
+ for (id = 0; id < MAX_LINK_PLAYERS; ++id)
+ {
+ if (id == playerMultiplayerId)
+ {
+ switch (gLinkPlayers[id].id)
+ {
+ case 0:
+ case 3:
+ memcpy(gPlayerParty + 2, gBlockRecvBuffer[id], sizeof(struct Pokemon));
+ break;
+ case 1:
+ case 2:
+ memcpy(gPlayerParty + 5, gBlockRecvBuffer[id], sizeof(struct Pokemon));
+ break;
+ }
+ }
+ else
+ {
+ if ((!(gLinkPlayers[id].id & 1) && !(gLinkPlayers[playerMultiplayerId].id & 1))
+ || ((gLinkPlayers[id].id & 1) && (gLinkPlayers[playerMultiplayerId].id & 1)))
+ {
+ switch (gLinkPlayers[id].id)
+ {
+ case 0:
+ case 3:
+ memcpy(gPlayerParty + 2, gBlockRecvBuffer[id], sizeof(struct Pokemon));
+ break;
+ case 1:
+ case 2:
+ memcpy(gPlayerParty + 5, gBlockRecvBuffer[id], sizeof(struct Pokemon));
+ break;
+ }
+ }
+ else
+ {
+ switch (gLinkPlayers[id].id)
+ {
+ case 0:
+ case 3:
+ memcpy(gEnemyParty + 2, gBlockRecvBuffer[id], sizeof(struct Pokemon));
+ break;
+ case 1:
+ case 2:
+ memcpy(gEnemyParty + 5, gBlockRecvBuffer[id], sizeof(struct Pokemon));
+ break;
+ }
+ }
+ }
+ }
+ TryCorrectShedinjaLanguage(&gPlayerParty[0]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[1]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[2]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[3]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[4]);
+ TryCorrectShedinjaLanguage(&gPlayerParty[5]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[0]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[1]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[2]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[3]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[4]);
+ TryCorrectShedinjaLanguage(&gEnemyParty[5]);
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 11:
+ sub_800D30C();
+ ++gBattleCommunication[MULTIUSE_STATE];
+ gBattleCommunication[SPRITES_INIT_STATE1] = 0;
+ gBattleCommunication[SPRITES_INIT_STATE2] = 0;
+ break;
+ case 12:
+ if (BattleInitAllSprites(&gBattleCommunication[SPRITES_INIT_STATE1], &gBattleCommunication[SPRITES_INIT_STATE2]))
+ {
+ gPreBattleCallback1 = gMain.callback1;
+ gMain.callback1 = BattleMainCB1;
+ SetMainCallback2(BattleMainCB2);
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ gBattleTypeFlags |= BATTLE_TYPE_20;
+ }
+ break;
+ case 5:
+ case 9:
+ ++gBattleCommunication[0];
+ gBattleCommunication[SPRITES_INIT_STATE1] = 1;
+ // fall through
+ case 6:
+ case 10:
+ if (--gBattleCommunication[SPRITES_INIT_STATE1] == 0)
+ ++gBattleCommunication[0];
+ break;
+ }
+}
+
+void BattleMainCB2(void)
+{
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTextPrinters();
+ UpdatePaletteFade();
+ RunTasks();
+ if (JOY_HELD(B_BUTTON) && gBattleTypeFlags & BATTLE_TYPE_POKEDUDE)
+ {
+ gSpecialVar_Result = gBattleOutcome = B_OUTCOME_DREW;
+ ResetPaletteFadeControl();
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
+ SetMainCallback2(CB2_QuitPokeDudeBattle);
+ }
+}
+
+void FreeRestoreBattleData(void)
+{
+ gMain.callback1 = gPreBattleCallback1;
+ gScanlineEffect.state = 3;
+ gMain.inBattle = FALSE;
+ ZeroEnemyPartyMons();
+ m4aSongNumStop(SE_HINSI);
+ FreeMonSpritesGfx();
+ FreeBattleSpritesData();
+ FreeBattleResources();
+}
+
+static void CB2_QuitPokeDudeBattle(void)
+{
+ UpdatePaletteFade();
+ if (!gPaletteFade.active)
+ {
+ FreeRestoreBattleData();
+ FreeAllWindowBuffers();
+ SetMainCallback2(gMain.savedCallback);
+ }
+}
+
+static void sub_80111EC(struct Sprite *sprite)
+{
+ sprite->data[0] = 0;
+ sprite->callback = sub_80111FC;
+}
+
+static void sub_80111FC(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ gUnknown_2022BC0 = AllocZeroed(0x1000);
+ ++sprite->data[0];
+ sprite->data[1] = 0;
+ sprite->data[2] = 0x281;
+ sprite->data[3] = 0;
+ sprite->data[4] = 1;
+ // fall through
+ case 1:
+ if (--sprite->data[4] == 0)
+ {
+ s32 i, r2, r0;
+
+ sprite->data[4] = 2;
+ r2 = sprite->data[1] + sprite->data[3] * 32;
+ r0 = sprite->data[2] - sprite->data[3] * 32;
+ for (i = 0; i <= 29; i += 2)
+ {
+ *(&gUnknown_2022BC0[r2] + i) = 0x3D;
+ *(&gUnknown_2022BC0[r0] + i) = 0x3D;
+ }
+ if (++sprite->data[3] == 21)
+ {
+ ++sprite->data[0];
+ sprite->data[1] = 32;
+ }
+ }
+ break;
+ case 2:
+ if (--sprite->data[1] == 20)
+ {
+ if (gUnknown_2022BC0 != NULL)
+ {
+ memset(gUnknown_2022BC0, 0, 0x1000);
+ FREE_AND_SET_NULL(gUnknown_2022BC0);
+ }
+ SetMainCallback2(CB2_InitBattle);
+ }
+ break;
+ }
+}
+
+static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum)
+{
+ u32 nameHash = 0;
+ u32 personalityValue;
+ u8 fixedIV;
+ s32 i, j;
+
+ if (trainerNum == TRAINER_SECRET_BASE)
+ return 0;
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER
+ && !(gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_TRAINER_TOWER)))
+ {
+ ZeroEnemyPartyMons();
+ for (i = 0; i < gTrainers[trainerNum].partySize; ++i)
+ {
+
+ if (gTrainers[trainerNum].doubleBattle == TRUE)
+ personalityValue = 0x80;
+ else if (gTrainers[trainerNum].encounterMusic_gender & 0x80)
+ personalityValue = 0x78;
+ else
+ personalityValue = 0x88;
+ for (j = 0; gTrainers[trainerNum].trainerName[j] != EOS; ++j)
+ nameHash += gTrainers[trainerNum].trainerName[j];
+ switch (gTrainers[trainerNum].partyFlags)
+ {
+ case 0:
+ {
+ const struct TrainerMonNoItemDefaultMoves *partyData = gTrainers[trainerNum].party.NoItemDefaultMoves;
+
+ for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; ++j)
+ nameHash += gSpeciesNames[partyData[i].species][j];
+ personalityValue += nameHash << 8;
+ fixedIV = partyData[i].iv * 31 / 255;
+ CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0);
+ break;
+ }
+ case F_TRAINER_PARTY_CUSTOM_MOVESET:
+ {
+ const struct TrainerMonNoItemCustomMoves *partyData = gTrainers[trainerNum].party.NoItemCustomMoves;
+
+ for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; ++j)
+ nameHash += gSpeciesNames[partyData[i].species][j];
+ personalityValue += nameHash << 8;
+ fixedIV = partyData[i].iv * 31 / 255;
+ CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0);
+ for (j = 0; j < MAX_MON_MOVES; ++j)
+ {
+ SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]);
+ SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp);
+ }
+ break;
+ }
+ case F_TRAINER_PARTY_HELD_ITEM:
+ {
+ const struct TrainerMonItemDefaultMoves *partyData = gTrainers[trainerNum].party.ItemDefaultMoves;
+
+ for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; ++j)
+ nameHash += gSpeciesNames[partyData[i].species][j];
+ personalityValue += nameHash << 8;
+ fixedIV = partyData[i].iv * 31 / 255;
+ CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0);
+
+ SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem);
+ break;
+ }
+ case F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM:
+ {
+ const struct TrainerMonItemCustomMoves *partyData = gTrainers[trainerNum].party.ItemCustomMoves;
+
+ for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; ++j)
+ nameHash += gSpeciesNames[partyData[i].species][j];
+ personalityValue += nameHash << 8;
+ fixedIV = partyData[i].iv * 31 / 255;
+ CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0);
+ SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem);
+ for (j = 0; j < MAX_MON_MOVES; ++j)
+ {
+ SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]);
+ SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp);
+ }
+ break;
+ }
+ }
+ }
+ gBattleTypeFlags |= gTrainers[trainerNum].doubleBattle;
+ }
+ return gTrainers[trainerNum].partySize;
+}
+
+// not used
+static void sub_80116CC(void)
+{
+ if (REG_VCOUNT < 0xA0 && REG_VCOUNT >= 0x6F)
+ REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(24) | BGCNT_16COLOR | BGCNT_TXT256x512;
+}
+
+void VBlankCB_Battle(void)
+{
+ // Change gRngSeed every vblank.
+ Random();
+ SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X);
+ SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y);
+ SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
+ SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
+ SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X);
+ SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y);
+ SetGpuReg(REG_OFFSET_BG3HOFS, gBattle_BG3_X);
+ SetGpuReg(REG_OFFSET_BG3VOFS, gBattle_BG3_Y);
+ SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H);
+ SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V);
+ SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN1H);
+ SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN1V);
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ ScanlineEffect_InitHBlankDmaTransfer();
+}
+
+void nullsub_9(struct Sprite *sprite)
+{
+}
+
+static void sub_80117BC(struct Sprite *sprite)
+{
+ if (sprite->data[0] != 0)
+ sprite->pos1.x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8);
+ else
+ sprite->pos1.x = sprite->data[1] - ((sprite->data[2] & 0xFF00) >> 8);
+ sprite->data[2] += 0x180;
+ if (sprite->affineAnimEnded)
+ {
+ FreeSpriteTilesByTag(ANIM_SPRITES_START);
+ FreeSpritePaletteByTag(ANIM_SPRITES_START);
+ FreeSpriteOamMatrix(sprite);
+ DestroySprite(sprite);
+ }
+}
+
+void sub_801182C(struct Sprite *sprite)
+{
+ StartSpriteAffineAnim(sprite, 1);
+ sprite->callback = sub_80117BC;
+ PlaySE(SE_BT_START);
+}
+
+static void sub_801184C(u8 taskId)
+{
+ struct Pokemon *party1 = NULL;
+ struct Pokemon *party2 = NULL;
+ u8 multiplayerId = gBattleStruct->multiplayerId;
+ u32 r7;
+ s32 i;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ switch (gLinkPlayers[multiplayerId].id)
+ {
+ case 0:
+ case 2:
+ party1 = gPlayerParty;
+ party2 = gEnemyParty;
+ break;
+ case 1:
+ case 3:
+ party1 = gEnemyParty;
+ party2 = gPlayerParty;
+ break;
+ }
+ }
+ else
+ {
+ party1 = gPlayerParty;
+ party2 = gEnemyParty;
+ }
+ r7 = 0;
+ for (i = 0; i < PARTY_SIZE; ++i)
+ {
+ u16 species = GetMonData(&party1[i], MON_DATA_SPECIES2);
+ u16 hp = GetMonData(&party1[i], MON_DATA_HP);
+ u32 status = GetMonData(&party1[i], MON_DATA_STATUS);
+
+ if (species == SPECIES_NONE)
+ continue;
+ if (species != SPECIES_EGG && hp != 0 && status == 0)
+ r7 |= 1 << i * 2;
+
+ if (species == SPECIES_NONE)
+ continue;
+ if (hp != 0 && (species == SPECIES_EGG || status != 0))
+ r7 |= 2 << i * 2;
+
+ if (species == SPECIES_NONE)
+ continue;
+ if (species != SPECIES_EGG && hp == 0)
+ r7 |= 3 << i * 2;
+ }
+ gTasks[taskId].data[3] = r7;
+ r7 = 0;
+ for (i = 0; i < PARTY_SIZE; ++i)
+ {
+ u16 species = GetMonData(&party2[i], MON_DATA_SPECIES2);
+ u16 hp = GetMonData(&party2[i], MON_DATA_HP);
+ u32 status = GetMonData(&party2[i], MON_DATA_STATUS);
+
+ if (species == SPECIES_NONE)
+ continue;
+ if (species != SPECIES_EGG && hp != 0 && status == 0)
+ r7 |= 1 << i * 2;
+ if (species == SPECIES_NONE)
+ continue;
+ if (hp != 0 && (species == SPECIES_EGG || status != 0))
+ r7 |= 2 << i * 2;
+ if (species == SPECIES_NONE)
+ continue;
+ if (species != SPECIES_EGG && hp == 0)
+ r7 |= 3 << i * 2;
+ }
+ gTasks[taskId].data[4] = r7;
+}
+
+void sub_8011A1C(void)
+{
+ s32 i;
+ u8 taskId;
+
+ SetHBlankCallback(NULL);
+ SetVBlankCallback(NULL);
+ CpuFill32(0, (void *)VRAM, VRAM_SIZE);
+ SetGpuReg(REG_OFFSET_MOSAIC, 0);
+ SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0xF0));
+ SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0x50, 0x51));
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, 0);
+ gBattle_WIN0H = WIN_RANGE(0, 0xF0);
+ gBattle_WIN0V = WIN_RANGE(0x50, 0x51);
+ ScanlineEffect_Clear();
+ for (i = 0; i < 80; ++i)
+ {
+ gScanlineEffectRegBuffers[0][i] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = 0xF0;
+ }
+
+ for (; i < 160; ++i)
+ {
+ gScanlineEffectRegBuffers[0][i] = 0xFF10;
+ gScanlineEffectRegBuffers[1][i] = 0xFF10;
+ }
+ ResetPaletteFade();
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
+ sub_800F34C();
+ LoadCompressedPalette(gBattleTextboxPalette, 0, 64);
+ LoadBattleMenuWindowGfx();
+ ResetSpriteData();
+ ResetTasks();
+ DrawBattleEntryBackground();
+ SetGpuReg(REG_OFFSET_WINOUT, WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR);
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 4;
+ SetVBlankCallback(VBlankCB_Battle);
+ taskId = CreateTask(sub_800F6FC, 0);
+ gTasks[taskId].data[1] = 270;
+ gTasks[taskId].data[2] = 90;
+ gTasks[taskId].data[5] = 1;
+ sub_801184C(taskId);
+ SetMainCallback2(sub_8011B94);
+ gBattleCommunication[MULTIUSE_STATE] = 0;
+}
+
+static void sub_8011B94(void)
+{
+ sub_8011BB0();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+ RunTasks();
+}
+
+static void sub_8011BB0(void)
+{
+ s32 i;
+
+ switch (gBattleCommunication[MULTIUSE_STATE])
+ {
+ case 0:
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ gBattleCommunication[1] = 0xFF;
+ ++gBattleCommunication[MULTIUSE_STATE];
+ break;
+ case 1:
+ if (--gBattleCommunication[1] == 0)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
+ ++gBattleCommunication[MULTIUSE_STATE];
+ }
+ break;
+ case 2:
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(gMain.savedCallback);
+ sub_812C224();
+ FreeMonSpritesGfx();
+ FreeBattleSpritesData();
+ FreeBattleResources();
+ }
+ break;
+ }
+}
+
+u32 sub_8011C44(u8 arrayId, u8 caseId)
+{
+ u32 ret = 0;
+
+ switch (caseId)
+ {
+ case 0:
+ ret = gBattleBgTemplates[arrayId].bg;
+ break;
+ case 1:
+ ret = gBattleBgTemplates[arrayId].charBaseIndex;
+ break;
+ case 2:
+ ret = gBattleBgTemplates[arrayId].mapBaseIndex;
+ break;
+ case 3:
+ ret = gBattleBgTemplates[arrayId].screenSize;
+ break;
+ case 4:
+ ret = gBattleBgTemplates[arrayId].paletteMode;
+ break;
+ case 5:
+ ret = gBattleBgTemplates[arrayId].priority;
+ break;
+ case 6:
+ ret = gBattleBgTemplates[arrayId].baseTile;
+ break;
+ }
+ return ret;
+}
+
+static void TryCorrectShedinjaLanguage(struct Pokemon *mon)
+{
+ u8 nickname[POKEMON_NAME_LENGTH + 1];
+ u8 language = LANGUAGE_JAPANESE;
+
+ if (GetMonData(mon, MON_DATA_SPECIES) == SPECIES_SHEDINJA
+ && GetMonData(mon, MON_DATA_LANGUAGE) != language)
+ {
+ GetMonData(mon, MON_DATA_NICKNAME, nickname);
+ if (StringCompareWithoutExtCtrlCodes(nickname, sText_ShedinjaJpnName) == 0)
+ SetMonData(mon, MON_DATA_LANGUAGE, &language);
+ }
+}
+
+#define sBattler data[0]
+#define sSpeciesId data[2]
+
+void SpriteCB_WildMon(struct Sprite *sprite)
+{
+ sprite->callback = SpriteCB_MoveWildMonToRight;
+ StartSpriteAnimIfDifferent(sprite, 0);
+ BeginNormalPaletteFade(0x20000, 0, 10, 10, RGB(8, 8, 8));
+}
+
+static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite)
+{
+ if ((gIntroSlideFlags & 1) == 0)
+ {
+ sprite->pos2.x += 2;
+ if (sprite->pos2.x == 0)
+ {
+ sprite->callback = SpriteCB_WildMonShowHealthbox;
+ PlayCry1(sprite->data[2], 25);
+ }
+ }
+}
+
+static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ {
+ sub_804BD94(sprite->sBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]);
+ sprite->callback = SpriteCallbackDummy2;
+ StartSpriteAnimIfDifferent(sprite, 0);
+ BeginNormalPaletteFade(0x20000, 0, 10, 0, RGB(8, 8, 8));
+ }
+}
+
+void SpriteCallbackDummy2(struct Sprite *sprite)
+{
+}
+
+// not used
+static void sub_8011E28(struct Sprite *sprite)
+{
+ sprite->data[3] = 6;
+ sprite->data[4] = 1;
+ sprite->callback = sub_8011E3C;
+}
+
+// not used
+static void sub_8011E3C(struct Sprite *sprite)
+{
+ --sprite->data[4];
+ if (sprite->data[4] == 0)
+ {
+ sprite->data[4] = 8;
+ sprite->invisible ^= 1;
+ --sprite->data[3];
+ if (sprite->data[3] == 0)
+ {
+ sprite->invisible = FALSE;
+ sprite->callback = SpriteCallbackDummy2;
+ gUnknown_2022AE8[0] = 0;
+ }
+ }
+}
+
+void SpriteCB_FaintOpponentMon(struct Sprite *sprite)
+{
+ u8 battler = sprite->sBattler;
+ u16 species;
+ u8 yOffset;
+
+ if (gBattleSpritesDataPtr->battlerData[battler].transformSpecies != 0)
+ species = gBattleSpritesDataPtr->battlerData[battler].transformSpecies;
+ else
+ species = sprite->sSpeciesId;
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_PERSONALITY); // Unused return value.
+ if (species == SPECIES_UNOWN)
+ {
+ u32 personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_PERSONALITY);
+ u16 unownForm = ((((personalityValue & 0x3000000) >> 18) | ((personalityValue & 0x30000) >> 12) | ((personalityValue & 0x300) >> 6) | (personalityValue & 3)) % 0x1C);
+ u16 unownSpecies;
+
+ if (unownForm == 0)
+ unownSpecies = SPECIES_UNOWN; // Use the A Unown form.
+ else
+ unownSpecies = NUM_SPECIES + unownForm; // Use one of the other Unown letters.
+ yOffset = gMonFrontPicCoords[unownSpecies].y_offset;
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
+ yOffset = gCastformFrontSpriteCoords[gBattleMonForms[battler]].y_offset;
+ }
+ else if (species > NUM_SPECIES)
+ {
+ yOffset = gMonFrontPicCoords[SPECIES_NONE].y_offset;
+ }
+ else
+ {
+ yOffset = gMonFrontPicCoords[species].y_offset;
+ }
+ sprite->data[3] = 8 - yOffset / 8;
+ sprite->data[4] = 1;
+ sprite->callback = SpriteCB_AnimFaintOpponent;
+}
+
+static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite)
+{
+ s32 i;
+
+ if (--sprite->data[4] == 0)
+ {
+ sprite->data[4] = 2;
+ sprite->pos2.y += 8; // Move the sprite down.
+ if (--sprite->data[3] < 0)
+ {
+ FreeSpriteOamMatrix(sprite);
+ DestroySprite(sprite);
+ }
+ else // Erase bottom part of the sprite to create a smooth illusion of mon falling down.
+ {
+ u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBattlerPosition(sprite->sBattler)] + (gBattleMonForms[sprite->sBattler] << 11) + (sprite->data[3] << 8);
+
+ for (i = 0; i < 0x100; ++i)
+ *(dst++) = 0;
+ StartSpriteAnim(sprite, gBattleMonForms[sprite->sBattler]);
+ }
+ }
+}
+
+void sub_8012044(struct Sprite *sprite)
+{
+ sprite->data[3] = 8;
+ sprite->data[4] = sprite->invisible;
+ sprite->callback = sub_8012060;
+}
+
+static void sub_8012060(struct Sprite *sprite)
+{
+ --sprite->data[3];
+ if (sprite->data[3] == 0)
+ {
+ sprite->invisible ^= 1;
+ sprite->data[3] = 8;
+ }
+}
+
+void sub_8012098(struct Sprite *sprite)
+{
+ sprite->invisible = sprite->data[4];
+ sprite->data[4] = FALSE;
+ sprite->callback = SpriteCallbackDummy2;
+}
+
+void sub_80120C4(struct Sprite *sprite)
+{
+ sprite->callback = oac_poke_ally_;
+}
+
+static void oac_poke_ally_(struct Sprite *sprite)
+{
+ if (!(gIntroSlideFlags & 1))
+ {
+ sprite->pos2.x -= 2;
+ if (sprite->pos2.x == 0)
+ {
+ sprite->callback = SpriteCallbackDummy3;
+ sprite->data[1] = 0;
+ }
+ }
+}
+
+void sub_8012100(struct Sprite *sprite)
+{
+ sprite->callback = SpriteCallbackDummy3;
+}
+
+static void SpriteCallbackDummy3(struct Sprite *sprite)
+{
+}
+
+void sub_8012110(struct Sprite *sprite)
+{
+ if (!(gIntroSlideFlags & 1))
+ {
+ sprite->pos2.x += sprite->data[1];
+ sprite->pos2.y += sprite->data[2];
+ }
+}
+
+#define sSinIndex data[0]
+#define sDelta data[1]
+#define sAmplitude data[2]
+#define sBouncerSpriteId data[3]
+#define sWhich data[4]
+
+void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude)
+{
+ u8 invisibleSpriteId;
+ u8 bouncerSpriteId;
+
+ switch (which)
+ {
+ case BOUNCE_HEALTHBOX:
+ default:
+ if (gBattleSpritesDataPtr->healthBoxesData[battler].healthboxIsBouncing)
+ return;
+ break;
+ case BOUNCE_MON:
+ if (gBattleSpritesDataPtr->healthBoxesData[battler].battlerIsBouncing)
+ return;
+ break;
+ }
+ invisibleSpriteId = CreateInvisibleSpriteWithCallback(SpriteCB_BounceEffect);
+ if (which == BOUNCE_HEALTHBOX)
+ {
+ bouncerSpriteId = gHealthboxSpriteIds[battler];
+ gBattleSpritesDataPtr->healthBoxesData[battler].healthboxBounceSpriteId = invisibleSpriteId;
+ gBattleSpritesDataPtr->healthBoxesData[battler].healthboxIsBouncing = 1;
+ gSprites[invisibleSpriteId].sSinIndex = 128; // 0
+ }
+ else
+ {
+ bouncerSpriteId = gBattlerSpriteIds[battler];
+ gBattleSpritesDataPtr->healthBoxesData[battler].battlerBounceSpriteId = invisibleSpriteId;
+ gBattleSpritesDataPtr->healthBoxesData[battler].battlerIsBouncing = 1;
+ gSprites[invisibleSpriteId].sSinIndex = 192; // -1
+ }
+ gSprites[invisibleSpriteId].sDelta = delta;
+ gSprites[invisibleSpriteId].sAmplitude = amplitude;
+ gSprites[invisibleSpriteId].sBouncerSpriteId = bouncerSpriteId;
+ gSprites[invisibleSpriteId].sWhich = which;
+ gSprites[bouncerSpriteId].pos2.x = 0;
+ gSprites[bouncerSpriteId].pos2.y = 0;
+}
+
+void EndBounceEffect(u8 battler, u8 which)
+{
+ u8 bouncerSpriteId;
+
+ if (which == BOUNCE_HEALTHBOX)
+ {
+ if (!gBattleSpritesDataPtr->healthBoxesData[battler].healthboxIsBouncing)
+ return;
+
+ bouncerSpriteId = gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].healthboxBounceSpriteId].sBouncerSpriteId;
+ DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].healthboxBounceSpriteId]);
+ gBattleSpritesDataPtr->healthBoxesData[battler].healthboxIsBouncing = 0;
+ }
+ else
+ {
+ if (!gBattleSpritesDataPtr->healthBoxesData[battler].battlerIsBouncing)
+ return;
+
+ bouncerSpriteId = gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].battlerBounceSpriteId].sBouncerSpriteId;
+ DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].battlerBounceSpriteId]);
+ gBattleSpritesDataPtr->healthBoxesData[battler].battlerIsBouncing = 0;
+ }
+ gSprites[bouncerSpriteId].pos2.x = 0;
+ gSprites[bouncerSpriteId].pos2.y = 0;
+}
+
+static void SpriteCB_BounceEffect(struct Sprite *sprite)
+{
+ u8 bouncerSpriteId = sprite->sBouncerSpriteId;
+ s32 index;
+
+ if (sprite->sWhich == BOUNCE_HEALTHBOX)
+ index = sprite->sSinIndex;
+ else
+ index = sprite->sSinIndex;
+ gSprites[bouncerSpriteId].pos2.y = Sin(index, sprite->sAmplitude) + sprite->sAmplitude;
+ sprite->sSinIndex = (sprite->sSinIndex + sprite->sDelta) & 0xFF;
+}
+
+void sub_8012354(struct Sprite *sprite)
+{
+ StartSpriteAnim(sprite, 1);
+ sprite->callback = sub_8012398;
+}
+
+void sub_801236C(struct Sprite *sprite)
+{
+ if (sprite->animDelayCounter == 0)
+ sprite->centerToCornerVecX = gUnknown_824F048[sprite->animCmdIndex];
+}
+
+static void sub_8012398(struct Sprite *sprite)
+{
+ sub_801236C(sprite);
+ if (sprite->animEnded)
+ sprite->callback = SpriteCallbackDummy3;
+}
+
+void nullsub_12(void)
+{
+}
+
+void BeginBattleIntro(void)
+{
+ BattleStartClearSetData();
+ gBattleCommunication[1] = 0;
+ gBattleMainFunc = BattleIntroGetMonsData;
+}
+
+static void BattleMainCB1(void)
+{
+ gBattleMainFunc();
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ gBattlerControllerFuncs[gActiveBattler]();
+}
+
+static void BattleStartClearSetData(void)
+{
+ s32 i;
+ u32 j;
+ u8 *dataPtr;
+
+ TurnValuesCleanUp(FALSE);
+ SpecialStatusesClear();
+ for (i = 0; i < MAX_BATTLERS_COUNT; ++i)
+ {
+ gStatuses3[i] = 0;
+ dataPtr = (u8 *)&gDisableStructs[i];
+ for (j = 0; j < sizeof(struct DisableStruct); ++j)
+ dataPtr[j] = 0;
+ gDisableStructs[i].isFirstTurn = 2;
+ gUnknown_2023DD4[i] = 0;
+ gLastMoves[i] = MOVE_NONE;
+ gLastLandedMoves[i] = MOVE_NONE;
+ gLastHitByType[i] = 0;
+ gLastResultingMoves[i] = MOVE_NONE;
+ gLastHitBy[i] = 0xFF;
+ gLockedMoves[i] = MOVE_NONE;
+ gLastPrintedMoves[i] = MOVE_NONE;
+ gBattleResources->flags->flags[i] = 0;
+ }
+ for (i = 0; i < 2; ++i)
+ {
+ gSideStatuses[i] = 0;
+ dataPtr = (u8 *)&gSideTimers[i];
+ for (j = 0; j < sizeof(struct SideTimer); ++j)
+ dataPtr[j] = 0;
+ }
+ gBattlerAttacker = 0;
+ gBattlerTarget = 0;
+ gBattleWeather = 0;
+ dataPtr = (u8 *)&gWishFutureKnock;
+ for (i = 0; i < sizeof(struct WishFutureKnock); ++i)
+ dataPtr[i] = 0;
+ gHitMarker = 0;
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_POKEDUDE)) && gSaveBlock2Ptr->optionsBattleSceneOff)
+ gHitMarker |= HITMARKER_NO_ANIMATIONS;
+ gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle;
+ gMultiHitCounter = 0;
+ gBattleOutcome = 0;
+ gBattleControllerExecFlags = 0;
+ gPaydayMoney = 0;
+ gBattleResources->battleScriptsStack->size = 0;
+ gBattleResources->battleCallbackStack->size = 0;
+ for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; ++i)
+ gBattleCommunication[i] = 0;
+ gPauseCounterBattle = 0;
+ gBattleMoveDamage = 0;
+ gIntroSlideFlags = 0;
+ gBattleScripting.animTurn = 0;
+ gBattleScripting.animTargetsHit = 0;
+ gLeveledUpInBattle = 0;
+ gAbsentBattlerFlags = 0;
+ gBattleStruct->runTries = 0;
+ gBattleStruct->safariGoNearCounter = 0;
+ gBattleStruct->safariPkblThrowCounter = 0;
+ *(&gBattleStruct->safariCatchFactor) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275;
+ *(&gBattleStruct->safariEscapeFactor) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].safariZoneFleeRate * 100 / 1275;
+ if (gBattleStruct->safariEscapeFactor <= 1)
+ gBattleStruct->safariEscapeFactor = 2;
+ gBattleStruct->wildVictorySong = 0;
+ gBattleStruct->moneyMultiplier = 1;
+ for (i = 0; i < 8; ++i)
+ {
+ *((u8 *)gBattleStruct->lastTakenMove + i) = MOVE_NONE;
+ *((u8 *)gBattleStruct->usedHeldItems + i) = ITEM_NONE;
+ *((u8 *)gBattleStruct->choicedMove + i) = MOVE_NONE;
+ *((u8 *)gBattleStruct->changedItems + i) = ITEM_NONE;
+ *(i + 0 * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(i + 1 * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(i + 2 * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(i + 3 * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ }
+ *(gBattleStruct->AI_monToSwitchIntoId + 0) = PARTY_SIZE;
+ *(gBattleStruct->AI_monToSwitchIntoId + 1) = PARTY_SIZE;
+ *(&gBattleStruct->givenExpMons) = 0;
+ for (i = 0; i < 11; ++i)
+ gBattleResults.catchAttempts[i] = 0;
+ gBattleResults.battleTurnCounter = 0;
+ gBattleResults.playerFaintCounter = 0;
+ gBattleResults.opponentFaintCounter = 0;
+ gBattleResults.playerSwitchesCounter = 0;
+ gBattleResults.numHealingItemsUsed = 0;
+ gBattleResults.numRevivesUsed = 0;
+ gBattleResults.playerMonWasDamaged = FALSE;
+ gBattleResults.usedMasterBall = FALSE;
+ gBattleResults.lastOpponentSpecies = SPECIES_NONE;
+ gBattleResults.lastUsedMovePlayer = MOVE_NONE;
+ gBattleResults.lastUsedMoveOpponent = MOVE_NONE;
+ gBattleResults.playerMon1Species = SPECIES_NONE;
+ gBattleResults.playerMon2Species = SPECIES_NONE;
+ gBattleResults.caughtMonSpecies = SPECIES_NONE;
+ for (i = 0; i < POKEMON_NAME_LENGTH; ++i)
+ {
+ gBattleResults.playerMon1Name[i] = 0;
+ gBattleResults.playerMon2Name[i] = 0;
+ gBattleResults.caughtMonNick[i] = 0;
+ }
+}
+
+void SwitchInClearSetData(void)
+{
+ struct DisableStruct disableStructCopy = gDisableStructs[gActiveBattler];
+ s32 i;
+ u8 *ptr;
+
+ if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS)
+ {
+ for (i = 0; i < NUM_BATTLE_STATS; ++i)
+ gBattleMons[gActiveBattler].statStages[i] = 6;
+ for (i = 0; i < gBattlersCount; ++i)
+ {
+ if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].battlerPreventingEscape == gActiveBattler)
+ gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION;
+ if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].battlerWithSureHit == gActiveBattler)
+ {
+ gStatuses3[i] &= ~STATUS3_ALWAYS_HITS;
+ gDisableStructs[i].battlerWithSureHit = 0;
+ }
+ }
+ }
+ if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS)
+ {
+ gBattleMons[gActiveBattler].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED);
+ gStatuses3[gActiveBattler] &= (STATUS3_LEECHSEED_BATTLER | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT);
+ for (i = 0; i < gBattlersCount; ++i)
+ {
+ if (GetBattlerSide(gActiveBattler) != GetBattlerSide(i)
+ && (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0
+ && (gDisableStructs[i].battlerWithSureHit == gActiveBattler))
+ {
+ gStatuses3[i] &= ~(STATUS3_ALWAYS_HITS);
+ gStatuses3[i] |= 0x10;
+ }
+ }
+ }
+ else
+ {
+ gBattleMons[gActiveBattler].status2 = 0;
+ gStatuses3[gActiveBattler] = 0;
+ }
+ for (i = 0; i < gBattlersCount; ++i)
+ {
+ if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBattler))
+ gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBattler));
+ if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBattler)
+ gBattleMons[i].status2 &= ~(STATUS2_WRAPPED);
+ }
+ gActionSelectionCursor[gActiveBattler] = 0;
+ gMoveSelectionCursor[gActiveBattler] = 0;
+ ptr = (u8 *)&gDisableStructs[gActiveBattler];
+ for (i = 0; i < sizeof(struct DisableStruct); ++i)
+ ptr[i] = 0;
+ if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS)
+ {
+ gDisableStructs[gActiveBattler].substituteHP = disableStructCopy.substituteHP;
+ gDisableStructs[gActiveBattler].battlerWithSureHit = disableStructCopy.battlerWithSureHit;
+ gDisableStructs[gActiveBattler].perishSongTimer = disableStructCopy.perishSongTimer;
+ gDisableStructs[gActiveBattler].perishSongTimerStartValue = disableStructCopy.perishSongTimerStartValue;
+ gDisableStructs[gActiveBattler].battlerPreventingEscape = disableStructCopy.battlerPreventingEscape;
+ }
+ gMoveResultFlags = 0;
+ gDisableStructs[gActiveBattler].isFirstTurn = 2;
+ gLastMoves[gActiveBattler] = MOVE_NONE;
+ gLastLandedMoves[gActiveBattler] = MOVE_NONE;
+ gLastHitByType[gActiveBattler] = 0;
+ gLastResultingMoves[gActiveBattler] = MOVE_NONE;
+ gLastPrintedMoves[gActiveBattler] = MOVE_NONE;
+ gLastHitBy[gActiveBattler] = 0xFF;
+ *(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 0) = MOVE_NONE;
+ *(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 1) = MOVE_NONE;
+ *(0 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(0 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(1 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(1 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(2 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(2 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(3 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(3 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ for (i = 0; i < gBattlersCount; ++i)
+ {
+ if (i != gActiveBattler)
+ {
+ *(gBattleStruct->lastTakenMove + i * 2 + 0) = MOVE_NONE;
+ *(gBattleStruct->lastTakenMove + i * 2 + 1) = MOVE_NONE;
+ }
+ *(i * 8 + gActiveBattler * 2 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(i * 8 + gActiveBattler * 2 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ }
+ *((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = MOVE_NONE;
+ *((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = MOVE_NONE;
+ gBattleResources->flags->flags[gActiveBattler] = 0;
+ gCurrentMove = MOVE_NONE;
+}
+
+void FaintClearSetData(void)
+{
+ s32 i;
+ u8 *ptr;
+
+ for (i = 0; i < NUM_BATTLE_STATS; ++i)
+ gBattleMons[gActiveBattler].statStages[i] = 6;
+ gBattleMons[gActiveBattler].status2 = 0;
+ gStatuses3[gActiveBattler] = 0;
+ for (i = 0; i < gBattlersCount; ++i)
+ {
+ if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].battlerPreventingEscape == gActiveBattler)
+ gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION;
+ if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBattler))
+ gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBattler));
+ if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBattler)
+ gBattleMons[i].status2 &= ~(STATUS2_WRAPPED);
+ }
+ gActionSelectionCursor[gActiveBattler] = 0;
+ gMoveSelectionCursor[gActiveBattler] = 0;
+ ptr = (u8 *)&gDisableStructs[gActiveBattler];
+ for (i = 0; i < sizeof(struct DisableStruct); ++i)
+ ptr[i] = 0;
+ gProtectStructs[gActiveBattler].protected = FALSE;
+ gProtectStructs[gActiveBattler].endured = FALSE;
+ gProtectStructs[gActiveBattler].noValidMoves = FALSE;
+ gProtectStructs[gActiveBattler].helpingHand = FALSE;
+ gProtectStructs[gActiveBattler].bounceMove = FALSE;
+ gProtectStructs[gActiveBattler].stealMove = FALSE;
+ gProtectStructs[gActiveBattler].flag0Unknown = FALSE;
+ gProtectStructs[gActiveBattler].prlzImmobility = FALSE;
+ gProtectStructs[gActiveBattler].confusionSelfDmg = FALSE;
+ gProtectStructs[gActiveBattler].targetNotAffected = FALSE;
+ gProtectStructs[gActiveBattler].chargingTurn = FALSE;
+ gProtectStructs[gActiveBattler].fleeFlag = 0;
+ gProtectStructs[gActiveBattler].usedImprisonedMove = FALSE;
+ gProtectStructs[gActiveBattler].loveImmobility = FALSE;
+ gProtectStructs[gActiveBattler].usedDisabledMove = FALSE;
+ gProtectStructs[gActiveBattler].usedTauntedMove = FALSE;
+ gProtectStructs[gActiveBattler].flag2Unknown = FALSE;
+ gProtectStructs[gActiveBattler].flinchImmobility = FALSE;
+ gProtectStructs[gActiveBattler].notFirstStrike = FALSE;
+ gDisableStructs[gActiveBattler].isFirstTurn = 2;
+ gLastMoves[gActiveBattler] = MOVE_NONE;
+ gLastLandedMoves[gActiveBattler] = MOVE_NONE;
+ gLastHitByType[gActiveBattler] = MOVE_NONE;
+ gLastResultingMoves[gActiveBattler] = MOVE_NONE;
+ gLastPrintedMoves[gActiveBattler] = MOVE_NONE;
+ gLastHitBy[gActiveBattler] = 0xFF;
+ *((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = MOVE_NONE;
+ *((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = MOVE_NONE;
+ *(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 0) = MOVE_NONE;
+ *(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 1) = MOVE_NONE;
+ *(0 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(0 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(1 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(1 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(2 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(2 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ *(3 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(3 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ for (i = 0; i < gBattlersCount; ++i)
+ {
+ if (i != gActiveBattler)
+ {
+ *(gBattleStruct->lastTakenMove + i * 2 + 0) = MOVE_NONE;
+ *(gBattleStruct->lastTakenMove + i * 2 + 1) = MOVE_NONE;
+ }
+ *(i * 8 + gActiveBattler * 2 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
+ *(i * 8 + gActiveBattler * 2 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
+ }
+ gBattleResources->flags->flags[gActiveBattler] = 0;
+ gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1;
+ gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2;
+}
+
+static void BattleIntroGetMonsData(void)
+{
+ switch (gBattleCommunication[MULTIUSE_STATE])
+ {
+ case 0:
+ gActiveBattler = gBattleCommunication[1];
+ BtlController_EmitGetMonData(0, REQUEST_ALL_BATTLE, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
+ ++gBattleCommunication[MULTIUSE_STATE];
+ break;
+ case 1:
+ if (gBattleControllerExecFlags == 0)
+ {
+ ++gBattleCommunication[1];
+ if (gBattleCommunication[1] == gBattlersCount)
+ gBattleMainFunc = BattleIntroPrepareBackgroundSlide;
+ else
+ gBattleCommunication[MULTIUSE_STATE] = 0;
+ }
+ break;
+ }
+}
+
+static void BattleIntroPrepareBackgroundSlide(void)
+{
+ if (gBattleControllerExecFlags == 0)
+ {
+ gActiveBattler = GetBattlerAtPosition(0);
+ BtlController_EmitIntroSlide(0, gBattleTerrain);
+ MarkBattlerForControllerExec(gActiveBattler);
+ gBattleMainFunc = BattleIntroDrawTrainersOrMonsSprites;
+ gBattleCommunication[MULTIUSE_STATE] = 0;
+ gBattleCommunication[SPRITES_INIT_STATE1] = 0;
+ }
+}
+
+static void BattleIntroDrawTrainersOrMonsSprites(void)
+{
+ u8 *ptr;
+ s32 i;
+
+ if (!gBattleControllerExecFlags)
+ {
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI)
+ && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
+ {
+ ptr = (u8 *)&gBattleMons[gActiveBattler];
+ for (i = 0; i < sizeof(struct BattlePokemon); ++i)
+ ptr[i] = 0;
+ }
+ else
+ {
+ u16 *hpOnSwitchout;
+
+ ptr = (u8 *)&gBattleMons[gActiveBattler];
+ for (i = 0; i < sizeof(struct BattlePokemon); ++i)
+ ptr[i] = gBattleBufferB[gActiveBattler][4 + i];
+ gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1;
+ gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2;
+ gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].abilityNum);
+ hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(gActiveBattler)];
+ *hpOnSwitchout = gBattleMons[gActiveBattler].hp;
+ for (i = 0; i < NUM_BATTLE_STATS; ++i)
+ gBattleMons[gActiveBattler].statStages[i] = 6;
+ gBattleMons[gActiveBattler].status2 = 0;
+ }
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT)
+ {
+ BtlController_EmitDrawTrainerPic(0);
+ MarkBattlerForControllerExec(gActiveBattler);
+ }
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ {
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT)
+ {
+ BtlController_EmitDrawTrainerPic(0);
+ MarkBattlerForControllerExec(gActiveBattler);
+ }
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT
+ && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER
+ | BATTLE_TYPE_POKEDUDE
+ | BATTLE_TYPE_LINK
+ | BATTLE_TYPE_GHOST
+ | BATTLE_TYPE_OLD_MAN_TUTORIAL
+ | BATTLE_TYPE_LEGENDARY)))
+ HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
+ }
+ else
+ {
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT)
+ {
+ if (gBattleTypeFlags & (BATTLE_TYPE_GHOST | BATTLE_TYPE_LEGENDARY))
+ {
+ if ((gBattleTypeFlags & (BATTLE_TYPE_GHOST | BATTLE_TYPE_LEGENDARY)) != BATTLE_TYPE_GHOST)
+ HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
+ }
+ else if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER
+ | BATTLE_TYPE_POKEDUDE
+ | BATTLE_TYPE_LINK
+ | BATTLE_TYPE_GHOST
+ | BATTLE_TYPE_OLD_MAN_TUTORIAL
+ | BATTLE_TYPE_LEGENDARY)))
+ {
+ HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
+ }
+ BtlController_EmitLoadMonSprite(0);
+ MarkBattlerForControllerExec(gActiveBattler);
+ }
+ }
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI
+ && (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT || GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT))
+ {
+ BtlController_EmitDrawTrainerPic(0);
+ MarkBattlerForControllerExec(gActiveBattler);
+ }
+ }
+ gBattleMainFunc = BattleIntroDrawPartySummaryScreens;
+ }
+}
+
+static void BattleIntroDrawPartySummaryScreens(void)
+{
+ s32 i;
+ struct HpAndStatus hpStatus[PARTY_SIZE];
+
+ if (!gBattleControllerExecFlags)
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ {
+ for (i = 0; i < PARTY_SIZE; ++i)
+ {
+ if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE
+ || GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
+ {
+ hpStatus[i].hp = 0xFFFF;
+ hpStatus[i].status = 0;
+ }
+ else
+ {
+ hpStatus[i].hp = GetMonData(&gEnemyParty[i], MON_DATA_HP);
+ hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS);
+ }
+ }
+ gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ BtlController_EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
+ MarkBattlerForControllerExec(gActiveBattler);
+ for (i = 0; i < PARTY_SIZE; ++i)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE
+ || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
+ {
+ hpStatus[i].hp = 0xFFFF;
+ hpStatus[i].status = 0;
+ }
+ else
+ {
+ hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
+ hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
+ }
+ }
+ gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ BtlController_EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
+ MarkBattlerForControllerExec(gActiveBattler);
+
+ gBattleMainFunc = BattleIntroPrintTrainerWantsToBattle;
+ }
+ else
+ {
+ // The struct gets set here, but nothing is ever done with it since
+ // wild battles don't show the party summary.
+ // Still, there's no point in having dead code.
+ for (i = 0; i < PARTY_SIZE; ++i)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE
+ || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
+ {
+ hpStatus[i].hp = 0xFFFF;
+ hpStatus[i].status = 0;
+ }
+ else
+ {
+ hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
+ hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
+ }
+ }
+ gBattleMainFunc = BattleIntroPrintWildMonAttacked;
+ }
+ }
+}
+
+static void BattleIntroPrintTrainerWantsToBattle(void)
+{
+ if (!gBattleControllerExecFlags)
+ {
+ gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ PrepareStringBattle(STRINGID_INTROMSG, gActiveBattler);
+ gBattleMainFunc = BattleIntroPrintOpponentSendsOut;
+ }
+}
+
+static void BattleIntroPrintWildMonAttacked(void)
+{
+ if (!gBattleControllerExecFlags)
+ {
+ gBattleMainFunc = BattleIntroPrintPlayerSendsOut;
+ PrepareStringBattle(STRINGID_INTROMSG, 0);
+ if ((gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_GHOST)) == (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_GHOST))
+ {
+ gBattleScripting.battler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ BattleScriptExecute(gUnknown_81D91A1);
+ }
+ }
+}
+
+static void BattleIntroPrintOpponentSendsOut(void)
+{
+ if (!gBattleControllerExecFlags)
+ {
+ PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT));
+ gBattleMainFunc = BattleIntroOpponentSendsOutMonAnimation;
+ }
+}
+
+static void BattleIntroOpponentSendsOutMonAnimation(void)
+{
+ if (!gBattleControllerExecFlags)
+ {
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT)
+ {
+ BtlController_EmitIntroTrainerBallThrow(0);
+ MarkBattlerForControllerExec(gActiveBattler);
+ }
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT)
+ {
+ BtlController_EmitIntroTrainerBallThrow(0);
+ MarkBattlerForControllerExec(gActiveBattler);
+ }
+ }
+ gBattleMainFunc = BattleIntroRecordMonsToDex;
+ }
+}
+
+static void BattleIntroRecordMonsToDex(void)
+{
+ if (!gBattleControllerExecFlags)
+ {
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT
+ && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER
+ | BATTLE_TYPE_POKEDUDE
+ | BATTLE_TYPE_LINK
+ | BATTLE_TYPE_GHOST
+ | BATTLE_TYPE_OLD_MAN_TUTORIAL
+ | BATTLE_TYPE_LEGENDARY)))
+ HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
+ gBattleMainFunc = BattleIntroPrintPlayerSendsOut;
+ }
+}
+
+// not used
+static void sub_80136C4(void)
+{
+ if (!gBattleControllerExecFlags)
+ gBattleMainFunc = BattleIntroPrintPlayerSendsOut;
+}
+
+void BattleIntroPrintPlayerSendsOut(void)
+{
+ if (!gBattleControllerExecFlags)
+ {
+ if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
+ PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(B_POSITION_PLAYER_LEFT));
+ gBattleMainFunc = BattleIntroPlayerSendsOutMonAnimation;
+ }
+}
+
+static void BattleIntroPlayerSendsOutMonAnimation(void)
+{
+ u32 position;
+
+ if (!gBattleControllerExecFlags)
+ {
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT)
+ {
+ BtlController_EmitIntroTrainerBallThrow(0);
+ MarkBattlerForControllerExec(gActiveBattler);
+ }
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT)
+ {
+ BtlController_EmitIntroTrainerBallThrow(0);
+ MarkBattlerForControllerExec(gActiveBattler);
+ }
+ }
+ gBattleStruct->switchInAbilitiesCounter = 0;
+ gBattleStruct->switchInItemsCounter = 0;
+ gBattleStruct->overworldWeatherDone = FALSE;
+ gBattleMainFunc = TryDoEventsBeforeFirstTurn;
+ }
+}
+
+// not used
+static void sub_80137D0(void)
+{
+ if (!gBattleControllerExecFlags)
+ {
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
+ {
+ BtlController_EmitSwitchInAnim(0, gBattlerPartyIndexes[gActiveBattler], FALSE);
+ MarkBattlerForControllerExec(gActiveBattler);
+ }
+ }
+ gBattleStruct->switchInAbilitiesCounter = 0;
+ gBattleStruct->switchInItemsCounter = 0;
+ gBattleStruct->overworldWeatherDone = FALSE;
+ gBattleMainFunc = TryDoEventsBeforeFirstTurn;
+ }
+}
+
+static void TryDoEventsBeforeFirstTurn(void)
+{
+ s32 i, j;
+ u8 effect = 0;
+
+ if (!gBattleControllerExecFlags)
+ {
+
+ if (gBattleStruct->switchInAbilitiesCounter == 0)
+ {
+ for (i = 0; i < gBattlersCount; ++i)
+ gBattlerByTurnOrder[i] = i;
+ for (i = 0; i < gBattlersCount - 1; ++i)
+ for (j = i + 1; j < gBattlersCount; ++j)
+ if (GetWhoStrikesFirst(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], TRUE) != 0)
+ SwapTurnOrder(i, j);
+ }
+ if (!gBattleStruct->overworldWeatherDone
+ && AbilityBattleEffects(0, 0, 0, ABILITYEFFECT_SWITCH_IN_WEATHER, 0) != 0)
+ {
+ gBattleStruct->overworldWeatherDone = TRUE;
+ return;
+ }
+ // Check all switch in abilities happening from the fastest mon to slowest.
+ while (gBattleStruct->switchInAbilitiesCounter < gBattlersCount)
+ {
+ if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBattlerByTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0)
+ ++effect;
+ ++gBattleStruct->switchInAbilitiesCounter;
+ if (effect)
+ return;
+ }
+ if (AbilityBattleEffects(ABILITYEFFECT_INTIMIDATE1, 0, 0, 0, 0) != 0)
+ return;
+ if (AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) != 0)
+ return;
+ // Check all switch in items having effect from the fastest mon to slowest.
+ while (gBattleStruct->switchInItemsCounter < gBattlersCount)
+ {
+ if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBattlerByTurnOrder[gBattleStruct->switchInItemsCounter], FALSE))
+ ++effect;
+ ++gBattleStruct->switchInItemsCounter;
+ if (effect)
+ return;
+ }
+ for (i = 0; i < gBattlersCount; ++i) // pointless, ruby leftover
+ ;
+ for (i = 0; i < MAX_BATTLERS_COUNT; ++i)
+ {
+ *(gBattleStruct->monToSwitchIntoId + i) = PARTY_SIZE;
+ gChosenActionByBattler[i] = B_ACTION_NONE;
+ gChosenMoveByBattler[i] = MOVE_NONE;
+ }
+ TurnValuesCleanUp(FALSE);
+ SpecialStatusesClear();
+ *(&gBattleStruct->field_91) = gAbsentBattlerFlags;
+ gBattleMainFunc = HandleTurnActionSelectionState;
+ ResetSentPokesToOpponentValue();
+ for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; ++i)
+ gBattleCommunication[i] = 0;
+ for (i = 0; i < gBattlersCount; ++i)
+ gBattleMons[i].status2 &= ~(STATUS2_FLINCHED);
+ *(&gBattleStruct->turnEffectsTracker) = 0;
+ *(&gBattleStruct->turnEffectsBattlerId) = 0;
+ *(&gBattleStruct->wishPerishSongState) = 0;
+ *(&gBattleStruct->wishPerishSongBattlerId) = 0;
+ gBattleScripting.atk49_state = 0;
+ gBattleStruct->faintedActionsState = 0;
+ gBattleStruct->turnCountersTracker = 0;
+ gMoveResultFlags = 0;
+ gRandomTurnNumber = Random();
+ }
+}
+
+static void HandleEndTurn_ContinueBattle(void)
+{
+ s32 i;
+
+ if (!gBattleControllerExecFlags)
+ {
+ gBattleMainFunc = BattleTurnPassed;
+ for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; ++i)
+ gBattleCommunication[i] = 0;
+ for (i = 0; i < gBattlersCount; ++i)
+ {
+ gBattleMons[i].status2 &= ~(STATUS2_FLINCHED);
+ if ((gBattleMons[i].status1 & STATUS1_SLEEP) && (gBattleMons[i].status2 & STATUS2_MULTIPLETURNS))
+ CancelMultiTurnMoves(i);
+ }
+ gBattleStruct->turnEffectsTracker = 0;
+ gBattleStruct->turnEffectsBattlerId = 0;
+ gBattleStruct->wishPerishSongState = 0;
+ gBattleStruct->wishPerishSongBattlerId = 0;
+ gBattleStruct->turnCountersTracker = 0;
+ gMoveResultFlags = 0;
+ }
+}
+
+void BattleTurnPassed(void)
+{
+ s32 i;
+
+ TurnValuesCleanUp(TRUE);
+ if (gBattleOutcome == 0)
+ {
+ if (DoFieldEndTurnEffects())
+ return;
+ if (DoBattlerEndTurnEffects())
+ return;
+ }
+ if (HandleFaintedMonActions())
+ return;
+ gBattleStruct->faintedActionsState = 0;
+ if (HandleWishPerishSongOnTurnEnd())
+ return;
+ TurnValuesCleanUp(FALSE);
+ gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING);
+ gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE);
+ gHitMarker &= ~(HITMARKER_x400000);
+ gHitMarker &= ~(HITMARKER_x100000);
+ gBattleScripting.animTurn = 0;
+ gBattleScripting.animTargetsHit = 0;
+ gBattleScripting.atk49_state = 0;
+ gBattleMoveDamage = 0;
+ gMoveResultFlags = 0;
+ for (i = 0; i < 5; ++i)
+ gBattleCommunication[i] = 0;
+ if (gBattleOutcome != 0)
+ {
+ gCurrentActionFuncId = B_ACTION_FINISHED;
+ gBattleMainFunc = RunTurnActionsFunctions;
+ return;
+ }
+ if (gBattleResults.battleTurnCounter < 0xFF)
+ ++gBattleResults.battleTurnCounter;
+ for (i = 0; i < gBattlersCount; ++i)
+ {
+ gChosenActionByBattler[i] = B_ACTION_NONE;
+ gChosenMoveByBattler[i] = MOVE_NONE;
+ }
+ for (i = 0; i < MAX_BATTLERS_COUNT; ++i)
+ *(gBattleStruct->monToSwitchIntoId + i) = PARTY_SIZE;
+ *(&gBattleStruct->field_91) = gAbsentBattlerFlags;
+ gBattleMainFunc = HandleTurnActionSelectionState;
+ gRandomTurnNumber = Random();
+}
+
+u8 IsRunningFromBattleImpossible(void)
+{
+ u8 holdEffect;
+ u8 side;
+ s32 i;
+
+ if (gBattleMons[gActiveBattler].item == ITEM_ENIGMA_BERRY)
+ holdEffect = gEnigmaBerries[gActiveBattler].holdEffect;
+ else
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item);
+ gPotentialItemEffectBattler = gActiveBattler;
+ if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN
+ || (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ || gBattleMons[gActiveBattler].ability == ABILITY_RUN_AWAY)
+ return BATTLE_RUN_SUCCESS;
+ side = GetBattlerSide(gActiveBattler);
+ for (i = 0; i < gBattlersCount; ++i)
+ {
+ if (side != GetBattlerSide(i)
+ && gBattleMons[i].ability == ABILITY_SHADOW_TAG)
+ {
+ gBattleScripting.battler = i;
+ gLastUsedAbility = gBattleMons[i].ability;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
+ return BATTLE_RUN_FAILURE;
+ }
+ if (side != GetBattlerSide(i)
+ && gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE
+ && !IS_BATTLER_OF_TYPE(gActiveBattler, TYPE_FLYING)
+ && gBattleMons[i].ability == ABILITY_ARENA_TRAP)
+ {
+ gBattleScripting.battler = i;
+ gLastUsedAbility = gBattleMons[i].ability;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
+ return BATTLE_RUN_FAILURE;
+ }
+ }
+ i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0);
+ if (i != 0 && IS_BATTLER_OF_TYPE(gActiveBattler, TYPE_STEEL))
+ {
+ gBattleScripting.battler = i - 1;
+ gLastUsedAbility = gBattleMons[i - 1].ability;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
+ return BATTLE_RUN_FAILURE;
+ }
+ if ((gBattleMons[gActiveBattler].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED))
+ || (gStatuses3[gActiveBattler] & STATUS3_ROOTED))
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ return BATTLE_RUN_FORBIDDEN;
+ }
+ if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
+ return BATTLE_RUN_FORBIDDEN;
+ }
+ return BATTLE_RUN_SUCCESS;
+}
+
+void sub_8013F6C(u8 battler)
+{
+ s32 i;
+ u8 r4, r1;
+
+ for (i = 0; i < 3; ++i)
+ gUnknown_203B0DC[i] = *(battler * 3 + i + (u8 *)(gBattleStruct->field_60));
+ r4 = pokemon_order_func(gBattlerPartyIndexes[battler]);
+ r1 = pokemon_order_func(*(gBattleStruct->monToSwitchIntoId + battler));
+ sub_8127FF4(r4, r1);
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ {
+ for (i = 0; i < 3; ++i)
+ {
+ *(battler * 3 + i + (u8 *)(gBattleStruct->field_60)) = gUnknown_203B0DC[i];
+ *(BATTLE_PARTNER(battler) * 3 + i + (u8 *)(gBattleStruct->field_60)) = gUnknown_203B0DC[i];
+ }
+ }
+ else
+ {
+ for (i = 0; i < 3; ++i)
+ *(battler * 3 + i + (u8 *)(gBattleStruct->field_60)) = gUnknown_203B0DC[i];
+ }
+}
+
+enum
+{
+ STATE_BEFORE_ACTION_CHOSEN,
+ STATE_WAIT_ACTION_CHOSEN,
+ STATE_WAIT_ACTION_CASE_CHOSEN,
+ STATE_WAIT_ACTION_CONFIRMED_STANDBY,
+ STATE_WAIT_ACTION_CONFIRMED,
+ STATE_SELECTION_SCRIPT,
+ STATE_WAIT_SET_BEFORE_ACTION,
+};
+
+static void HandleTurnActionSelectionState(void)
+{
+ s32 i;
+
+ gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0;
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ u8 position = GetBattlerPosition(gActiveBattler);
+
+ switch (gBattleCommunication[gActiveBattler])
+ {
+ case STATE_BEFORE_ACTION_CHOSEN: // Choose an action.
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = PARTY_SIZE;
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI
+ || (position & BIT_FLANK) == B_FLANK_LEFT
+ || gBattleStruct->field_91 & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(position))]
+ || gBattleCommunication[GetBattlerAtPosition(BATTLE_PARTNER(position))] == STATE_WAIT_ACTION_CONFIRMED)
+ {
+ if (gBattleStruct->field_91 & gBitTable[gActiveBattler])
+ {
+ gChosenActionByBattler[gActiveBattler] = B_ACTION_NOTHING_FAINTED;
+ if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
+ gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED;
+ else
+ gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
+ }
+ else
+ {
+ if (gBattleMons[gActiveBattler].status2 & STATUS2_MULTIPLETURNS
+ || gBattleMons[gActiveBattler].status2 & STATUS2_RECHARGE)
+ {
+ gChosenActionByBattler[gActiveBattler] = B_ACTION_USE_MOVE;
+ gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
+ }
+ else
+ {
+ BtlController_EmitChooseAction(0, gChosenActionByBattler[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8));
+ MarkBattlerForControllerExec(gActiveBattler);
+ ++gBattleCommunication[gActiveBattler];
+ }
+ }
+ }
+ break;
+ case STATE_WAIT_ACTION_CHOSEN: // Try to perform an action.
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
+ {
+ gChosenActionByBattler[gActiveBattler] = gBattleBufferB[gActiveBattler][1];
+ switch (gBattleBufferB[gActiveBattler][1])
+ {
+ case B_ACTION_USE_MOVE:
+ if (AreAllMovesUnusable())
+ {
+ gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT;
+ *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE;
+ *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
+ *(gBattleStruct->moveTarget + gActiveBattler) = gBattleBufferB[gActiveBattler][3];
+ return;
+ }
+ else if (gDisableStructs[gActiveBattler].encoredMove != MOVE_NONE)
+ {
+ gChosenMoveByBattler[gActiveBattler] = gDisableStructs[gActiveBattler].encoredMove;
+ *(gBattleStruct->chosenMovePositions + gActiveBattler) = gDisableStructs[gActiveBattler].encoredMovePos;
+ gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
+ return;
+ }
+ else
+ {
+ struct ChooseMoveStruct moveInfo;
+
+ moveInfo.species = gBattleMons[gActiveBattler].species;
+ moveInfo.monType1 = gBattleMons[gActiveBattler].type1;
+ moveInfo.monType2 = gBattleMons[gActiveBattler].type2;
+ for (i = 0; i < MAX_MON_MOVES; ++i)
+ {
+ moveInfo.moves[i] = gBattleMons[gActiveBattler].moves[i];
+ moveInfo.currentPp[i] = gBattleMons[gActiveBattler].pp[i];
+ moveInfo.maxPp[i] = CalculatePPWithBonus(gBattleMons[gActiveBattler].moves[i],
+ gBattleMons[gActiveBattler].ppBonuses,
+ i);
+ }
+ BtlController_EmitChooseMove(0, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0, FALSE, &moveInfo);
+ MarkBattlerForControllerExec(gActiveBattler);
+ }
+ break;
+ case B_ACTION_USE_ITEM:
+ if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))
+ {
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_ActionSelectionItemsCantBeUsed;
+ gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT;
+ *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE;
+ *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_BEFORE_ACTION_CHOSEN;
+ return;
+ }
+ else
+ {
+ BtlController_EmitChooseItem(0, gBattleStruct->field_60[gActiveBattler]);
+ MarkBattlerForControllerExec(gActiveBattler);
+ }
+ break;
+ case B_ACTION_SWITCH:
+ *(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler];
+ if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION) || gStatuses3[gActiveBattler] & STATUS3_ROOTED)
+ {
+ BtlController_EmitChoosePokemon(0, PARTY_CANT_SWITCH, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
+ }
+ else if ((i = ABILITY_ON_OPPOSING_FIELD(gActiveBattler, ABILITY_SHADOW_TAG))
+ || ((i = ABILITY_ON_OPPOSING_FIELD(gActiveBattler, ABILITY_ARENA_TRAP))
+ && !IS_BATTLER_OF_TYPE(gActiveBattler, TYPE_FLYING)
+ && gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE)
+ || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0))
+ && IS_BATTLER_OF_TYPE(gActiveBattler, TYPE_STEEL)))
+ {
+ BtlController_EmitChoosePokemon(0, ((i - 1) << 4) | PARTY_ABILITY_PREVENTS, 6, gLastUsedAbility, gBattleStruct->field_60[gActiveBattler]);
+ }
+ else
+ {
+ if (gActiveBattler == 2 && gChosenActionByBattler[0] == B_ACTION_SWITCH)
+ BtlController_EmitChoosePokemon(0, PARTY_CHOOSE_MON, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
+ else if (gActiveBattler == 3 && gChosenActionByBattler[1] == B_ACTION_SWITCH)
+ BtlController_EmitChoosePokemon(0, PARTY_CHOOSE_MON, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
+ else
+ BtlController_EmitChoosePokemon(0, PARTY_CHOOSE_MON, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
+ }
+ MarkBattlerForControllerExec(gActiveBattler);
+ break;
+ case B_ACTION_SAFARI_BALL:
+ if (IsPlayerPartyAndPokemonStorageFull())
+ {
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_PrintFullBox;
+ gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT;
+ *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE;
+ *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_BEFORE_ACTION_CHOSEN;
+ return;
+ }
+ break;
+ case B_ACTION_CANCEL_PARTNER:
+ gBattleCommunication[gActiveBattler] = STATE_WAIT_SET_BEFORE_ACTION;
+ gBattleCommunication[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))] = STATE_BEFORE_ACTION_CHOSEN;
+ BtlController_EmitEndBounceEffect(0);
+ MarkBattlerForControllerExec(gActiveBattler);
+ return;
+ }
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER
+ && !(gBattleTypeFlags & BATTLE_TYPE_LINK)
+ && gBattleBufferB[gActiveBattler][1] == B_ACTION_RUN)
+ {
+ BattleScriptExecute(BattleScript_PrintCantRunFromTrainer);
+ gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN;
+ }
+ else if (IsRunningFromBattleImpossible() != BATTLE_RUN_SUCCESS
+ && gBattleBufferB[gActiveBattler][1] == B_ACTION_RUN)
+ {
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_PrintCantEscapeFromBattle;
+ gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT;
+ *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE;
+ *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_BEFORE_ACTION_CHOSEN;
+ return;
+ }
+ else
+ {
+ ++gBattleCommunication[gActiveBattler];
+ }
+ }
+ break;
+ case STATE_WAIT_ACTION_CASE_CHOSEN:
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
+ {
+ switch (gChosenActionByBattler[gActiveBattler])
+ {
+ case B_ACTION_USE_MOVE:
+ switch (gBattleBufferB[gActiveBattler][1])
+ {
+ case 3 ... 9:
+ gChosenActionByBattler[gActiveBattler] = gBattleBufferB[gActiveBattler][1];
+ return;
+ default:
+ if ((gBattleBufferB[gActiveBattler][2] | (gBattleBufferB[gActiveBattler][3] << 8)) == 0xFFFF)
+ {
+ gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN;
+ }
+ else if (TrySetCantSelectMoveBattleScript())
+ {
+ gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT;
+ *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE;
+ gBattleBufferB[gActiveBattler][1] = 0;
+ *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_WAIT_ACTION_CHOSEN;
+ return;
+ }
+ else
+ {
+ *(gBattleStruct->chosenMovePositions + gActiveBattler) = gBattleBufferB[gActiveBattler][2];
+ gChosenMoveByBattler[gActiveBattler] = gBattleMons[gActiveBattler].moves[*(gBattleStruct->chosenMovePositions + gActiveBattler)];
+ *(gBattleStruct->moveTarget + gActiveBattler) = gBattleBufferB[gActiveBattler][3];
+ ++gBattleCommunication[gActiveBattler];
+ }
+ break;
+ }
+ break;
+ case B_ACTION_USE_ITEM:
+ if ((gBattleBufferB[gActiveBattler][1] | (gBattleBufferB[gActiveBattler][2] << 8)) == 0)
+ {
+ gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN;
+ }
+ else
+ {
+ gLastUsedItem = (gBattleBufferB[gActiveBattler][1] | (gBattleBufferB[gActiveBattler][2] << 8));
+ ++gBattleCommunication[gActiveBattler];
+ }
+ break;
+ case B_ACTION_SWITCH:
+ if (gBattleBufferB[gActiveBattler][1] == PARTY_SIZE)
+ {
+ gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN;
+ }
+ else
+ {
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = gBattleBufferB[gActiveBattler][1];
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ *(gActiveBattler * 3 + (u8 *)(gBattleStruct->field_60) + 0) &= 0xF;
+ *(gActiveBattler * 3 + (u8 *)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0);
+ *(gActiveBattler * 3 + (u8 *)(gBattleStruct->field_60) + 1) = gBattleBufferB[gActiveBattler][3];
+ *((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->field_60) + 0) &= (0xF0);
+ *((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4;
+ *((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->field_60) + 2) = gBattleBufferB[gActiveBattler][3];
+ }
+ ++gBattleCommunication[gActiveBattler];
+ }
+ break;
+ case B_ACTION_RUN:
+ gHitMarker |= HITMARKER_RUN;
+ ++gBattleCommunication[gActiveBattler];
+ break;
+ case B_ACTION_SAFARI_WATCH_CAREFULLY:
+ ++gBattleCommunication[gActiveBattler];
+ break;
+ case B_ACTION_SAFARI_BALL:
+ ++gBattleCommunication[gActiveBattler];
+ break;
+ case B_ACTION_SAFARI_POKEBLOCK:
+ case B_ACTION_SAFARI_GO_NEAR:
+ ++gBattleCommunication[gActiveBattler];
+ break;
+ case B_ACTION_SAFARI_RUN:
+ gHitMarker |= HITMARKER_RUN;
+ ++gBattleCommunication[gActiveBattler];
+ break;
+ case B_ACTION_OLDMAN_THROW:
+ ++gBattleCommunication[gActiveBattler];
+ break;
+ }
+ }
+ break;
+ case STATE_WAIT_ACTION_CONFIRMED_STANDBY:
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
+ {
+ if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE)
+ || (position & BIT_FLANK) != B_FLANK_LEFT
+ || (*(&gBattleStruct->field_91) & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)]))
+ BtlController_EmitLinkStandbyMsg(0, 0);
+ else
+ BtlController_EmitLinkStandbyMsg(0, 1);
+ MarkBattlerForControllerExec(gActiveBattler);
+ ++gBattleCommunication[gActiveBattler];
+ }
+ break;
+ case STATE_WAIT_ACTION_CONFIRMED:
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
+ ++gBattleCommunication[ACTIONS_CONFIRMED_COUNT];
+ break;
+ case STATE_SELECTION_SCRIPT:
+ if (*(gBattleStruct->selectionScriptFinished + gActiveBattler))
+ {
+ gBattleCommunication[gActiveBattler] = *(gBattleStruct->stateIdAfterSelScript + gActiveBattler);
+ }
+ else
+ {
+ gBattlerAttacker = gActiveBattler;
+ gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBattler];
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
+ gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
+ gSelectionBattleScripts[gActiveBattler] = gBattlescriptCurrInstr;
+ }
+ break;
+ case STATE_WAIT_SET_BEFORE_ACTION:
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
+ gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN;
+ break;
+ }
+ }
+ // Check if everyone chose actions.
+ if (gBattleCommunication[ACTIONS_CONFIRMED_COUNT] == gBattlersCount)
+ gBattleMainFunc = SetActionsAndBattlersTurnOrder;
+}
+
+void SwapTurnOrder(u8 id1, u8 id2)
+{
+ u32 temp;
+
+ SWAP(gActionsByTurnOrder[id1], gActionsByTurnOrder[id2], temp);
+ SWAP(gBattlerByTurnOrder[id1], gBattlerByTurnOrder[id2], temp);
+}
+
+u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves)
+{
+ u8 strikesFirst = 0;
+ u8 speedMultiplierBattler1 = 0, speedMultiplierBattler2 = 0;
+ u32 speedBattler1 = 0, speedBattler2 = 0;
+ u8 holdEffect = 0;
+ u8 holdEffectParam = 0;
+ u16 moveBattler1 = 0, moveBattler2 = 0;
+
+ if (WEATHER_HAS_EFFECT)
+ {
+ if ((gBattleMons[battler1].ability == ABILITY_SWIFT_SWIM && gBattleWeather & WEATHER_RAIN_ANY)
+ || (gBattleMons[battler1].ability == ABILITY_CHLOROPHYLL && gBattleWeather & WEATHER_SUN_ANY))
+ speedMultiplierBattler1 = 2;
+ else
+ speedMultiplierBattler1 = 1;
+ if ((gBattleMons[battler2].ability == ABILITY_SWIFT_SWIM && gBattleWeather & WEATHER_RAIN_ANY)
+ || (gBattleMons[battler2].ability == ABILITY_CHLOROPHYLL && gBattleWeather & WEATHER_SUN_ANY))
+ speedMultiplierBattler2 = 2;
+ else
+ speedMultiplierBattler2 = 1;
+ }
+ else
+ {
+ speedMultiplierBattler1 = 1;
+ speedMultiplierBattler2 = 1;
+ }
+ speedBattler1 = (gBattleMons[battler1].speed * speedMultiplierBattler1)
+ * (gStatStageRatios[gBattleMons[battler1].statStages[STAT_SPEED]][0])
+ / (gStatStageRatios[gBattleMons[battler1].statStages[STAT_SPEED]][1]);
+ if (gBattleMons[battler1].item == ITEM_ENIGMA_BERRY)
+ {
+ holdEffect = gEnigmaBerries[battler1].holdEffect;
+ holdEffectParam = gEnigmaBerries[battler1].holdEffectParam;
+ }
+ else
+ {
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[battler1].item);
+ holdEffectParam = ItemId_GetHoldEffectParam(gBattleMons[battler1].item);
+ }
+ // badge boost
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)
+ && FlagGet(FLAG_BADGE03_GET)
+ && GetBattlerSide(battler1) == B_SIDE_PLAYER)
+ speedBattler1 = (speedBattler1 * 110) / 100;
+ if (holdEffect == HOLD_EFFECT_MACHO_BRACE)
+ speedBattler1 /= 2;
+ if (gBattleMons[battler1].status1 & STATUS1_PARALYSIS)
+ speedBattler1 /= 4;
+ if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100)
+ speedBattler1 = UINT_MAX;
+ // check second battlerId's speed
+ speedBattler2 = (gBattleMons[battler2].speed * speedMultiplierBattler2)
+ * (gStatStageRatios[gBattleMons[battler2].statStages[STAT_SPEED]][0])
+ / (gStatStageRatios[gBattleMons[battler2].statStages[STAT_SPEED]][1]);
+ if (gBattleMons[battler2].item == ITEM_ENIGMA_BERRY)
+ {
+ holdEffect = gEnigmaBerries[battler2].holdEffect;
+ holdEffectParam = gEnigmaBerries[battler2].holdEffectParam;
+ }
+ else
+ {
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[battler2].item);
+ holdEffectParam = ItemId_GetHoldEffectParam(gBattleMons[battler2].item);
+ }
+ // badge boost
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)
+ && FlagGet(FLAG_BADGE03_GET)
+ && GetBattlerSide(battler2) == B_SIDE_PLAYER)
+ speedBattler2 = (speedBattler2 * 110) / 100;
+ if (holdEffect == HOLD_EFFECT_MACHO_BRACE)
+ speedBattler2 /= 2;
+ if (gBattleMons[battler2].status1 & STATUS1_PARALYSIS)
+ speedBattler2 /= 4;
+ if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100)
+ speedBattler2 = UINT_MAX;
+ if (ignoreChosenMoves)
+ {
+ moveBattler1 = MOVE_NONE;
+ moveBattler2 = MOVE_NONE;
+ }
+ else
+ {
+ if (gChosenActionByBattler[battler1] == B_ACTION_USE_MOVE)
+ {
+ if (gProtectStructs[battler1].noValidMoves)
+ moveBattler1 = MOVE_STRUGGLE;
+ else
+ moveBattler1 = gBattleMons[battler1].moves[*(gBattleStruct->chosenMovePositions + battler1)];
+ }
+ else
+ moveBattler1 = MOVE_NONE;
+ if (gChosenActionByBattler[battler2] == B_ACTION_USE_MOVE)
+ {
+ if (gProtectStructs[battler2].noValidMoves)
+ moveBattler2 = MOVE_STRUGGLE;
+ else
+ moveBattler2 = gBattleMons[battler2].moves[*(gBattleStruct->chosenMovePositions + battler2)];
+ }
+ else
+ moveBattler2 = MOVE_NONE;
+ }
+ // both move priorities are different than 0
+ if (gBattleMoves[moveBattler1].priority != 0 || gBattleMoves[moveBattler2].priority != 0)
+ {
+ // both priorities are the same
+ if (gBattleMoves[moveBattler1].priority == gBattleMoves[moveBattler2].priority)
+ {
+ if (speedBattler1 == speedBattler2 && Random() & 1)
+ strikesFirst = 2; // same speeds, same priorities
+ else if (speedBattler1 < speedBattler2)
+ strikesFirst = 1; // battler2 has more speed
+ // else battler1 has more speed
+ }
+ else if (gBattleMoves[moveBattler1].priority < gBattleMoves[moveBattler2].priority)
+ strikesFirst = 1; // battler2's move has greater priority
+ // else battler1's move has greater priority
+ }
+ // both priorities are equal to 0
+ else
+ {
+ if (speedBattler1 == speedBattler2 && Random() & 1)
+ strikesFirst = 2; // same speeds, same priorities
+ else if (speedBattler1 < speedBattler2)
+ strikesFirst = 1; // battler2 has more speed
+ // else battler1 has more speed
+ }
+ return strikesFirst;
+}
+
+static void SetActionsAndBattlersTurnOrder(void)
+{
+ s32 turnOrderId = 0;
+ s32 i, j;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
+ {
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
+ gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
+ ++turnOrderId;
+ }
+ }
+ else
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ if (gChosenActionByBattler[gActiveBattler] == B_ACTION_RUN)
+ {
+ turnOrderId = 5;
+ break;
+ }
+ }
+ }
+ else if (gChosenActionByBattler[0] == B_ACTION_RUN)
+ {
+ gActiveBattler = 0;
+ turnOrderId = 5;
+ }
+ if (turnOrderId == 5) // One of battlers wants to run.
+ {
+ gActionsByTurnOrder[0] = gChosenActionByBattler[gActiveBattler];
+ gBattlerByTurnOrder[0] = gActiveBattler;
+ turnOrderId = 1;
+ for (i = 0; i < gBattlersCount; ++i)
+ {
+ if (i != gActiveBattler)
+ {
+ gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[i];
+ gBattlerByTurnOrder[turnOrderId] = i;
+ ++turnOrderId;
+ }
+ }
+ gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts;
+ gBattleStruct->focusPunchBattlerId = 0;
+ return;
+ }
+ else
+ {
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH)
+ {
+ gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
+ gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
+ ++turnOrderId;
+ }
+ }
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH)
+ {
+ gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
+ gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
+ ++turnOrderId;
+ }
+ }
+ for (i = 0; i < gBattlersCount - 1; ++i)
+ {
+ for (j = i + 1; j < gBattlersCount; ++j)
+ {
+ u8 battler1 = gBattlerByTurnOrder[i];
+ u8 battler2 = gBattlerByTurnOrder[j];
+
+ if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM
+ && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM
+ && gActionsByTurnOrder[i] != B_ACTION_SWITCH
+ && gActionsByTurnOrder[j] != B_ACTION_SWITCH)
+ if (GetWhoStrikesFirst(battler1, battler2, FALSE))
+ SwapTurnOrder(i, j);
+ }
+ }
+ }
+ }
+ gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts;
+ gBattleStruct->focusPunchBattlerId = 0;
+}
+
+static void TurnValuesCleanUp(bool8 var0)
+{
+ s32 i;
+ u8 *dataPtr;
+
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ if (var0)
+ {
+ gProtectStructs[gActiveBattler].protected = FALSE;
+ gProtectStructs[gActiveBattler].endured = FALSE;
+ }
+ else
+ {
+ dataPtr = (u8 *)(&gProtectStructs[gActiveBattler]);
+ for (i = 0; i < sizeof(struct ProtectStruct); ++i)
+ dataPtr[i] = 0;
+ if (gDisableStructs[gActiveBattler].isFirstTurn)
+ --gDisableStructs[gActiveBattler].isFirstTurn;
+ if (gDisableStructs[gActiveBattler].rechargeTimer)
+ {
+ --gDisableStructs[gActiveBattler].rechargeTimer;
+ if (gDisableStructs[gActiveBattler].rechargeTimer == 0)
+ gBattleMons[gActiveBattler].status2 &= ~(STATUS2_RECHARGE);
+ }
+ }
+
+ if (gDisableStructs[gActiveBattler].substituteHP == 0)
+ gBattleMons[gActiveBattler].status2 &= ~(STATUS2_SUBSTITUTE);
+ }
+ gSideTimers[0].followmeTimer = 0;
+ gSideTimers[1].followmeTimer = 0;
+}
+
+static void SpecialStatusesClear(void)
+{
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ s32 i;
+ u8 *dataPtr = (u8 *)(&gSpecialStatuses[gActiveBattler]);
+
+ for (i = 0; i < sizeof(struct SpecialStatus); ++i)
+ dataPtr[i] = 0;
+ }
+}
+
+static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
+{
+ if (!(gHitMarker & HITMARKER_RUN))
+ {
+ while (gBattleStruct->focusPunchBattlerId < gBattlersCount)
+ {
+ gActiveBattler = gBattlerAttacker = gBattleStruct->focusPunchBattlerId;
+ ++gBattleStruct->focusPunchBattlerId;
+ if (gChosenMoveByBattler[gActiveBattler] == MOVE_FOCUS_PUNCH
+ && !(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP)
+ && !(gDisableStructs[gBattlerAttacker].truantCounter)
+ && !(gProtectStructs[gActiveBattler].noValidMoves))
+ {
+ BattleScriptExecute(BattleScript_FocusPunchSetUp);
+ return;
+ }
+ }
+ }
+ TryClearRageStatuses();
+ gCurrentTurnActionNumber = 0;
+ {
+ // something stupid needed to match
+ u8 zero;
+
+ gCurrentActionFuncId = gActionsByTurnOrder[(zero = 0)];
+ }
+ gDynamicBasePower = 0;
+ gBattleStruct->dynamicMoveType = 0;
+ gBattleMainFunc = RunTurnActionsFunctions;
+ gBattleCommunication[3] = 0;
+ gBattleCommunication[4] = 0;
+ gBattleScripting.multihitMoveEffect = 0;
+ gBattleResources->battleScriptsStack->size = 0;
+}
+
+static void RunTurnActionsFunctions(void)
+{
+ if (gBattleOutcome != 0)
+ gCurrentActionFuncId = B_ACTION_FINISHED;
+ *(&gBattleStruct->savedTurnActionNumber) = gCurrentTurnActionNumber;
+ sTurnActionsFuncsTable[gCurrentActionFuncId]();
+
+ if (gCurrentTurnActionNumber >= gBattlersCount) // everyone did their actions, turn finished
+ {
+ gHitMarker &= ~(HITMARKER_x100000);
+ gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F];
+ }
+ else
+ {
+ if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId
+ {
+ gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING);
+ gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE);
+ }
+ }
+}
+
+static void HandleEndTurn_BattleWon(void)
+{
+ gCurrentActionFuncId = 0;
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gBattleTextBuff1[0] = gBattleOutcome;
+ gBattlerAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost;
+ gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN);
+ }
+ else if (gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER))
+ {
+ BattleStopLowHpSound();
+ PlayBGM(MUS_WIN_TRE);
+ gBattlescriptCurrInstr = gUnknown_81D88D7;
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & BATTLE_TYPE_LINK))
+ {
+ BattleStopLowHpSound();
+ gBattlescriptCurrInstr = BattleScript_LocalTrainerBattleWon;
+ switch (gTrainers[gTrainerBattleOpponent_A].trainerClass)
+ {
+ case CLASS_LEADER_2:
+ case CLASS_CHAMPION_2:
+ PlayBGM(MUS_WIN_GYM);
+ break;
+ case CLASS_BOSS:
+ case CLASS_TEAM_ROCKET:
+ case CLASS_COOLTRAINER_2:
+ case CLASS_ELITE_FOUR_2:
+ case CLASS_GENTLEMAN_2:
+ default:
+ PlayBGM(MUS_WIN_TRE);
+ break;
+ }
+ }
+ else
+ {
+ gBattlescriptCurrInstr = BattleScript_PayDayMoneyAndPickUpItems;
+ }
+ gBattleMainFunc = HandleEndTurn_FinishBattle;
+}
+
+static void HandleEndTurn_BattleLost(void)
+{
+ gCurrentActionFuncId = 0;
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gBattleTextBuff1[0] = gBattleOutcome;
+ gBattlerAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost;
+ gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN);
+ }
+ else
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && ScrSpecial_GetTrainerBattleMode() == 9)
+ {
+ if (sub_80803D8() & 1)
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
+ else
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
+ gBattlerAttacker = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ }
+ else
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ }
+ gBattlescriptCurrInstr = BattleScript_LocalBattleLost;
+ }
+ gBattleMainFunc = HandleEndTurn_FinishBattle;
+}
+
+static void HandleEndTurn_RanFromBattle(void)
+{
+ gCurrentActionFuncId = 0;
+ switch (gProtectStructs[gBattlerAttacker].fleeFlag)
+ {
+ default:
+ gBattlescriptCurrInstr = BattleScript_GotAwaySafely;
+ break;
+ case 1:
+ gBattlescriptCurrInstr = BattleScript_SmokeBallEscape;
+ break;
+ case 2:
+ gBattlescriptCurrInstr = BattleScript_RanAwayUsingMonAbility;
+ break;
+ }
+ gBattleMainFunc = HandleEndTurn_FinishBattle;
+}
+
+static void HandleEndTurn_MonFled(void)
+{
+ gCurrentActionFuncId = 0;
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker]);
+ gBattlescriptCurrInstr = BattleScript_WildMonFled;
+ gBattleMainFunc = HandleEndTurn_FinishBattle;
+}
+
+static void HandleEndTurn_FinishBattle(void)
+{
+ if (gCurrentActionFuncId == B_ACTION_TRY_FINISH || gCurrentActionFuncId == B_ACTION_FINISHED)
+ {
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_OLD_MAN_TUTORIAL | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_SAFARI | BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_LINK)))
+ {
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
+ {
+ if (gBattleResults.playerMon1Species == SPECIES_NONE)
+ {
+ gBattleResults.playerMon1Species = gBattleMons[gActiveBattler].species;
+ StringCopy(gBattleResults.playerMon1Name, gBattleMons[gActiveBattler].nickname);
+ }
+ else
+ {
+ gBattleResults.playerMon2Species = gBattleMons[gActiveBattler].species;
+ StringCopy(gBattleResults.playerMon2Name, gBattleMons[gActiveBattler].nickname);
+ }
+ }
+ }
+ }
+ sub_812BFDC();
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ sub_810CB90();
+ BeginFastPaletteFade(3);
+ FadeOutMapMusic(5);
+ gBattleMainFunc = FreeResetData_ReturnToOvOrDoEvolutions;
+ gCB2_AfterEvolution = BattleMainCB2;
+ }
+ else if (!gBattleControllerExecFlags)
+ {
+ gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
+ }
+}
+
+static void FreeResetData_ReturnToOvOrDoEvolutions(void)
+{
+ if (!gPaletteFade.active)
+ {
+ ResetSpriteData();
+ if (gLeveledUpInBattle == 0 || gBattleOutcome != B_OUTCOME_WON)
+ gBattleMainFunc = ReturnFromBattleToOverworld;
+ else
+ gBattleMainFunc = TryEvolvePokemon;
+ FreeAllWindowBuffers();
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK))
+ {
+ FreeMonSpritesGfx();
+ FreeBattleSpritesData();
+ FreeBattleResources();
+ }
+ }
+}
+
+static void TryEvolvePokemon(void)
+{
+ s32 i;
+
+ while (gLeveledUpInBattle != 0)
+ {
+ for (i = 0; i < PARTY_SIZE; ++i)
+ {
+ if (gLeveledUpInBattle & gBitTable[i])
+ {
+ u16 species;
+ u8 levelUpBits = gLeveledUpInBattle;
+
+ levelUpBits &= ~(gBitTable[i]);
+ gLeveledUpInBattle = levelUpBits;
+ species = GetEvolutionTargetSpecies(&gPlayerParty[i], 0, levelUpBits);
+ if (species != SPECIES_NONE)
+ {
+ gBattleMainFunc = WaitForEvoSceneToFinish;
+ EvolutionScene(&gPlayerParty[i], species, 0x81, i);
+ return;
+ }
+ }
+ }
+ }
+ gBattleMainFunc = ReturnFromBattleToOverworld;
+}
+
+static void WaitForEvoSceneToFinish(void)
+{
+ if (gMain.callback2 == BattleMainCB2)
+ gBattleMainFunc = TryEvolvePokemon;
+}
+
+static void ReturnFromBattleToOverworld(void)
+{
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK))
+ {
+ RandomlyGivePartyPokerus(gPlayerParty);
+ PartySpreadPokerus(gPlayerParty);
+ }
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) || gReceivedRemoteLinkPlayers == 0)
+ {
+ gSpecialVar_Result = gBattleOutcome;
+ gMain.inBattle = FALSE;
+ gMain.callback1 = gPreBattleCallback1;
+ if (gBattleTypeFlags & BATTLE_TYPE_ROAMER)
+ {
+ UpdateRoamerHPStatus(&gEnemyParty[0]);
+ if ((gBattleOutcome & B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT)
+ SetRoamerInactive();
+ }
+ m4aSongNumStop(SE_HINSI);
+ SetMainCallback2(gMain.savedCallback);
+ }
+}
+
+void RunBattleScriptCommands_PopCallbacksStack(void)
+{
+ if (gCurrentActionFuncId == B_ACTION_TRY_FINISH || gCurrentActionFuncId == B_ACTION_FINISHED)
+ {
+ if (gBattleResources->battleCallbackStack->size != 0)
+ --gBattleResources->battleCallbackStack->size;
+ gBattleMainFunc = gBattleResources->battleCallbackStack->function[gBattleResources->battleCallbackStack->size];
+ }
+ else
+ {
+ if (!gBattleControllerExecFlags)
+ gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
+ }
+}
+
+void RunBattleScriptCommands(void)
+{
+ if (!gBattleControllerExecFlags)
+ gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
+}
+
+static void HandleAction_UseMove(void)
+{
+ u8 side;
+ u8 var = 4;
+
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
+ if (*(&gBattleStruct->field_91) & gBitTable[gBattlerAttacker])
+ {
+ gCurrentActionFuncId = B_ACTION_FINISHED;
+ return;
+ }
+ gCritMultiplier = 1;
+ gBattleScripting.dmgMultiplier = 1;
+ gBattleStruct->atkCancellerTracker = 0;
+ gMoveResultFlags = 0;
+ gMultiHitCounter = 0;
+ gBattleCommunication[6] = 0;
+ gCurrMovePos = gChosenMovePos = *(gBattleStruct->chosenMovePositions + gBattlerAttacker);
+ // choose move
+ if (gProtectStructs[gBattlerAttacker].noValidMoves)
+ {
+ gProtectStructs[gBattlerAttacker].noValidMoves = 0;
+ gCurrentMove = gChosenMove = MOVE_STRUGGLE;
+ gHitMarker |= HITMARKER_NO_PPDEDUCT;
+ *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0);
+ }
+ else if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBattlerAttacker].status2 & STATUS2_RECHARGE)
+ {
+ gCurrentMove = gChosenMove = gLockedMoves[gBattlerAttacker];
+ }
+ // encore forces you to use the same move
+ else if (gDisableStructs[gBattlerAttacker].encoredMove != MOVE_NONE
+ && gDisableStructs[gBattlerAttacker].encoredMove == gBattleMons[gBattlerAttacker].moves[gDisableStructs[gBattlerAttacker].encoredMovePos])
+ {
+ gCurrentMove = gChosenMove = gDisableStructs[gBattlerAttacker].encoredMove;
+ gCurrMovePos = gChosenMovePos = gDisableStructs[gBattlerAttacker].encoredMovePos;
+ *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0);
+ }
+ // check if the encored move wasn't overwritten
+ else if (gDisableStructs[gBattlerAttacker].encoredMove != MOVE_NONE
+ && gDisableStructs[gBattlerAttacker].encoredMove != gBattleMons[gBattlerAttacker].moves[gDisableStructs[gBattlerAttacker].encoredMovePos])
+ {
+ gCurrMovePos = gChosenMovePos = gDisableStructs[gBattlerAttacker].encoredMovePos;
+ gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos];
+ gDisableStructs[gBattlerAttacker].encoredMove = MOVE_NONE;
+ gDisableStructs[gBattlerAttacker].encoredMovePos = 0;
+ gDisableStructs[gBattlerAttacker].encoreTimer = 0;
+ *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0);
+ }
+ else if (gBattleMons[gBattlerAttacker].moves[gCurrMovePos] != gChosenMoveByBattler[gBattlerAttacker])
+ {
+ gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos];
+ *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0);
+ }
+ else
+ {
+ gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos];
+ }
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
+ gBattleResults.lastUsedMovePlayer = gCurrentMove;
+ else
+ gBattleResults.lastUsedMoveOpponent = gCurrentMove;
+ // choose target
+ side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
+ if (gSideTimers[side].followmeTimer != 0
+ && gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED
+ && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget)
+ && gBattleMons[gSideTimers[side].followmeTarget].hp != 0)
+ {
+ gBattlerTarget = gSideTimers[side].followmeTarget;
+ }
+ else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ && gSideTimers[side].followmeTimer == 0
+ && (gBattleMoves[gCurrentMove].power != 0
+ || gBattleMoves[gCurrentMove].target != MOVE_TARGET_USER)
+ && gBattleMons[*(gBattleStruct->moveTarget + gBattlerAttacker)].ability != ABILITY_LIGHTNING_ROD
+ && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
+ {
+ side = GetBattlerSide(gBattlerAttacker);
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ if (side != GetBattlerSide(gActiveBattler)
+ && *(gBattleStruct->moveTarget + gBattlerAttacker) != gActiveBattler
+ && gBattleMons[gActiveBattler].ability == ABILITY_LIGHTNING_ROD
+ && GetBattlerTurnOrderNum(gActiveBattler) < var)
+ var = GetBattlerTurnOrderNum(gActiveBattler);
+ if (var == 4)
+ {
+ if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM)
+ {
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
+ {
+ if (Random() & 1)
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ else
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
+ }
+ else
+ {
+ if (Random() & 1)
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ else
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
+ }
+ }
+ else
+ {
+ gBattlerTarget = *(gBattleStruct->moveTarget + gBattlerAttacker);
+ }
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
+ {
+ if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
+ {
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
+ }
+ else
+ {
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE);
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
+ }
+ }
+ }
+ else
+ {
+ gActiveBattler = gBattlerByTurnOrder[var];
+ RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability);
+ gSpecialStatuses[gActiveBattler].lightningRodRedirected = 1;
+ gBattlerTarget = gActiveBattler;
+ }
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
+ && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM)
+ {
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
+ {
+ if (Random() & 1)
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ else
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
+ }
+ else
+ {
+ if (Random() & 1)
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ else
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
+ }
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]
+ && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
+ }
+ else
+ {
+ gBattlerTarget = *(gBattleStruct->moveTarget + gBattlerAttacker);
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
+ {
+ if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
+ {
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
+ }
+ else
+ {
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE);
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
+ }
+ }
+ }
+ gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect];
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
+}
+
+static void HandleAction_Switch(void)
+{
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gActionSelectionCursor[gBattlerAttacker] = 0;
+ gMoveSelectionCursor[gBattlerAttacker] = 0;
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, *(gBattleStruct->field_58 + gBattlerAttacker));
+ gBattleScripting.battler = gBattlerAttacker;
+ gBattlescriptCurrInstr = BattleScript_ActionSwitch;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
+ if (gBattleResults.playerSwitchesCounter < 255)
+ ++gBattleResults.playerSwitchesCounter;
+}
+
+static void HandleAction_UseItem(void)
+{
+ gBattlerAttacker = gBattlerTarget = gBattlerByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ ClearFuryCutterDestinyBondGrudge(gBattlerAttacker);
+ gLastUsedItem = gBattleBufferB[gBattlerAttacker][1] | (gBattleBufferB[gBattlerAttacker][2] << 8);
+ if (gLastUsedItem <= ITEM_PREMIER_BALL) // is ball
+ {
+ gBattlescriptCurrInstr = gBattlescriptsForBallThrow[gLastUsedItem];
+ }
+ else if (gLastUsedItem == ITEM_POKE_DOLL || gLastUsedItem == ITEM_FLUFFY_TAIL)
+ {
+ gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0];
+ }
+ else if (gLastUsedItem == ITEM_POKE_FLUTE)
+ {
+ gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[1];
+ }
+ else if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
+ {
+ gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0];
+ }
+ else
+ {
+ gBattleScripting.battler = gBattlerAttacker;
+ switch (*(gBattleStruct->AI_itemType + (gBattlerAttacker >> 1)))
+ {
+ case AI_ITEM_FULL_RESTORE:
+ case AI_ITEM_HEAL_HP:
+ break;
+ case AI_ITEM_CURE_CONDITION:
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1)
+ {
+ if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 0x3E)
+ gBattleCommunication[MULTISTRING_CHOOSER] = 5;
+ }
+ else
+ {
+ while (!(*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1))
+ {
+ *(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1;
+ ++gBattleCommunication[MULTISTRING_CHOOSER];
+ }
+ }
+ break;
+ case AI_ITEM_X_STAT:
+ gBattleCommunication[MULTISTRING_CHOOSER] = 4;
+ if (*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1)) & 0x80)
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 5;
+ }
+ else
+ {
+ PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK);
+ PREPARE_STRING_BUFFER(gBattleTextBuff2, CHAR_X);
+ while (!((*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1))) & 1))
+ {
+ *(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1;
+ ++gBattleTextBuff1[2];
+ }
+ gBattleScripting.animArg1 = gBattleTextBuff1[2] + 14;
+ gBattleScripting.animArg2 = 0;
+ }
+ break;
+ case AI_ITEM_GUARD_SPECS:
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
+ else
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ break;
+ }
+
+ gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBattlerAttacker / 2)];
+ }
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
+}
+
+bool8 TryRunFromBattle(u8 battler)
+{
+ bool8 effect = FALSE;
+ u8 holdEffect;
+ u8 pyramidMultiplier;
+ u8 speedVar;
+
+ if (gBattleMons[battler].item == ITEM_ENIGMA_BERRY)
+ holdEffect = gEnigmaBerries[battler].holdEffect;
+ else
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[battler].item);
+ gPotentialItemEffectBattler = battler;
+ if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN)
+ {
+ gLastUsedItem = gBattleMons[battler].item;
+ gProtectStructs[battler].fleeFlag = 1;
+ ++effect;
+ }
+ else if (gBattleMons[battler].ability == ABILITY_RUN_AWAY)
+ {
+ gLastUsedAbility = ABILITY_RUN_AWAY;
+ gProtectStructs[battler].fleeFlag = 2;
+ ++effect;
+ }
+ else if ((gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_GHOST)) == BATTLE_TYPE_GHOST)
+ {
+ if (GetBattlerSide(battler) == B_SIDE_PLAYER)
+ ++effect;
+ }
+ else
+ {
+ if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ {
+ if (gBattleMons[battler].speed < gBattleMons[BATTLE_OPPOSITE(battler)].speed)
+ {
+ speedVar = (gBattleMons[battler].speed * 128) / (gBattleMons[BATTLE_OPPOSITE(battler)].speed) + (gBattleStruct->runTries * 30);
+ if (speedVar > (Random() & 0xFF))
+ ++effect;
+ }
+ else // same speed or faster
+ {
+ ++effect;
+ }
+ }
+
+ ++gBattleStruct->runTries;
+ }
+ if (effect)
+ {
+ gCurrentTurnActionNumber = gBattlersCount;
+ gBattleOutcome = B_OUTCOME_RAN;
+ }
+ return effect;
+}
+
+static void HandleAction_Run(void)
+{
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gCurrentTurnActionNumber = gBattlersCount;
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
+ {
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
+ {
+ if (gChosenActionByBattler[gActiveBattler] == B_ACTION_RUN)
+ gBattleOutcome |= B_OUTCOME_LOST;
+ }
+ else
+ {
+ if (gChosenActionByBattler[gActiveBattler] == B_ACTION_RUN)
+ gBattleOutcome |= B_OUTCOME_WON;
+ }
+ }
+ gBattleOutcome |= B_OUTCOME_LINK_BATTLE_RAN;
+ }
+ else
+ {
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
+ {
+ if (!TryRunFromBattle(gBattlerAttacker)) // failed to run away
+ {
+ ClearFuryCutterDestinyBondGrudge(gBattlerAttacker);
+ gBattleCommunication[MULTISTRING_CHOOSER] = 3;
+ gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
+ }
+ }
+ else
+ {
+ if (gBattleMons[gBattlerAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 4;
+ gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
+ }
+ else
+ {
+ gCurrentTurnActionNumber = gBattlersCount;
+ gBattleOutcome = B_OUTCOME_MON_FLED;
+ }
+ }
+ }
+}
+
+static void HandleAction_WatchesCarefully(void)
+{
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ if (gBattleStruct->safariGoNearCounter != 0)
+ {
+ --gBattleStruct->safariGoNearCounter;
+ if (gBattleStruct->safariGoNearCounter == 0)
+ {
+ *(&gBattleStruct->safariCatchFactor) = gBaseStats[GetMonData(gEnemyParty, MON_DATA_SPECIES)].catchRate * 100 / 1275;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ }
+ else
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
+ }
+ }
+ else
+ {
+ if (gBattleStruct->safariPkblThrowCounter != 0)
+ {
+ --gBattleStruct->safariPkblThrowCounter;
+ if (gBattleStruct->safariPkblThrowCounter == 0)
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ else
+ gBattleCommunication[5] = 2;
+ }
+ else
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ }
+ }
+ gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0];
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
+}
+
+static void HandleAction_SafariZoneBallThrow(void)
+{
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ --gNumSafariBalls;
+ gLastUsedItem = ITEM_SAFARI_BALL;
+ gBattlescriptCurrInstr = gBattlescriptsForBallThrow[ITEM_SAFARI_BALL];
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
+}
+
+static void HandleAction_ThrowPokeblock(void)
+{
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattleStruct->safariPkblThrowCounter += Random() % 5 + 2;
+ if (gBattleStruct->safariPkblThrowCounter > 6)
+ gBattleStruct->safariPkblThrowCounter = 6;
+ gBattleStruct->safariGoNearCounter = 0;
+ gBattleStruct->safariCatchFactor >>= 1;
+ if (gBattleStruct->safariCatchFactor <= 2)
+ gBattleStruct->safariCatchFactor = 3;
+ gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2];
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
+}
+
+static void HandleAction_GoNear(void)
+{
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattleStruct->safariGoNearCounter += Random() % 5 + 2;
+ if (gBattleStruct->safariGoNearCounter > 6)
+ gBattleStruct->safariGoNearCounter = 6;
+ gBattleStruct->safariPkblThrowCounter = 0;
+ gBattleStruct->safariCatchFactor <<= 1;
+ if (gBattleStruct->safariCatchFactor > 20)
+ gBattleStruct->safariCatchFactor = 20;
+ gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1];
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
+}
+
+static void HandleAction_SafariZoneRun(void)
+{
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
+ PlaySE(SE_NIGERU);
+ gCurrentTurnActionNumber = gBattlersCount;
+ gBattleOutcome = B_OUTCOME_RAN;
+}
+
+static void HandleAction_OldManBallThrow(void)
+{
+ gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker])
+ gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3];
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
+ gActionsByTurnOrder[1] = B_ACTION_FINISHED;
+}
+
+static void HandleAction_TryFinish(void)
+{
+ if (!HandleFaintedMonActions())
+ {
+ gBattleStruct->faintedActionsState = 0;
+ gCurrentActionFuncId = B_ACTION_FINISHED;
+ }
+}
+
+static void HandleAction_NothingIsFainted(void)
+{
+ ++gCurrentTurnActionNumber;
+ gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber];
+ gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED
+ | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR
+ | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_x100000
+ | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT
+ | HITMARKER_CHARGING | HITMARKER_x4000000);
+}
+
+static void HandleAction_ActionFinished(void)
+{
+ ++gCurrentTurnActionNumber;
+ gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber];
+ SpecialStatusesClear();
+ gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED
+ | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR
+ | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_x100000
+ | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT
+ | HITMARKER_CHARGING | HITMARKER_x4000000);
+ gCurrentMove = MOVE_NONE;
+ gBattleMoveDamage = 0;
+ gMoveResultFlags = 0;
+ gBattleScripting.animTurn = 0;
+ gBattleScripting.animTargetsHit = 0;
+ gLastLandedMoves[gBattlerAttacker] = 0;
+ gLastHitByType[gBattlerAttacker] = 0;
+ gBattleStruct->dynamicMoveType = 0;
+ gDynamicBasePower = 0;
+ gBattleScripting.atk49_state = 0;
+ gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
+ gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0;
+ gBattleScripting.multihitMoveEffect = 0;
+ gBattleResources->battleScriptsStack->size = 0;
+}
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 3de2a6dea..a7d8cb6fa 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -48,6 +48,7 @@
#include "constants/abilities.h"
#include "constants/pokemon.h"
#include "constants/trainers.h"
+#include "constants/map_types.h"
#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattlerTarget].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED))
@@ -1222,7 +1223,7 @@ static void atk04_critcalc(void)
critChance = NELEMS(sCriticalHitChance) - 1;
if ((gBattleMons[gBattlerTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBattlerTarget].ability != ABILITY_SHELL_ARMOR)
&& !(gStatuses3[gBattlerAttacker] & STATUS3_CANT_SCORE_A_CRIT)
- && !(gBattleTypeFlags & BATTLE_TYPE_OLDMAN_TUTORIAL)
+ && !(gBattleTypeFlags & BATTLE_TYPE_OLD_MAN_TUTORIAL)
&& !(Random() % sCriticalHitChance[critChance])
&& (!(gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) || sub_80EB2E0(1))
&& !(gBattleTypeFlags & BATTLE_TYPE_POKEDUDE))
@@ -4414,7 +4415,7 @@ static void atk4E_switchinanim(void)
&& !(gBattleTypeFlags &
(BATTLE_TYPE_LINK
| BATTLE_TYPE_LEGENDARY
- | BATTLE_TYPE_OLDMAN_TUTORIAL
+ | BATTLE_TYPE_OLD_MAN_TUTORIAL
| BATTLE_TYPE_POKEDUDE
| BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_GHOST)))
@@ -9436,7 +9437,7 @@ static void atkEF_handleballthrow(void)
MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr = BattleScript_TrainerBallBlock;
}
- else if (gBattleTypeFlags & (BATTLE_TYPE_POKEDUDE | BATTLE_TYPE_OLDMAN_TUTORIAL))
+ else if (gBattleTypeFlags & (BATTLE_TYPE_POKEDUDE | BATTLE_TYPE_OLD_MAN_TUTORIAL))
{
BtlController_EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS);
MarkBattlerForControllerExec(gActiveBattler);
@@ -9451,7 +9452,6 @@ static void atkEF_handleballthrow(void)
catchRate = gBattleStruct->safariCatchFactor * 1275 / 100;
else
catchRate = gBaseStats[gBattleMons[gBattlerTarget].species].catchRate;
-
if (gLastUsedItem > ITEM_SAFARI_BALL)
{
switch (gLastUsedItem)
@@ -9515,7 +9515,7 @@ static void atkEF_handleballthrow(void)
else
{
if (gBattleResults.catchAttempts[gLastUsedItem - ITEM_ULTRA_BALL] < 0xFF)
- gBattleResults.catchAttempts[gLastUsedItem - ITEM_ULTRA_BALL]++;
+ ++gBattleResults.catchAttempts[gLastUsedItem - ITEM_ULTRA_BALL];
}
}
if (odds > 254) // mon caught
diff --git a/src/battle_setup.c b/src/battle_setup.c
new file mode 100644
index 000000000..98437e279
--- /dev/null
+++ b/src/battle_setup.c
@@ -0,0 +1,1060 @@
+#include "global.h"
+#include "task.h"
+#include "help_system.h"
+#include "overworld.h"
+#include "item.h"
+#include "sound.h"
+#include "pokemon.h"
+#include "load_save.h"
+#include "safari_zone.h"
+#include "quest_log.h"
+#include "script.h"
+#include "script_pokemon_util_80A0058.h"
+#include "strings.h"
+#include "string_util.h"
+#include "event_data.h"
+#include "unk_8159F40.h"
+#include "map_obj_80688E4.h"
+#include "metatile_behavior.h"
+#include "event_scripts.h"
+#include "fldeff.h"
+#include "fieldmap.h"
+#include "field_control_avatar.h"
+#include "field_player_avatar.h"
+#include "field_screen_effect.h"
+#include "field_message_box.h"
+#include "field_map_obj.h"
+#include "vs_seeker.h"
+#include "battle.h"
+#include "battle_setup.h"
+#include "battle_transition.h"
+#include "constants/battle_setup.h"
+#include "constants/flags.h"
+#include "constants/items.h"
+#include "constants/maps.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "constants/pokemon.h"
+#include "constants/trainers.h"
+#include "constants/trainer_classes.h"
+#include "constants/map_types.h"
+
+enum
+{
+ TRAINER_PARAM_LOAD_VAL_8BIT,
+ TRAINER_PARAM_LOAD_VAL_16BIT,
+ TRAINER_PARAM_LOAD_VAL_32BIT,
+ TRAINER_PARAM_CLEAR_VAL_8BIT,
+ TRAINER_PARAM_CLEAR_VAL_16BIT,
+ TRAINER_PARAM_CLEAR_VAL_32BIT,
+ TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR,
+};
+
+struct TrainerBattleParameter
+{
+ void *varPtr;
+ u8 ptrType;
+};
+
+static void DoSafariBattle(void);
+static void DoGhostBattle(void);
+static void DoStandardWildBattle(void);
+static void CB2_EndWildBattle(void);
+static u8 GetWildBattleTransition(void);
+static u8 GetTrainerBattleTransition(void);
+static void CB2_EndScriptedWildBattle(void);
+static void CB2_EndMarowakBattle(void);
+static bool32 IsPlayerDefeated(u32 battleOutcome);
+static void CB2_EndTrainerBattle(void);
+static const u8 *GetIntroSpeechOfApproachingTrainer(void);
+static const u8 *GetTrainerCantBattleSpeech(void);
+
+static EWRAM_DATA u16 sTrainerBattleMode = 0;
+EWRAM_DATA u16 gTrainerBattleOpponent_A = 0;
+static EWRAM_DATA u16 sTrainerEventObjectLocalId = 0;
+static EWRAM_DATA u8 *sTrainerAIntroSpeech = NULL;
+static EWRAM_DATA u8 *sTrainerADefeatSpeech = NULL;
+static EWRAM_DATA u8 *sTrainerVictorySpeech = NULL;
+static EWRAM_DATA u8 *sTrainerCannotBattleSpeech = NULL;
+static EWRAM_DATA u8 *sTrainerBattleEndScript = NULL;
+static EWRAM_DATA u8 *sTrainerABattleScriptRetAddr = NULL;
+static EWRAM_DATA u16 gUnknown_20386CC = 0;
+
+static const u8 sBattleTransitionTable_Wild[][2] =
+{
+ B_TRANSITION_SLICED_SCREEN, B_TRANSITION_WHITEFADE_IN_STRIPES,
+ B_TRANSITION_CLOCKWISE_BLACKFADE, B_TRANSITION_GRID_SQUARES,
+ B_TRANSITION_BLUR, B_TRANSITION_GRID_SQUARES,
+ B_TRANSITION_BLACK_WAVE_TO_RIGHT, B_TRANSITION_FULLSCREEN_WAVE,
+};
+
+static const u8 sBattleTransitionTable_Trainer[][2] =
+{
+ B_TRANSITION_SLIDING_POKEBALLS, B_TRANSITION_BLACK_DOODLES,
+ B_TRANSITION_HORIZONTAL_CORRUGATE, B_TRANSITION_BIG_POKEBALL,
+ B_TRANSITION_BLUR, B_TRANSITION_GRID_SQUARES,
+ B_TRANSITION_DISTORTED_WAVE, B_TRANSITION_FULLSCREEN_WAVE,
+};
+
+static const struct TrainerBattleParameter sOrdinaryBattleParams[] =
+{
+ {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
+ {&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&sTrainerEventObjectLocalId, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&sTrainerAIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerADefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerVictorySpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerCannotBattleSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerABattleScriptRetAddr, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR},
+};
+
+static const struct TrainerBattleParameter sContinueScriptBattleParams[] =
+{
+ {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
+ {&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&sTrainerEventObjectLocalId, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&sTrainerAIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerADefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerVictorySpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerCannotBattleSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerABattleScriptRetAddr, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR},
+};
+
+static const struct TrainerBattleParameter sDoubleBattleParams[] =
+{
+ {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
+ {&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&sTrainerEventObjectLocalId, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&sTrainerAIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerADefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerVictorySpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerCannotBattleSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerABattleScriptRetAddr, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR},
+};
+
+static const struct TrainerBattleParameter sOrdinaryNoIntroBattleParams[] =
+{
+ {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
+ {&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&sTrainerEventObjectLocalId, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&sTrainerAIntroSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerADefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerVictorySpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerCannotBattleSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerABattleScriptRetAddr, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR},
+};
+
+static const struct TrainerBattleParameter sTutorialBattleParams[] =
+{
+ {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
+ {&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&gUnknown_20386CC, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&sTrainerAIntroSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerADefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerVictorySpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerCannotBattleSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerABattleScriptRetAddr, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR},
+};
+
+static const struct TrainerBattleParameter sContinueScriptDoubleBattleParams[] =
+{
+ {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
+ {&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&sTrainerEventObjectLocalId, TRAINER_PARAM_LOAD_VAL_16BIT},
+ {&sTrainerAIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerADefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerVictorySpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
+ {&sTrainerCannotBattleSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerABattleScriptRetAddr, TRAINER_PARAM_LOAD_VAL_32BIT},
+ {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR},
+};
+
+
+#define tState data[0]
+#define tTransition data[1]
+
+static void Task_BattleStart(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (tState)
+ {
+ case 0:
+ if (!FldEffPoison_IsActive())
+ {
+ HelpSystem_Disable();
+ BT_StartOnField(tTransition);
+ ++tState;
+ }
+ break;
+ case 1:
+ if (BT_IsDone() == TRUE)
+ {
+ HelpSystem_Enable();
+ CleanupOverworldWindowsAndTilemaps();
+ SetMainCallback2(CB2_InitBattle);
+ RestartWildEncounterImmunitySteps();
+ ClearPoisonStepCounter();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static void CreateBattleStartTask(u8 transition, u16 song) // song == 0 means default music for current map
+{
+ u8 taskId = CreateTask(Task_BattleStart, 1);
+
+ gTasks[taskId].tTransition = transition;
+ PlayMapChosenOrBattleBGM(song);
+}
+
+static bool8 CheckSilphScopeInPokemonTower(u16 mapGroup, u16 mapNum)
+{
+ if (mapGroup == MAP_GROUP(POKEMON_TOWER_1F)
+ && ((u16)(mapNum - MAP_NUM(POKEMON_TOWER_1F)) <= 6)
+ && !(CheckBagHasItem(ITEM_SILPH_SCOPE, 1)))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void BattleSetup_StartWildBattle(void)
+{
+ if (GetSafariZoneFlag())
+ DoSafariBattle();
+ else if (CheckSilphScopeInPokemonTower(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum))
+ DoGhostBattle();
+ else
+ DoStandardWildBattle();
+}
+
+static void DoStandardWildBattle(void)
+{
+ ScriptContext2_Enable();
+ FreezeEventObjects();
+ sub_805C780();
+ gMain.savedCallback = CB2_EndWildBattle;
+ gBattleTypeFlags = 0;
+ CreateBattleStartTask(GetWildBattleTransition(), 0);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
+}
+
+void BattleSetup_StartRoamerBattle(void)
+{
+ ScriptContext2_Enable();
+ FreezeEventObjects();
+ sub_805C780();
+ gMain.savedCallback = CB2_EndWildBattle;
+ gBattleTypeFlags = BATTLE_TYPE_ROAMER;
+ CreateBattleStartTask(GetWildBattleTransition(), MUS_VS_DEN);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
+}
+
+static void DoSafariBattle(void)
+{
+ ScriptContext2_Enable();
+ FreezeEventObjects();
+ sub_805C780();
+ gMain.savedCallback = CB2_EndSafariBattle;
+ gBattleTypeFlags = BATTLE_TYPE_SAFARI;
+ CreateBattleStartTask(GetWildBattleTransition(), 0);
+}
+
+static void DoGhostBattle(void)
+{
+ ScriptContext2_Enable();
+ FreezeEventObjects();
+ sub_805C780();
+ gMain.savedCallback = CB2_EndWildBattle;
+ gBattleTypeFlags = BATTLE_TYPE_GHOST;
+ CreateBattleStartTask(GetWildBattleTransition(), 0);
+ SetMonData(&gEnemyParty[0], MON_DATA_NICKNAME, gUnknown_841D148);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
+}
+
+static void DoTrainerBattle(void)
+{
+ CreateBattleStartTask(GetTrainerBattleTransition(), 0);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_TRAINER_BATTLES);
+}
+
+void ScrSpecial_StartOldManTutorialBattle(void)
+{
+ CreateMaleMon(&gEnemyParty[0], SPECIES_WEEDLE, 5);
+ ScriptContext2_Enable();
+ gMain.savedCallback = CB2_ReturnToFieldContinueScriptPlayMapMusic;
+ gBattleTypeFlags = BATTLE_TYPE_OLD_MAN_TUTORIAL;
+ CreateBattleStartTask(B_TRANSITION_SLICED_SCREEN, 0);
+}
+
+void BattleSetup_StartScriptedWildBattle(void)
+{
+ ScriptContext2_Enable();
+ gMain.savedCallback = CB2_EndScriptedWildBattle;
+ gBattleTypeFlags = BATTLE_TYPE_PALACE;
+ CreateBattleStartTask(GetWildBattleTransition(), 0);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
+}
+
+void ScrSpecial_StartMarowakBattle(void)
+{
+ ScriptContext2_Enable();
+ gMain.savedCallback = CB2_EndMarowakBattle;
+ if (CheckBagHasItem(ITEM_SILPH_SCOPE, 1))
+ {
+ gBattleTypeFlags = BATTLE_TYPE_GHOST | BATTLE_TYPE_LEGENDARY;
+ CreateMonWithGenderNatureLetter(gEnemyParty, SPECIES_MAROWAK, 30, 31, MON_FEMALE, NATURE_SERIOUS, 0);
+ }
+ else
+ {
+ gBattleTypeFlags = BATTLE_TYPE_GHOST;
+ }
+ CreateBattleStartTask(GetWildBattleTransition(), 0);
+ SetMonData(&gEnemyParty[0], MON_DATA_NICKNAME, gUnknown_841D148);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
+}
+
+void ScrSpecial_StartSouthernIslandBattle(void)
+{
+ ScriptContext2_Enable();
+ gMain.savedCallback = CB2_EndScriptedWildBattle;
+ gBattleTypeFlags = BATTLE_TYPE_LEGENDARY;
+ CreateBattleStartTask(GetWildBattleTransition(), 0);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
+}
+
+void Special_StartLegendaryBattle(void)
+{
+ u16 species;
+
+ ScriptContext2_Enable();
+ gMain.savedCallback = CB2_EndScriptedWildBattle;
+ gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_ARENA;
+ species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES);
+ switch (species)
+ {
+ case SPECIES_MEWTWO:
+ CreateBattleStartTask(B_TRANSITION_BLUR, MUS_VS_MYU2);
+ break;
+ case SPECIES_DEOXYS:
+ CreateBattleStartTask(B_TRANSITION_BLUR, MUS_VS_DEO);
+ break;
+ case SPECIES_MOLTRES:
+ case SPECIES_ARTICUNO:
+ case SPECIES_ZAPDOS:
+ case SPECIES_HO_OH:
+ case SPECIES_LUGIA:
+ CreateBattleStartTask(B_TRANSITION_BLUR, MUS_VS_DEN);
+ break;
+ default:
+ CreateBattleStartTask(B_TRANSITION_BLUR, MUS_BATTLE20);
+ break;
+ }
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
+}
+
+void Special_StartGroudonKyogreBattle(void)
+{
+ ScriptContext2_Enable();
+ gMain.savedCallback = CB2_EndScriptedWildBattle;
+ gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON;
+ if (gGameVersion == VERSION_FIRE_RED)
+ CreateBattleStartTask(B_TRANSITION_BLACK_DOODLES, MUS_BATTLE20);
+ else // pointless, exactly the same
+ CreateBattleStartTask(B_TRANSITION_BLACK_DOODLES, MUS_BATTLE20);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
+}
+
+void Special_StartRegiBattle(void)
+{
+ ScriptContext2_Enable();
+ gMain.savedCallback = CB2_EndScriptedWildBattle;
+ gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI;
+ CreateBattleStartTask(B_TRANSITION_BLUR, MUS_BATTLE20);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
+}
+
+// not used
+static void sub_807FAF8(void)
+{
+ LoadPlayerParty();
+ CB2_EndWildBattle();
+}
+
+// not used
+static void sub_807FB08(void)
+{
+ ScriptContext2_Enable();
+ FreezeEventObjects();
+ sub_805C780();
+ gMain.savedCallback = sub_807FAF8;
+ SavePlayerParty();
+ InitPokedudePartyAndOpponent();
+ CreateBattleStartTask(GetWildBattleTransition(), 0);
+}
+
+static void CB2_EndWildBattle(void)
+{
+ CpuFill16(0, (void *)BG_PLTT, BG_PLTT_SIZE);
+ ResetOamRange(0, 128);
+ if (IsPlayerDefeated(gBattleOutcome) == TRUE)
+ {
+ SetMainCallback2(CB2_WhiteOut);
+ }
+ else
+ {
+ SetMainCallback2(CB2_ReturnToField);
+ gFieldCallback = sub_807E3EC;
+ }
+}
+
+static void CB2_EndScriptedWildBattle(void)
+{
+ CpuFill16(0, (void *)BG_PLTT, BG_PLTT_SIZE);
+ ResetOamRange(0, 128);
+ if (IsPlayerDefeated(gBattleOutcome) == TRUE)
+ SetMainCallback2(CB2_WhiteOut);
+ else
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+}
+
+static void CB2_EndMarowakBattle(void)
+{
+ CpuFill16(0, (void *)BG_PLTT, BG_PLTT_SIZE);
+ ResetOamRange(0, 128);
+ if (IsPlayerDefeated(gBattleOutcome))
+ {
+ SetMainCallback2(CB2_WhiteOut);
+ }
+ else
+ {
+ if (gBattleOutcome == B_OUTCOME_WON)
+ gSpecialVar_Result = 0;
+ else
+ gSpecialVar_Result = 1;
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ }
+}
+
+u8 BattleSetup_GetTerrainId(void)
+{
+ u16 tileBehavior;
+ s16 x, y;
+
+ PlayerGetDestCoords(&x, &y);
+ tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+ if (MetatileBehavior_IsTallGrass_2(tileBehavior))
+ return BATTLE_TERRAIN_GRASS;
+ if (MetatileBehavior_IsLongGrass(tileBehavior))
+ return BATTLE_TERRAIN_LONG_GRASS;
+ if (MetatileBehavior_IsSandOrDeepSand(tileBehavior))
+ return BATTLE_TERRAIN_SAND;
+ switch (gMapHeader.mapType)
+ {
+ case MAP_TYPE_TOWN:
+ case MAP_TYPE_CITY:
+ case MAP_TYPE_ROUTE:
+ break;
+ case MAP_TYPE_UNDERGROUND:
+ if (MetatileBehavior_IsIndoorEncounter(tileBehavior))
+ return BATTLE_TERRAIN_BUILDING;
+ if (MetatileBehavior_IsSurfable(tileBehavior))
+ return BATTLE_TERRAIN_POND;
+ return BATTLE_TERRAIN_CAVE;
+ case MAP_TYPE_INDOOR:
+ case MAP_TYPE_SECRET_BASE:
+ return BATTLE_TERRAIN_BUILDING;
+ case MAP_TYPE_UNDERWATER:
+ return BATTLE_TERRAIN_UNDERWATER;
+ case MAP_TYPE_OCEAN_ROUTE:
+ if (MetatileBehavior_IsSurfable(tileBehavior))
+ return BATTLE_TERRAIN_WATER;
+ return BATTLE_TERRAIN_PLAIN;
+ }
+ if (MetatileBehavior_IsDeepSemiDeepOrSplashingWater(tileBehavior))
+ return BATTLE_TERRAIN_WATER;
+ if (MetatileBehavior_IsSurfable(tileBehavior))
+ return BATTLE_TERRAIN_POND;
+ if (MetatileBehavior_IsMountain(tileBehavior))
+ return BATTLE_TERRAIN_MOUNTAIN;
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
+ {
+ if (MetatileBehavior_GetBridgeType(tileBehavior))
+ return BATTLE_TERRAIN_POND;
+ if (MetatileBehavior_IsBridge(tileBehavior) == TRUE)
+ return BATTLE_TERRAIN_WATER;
+ }
+ return BATTLE_TERRAIN_PLAIN;
+}
+
+static u8 GetBattleTransitionTypeByMap(void)
+{
+ u16 tileBehavior;
+ s16 x, y;
+
+ PlayerGetDestCoords(&x, &y);
+ tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+ if (Overworld_GetFlashLevel())
+ return B_TRANSITION_HORIZONTAL_CORRUGATE;
+ if (!MetatileBehavior_IsSurfable(tileBehavior))
+ {
+ switch (gMapHeader.mapType)
+ {
+ case MAP_TYPE_UNDERGROUND:
+ return B_TRANSITION_DISTORTED_WAVE;
+ case MAP_TYPE_UNDERWATER:
+ return B_TRANSITION_BIG_POKEBALL;
+ default:
+ return B_TRANSITION_BLUR;
+ }
+ }
+ return B_TRANSITION_BIG_POKEBALL;
+}
+
+static u16 GetSumOfPlayerPartyLevel(u8 numMons)
+{
+ u8 sum = 0;
+ s32 i;
+
+ for (i = 0; i < PARTY_SIZE; ++i)
+ {
+ u32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
+
+ if (species != SPECIES_EGG && species != SPECIES_NONE && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0)
+ {
+ sum += GetMonData(&gPlayerParty[i], MON_DATA_LEVEL);
+ if (--numMons == 0)
+ break;
+ }
+ }
+ return sum;
+}
+
+static u8 GetSumOfEnemyPartyLevel(u16 opponentId, u8 numMons)
+{
+ u8 i;
+ u8 sum;
+ u32 count = numMons;
+
+ if (gTrainers[opponentId].partySize < count)
+ count = gTrainers[opponentId].partySize;
+ sum = 0;
+ switch (gTrainers[opponentId].partyFlags)
+ {
+ case 0:
+ {
+ const struct TrainerMonNoItemDefaultMoves *party;
+
+ party = gTrainers[opponentId].party.NoItemDefaultMoves;
+ for (i = 0; i < count; ++i)
+ sum += party[i].lvl;
+ }
+ break;
+ case F_TRAINER_PARTY_CUSTOM_MOVESET:
+ {
+ const struct TrainerMonNoItemCustomMoves *party;
+
+ party = gTrainers[opponentId].party.NoItemCustomMoves;
+ for (i = 0; i < count; ++i)
+ sum += party[i].lvl;
+ }
+ break;
+ case F_TRAINER_PARTY_HELD_ITEM:
+ {
+ const struct TrainerMonItemDefaultMoves *party;
+
+ party = gTrainers[opponentId].party.ItemDefaultMoves;
+ for (i = 0; i < count; ++i)
+ sum += party[i].lvl;
+ }
+ break;
+ case F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM:
+ {
+ const struct TrainerMonItemCustomMoves *party;
+
+ party = gTrainers[opponentId].party.ItemCustomMoves;
+ for (i = 0; i < count; ++i)
+ sum += party[i].lvl;
+ }
+ break;
+ }
+ return sum;
+}
+
+static u8 GetWildBattleTransition(void)
+{
+ u8 transitionType = GetBattleTransitionTypeByMap();
+ u8 enemyLevel = GetMonData(&gEnemyParty[0], MON_DATA_LEVEL);
+ u8 playerLevel = GetSumOfPlayerPartyLevel(1);
+
+ if (enemyLevel < playerLevel)
+ return sBattleTransitionTable_Wild[transitionType][0];
+ else
+ return sBattleTransitionTable_Wild[transitionType][1];
+}
+
+static u8 GetTrainerBattleTransition(void)
+{
+ u8 minPartyCount;
+ u8 transitionType;
+ u8 enemyLevel;
+ u8 playerLevel;
+
+ if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE)
+ return B_TRANSITION_BLUE;
+ if (gTrainers[gTrainerBattleOpponent_A].trainerClass == CLASS_ELITE_FOUR_2)
+ {
+ if (gTrainerBattleOpponent_A == TRAINER_ELITE_FOUR_LORELEI || gTrainerBattleOpponent_A == TRAINER_ELITE_FOUR_LORELEI_2)
+ return B_TRANSITION_LORELEI;
+ if (gTrainerBattleOpponent_A == TRAINER_ELITE_FOUR_BRUNO || gTrainerBattleOpponent_A == TRAINER_ELITE_FOUR_BRUNO_2)
+ return B_TRANSITION_BRUNO;
+ if (gTrainerBattleOpponent_A == TRAINER_ELITE_FOUR_AGATHA || gTrainerBattleOpponent_A == TRAINER_ELITE_FOUR_AGATHA_2)
+ return B_TRANSITION_AGATHA;
+ if (gTrainerBattleOpponent_A == TRAINER_ELITE_FOUR_LANCE || gTrainerBattleOpponent_A == TRAINER_ELITE_FOUR_LANCE_2)
+ return B_TRANSITION_LANCE;
+ return B_TRANSITION_BLUE;
+ }
+ if (gTrainers[gTrainerBattleOpponent_A].trainerClass == CLASS_CHAMPION_2)
+ return B_TRANSITION_BLUE;
+ if (gTrainers[gTrainerBattleOpponent_A].doubleBattle == TRUE)
+ minPartyCount = 2; // double battles always at least have 2 pokemon.
+ else
+ minPartyCount = 1;
+ transitionType = GetBattleTransitionTypeByMap();
+ enemyLevel = GetSumOfEnemyPartyLevel(gTrainerBattleOpponent_A, minPartyCount);
+ playerLevel = GetSumOfPlayerPartyLevel(minPartyCount);
+ if (enemyLevel < playerLevel)
+ return sBattleTransitionTable_Trainer[transitionType][0];
+ else
+ return sBattleTransitionTable_Trainer[transitionType][1];
+}
+
+u8 sub_8080060(void)
+{
+ u8 enemyLevel = GetMonData(&gEnemyParty[0], MON_DATA_LEVEL);
+ u8 playerLevel = GetSumOfPlayerPartyLevel(1);
+
+ if (enemyLevel < playerLevel)
+ return 4;
+ else
+ return 3;
+}
+
+static u32 TrainerBattleLoadArg32(const u8 *ptr)
+{
+ return T1_READ_32(ptr);
+}
+
+static u16 TrainerBattleLoadArg16(const u8 *ptr)
+{
+ return T1_READ_16(ptr);
+}
+
+static u8 TrainerBattleLoadArg8(const u8 *ptr)
+{
+ return T1_READ_8(ptr);
+}
+
+static u16 GetTrainerAFlag(void)
+{
+ return FLAG_TRAINER_FLAG_START + gTrainerBattleOpponent_A;
+}
+
+static bool32 IsPlayerDefeated(u32 battleOutcome)
+{
+ switch (battleOutcome)
+ {
+ case B_OUTCOME_LOST:
+ case B_OUTCOME_DREW:
+ return TRUE;
+ case B_OUTCOME_WON:
+ case B_OUTCOME_RAN:
+ case B_OUTCOME_PLAYER_TELEPORTED:
+ case B_OUTCOME_MON_FLED:
+ case B_OUTCOME_CAUGHT:
+ return FALSE;
+ default:
+ return FALSE;
+ }
+}
+
+static void InitTrainerBattleVariables(void)
+{
+ sTrainerBattleMode = 0;
+ gTrainerBattleOpponent_A = 0;
+ sTrainerEventObjectLocalId = 0;
+ sTrainerAIntroSpeech = NULL;
+ sTrainerADefeatSpeech = NULL;
+ sTrainerVictorySpeech = NULL;
+ sTrainerCannotBattleSpeech = NULL;
+ sTrainerBattleEndScript = NULL;
+ sTrainerABattleScriptRetAddr = NULL;
+ gUnknown_20386CC = 0;
+}
+
+static inline void SetU8(void *ptr, u8 value)
+{
+ *(u8 *)(ptr) = value;
+}
+
+static inline void SetU16(void *ptr, u16 value)
+{
+ *(u16 *)(ptr) = value;
+}
+
+static inline void SetU32(void *ptr, u32 value)
+{
+ *(u32 *)(ptr) = value;
+}
+
+static inline void SetPtr(const void *ptr, const void *value)
+{
+ *(const void **)(ptr) = value;
+}
+
+static void TrainerBattleLoadArgs(const struct TrainerBattleParameter *specs, const u8 *data)
+{
+ while (1)
+ {
+ switch (specs->ptrType)
+ {
+ case TRAINER_PARAM_LOAD_VAL_8BIT:
+ SetU8(specs->varPtr, TrainerBattleLoadArg8(data));
+ data += 1;
+ break;
+ case TRAINER_PARAM_LOAD_VAL_16BIT:
+ SetU16(specs->varPtr, TrainerBattleLoadArg16(data));
+ data += 2;
+ break;
+ case TRAINER_PARAM_LOAD_VAL_32BIT:
+ SetU32(specs->varPtr, TrainerBattleLoadArg32(data));
+ data += 4;
+ break;
+ case TRAINER_PARAM_CLEAR_VAL_8BIT:
+ SetU8(specs->varPtr, 0);
+ break;
+ case TRAINER_PARAM_CLEAR_VAL_16BIT:
+ SetU16(specs->varPtr, 0);
+ break;
+ case TRAINER_PARAM_CLEAR_VAL_32BIT:
+ SetU32(specs->varPtr, 0);
+ break;
+ case TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR:
+ SetPtr(specs->varPtr, data);
+ return;
+ }
+ ++specs;
+ }
+}
+
+static void SetMapVarsToTrainer(void)
+{
+ if (sTrainerEventObjectLocalId != 0)
+ {
+ gSpecialVar_LastTalked = sTrainerEventObjectLocalId;
+ gSelectedEventObject = GetFieldObjectIdByLocalIdAndMap(sTrainerEventObjectLocalId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ }
+}
+
+const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
+{
+ InitTrainerBattleVariables();
+ sTrainerBattleMode = TrainerBattleLoadArg8(data);
+ switch (sTrainerBattleMode)
+ {
+ case TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT:
+ TrainerBattleLoadArgs(sOrdinaryNoIntroBattleParams, data);
+ return EventScript_DoTrainerBattle;
+ case TRAINER_BATTLE_DOUBLE:
+ TrainerBattleLoadArgs(sDoubleBattleParams, data);
+ SetMapVarsToTrainer();
+ return EventScript_TryDoDoubleTrainerBattle;
+ case TRAINER_BATTLE_CONTINUE_SCRIPT:
+ case TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC:
+ TrainerBattleLoadArgs(sContinueScriptBattleParams, data);
+ SetMapVarsToTrainer();
+ return EventScript_TryDoNormalTrainerBattle;
+ case TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE:
+ case TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC:
+ TrainerBattleLoadArgs(sContinueScriptDoubleBattleParams, data);
+ SetMapVarsToTrainer();
+ return EventScript_TryDoDoubleTrainerBattle;
+ case TRAINER_BATTLE_REMATCH_DOUBLE:
+ sub_811231C();
+ TrainerBattleLoadArgs(sDoubleBattleParams, data);
+ SetMapVarsToTrainer();
+ gTrainerBattleOpponent_A = GetRematchTrainerId(gTrainerBattleOpponent_A);
+ return EventScript_TryDoDoubleRematchBattle;
+ case TRAINER_BATTLE_REMATCH:
+ sub_811231C();
+ TrainerBattleLoadArgs(sOrdinaryBattleParams, data);
+ SetMapVarsToTrainer();
+ gTrainerBattleOpponent_A = GetRematchTrainerId(gTrainerBattleOpponent_A);
+ return EventScript_TryDoRematchBattle;
+ case TRAINER_BATTLE_TUTORIAL:
+ TrainerBattleLoadArgs(sTutorialBattleParams, data);
+ return EventScript_DoTrainerBattle;
+ default:
+ TrainerBattleLoadArgs(sOrdinaryBattleParams, data);
+ SetMapVarsToTrainer();
+ return EventScript_TryDoNormalTrainerBattle;
+ }
+}
+
+void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerScript)
+{
+ gSelectedEventObject = trainerEventObjId;
+ gSpecialVar_LastTalked = gMapObjects[trainerEventObjId].localId;
+ BattleSetup_ConfigureTrainerBattle(trainerScript + 1);
+ ScriptContext1_SetupScript(gUnknown_81A4EB4);
+ ScriptContext2_Enable();
+}
+
+bool32 GetTrainerFlagFromScriptPointer(const u8 *data)
+{
+ u32 flag = TrainerBattleLoadArg16(data + 2);
+
+ return FlagGet(FLAG_TRAINER_FLAG_START + flag);
+}
+
+void SetUpTrainerMovement(void)
+{
+ struct MapObject *eventObject = &gMapObjects[gSelectedEventObject];
+
+ SetTrainerMovementType(eventObject, GetTrainerFacingDirectionMovementType(eventObject->facingDirection));
+}
+
+u8 ScrSpecial_GetTrainerBattleMode(void)
+{
+ return sTrainerBattleMode;
+}
+
+u16 sub_80803D8(void)
+{
+ return gUnknown_20386CC;
+}
+
+u16 ScrSpecial_HasTrainerBeenFought(void)
+{
+ return FlagGet(GetTrainerAFlag());
+}
+
+void SetBattledTrainerFlag(void)
+{
+ FlagSet(GetTrainerAFlag());
+}
+
+// not used
+static void SetBattledTrainerFlag2(void)
+{
+ FlagSet(GetTrainerAFlag());
+}
+
+bool8 HasTrainerBeenFought(u16 trainerId)
+{
+ return FlagGet(FLAG_TRAINER_FLAG_START + trainerId);
+}
+
+void SetTrainerFlag(u16 trainerId)
+{
+ FlagSet(FLAG_TRAINER_FLAG_START + trainerId);
+}
+
+void ClearTrainerFlag(u16 trainerId)
+{
+ FlagClear(FLAG_TRAINER_FLAG_START + trainerId);
+}
+
+void BattleSetup_StartTrainerBattle(void)
+{
+ gBattleTypeFlags = BATTLE_TYPE_TRAINER;
+ if (ScrSpecial_GetTrainerBattleMode() == TRAINER_BATTLE_TUTORIAL
+ && sub_80803D8() & 3)
+ gBattleTypeFlags |= BATTLE_TYPE_FIRST_BATTLE;
+ gMain.savedCallback = CB2_EndTrainerBattle;
+ DoTrainerBattle();
+ ScriptContext1_Stop();
+}
+
+static void CB2_EndTrainerBattle(void)
+{
+ if (sTrainerBattleMode == TRAINER_BATTLE_TUTORIAL)
+ {
+ if (IsPlayerDefeated(gBattleOutcome) == TRUE)
+ {
+ gSpecialVar_Result = 1;
+ if (gUnknown_20386CC & 1)
+ {
+ sp000_heal_pokemon();
+ }
+ else
+ {
+ SetMainCallback2(CB2_WhiteOut);
+ return;
+ }
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ SetBattledTrainerFlag();
+ sub_81139BC();
+ }
+ else
+ {
+ gSpecialVar_Result = 0;
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ SetBattledTrainerFlag();
+ sub_81139BC();
+ }
+
+ }
+ else
+ {
+ if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE)
+ {
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ }
+ else if (IsPlayerDefeated(gBattleOutcome) == TRUE)
+ {
+ SetMainCallback2(CB2_WhiteOut);
+ }
+ else
+ {
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ SetBattledTrainerFlag();
+ sub_81139BC();
+ }
+ }
+}
+
+static void CB2_EndRematchBattle(void)
+{
+ if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE)
+ {
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ }
+ else if (IsPlayerDefeated(gBattleOutcome) == TRUE)
+ {
+ SetMainCallback2(CB2_WhiteOut);
+ }
+ else
+ {
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ SetBattledTrainerFlag();
+ sub_810CDE8();
+ sub_81138F8();
+ }
+}
+
+void ScrSpecial_StartTrainerEyeRematch(void)
+{
+ gBattleTypeFlags = BATTLE_TYPE_TRAINER;
+ gMain.savedCallback = CB2_EndRematchBattle;
+ DoTrainerBattle();
+ ScriptContext1_Stop();
+}
+
+void ScrSpecial_ShowTrainerIntroSpeech(void)
+{
+ ShowFieldMessage(GetIntroSpeechOfApproachingTrainer());
+}
+
+const u8 *BattleSetup_GetScriptAddrAfterBattle(void)
+{
+ if (sTrainerBattleEndScript != NULL)
+ return sTrainerBattleEndScript;
+ else
+ return EventScript_1C555B;
+}
+
+const u8 *BattleSetup_GetTrainerPostBattleScript(void)
+{
+ if (sTrainerABattleScriptRetAddr != NULL)
+ return sTrainerABattleScriptRetAddr;
+ else
+ return EventScript_1C555B;
+}
+
+void ScrSpecial_ShowTrainerNonBattlingSpeech(void)
+{
+ ShowFieldMessage(GetTrainerCantBattleSpeech());
+}
+
+void PlayTrainerEncounterMusic(void)
+{
+ u16 music;
+
+ if (gUnknown_203ADFA != 2
+ && gUnknown_203ADFA != 3
+ && sTrainerBattleMode != TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC
+ && sTrainerBattleMode != TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC)
+ {
+ switch (GetTrainerEncounterMusicId(gTrainerBattleOpponent_A))
+ {
+ case TRAINER_ENCOUNTER_MUSIC_FEMALE:
+ case TRAINER_ENCOUNTER_MUSIC_GIRL:
+ case TRAINER_ENCOUNTER_MUSIC_TWINS:
+ music = MUS_SHOUJO;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_MALE:
+ case TRAINER_ENCOUNTER_MUSIC_INTENSE:
+ case TRAINER_ENCOUNTER_MUSIC_COOL:
+ case TRAINER_ENCOUNTER_MUSIC_SWIMMER:
+ case TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR:
+ case TRAINER_ENCOUNTER_MUSIC_HIKER:
+ case TRAINER_ENCOUNTER_MUSIC_INTERVIEWER:
+ case TRAINER_ENCOUNTER_MUSIC_RICH:
+ music = MUS_SHOUNEN;
+ break;
+ default:
+ music = MUS_ROCKET;
+ break;
+ }
+ PlayNewMapMusic(music);
+ }
+}
+
+static const u8 *ReturnEmptyStringIfNull(const u8 *string)
+{
+ if (string == NULL)
+ return gString_Dummy;
+ else
+ return string;
+}
+
+static const u8 *GetIntroSpeechOfApproachingTrainer(void)
+{
+ return ReturnEmptyStringIfNull(sTrainerAIntroSpeech);
+}
+
+const u8 *GetTrainerALoseText(void)
+{
+ const u8 *string = sTrainerADefeatSpeech;
+
+ StringExpandPlaceholders(gStringVar4, ReturnEmptyStringIfNull(string));
+ return gStringVar4;
+}
+
+const u8 *GetTrainerWonSpeech(void)
+{
+ StringExpandPlaceholders(gStringVar4, ReturnEmptyStringIfNull(sTrainerVictorySpeech));
+ return gStringVar4;
+}
+
+static const u8 *GetTrainerCantBattleSpeech(void)
+{
+ return ReturnEmptyStringIfNull(sTrainerCannotBattleSpeech);
+}
diff --git a/src/battle_transition.c b/src/battle_transition.c
index 19d76fed1..1dbfe3aed 100644
--- a/src/battle_transition.c
+++ b/src/battle_transition.c
@@ -27,7 +27,7 @@ struct TransitionData
u16 winOut;
u16 win0H;
u16 win0V;
- u16 unused_A;
+ u16 win1H; // not used
u16 win1V;
u16 bldCnt;
u16 bldAlpha;
@@ -3175,7 +3175,7 @@ static bool8 BT_Phase2WhiteFadeInStripes_Stop(struct Task *task)
DmaStop(0);
SetVBlankCallback(NULL);
SetHBlankCallback(NULL);
- sTransitionStructPtr->win0H = 240;
+ sTransitionStructPtr->win0H = WIN_RANGE(0, 240);
sTransitionStructPtr->bldY = 0;
sTransitionStructPtr->bldCnt = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN;
sTransitionStructPtr->winIn = WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WININ_WIN0_CLR;
diff --git a/src/battle_util2.c b/src/battle_util2.c
index d940d8508..a3a748767 100644
--- a/src/battle_util2.c
+++ b/src/battle_util2.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "bg.h"
#include "battle.h"
+#include "battle_anim.h"
#include "pokemon.h"
#include "malloc.h"
#include "trainer_tower.h"
diff --git a/src/berry.c b/src/berry.c
index 91d83f40c..d349109d2 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -134,7 +134,7 @@ bool32 IsEnigmaBerryValid(void)
return TRUE;
}
-const struct Berry * sub_809C8A0(u8 berryIdx)
+const struct Berry * GetBerryInfo(u8 berryIdx)
{
if (berryIdx == ITEM_TO_BERRY(ITEM_ENIGMA_BERRY) && IsEnigmaBerryValid())
return (struct Berry *)&gSaveBlock1Ptr->enigmaBerry.berry;
@@ -163,7 +163,7 @@ u16 BerryTypeToItemId(u16 berryType)
void GetBerryNameByBerryType(u8 berryType, u8 * dest)
{
- const struct Berry * berry = sub_809C8A0(berryType);
+ const struct Berry * berry = GetBerryInfo(berryType);
memcpy(dest, berry->name, 6);
dest[6] = EOS;
}
diff --git a/src/dark.c b/src/dark.c
index cb34b991e..b6d13afe3 100644
--- a/src/dark.c
+++ b/src/dark.c
@@ -613,7 +613,7 @@ static void sub_80B82C0(u8 taskId)
{
case 0:
task->data[5] += 8;
- if (task->data[5] >= task->data[7])
+ if (task->data[5] >= task->data[7])
task->data[5] = task->data[7];
sub_80B843C(task);
if (task->data[5] == task->data[7])
diff --git a/src/data/text/abilities.h b/src/data/text/abilities.h
new file mode 100644
index 000000000..c2002bed7
--- /dev/null
+++ b/src/data/text/abilities.h
@@ -0,0 +1,242 @@
+static const u8 sNoneDescription[] = _("No special ability.");
+static const u8 sStenchDescription[] = _("Helps repel wild POKéMON.");
+static const u8 sDrizzleDescription[] = _("Summons rain in battle.");
+static const u8 sSpeedBoostDescription[] = _("Gradually boosts SPEED.");
+static const u8 sBattleArmorDescription[] = _("Blocks critical hits.");
+static const u8 sSturdyDescription[] = _("Negates 1-hit KO attacks.");
+static const u8 sDampDescription[] = _("Prevents self-destruction.");
+static const u8 sLimberDescription[] = _("Prevents paralysis.");
+static const u8 sSandVeilDescription[] = _("Ups evasion in a sandstorm.");
+static const u8 sStaticDescription[] = _("Paralyzes on contact.");
+static const u8 sVoltAbsorbDescription[] = _("Turns electricity into HP.");
+static const u8 sWaterAbsorbDescription[] = _("Changes water into HP.");
+static const u8 sObliviousDescription[] = _("Prevents attraction.");
+static const u8 sCloudNineDescription[] = _("Negates weather effects.");
+static const u8 sCompoundEyesDescription[] = _("Raises accuracy.");
+static const u8 sInsomniaDescription[] = _("Prevents sleep.");
+static const u8 sColorChangeDescription[] = _("Changes type to foe's move.");
+static const u8 sImmunityDescription[] = _("Prevents poisoning.");
+static const u8 sFlashFireDescription[] = _("Powers up if hit by fire.");
+static const u8 sShieldDustDescription[] = _("Prevents added effects.");
+static const u8 sOwnTempoDescription[] = _("Prevents confusion.");
+static const u8 sSuctionCupsDescription[] = _("Firmly anchors the body.");
+static const u8 sIntimidateDescription[] = _("Lowers the foe's ATTACK.");
+static const u8 sShadowTagDescription[] = _("Prevents the foe's escape.");
+static const u8 sRoughSkinDescription[] = _("Hurts to touch.");
+static const u8 sWonderGuardDescription[] = _("“Super effective” hits.");
+static const u8 sLevitateDescription[] = _("Not hit by GROUND attacks.");
+static const u8 sEffectSporeDescription[] = _("Leaves spores on contact.");
+static const u8 sSynchronizeDescription[] = _("Passes on status problems.");
+static const u8 sClearBodyDescription[] = _("Prevents ability reduction.");
+static const u8 sNaturalCureDescription[] = _("Heals upon switching out.");
+static const u8 sLightningRodDescription[] = _("Draws electrical moves.");
+static const u8 sSereneGraceDescription[] = _("Promotes added effects.");
+static const u8 sSwiftSwimDescription[] = _("Raises SPEED in rain.");
+static const u8 sChlorophyllDescription[] = _("Raises SPEED in sunshine.");
+static const u8 sIlluminateDescription[] = _("Encounter rate increases.");
+static const u8 sTraceDescription[] = _("Copies special ability.");
+static const u8 sHugePowerDescription[] = _("Raises ATTACK.");
+static const u8 sPoisonPointDescription[] = _("Poisons foe on contact.");
+static const u8 sInnerFocusDescription[] = _("Prevents flinching.");
+static const u8 sMagmaArmorDescription[] = _("Prevents freezing.");
+static const u8 sWaterVeilDescription[] = _("Prevents burns.");
+static const u8 sMagnetPullDescription[] = _("Traps STEEL-type POKéMON.");
+static const u8 sSoundproofDescription[] = _("Avoids sound-based moves.");
+static const u8 sRainDishDescription[] = _("Slight HP recovery in rain.");
+static const u8 sSandStreamDescription[] = _("Summons a sandstorm.");
+static const u8 sPressureDescription[] = _("Raises foe's PP usage.");
+static const u8 sThickFatDescription[] = _("Heat-and-cold protection.");
+static const u8 sEarlyBirdDescription[] = _("Awakens quickly from sleep.");
+static const u8 sFlameBodyDescription[] = _("Burns the foe on contact.");
+static const u8 sRunAwayDescription[] = _("Makes escaping easier.");
+static const u8 sKeenEyeDescription[] = _("Prevents loss of accuracy.");
+static const u8 sHyperCutterDescription[] = _("Prevents ATTACK reduction.");
+static const u8 sPickupDescription[] = _("May pick up items.");
+static const u8 sTruantDescription[] = _("Moves only every two turns.");
+static const u8 sHustleDescription[] = _("Trades accuracy for power.");
+static const u8 sCuteCharmDescription[] = _("Infatuates on contact.");
+static const u8 sPlusDescription[] = _("Powers up with MINUS.");
+static const u8 sMinusDescription[] = _("Powers up with PLUS.");
+static const u8 sForecastDescription[] = _("Changes with the weather.");
+static const u8 sStickyHoldDescription[] = _("Prevents item theft.");
+static const u8 sShedSkinDescription[] = _("Heals the body by shedding.");
+static const u8 sGutsDescription[] = _("Ups ATTACK if suffering.");
+static const u8 sMarvelScaleDescription[] = _("Ups DEFENSE if suffering.");
+static const u8 sLiquidOozeDescription[] = _("Draining causes injury.");
+static const u8 sOvergrowDescription[] = _("Ups GRASS moves in a pinch.");
+static const u8 sBlazeDescription[] = _("Ups FIRE moves in a pinch.");
+static const u8 sTorrentDescription[] = _("Ups WATER moves in a pinch.");
+static const u8 sSwarmDescription[] = _("Ups BUG moves in a pinch.");
+static const u8 sRockHeadDescription[] = _("Prevents recoil damage.");
+static const u8 sDroughtDescription[] = _("Summons sunlight in battle.");
+static const u8 sArenaTrapDescription[] = _("Prevents fleeing.");
+static const u8 sVitalSpiritDescription[] = _("Prevents sleep.");
+static const u8 sWhiteSmokeDescription[] = _("Prevents ability reduction.");
+static const u8 sPurePowerDescription[] = _("Raises ATTACK.");
+static const u8 sShellArmorDescription[] = _("Blocks critical hits.");
+static const u8 sCacophonyDescription[] = _("Avoids sound-based moves.");
+static const u8 sAirLockDescription[] = _("Negates weather effects.");
+
+const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT] =
+{
+ [ABILITY_NONE] = sNoneDescription,
+ [ABILITY_STENCH] = sStenchDescription,
+ [ABILITY_DRIZZLE] = sDrizzleDescription,
+ [ABILITY_SPEED_BOOST] = sSpeedBoostDescription,
+ [ABILITY_BATTLE_ARMOR] = sBattleArmorDescription,
+ [ABILITY_STURDY] = sSturdyDescription,
+ [ABILITY_DAMP] = sDampDescription,
+ [ABILITY_LIMBER] = sLimberDescription,
+ [ABILITY_SAND_VEIL] = sSandVeilDescription,
+ [ABILITY_STATIC] = sStaticDescription,
+ [ABILITY_VOLT_ABSORB] = sVoltAbsorbDescription,
+ [ABILITY_WATER_ABSORB] = sWaterAbsorbDescription,
+ [ABILITY_OBLIVIOUS] = sObliviousDescription,
+ [ABILITY_CLOUD_NINE] = sCloudNineDescription,
+ [ABILITY_COMPOUND_EYES] = sCompoundEyesDescription,
+ [ABILITY_INSOMNIA] = sInsomniaDescription,
+ [ABILITY_COLOR_CHANGE] = sColorChangeDescription,
+ [ABILITY_IMMUNITY] = sImmunityDescription,
+ [ABILITY_FLASH_FIRE] = sFlashFireDescription,
+ [ABILITY_SHIELD_DUST] = sShieldDustDescription,
+ [ABILITY_OWN_TEMPO] = sOwnTempoDescription,
+ [ABILITY_SUCTION_CUPS] = sSuctionCupsDescription,
+ [ABILITY_INTIMIDATE] = sIntimidateDescription,
+ [ABILITY_SHADOW_TAG] = sShadowTagDescription,
+ [ABILITY_ROUGH_SKIN] = sRoughSkinDescription,
+ [ABILITY_WONDER_GUARD] = sWonderGuardDescription,
+ [ABILITY_LEVITATE] = sLevitateDescription,
+ [ABILITY_EFFECT_SPORE] = sEffectSporeDescription,
+ [ABILITY_SYNCHRONIZE] = sSynchronizeDescription,
+ [ABILITY_CLEAR_BODY] = sClearBodyDescription,
+ [ABILITY_NATURAL_CURE] = sNaturalCureDescription,
+ [ABILITY_LIGHTNING_ROD] = sLightningRodDescription,
+ [ABILITY_SERENE_GRACE] = sSereneGraceDescription,
+ [ABILITY_SWIFT_SWIM] = sSwiftSwimDescription,
+ [ABILITY_CHLOROPHYLL] = sChlorophyllDescription,
+ [ABILITY_ILLUMINATE] = sIlluminateDescription,
+ [ABILITY_TRACE] = sTraceDescription,
+ [ABILITY_HUGE_POWER] = sHugePowerDescription,
+ [ABILITY_POISON_POINT] = sPoisonPointDescription,
+ [ABILITY_INNER_FOCUS] = sInnerFocusDescription,
+ [ABILITY_MAGMA_ARMOR] = sMagmaArmorDescription,
+ [ABILITY_WATER_VEIL] = sWaterVeilDescription,
+ [ABILITY_MAGNET_PULL] = sMagnetPullDescription,
+ [ABILITY_SOUNDPROOF] = sSoundproofDescription,
+ [ABILITY_RAIN_DISH] = sRainDishDescription,
+ [ABILITY_SAND_STREAM] = sSandStreamDescription,
+ [ABILITY_PRESSURE] = sPressureDescription,
+ [ABILITY_THICK_FAT] = sThickFatDescription,
+ [ABILITY_EARLY_BIRD] = sEarlyBirdDescription,
+ [ABILITY_FLAME_BODY] = sFlameBodyDescription,
+ [ABILITY_RUN_AWAY] = sRunAwayDescription,
+ [ABILITY_KEEN_EYE] = sKeenEyeDescription,
+ [ABILITY_HYPER_CUTTER] = sHyperCutterDescription,
+ [ABILITY_PICKUP] = sPickupDescription,
+ [ABILITY_TRUANT] = sTruantDescription,
+ [ABILITY_HUSTLE] = sHustleDescription,
+ [ABILITY_CUTE_CHARM] = sCuteCharmDescription,
+ [ABILITY_PLUS] = sPlusDescription,
+ [ABILITY_MINUS] = sMinusDescription,
+ [ABILITY_FORECAST] = sForecastDescription,
+ [ABILITY_STICKY_HOLD] = sStickyHoldDescription,
+ [ABILITY_SHED_SKIN] = sShedSkinDescription,
+ [ABILITY_GUTS] = sGutsDescription,
+ [ABILITY_MARVEL_SCALE] = sMarvelScaleDescription,
+ [ABILITY_LIQUID_OOZE] = sLiquidOozeDescription,
+ [ABILITY_OVERGROW] = sOvergrowDescription,
+ [ABILITY_BLAZE] = sBlazeDescription,
+ [ABILITY_TORRENT] = sTorrentDescription,
+ [ABILITY_SWARM] = sSwarmDescription,
+ [ABILITY_ROCK_HEAD] = sRockHeadDescription,
+ [ABILITY_DROUGHT] = sDroughtDescription,
+ [ABILITY_ARENA_TRAP] = sArenaTrapDescription,
+ [ABILITY_VITAL_SPIRIT] = sVitalSpiritDescription,
+ [ABILITY_WHITE_SMOKE] = sWhiteSmokeDescription,
+ [ABILITY_PURE_POWER] = sPurePowerDescription,
+ [ABILITY_SHELL_ARMOR] = sShellArmorDescription,
+ [ABILITY_CACOPHONY] = sCacophonyDescription,
+ [ABILITY_AIR_LOCK] = sAirLockDescription,
+};
+
+const u8 gAbilityNames[ABILITIES_COUNT][ABILITY_NAME_LENGTH + 1] =
+{
+ [ABILITY_NONE] = _("-------"),
+ [ABILITY_STENCH] = _("STENCH"),
+ [ABILITY_DRIZZLE] = _("DRIZZLE"),
+ [ABILITY_SPEED_BOOST] = _("SPEED BOOST"),
+ [ABILITY_BATTLE_ARMOR] = _("BATTLE ARMOR"),
+ [ABILITY_STURDY] = _("STURDY"),
+ [ABILITY_DAMP] = _("DAMP"),
+ [ABILITY_LIMBER] = _("LIMBER"),
+ [ABILITY_SAND_VEIL] = _("SAND VEIL"),
+ [ABILITY_STATIC] = _("STATIC"),
+ [ABILITY_VOLT_ABSORB] = _("VOLT ABSORB"),
+ [ABILITY_WATER_ABSORB] = _("WATER ABSORB"),
+ [ABILITY_OBLIVIOUS] = _("OBLIVIOUS"),
+ [ABILITY_CLOUD_NINE] = _("CLOUD NINE"),
+ [ABILITY_COMPOUND_EYES] = _("COMPOUNDEYES"),
+ [ABILITY_INSOMNIA] = _("INSOMNIA"),
+ [ABILITY_COLOR_CHANGE] = _("COLOR CHANGE"),
+ [ABILITY_IMMUNITY] = _("IMMUNITY"),
+ [ABILITY_FLASH_FIRE] = _("FLASH FIRE"),
+ [ABILITY_SHIELD_DUST] = _("SHIELD DUST"),
+ [ABILITY_OWN_TEMPO] = _("OWN TEMPO"),
+ [ABILITY_SUCTION_CUPS] = _("SUCTION CUPS"),
+ [ABILITY_INTIMIDATE] = _("INTIMIDATE"),
+ [ABILITY_SHADOW_TAG] = _("SHADOW TAG"),
+ [ABILITY_ROUGH_SKIN] = _("ROUGH SKIN"),
+ [ABILITY_WONDER_GUARD] = _("WONDER GUARD"),
+ [ABILITY_LEVITATE] = _("LEVITATE"),
+ [ABILITY_EFFECT_SPORE] = _("EFFECT SPORE"),
+ [ABILITY_SYNCHRONIZE] = _("SYNCHRONIZE"),
+ [ABILITY_CLEAR_BODY] = _("CLEAR BODY"),
+ [ABILITY_NATURAL_CURE] = _("NATURAL CURE"),
+ [ABILITY_LIGHTNING_ROD] = _("LIGHTNINGROD"),
+ [ABILITY_SERENE_GRACE] = _("SERENE GRACE"),
+ [ABILITY_SWIFT_SWIM] = _("SWIFT SWIM"),
+ [ABILITY_CHLOROPHYLL] = _("CHLOROPHYLL"),
+ [ABILITY_ILLUMINATE] = _("ILLUMINATE"),
+ [ABILITY_TRACE] = _("TRACE"),
+ [ABILITY_HUGE_POWER] = _("HUGE POWER"),
+ [ABILITY_POISON_POINT] = _("POISON POINT"),
+ [ABILITY_INNER_FOCUS] = _("INNER FOCUS"),
+ [ABILITY_MAGMA_ARMOR] = _("MAGMA ARMOR"),
+ [ABILITY_WATER_VEIL] = _("WATER VEIL"),
+ [ABILITY_MAGNET_PULL] = _("MAGNET PULL"),
+ [ABILITY_SOUNDPROOF] = _("SOUNDPROOF"),
+ [ABILITY_RAIN_DISH] = _("RAIN DISH"),
+ [ABILITY_SAND_STREAM] = _("SAND STREAM"),
+ [ABILITY_PRESSURE] = _("PRESSURE"),
+ [ABILITY_THICK_FAT] = _("THICK FAT"),
+ [ABILITY_EARLY_BIRD] = _("EARLY BIRD"),
+ [ABILITY_FLAME_BODY] = _("FLAME BODY"),
+ [ABILITY_RUN_AWAY] = _("RUN AWAY"),
+ [ABILITY_KEEN_EYE] = _("KEEN EYE"),
+ [ABILITY_HYPER_CUTTER] = _("HYPER CUTTER"),
+ [ABILITY_PICKUP] = _("PICKUP"),
+ [ABILITY_TRUANT] = _("TRUANT"),
+ [ABILITY_HUSTLE] = _("HUSTLE"),
+ [ABILITY_CUTE_CHARM] = _("CUTE CHARM"),
+ [ABILITY_PLUS] = _("PLUS"),
+ [ABILITY_MINUS] = _("MINUS"),
+ [ABILITY_FORECAST] = _("FORECAST"),
+ [ABILITY_STICKY_HOLD] = _("STICKY HOLD"),
+ [ABILITY_SHED_SKIN] = _("SHED SKIN"),
+ [ABILITY_GUTS] = _("GUTS"),
+ [ABILITY_MARVEL_SCALE] = _("MARVEL SCALE"),
+ [ABILITY_LIQUID_OOZE] = _("LIQUID OOZE"),
+ [ABILITY_OVERGROW] = _("OVERGROW"),
+ [ABILITY_BLAZE] = _("BLAZE"),
+ [ABILITY_TORRENT] = _("TORRENT"),
+ [ABILITY_SWARM] = _("SWARM"),
+ [ABILITY_ROCK_HEAD] = _("ROCK HEAD"),
+ [ABILITY_DROUGHT] = _("DROUGHT"),
+ [ABILITY_ARENA_TRAP] = _("ARENA TRAP"),
+ [ABILITY_VITAL_SPIRIT] = _("VITAL SPIRIT"),
+ [ABILITY_WHITE_SMOKE] = _("WHITE SMOKE"),
+ [ABILITY_PURE_POWER] = _("PURE POWER"),
+ [ABILITY_SHELL_ARMOR] = _("SHELL ARMOR"),
+ [ABILITY_CACOPHONY] = _("CACOPHONY"),
+ [ABILITY_AIR_LOCK] = _("AIR LOCK"),
+};
diff --git a/src/fame_checker.c b/src/fame_checker.c
index de555b682..8c8f5b4ea 100644
--- a/src/fame_checker.c
+++ b/src/fame_checker.c
@@ -27,6 +27,7 @@
#include "text_window.h"
#include "fame_checker.h"
#include "strings.h"
+#include "constants/trainers.h"
#define SPRITETAG_SELECTOR_CURSOR 1000
#define SPRITETAG_QUESTION_MARK 1001
@@ -867,7 +868,7 @@ static void FC_DestroyWindow(u8 windowId)
static u8 AdjustGiovanniIndexIfBeatenInGym(u8 a0)
{
- if (HasTrainerAlreadyBeenFought(0x15e) == TRUE)
+ if (HasTrainerBeenFought(TRAINER_LEADER_GIOVANNI) == TRUE)
{
if (a0 == 9)
return FAMECHECKER_GIOVANNI;
diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c
index de9f09ff0..58caad509 100644
--- a/src/field_fadetransition.c
+++ b/src/field_fadetransition.c
@@ -323,14 +323,14 @@ static void sub_807DFBC(u8 taskId)
{
case 0: // Never reached
sub_807DCB0(0);
- player_bitmagic();
+ FreezeEventObjects();
PlayerGetDestCoords(x, y);
FieldSetDoorOpened(*x, *y);
task->data[0] = 1;
break;
case 5:
sub_807DCB0(0);
- player_bitmagic();
+ FreezeEventObjects();
sub_807F114();
sub_807DBAC();
task->data[0] = 6;
@@ -408,7 +408,7 @@ static void task_map_chg_seq_0807E20C(u8 taskId)
{
case 0:
sub_807DCB0(0);
- player_bitmagic();
+ FreezeEventObjects();
PlayerGetDestCoords(x, y);
task->data[0] = 1;
break;
@@ -439,7 +439,7 @@ static void task_map_chg_seq_0807E2CC(u8 taskId)
switch (gTasks[taskId].data[0])
{
case 0:
- player_bitmagic();
+ FreezeEventObjects();
ScriptContext2_Enable();
gTasks[taskId].data[0]++;
break;
@@ -459,7 +459,7 @@ static void sub_807E31C(u8 taskId)
switch (gTasks[taskId].data[0])
{
case 0:
- player_bitmagic();
+ FreezeEventObjects();
ScriptContext2_Enable();
sub_805DC04();
gTasks[taskId].data[0]++;
@@ -689,7 +689,7 @@ static void sub_807E718(u8 taskId)
switch (task->data[0])
{
case 0:
- player_bitmagic();
+ FreezeEventObjects();
ScriptContext2_Enable();
task->data[0]++;
break;
@@ -711,7 +711,7 @@ static void sub_807E784(u8 taskId)
switch (task->data[0])
{
case 0:
- player_bitmagic();
+ FreezeEventObjects();
ScriptContext2_Enable();
PlaySE(SE_TK_WARPIN);
sub_805DAB0();
@@ -744,7 +744,7 @@ static void sub_807E80C(u8 taskId)
switch (task->data[0])
{
case 0:
- player_bitmagic();
+ FreezeEventObjects();
PlayerGetDestCoords(xp, yp);
PlaySE(GetDoorSoundEffect(*xp, *yp - 1));
task->data[1] = FieldAnimateDoorOpen(*xp, *yp - 1);
@@ -798,7 +798,7 @@ static void sub_807E980(u8 taskId)
{
case 0:
ScriptContext2_Enable();
- player_bitmagic();
+ FreezeEventObjects();
CameraObjectReset2();
data[0]++;
break;
diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c
index 56a607fff..90abda81f 100644
--- a/src/fldeff_rocksmash.c
+++ b/src/fldeff_rocksmash.c
@@ -16,6 +16,7 @@
#include "field_map_obj.h"
#include "constants/songs.h"
#include "constants/map_objects.h"
+#include "constants/map_types.h"
static void task08_080C9820(u8 taskId);
static void sub_80C98FC(u8 taskId);
diff --git a/src/ground.c b/src/ground.c
index 4ae4d8370..97f42e5c5 100644
--- a/src/ground.c
+++ b/src/ground.c
@@ -416,8 +416,7 @@ static void sub_80B91B0(u8 taskId)
task->data[12] = gBattle_BG1_X;
else
task->data[12] = gBattle_BG2_X;
-
- var0 = GetBattlerYCoordWithElevation(gBattleAnimAttacker);
+ var0 = GetBattlerYCoordWithElevation(gBattleAnimAttacker);
task->data[14] = var0 - 32;
task->data[15] = var0 + 32;
++task->data[0];
diff --git a/src/item.c b/src/item.c
index e76cb10d3..677c13ad7 100644
--- a/src/item.c
+++ b/src/item.c
@@ -73,7 +73,7 @@ void CopyItemName(u16 itemId, u8 * dest)
{
if (itemId == ITEM_ENIGMA_BERRY)
{
- StringCopy(dest, sub_809C8A0(43)->name);
+ StringCopy(dest, GetBerryInfo(ITEM_TO_BERRY(ITEM_ENIGMA_BERRY))->name);
StringAppend(dest, gUnknown_84162BD);
}
else
diff --git a/src/item_use.c b/src/item_use.c
index 679a3b8cc..873ce4ab4 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -42,6 +42,7 @@
#include "constants/maps.h"
#include "constants/moves.h"
#include "constants/songs.h"
+#include "constants/map_types.h"
EWRAM_DATA void (*sItemUseOnFieldCB)(u8 taskId) = NULL;
@@ -162,7 +163,7 @@ void sub_80A1184(void)
bool8 sub_80A1194(void)
{
- player_bitmagic();
+ FreezeEventObjects();
ScriptContext2_Enable();
sub_807DC00();
CreateTask(sub_80A11C0, 10);
@@ -259,7 +260,7 @@ bool8 ItemUseCheckFunc_Rod(void)
{
if (MetatileBehavior_IsSurfable(behavior) && !MapGridIsImpassableAt(x, y))
return TRUE;
- if (MetatileBehavior_ReturnFalse_6(behavior) == TRUE)
+ if (MetatileBehavior_IsBridge(behavior) == TRUE)
return TRUE;
}
return FALSE;
diff --git a/src/link.c b/src/link.c
index c8c7932df..ac9cf9cfe 100644
--- a/src/link.c
+++ b/src/link.c
@@ -1025,7 +1025,7 @@ bool8 IsLinkTaskFinished(void)
{
if (gWirelessCommType == 1)
{
- return IsRfuTaskFinished();
+ return IsLinkRfuTaskFinished();
}
return gLinkCallback == NULL;
}
diff --git a/src/map_obj_lock.c b/src/map_obj_lock.c
index f89819647..e28872fd4 100644
--- a/src/map_obj_lock.c
+++ b/src/map_obj_lock.c
@@ -38,7 +38,7 @@ bool8 sub_8069590(void)
void ScriptFreezeMapObjects(void)
{
- player_bitmagic();
+ FreezeEventObjects();
CreateTask(sub_8069570, 80);
}
diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c
index 62a102a09..bca99d38f 100644
--- a/src/metatile_behavior.c
+++ b/src/metatile_behavior.c
@@ -69,7 +69,7 @@ bool8 MetatileBehavior_IsMB21OrSand(u8 metatileBehavior)
return FALSE;
}
-bool8 MetatileBehavior_IsMB21OrWaterfallBottom(u8 metatileBehavior)
+bool8 MetatileBehavior_IsSandOrDeepSand(u8 metatileBehavior)
{
if(metatileBehavior == MB_21 || metatileBehavior == MB_WATERFALL_BOTTOM)
return TRUE;
@@ -428,11 +428,11 @@ bool8 MetatileBehavior_IsTallGrass_2(u8 metatileBehavior)
return FALSE;
}
-bool8 MetatileBehavior_ReturnFalse_3(u8 metatileBehavior) { return FALSE; }
+bool8 MetatileBehavior_IsLongGrass(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_ReturnFalse_4(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_ReturnFalse_5(u8 metatileBehavior) { return FALSE; }
-bool8 MetatileBehavior_ReturnFalse_6(u8 metatileBehavior) { return FALSE; }
-bool8 MetatileBehavior_ReturnFalse_7(u8 metatileBehavior) { return FALSE; }
+bool8 MetatileBehavior_IsBridge(u8 metatileBehavior) { return FALSE; }
+bool8 MetatileBehavior_GetBridgeType(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_UnusedIsMB_01(u8 metatileBehavior)
{
@@ -450,7 +450,7 @@ bool8 MetatileBehavior_UnusedIsTallGrass(u8 metatileBehavior)
return FALSE;
}
-bool8 MetatileBehavior_IsMB0B(u8 metatileBehavior)
+bool8 MetatileBehavior_IsIndoorEncounter(u8 metatileBehavior)
{
if(metatileBehavior == MB_0B)
return TRUE;
@@ -458,7 +458,7 @@ bool8 MetatileBehavior_IsMB0B(u8 metatileBehavior)
return FALSE;
}
-bool8 MetatileBehavior_IsMB0C(u8 metatileBehavior)
+bool8 MetatileBehavior_IsMountain(u8 metatileBehavior)
{
if(metatileBehavior == MB_0C)
return TRUE;
diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c
index f76d70c04..13a6d37e2 100644
--- a/src/mystery_gift_menu.c
+++ b/src/mystery_gift_menu.c
@@ -1374,7 +1374,7 @@ void task00_mystery_gift(u8 taskId)
}
break;
case 13:
- if (IsRfuTaskFinished())
+ if (IsLinkRfuTaskFinished())
{
DestroyWirelessStatusIndicatorSprite();
data->state = 14;
@@ -1650,7 +1650,7 @@ void task00_mystery_gift(u8 taskId)
data->state = 34;
break;
case 34:
- if (IsRfuTaskFinished())
+ if (IsLinkRfuTaskFinished())
{
DestroyWirelessStatusIndicatorSprite();
data->state = 35;
diff --git a/src/pokemon.c b/src/pokemon.c
index f9fe72007..17f28c7a6 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -8,7 +8,7 @@
#include "data.h"
#include "string_util.h"
#include "battle.h"
-#include "battle_main.h"
+#include "battle_anim.h"
#include "item.h"
#include "event_data.h"
#include "util.h"
@@ -1467,7 +1467,7 @@ const struct SpriteTemplate gUnknown_825DEF0[] =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
- .oam = &gUnknown_824F018,
+ .oam = &gOamData_824F018,
.anims = NULL,
.images = gUnknown_8234698,
.affineAnims = gSpriteAffineAnimTable_82348C8,
@@ -1476,16 +1476,16 @@ const struct SpriteTemplate gUnknown_825DEF0[] =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
- .oam = &gUnknown_824F010,
+ .oam = &gOamData_824F010,
.anims = NULL,
.images = gUnknown_82346B8,
.affineAnims = gSpriteAffineAnimTable_8234944,
- .callback = oac_poke_opponent,
+ .callback = SpriteCB_WildMon,
},
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
- .oam = &gUnknown_824F018,
+ .oam = &gOamData_824F018,
.anims = NULL,
.images = gUnknown_82346D8,
.affineAnims = gSpriteAffineAnimTable_82348C8,
@@ -1494,11 +1494,11 @@ const struct SpriteTemplate gUnknown_825DEF0[] =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
- .oam = &gUnknown_824F010,
+ .oam = &gOamData_824F010,
.anims = NULL,
.images = gUnknown_82346F8,
.affineAnims = gSpriteAffineAnimTable_8234944,
- .callback = oac_poke_opponent,
+ .callback = SpriteCB_WildMon,
},
};
@@ -1507,7 +1507,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
- .oam = &gUnknown_824F018,
+ .oam = &gOamData_824F018,
.anims = NULL,
.images = gTrainerBackPicTable_Red,
.affineAnims = gSpriteAffineAnimTable_82348C8,
@@ -1516,7 +1516,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
- .oam = &gUnknown_824F018,
+ .oam = &gOamData_824F018,
.anims = NULL,
.images = gTrainerBackPicTable_Leaf,
.affineAnims = gSpriteAffineAnimTable_82348C8,
@@ -1525,7 +1525,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
- .oam = &gUnknown_824F018,
+ .oam = &gOamData_824F018,
.anims = NULL,
.images = gTrainerBackPicTable_RSBrendan,
.affineAnims = gSpriteAffineAnimTable_82348C8,
@@ -1534,7 +1534,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
- .oam = &gUnknown_824F018,
+ .oam = &gOamData_824F018,
.anims = NULL,
.images = gTrainerBackPicTable_RSMay,
.affineAnims = gSpriteAffineAnimTable_82348C8,
@@ -1543,7 +1543,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
- .oam = &gUnknown_824F018,
+ .oam = &gOamData_824F018,
.anims = NULL,
.images = gTrainerBackPicTable_PokeDude,
.affineAnims = gSpriteAffineAnimTable_82348C8,
@@ -1552,7 +1552,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
- .oam = &gUnknown_824F018,
+ .oam = &gOamData_824F018,
.anims = NULL,
.images = gTrainerBackPicTable_OldMan,
.affineAnims = gSpriteAffineAnimTable_82348C8,
@@ -4652,8 +4652,7 @@ bool8 PokemonUseItemEffects2(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mo
sp18 = itemEffect[r10];
r10++;
break;
- case 7:\
-
+ case 7:
if (GetMonData(mon, MON_DATA_FRIENDSHIP, NULL) >= 200
&& retVal == FALSE
&& sp18 == 0)
@@ -5406,7 +5405,7 @@ u16 GetMonEVCount(struct Pokemon *mon)
return count;
}
-void sub_8043A68(void)
+void RandomlyGivePartyPokerus(struct Pokemon *party)
{
u8 foo[4]; // huh?
}
@@ -5472,7 +5471,7 @@ static void sub_8043B38(void)
u8 foo[4]; // huh?
}
-void sub_8043B40(void)
+void PartySpreadPokerus(struct Pokemon *party)
{
u8 foo[4]; // huh?
}
diff --git a/src/psychic.c b/src/psychic.c
index 662320a2b..a8108c55a 100644
--- a/src/psychic.c
+++ b/src/psychic.c
@@ -47,7 +47,7 @@ const struct SpriteTemplate gUnknown_83E6DF8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E6DF4,
- .callback = sub_8075D9C,
+ .callback = AnimSpriteOnMonPos,
};
const struct SpriteTemplate gUnknown_83E6E10 =
@@ -376,7 +376,7 @@ const struct SpriteTemplate gUnknown_83E7148 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7144,
- .callback = sub_8075D9C,
+ .callback = AnimSpriteOnMonPos,
};
static const union AffineAnimCmd gUnknown_83E7160[] =
diff --git a/src/quest_log.c b/src/quest_log.c
index 14485ca46..896a44d17 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -1514,7 +1514,7 @@ static void sub_8111F8C(u8 taskId)
if (ScriptContext2_IsEnabled() != TRUE)
{
- player_bitmagic();
+ FreezeEventObjects();
sub_805C270();
sub_805C780();
ScriptContext2_Enable();
@@ -1537,7 +1537,7 @@ static void sub_8111FCC(u8 taskId)
task->data[0] = 0;
task->data[1] = 0;
task->func = sub_8112044;
- player_bitmagic();
+ FreezeEventObjects();
ScriptContext2_Enable();
}
}
@@ -4911,7 +4911,6 @@ static const u16 gUnknown_8456C50[] = {
0x08a1
};
-#ifdef NONMATCHING
void sub_8115748(u16 a0)
{
s32 i;
@@ -4919,60 +4918,22 @@ void sub_8115748(u16 a0)
return;
for (i = 0; i < 17; i++)
{
- if (a0 != gUnknown_8456C50[i])
- continue;
- if (!FlagGet(a0))
- gUnknown_203B049 = TRUE;
- else
- gUnknown_203B049 = FALSE;
- break;
+ if (a0 == gUnknown_8456C50[i])
+ {
+ if (!FlagGet(a0))
+ {
+ gUnknown_203B049 = TRUE;
+ break;
+ }
+ else
+ {
+ gUnknown_203B049 += 0;
+ gUnknown_203B049 = FALSE;
+ break;
+ }
+ }
}
}
-#else
-NAKED
-void sub_8115748(u16 a0)
-{
- asm_unified("\tpush {r4,lr}\n"
- "\tlsls r0, 16\n"
- "\tlsrs r2, r0, 16\n"
- "\tldr r0, =gUnknown_203ADFA\n"
- "\tldrb r0, [r0]\n"
- "\tsubs r0, 0x2\n"
- "\tlsls r0, 24\n"
- "\tlsrs r0, 24\n"
- "\tcmp r0, 0x1\n"
- "\tbls _08115792\n"
- "\tmovs r1, 0\n"
- "\tldr r4, =gUnknown_203B049\n"
- "\tldr r0, =gUnknown_8456C50\n"
- "\tb _08115778\n"
- "\t.pool\n"
- "_08115770:\n"
- "\tmovs r0, 0\n"
- "\tb _08115790\n"
- "_08115774:\n"
- "\tadds r0, 0x2\n"
- "\tadds r1, 0x1\n"
- "_08115778:\n"
- "\tcmp r1, 0x10\n"
- "\tbgt _08115792\n"
- "\tldrh r3, [r0]\n"
- "\tcmp r2, r3\n"
- "\tbne _08115774\n"
- "\tadds r0, r2, 0\n"
- "\tbl FlagGet\n"
- "\tlsls r0, 24\n"
- "\tcmp r0, 0\n"
- "\tbne _08115770\n"
- "\tmovs r0, 0x1\n"
- "_08115790:\n"
- "\tstrb r0, [r4]\n"
- "_08115792:\n"
- "\tpop {r4}\n"
- "\tpop {r0}\n"
- "\tbx r0");
-}
-#endif // NONMATCHING
void sub_8115798(void)
{
diff --git a/src/quest_log_8150454.c b/src/quest_log_8150454.c
index 3d61dee72..fbd3b4487 100644
--- a/src/quest_log_8150454.c
+++ b/src/quest_log_8150454.c
@@ -88,7 +88,7 @@ void sub_8150530(void)
else
{
sub_81507BC(mapObject, sub_805C808(4));
- StartSpriteAnim(sprite, sub_80634F0(mapObject->mapobj_unk_18));
+ StartSpriteAnim(sprite, sub_80634F0(mapObject->facingDirection));
}
}
@@ -103,7 +103,7 @@ void sub_81505C4(u8 taskId)
FieldObjectClearAnimIfSpecialAnimActive(mapObject);
mapObject->mapobj_bit_11 = TRUE;
sub_81507BC(mapObject, sub_805C808(4));
- StartSpriteAnim(sprite, sub_80634F0(mapObject->mapobj_unk_18));
+ StartSpriteAnim(sprite, sub_80634F0(mapObject->facingDirection));
gTasks[taskId].data[0]++;
gTasks[taskId].data[1] = 0;
break;
diff --git a/src/quest_log_battle.c b/src/quest_log_battle.c
index 2687e4ea5..efe866dea 100644
--- a/src/quest_log_battle.c
+++ b/src/quest_log_battle.c
@@ -2,6 +2,7 @@
#include "constants/species.h"
#include "malloc.h"
#include "battle.h"
+#include "battle_anim.h"
#include "link.h"
#include "overworld.h"
#include "quest_log.h"
@@ -22,11 +23,11 @@ struct QuestLogStruct_WildBattleRecord
u8 v4;
};
-void sub_812C334(s32 *, s32 *);
+static void sub_812C334(s32 *, s32 *);
void sub_812BFDC(void)
{
- if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_OLDMAN_TUTORIAL | BATTLE_TYPE_POKEDUDE)) && (gBattleOutcome == B_OUTCOME_WON || gBattleOutcome == B_OUTCOME_CAUGHT))
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_OLD_MAN_TUTORIAL | BATTLE_TYPE_POKEDUDE)) && (gBattleOutcome == B_OUTCOME_WON || gBattleOutcome == B_OUTCOME_CAUGHT))
{
struct QuestLogStruct_TrainerBattleRecord * questLogTrainerBattleRecord = Alloc(sizeof(struct QuestLogStruct_TrainerBattleRecord));
struct QuestLogStruct_WildBattleRecord * questLogWildBattleRecord = Alloc(sizeof(struct QuestLogStruct_WildBattleRecord));
@@ -38,18 +39,18 @@ void sub_812BFDC(void)
{
switch (gTrainers[gTrainerBattleOpponent_A].trainerClass)
{
- case 0x54:
- questLogMessageType = 30;
- break;
- case 0x5a:
- questLogMessageType = 33;
- break;
- case 0x57:
- questLogMessageType = 32;
- break;
- default:
- questLogMessageType = 34;
- break;
+ case 0x54:
+ questLogMessageType = 30;
+ break;
+ case 0x5a:
+ questLogMessageType = 33;
+ break;
+ case 0x57:
+ questLogMessageType = 32;
+ break;
+ default:
+ questLogMessageType = 34;
+ break;
}
questLogTrainerBattleRecord->v0 = gTrainerBattleOpponent_A;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
@@ -141,7 +142,7 @@ void sub_812C224(void)
}
for (r3 = 0; r3 < 7; r3++)
{
- r5->v1[0][r3] = gLinkPlayers[gBattleStruct->field_B5 ^ 1].name[r3];
+ r5->v1[0][r3] = gLinkPlayers[gBattleStruct->multiplayerId ^ 1].name[r3];
}
}
sub_8113550(r8, (const u16 *)r5);
@@ -149,16 +150,16 @@ void sub_812C224(void)
}
}
-void sub_812C334(s32 * a0, s32 * a1)
+static void sub_812C334(s32 * a0, s32 * a1)
{
s32 r5;
s32 _optimized_out = 0;
- u8 r2 = gLinkPlayers[gBattleStruct->field_B5].id ^ 2;
+ u8 r2 = gLinkPlayers[gBattleStruct->multiplayerId].id ^ 2;
for (r5 = 0; r5 < 4; r5++)
{
if (r2 == gLinkPlayers[r5].id)
a0[0] = r5;
- else if (r5 != gBattleStruct->field_B5)
+ else if (r5 != gBattleStruct->multiplayerId)
a1[_optimized_out++] = r5;
}
}
diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c
index 6dd743176..5ab38e461 100644
--- a/src/reshow_battle_screen.c
+++ b/src/reshow_battle_screen.c
@@ -211,7 +211,7 @@ static bool8 LoadBattlerSpriteGfx(u8 battler)
}
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler.
DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, battler);
- else if (gBattleTypeFlags & BATTLE_TYPE_OLDMAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler.
+ else if (gBattleTypeFlags & BATTLE_TYPE_OLD_MAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler.
DecompressTrainerBackPalette(5, battler);
else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
@@ -256,7 +256,7 @@ static void CreateBattlerSprite(u8 battler)
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
}
- else if (gBattleTypeFlags & BATTLE_TYPE_OLDMAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT)
+ else if (gBattleTypeFlags & BATTLE_TYPE_OLD_MAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT)
{
SetMultiuseSpriteTemplateToTrainerBack(5, GetBattlerPosition(0));
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
@@ -292,7 +292,7 @@ static void CreateHealthboxSprite(u8 battler)
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == B_POSITION_PLAYER_LEFT)
healthboxSpriteId = CreateSafariPlayerHealthboxSprites();
- else if (gBattleTypeFlags & BATTLE_TYPE_OLDMAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT)
+ else if (gBattleTypeFlags & BATTLE_TYPE_OLD_MAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT)
return;
else
healthboxSpriteId = CreateBattlerHealthboxSprites(battler);
diff --git a/src/scrcmd.c b/src/scrcmd.c
index be8e328db..9675a132e 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1916,7 +1916,7 @@ bool8 ScrCmd_checktrainerflag(struct ScriptContext *ctx)
{
u16 index = VarGet(ScriptReadHalfword(ctx));
- ctx->comparisonResult = HasTrainerAlreadyBeenFought(index);
+ ctx->comparisonResult = HasTrainerBeenFought(index);
return FALSE;
}
diff --git a/src/start_menu.c b/src/start_menu.c
index 221ae1f1f..dddb5f44e 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -392,7 +392,7 @@ void ShowStartMenu(void)
{
if (!IsUpdateLinkStateCBActive())
{
- player_bitmagic();
+ FreezeEventObjects();
sub_805C270();
sub_805C780();
}
diff --git a/src/teachy_tv.c b/src/teachy_tv.c
index c1d6dc6c8..e33cb9d2e 100644
--- a/src/teachy_tv.c
+++ b/src/teachy_tv.c
@@ -1214,7 +1214,7 @@ static void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId)
case 1:
if (BT_IsDone())
{
- SetMainCallback2(sub_800FD9C);
+ SetMainCallback2(CB2_InitBattle);
DestroyTask(taskId);
}
break;
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index 5acac299f..cd796bf3a 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -940,7 +940,7 @@ static void sub_815E124(u8 taskId)
{
gMain.savedCallback = sub_815E114;
CleanupOverworldWindowsAndTilemaps();
- SetMainCallback2(sub_800FD9C);
+ SetMainCallback2(CB2_InitBattle);
DestroyTask(taskId);
}
}
diff --git a/src/unk_8159F40.c b/src/unk_8159F40.c
index f2cb1764f..ef21d19d0 100644
--- a/src/unk_8159F40.c
+++ b/src/unk_8159F40.c
@@ -177,7 +177,7 @@ void sub_815A008(struct QuestLog * questLog)
questLog->unk_008[i].mapobj_bit_24 = gMapObjects[i].mapobj_bit_24;
questLog->unk_008[i].mapobj_bit_25 = gMapObjects[i].mapobj_bit_25;
questLog->unk_008[i].mapobj_bit_26 = gMapObjects[i].mapobj_bit_26;
- questLog->unk_008[i].mapobj_unk_18 = gMapObjects[i].mapobj_unk_18;
+ questLog->unk_008[i].mapobj_unk_18 = gMapObjects[i].facingDirection;
questLog->unk_008[i].mapobj_unk_0B_0 = gMapObjects[i].mapobj_unk_0B_0;
questLog->unk_008[i].elevation = gMapObjects[i].elevation;
questLog->unk_008[i].graphicsId = gMapObjects[i].graphicsId;
@@ -222,7 +222,7 @@ void sub_815A1F8(const struct QuestLog * questLog, const struct MapObjectTemplat
gMapObjects[i].mapobj_bit_24 = questLogMapObjects[i].mapobj_bit_24;
gMapObjects[i].mapobj_bit_25 = questLogMapObjects[i].mapobj_bit_25;
gMapObjects[i].mapobj_bit_26 = questLogMapObjects[i].mapobj_bit_26;
- gMapObjects[i].mapobj_unk_18 = questLogMapObjects[i].mapobj_unk_18;
+ gMapObjects[i].facingDirection = questLogMapObjects[i].mapobj_unk_18;
gMapObjects[i].mapobj_unk_0B_0 = questLogMapObjects[i].mapobj_unk_0B_0;
gMapObjects[i].elevation = questLogMapObjects[i].elevation;
gMapObjects[i].graphicsId = questLogMapObjects[i].graphicsId;
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index 6ae92236f..9a8ff5dd6 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -628,7 +628,7 @@ void sub_810C444(void)
mapObject = &gMapObjects[sp0];
if (sub_810CF04(sp0) == TRUE)
{
- npc_set_running_behaviour_etc(mapObject, r6);
+ SetTrainerMovementType(mapObject, r6);
}
templates[i].movementType = r6;
}
@@ -766,7 +766,7 @@ static void sub_810C594(void)
{
gSprites[mapObject->spriteId].pos2.x = 0;
gSprites[mapObject->spriteId].pos2.y = 0;
- npc_set_running_behaviour_etc(mapObject, r3);
+ SetTrainerMovementType(mapObject, r3);
}
}
}
@@ -931,7 +931,7 @@ static u8 GetVsSeekerResponseInArea(const VsSeekerData * a0)
if (IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[vsSeekerIdx]) == 1)
{
r8 = sVsSeeker->trainerInfo[vsSeekerIdx].trainerIdx;
- if (!HasTrainerAlreadyBeenFought(r8))
+ if (!HasTrainerBeenFought(r8))
{
StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], gUnknown_8453F60);
sVsSeeker->trainerHasNotYetBeenFought = 1;
@@ -1027,7 +1027,7 @@ static u8 GetVsSeekerResponseInArea(const VsSeekerData * a0)
"\tadds r0, r5\n"
"\tldrh r0, [r0, 0x4]\n"
"\tmov r8, r0\n"
- "\tbl HasTrainerAlreadyBeenFought\n"
+ "\tbl HasTrainerBeenFought\n"
"\tlsls r0, 24\n"
"\tcmp r0, 0\n"
"\tbne _0810CA20\n"
@@ -1239,10 +1239,10 @@ void sub_810CB90(void)
TryGetFieldObjectIdByLocalIdAndMap(r4[r8].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &sp0);
r4_2 = &gMapObjects[sp0];
sub_810CF54(&r4[r8]); // You are using this function incorrectly. Please consult the manual.
- sub_805FE7C(r4_2, gUnknown_8453F67[r4_2->mapobj_unk_18]);
+ sub_805FE7C(r4_2, gUnknown_8453F67[r4_2->facingDirection]);
gSaveBlock1Ptr->trainerRematches[r4[r8].localId] = 0;
if (gSelectedEventObject == sp0)
- r4_2->animPattern = gUnknown_8453F67[r4_2->mapobj_unk_18];
+ r4_2->animPattern = gUnknown_8453F67[r4_2->facingDirection];
else
r4_2->animPattern = 0x08;
}
@@ -1319,7 +1319,7 @@ static bool8 HasRematchTrainerAlreadyBeenFought(const VsSeekerData *vsSeekerData
if (rematchIdx == -1)
return FALSE;
- if (!HasTrainerAlreadyBeenFought(vsSeekerData[rematchIdx].trainerIdxs[0]))
+ if (!HasTrainerBeenFought(vsSeekerData[rematchIdx].trainerIdxs[0]))
return FALSE;
return TRUE;
}
@@ -1327,7 +1327,7 @@ static bool8 HasRematchTrainerAlreadyBeenFought(const VsSeekerData *vsSeekerData
void sub_810CDE8(void)
{
gSaveBlock1Ptr->trainerRematches[gSpecialVar_LastTalked] = 0;
- sub_80803FC();
+ SetBattledTrainerFlag();
}
static s32 sub_810CE10(const VsSeekerData * a0, u16 a1)
@@ -1353,7 +1353,7 @@ static s32 sub_810CE10(const VsSeekerData * a0, u16 a1)
return -1;
}
-s32 sub_810CE64(u16 a0)
+s32 GetRematchTrainerId(u16 a0)
{
u8 i;
u8 j;
@@ -1529,7 +1529,7 @@ static u8 GetNextAvailableRematchTrainer(const VsSeekerData * vsSeekerData, u16
return j - 1;
if (vsSeekerData[i].trainerIdxs[j] == 0xffff)
continue;
- if (HasTrainerAlreadyBeenFought(vsSeekerData[i].trainerIdxs[j]))
+ if (HasTrainerBeenFought(vsSeekerData[i].trainerIdxs[j]))
continue;
return j;
}
@@ -1550,7 +1550,7 @@ static u8 GetRematchableTrainerLocalId(void)
{
if (IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[i]) == 1)
{
- if (HasTrainerAlreadyBeenFought(sVsSeeker->trainerInfo[i].trainerIdx) != 1 || GetNextAvailableRematchTrainer(sVsSeekerData, sVsSeeker->trainerInfo[i].trainerIdx, &idx))
+ if (HasTrainerBeenFought(sVsSeeker->trainerInfo[i].trainerIdx) != 1 || GetNextAvailableRematchTrainer(sVsSeekerData, sVsSeeker->trainerInfo[i].trainerIdx, &idx))
return sVsSeeker->trainerInfo[i].localId;
}
}
@@ -1599,7 +1599,7 @@ static void StartAllRespondantIdleMovements(void)
struct MapObject *r4 = &gMapObjects[sVsSeeker->trainerInfo[j].fieldObjectId];
if (sub_810CF04(sVsSeeker->trainerInfo[j].fieldObjectId) == 1)
- npc_set_running_behaviour_etc(r4, sVsSeeker->runningBehaviourEtcArray[i]);
+ SetTrainerMovementType(r4, sVsSeeker->runningBehaviourEtcArray[i]);
sub_805FE7C(r4, sVsSeeker->runningBehaviourEtcArray[i]);
gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[j].localId] = GetNextAvailableRematchTrainer(sVsSeekerData, sVsSeeker->trainerInfo[j].trainerIdx, &dummy);
}
diff --git a/sym_common.txt b/sym_common.txt
index d9f2b1586..79ccc190d 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -5,35 +5,8 @@
.include "text.o"
.include "sprite.o"
.include "link.o"
-
.align 4
-gPreBattleCallback1: @ 3004F80
- .space 0x4
-
-gBattleMainFunc: @ 3004F84
- .space 0xC
-
-gBattleResults: @ 3004F90
- .space 0x44
-
-gLeveledUpInBattle: @ 3004FD4
- .space 0xC
-
-gBattlerControllerFuncs: @ 3004FE0
- .space 0x10
-
-gHealthboxSpriteIds: @ 3004FF0
- .space 0x4
-
-gMultiUsePlayerCursor: @ 3004FF4
- .space 0x4
-
-gNumberOfMovesToChoose: @ 3004FF8
- .space 0x4
-
-gUnknown_3004FFC: @ 3004FFC
- .space 0x4
-
+ .include "battle_main.o"
.include "random.o"
.include "load_save.o"
@@ -122,7 +95,7 @@ gUnknown_3005354: @ 3005354
.align 2
.include "field_specials.o"
-gUnknown_300537C: @ 300537C
+gCB2_AfterEvolution: @ 300537C
.space 0x4
.include "save.o"
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 55df8793e..77acf5657 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -19,357 +19,7 @@
@ .include "src/link_rfu.o"
.include "src/battle_controllers.o"
-
-gBattle_BG0_X: @ 2022974
- .space 0x2
-
-gBattle_BG0_Y: @ 2022976
- .space 0x2
-
-gBattle_BG1_X: @ 2022978
- .space 0x2
-
-gBattle_BG1_Y: @ 202297A
- .space 0x2
-
-gBattle_BG2_X: @ 202297C
- .space 0x2
-
-gBattle_BG2_Y: @ 202297E
- .space 0x2
-
-gBattle_BG3_X: @ 2022980
- .space 0x2
-
-gBattle_BG3_Y: @ 2022982
- .space 0x2
-
-gBattle_WIN0H: @ 2022984
- .space 0x2
-
-gBattle_WIN0V: @ 2022986
- .space 0x2
-
-gUnknown_2022988: @ 2022988
- .space 0x2
-
-gUnknown_202298A: @ 202298A
- .space 0x2
-
-gDisplayedStringBattle: @ 202298C
- .space 0x12C
-
-gBattleTextBuff1: @ 2022AB8
- .space 0x10
-
-gBattleTextBuff2: @ 2022AC8
- .space 0x10
-
-gBattleTextBuff3: @ 2022AD8
- .space 0x10
-
-gUnknown_2022AE8: @ 2022AE8
- .space 0x64
-
-gBattleTypeFlags: @ 2022B4C
- .space 0x4
-
-gBattleTerrain: @ 2022B50
- .space 0x4
-
-gUnknown_2022B54: @ 2022B54
- .space 0x4
-
-gUnknown_2022B58: @ 2022B58
- .space 0x60
-
-gUnknown_2022BB8: @ 2022BB8
- .space 0x4
-
-gUnknown_2022BBC: @ 2022BBC
- .space 0x4
-
-gUnknown_2022BC0: @ 2022BC0
- .space 0x4
-
-gBattleBufferA: @ 2022BC4
- .space 0x2
-
-gUnknown_2022BC6: @ 2022BC6
- .space 0x1
-
-gUnknown_2022BC7: @ 2022BC7
- .space 0x1
-
-gUnknown_2022BC8: @ 2022BC8
- .space 0x7FC
-
-gBattleBufferB: @ 20233C4
- .space 0x4
-
-gUnknown_20233C8: @ 20233C8
- .space 0x7FC
-
-gActiveBattler: @ 2023BC4
- .space 0x4
-
-gBattleControllerExecFlags: @ 2023BC8
- .space 0x4
-
-gBattlersCount: @ 2023BCC
- .space 0x2
-
-gBattlerPartyIndexes: @ 2023BCE
- .space 0x8
-
-gBattlerPositions: @ 2023BD6
- .space 0x4
-
-gActionsByTurnOrder: @ 2023BDA
- .space 0x4
-
-gBattlerByTurnOrder: @ 2023BDE
- .space 0x4
-
-gCurrentTurnActionNumber: @ 2023BE2
- .space 0x1
-
-gCurrentActionFuncId: @ 2023BE3
- .space 0x1
-
-gBattleMons: @ 2023BE4
- .space 0xC
-
-gUnknown_2023BF0: @ 2023BF0
- .space 0xC
-
-gUnknown_2023BFC: @ 2023BFC
- .space 0xC
-
-gUnknown_2023C08: @ 2023C08
- .space 0x4
-
-gUnknown_2023C0C: @ 2023C0C
- .space 0x24
-
-gUnknown_2023C30: @ 2023C30
- .space 0x4
-
-gUnknown_2023C34: @ 2023C34
- .space 0x110
-
-gBattlerSpriteIds: @ 2023D44
- .space 0x4
-
-gCurrMovePos: @ 2023D48
- .space 0x1
-
-gChosenMovePos: @ 2023D49
- .space 0x1
-
-gCurrentMove: @ 2023D4A
- .space 0x2
-
-gChosenMove: @ 2023D4C
- .space 0x2
-
-gCalledMove: @ 2023D4E
- .space 0x2
-
-gBattleMoveDamage: @ 2023D50
- .space 0x4
-
-gHpDealt: @ 2023D54
- .space 0x4
-
-gTakenDmg: @ 2023D58
- .space 0x10
-
-gLastUsedItem: @ 2023D68
- .space 0x2
-
-gLastUsedAbility: @ 2023D6A
- .space 0x1
-
-gBattlerAttacker: @ 2023D6B
- .space 0x1
-
-gBattlerTarget: @ 2023D6C
- .space 0x1
-
-gBattlerFainted: @ 2023D6D
- .space 0x1
-
-gEffectBattler: @ 2023D6E
- .space 0x1
-
-gPotentialItemEffectBattler: @ 2023D6F
- .space 0x1
-
-gAbsentBattlerFlags: @ 2023D70
- .space 0x1
-
-gCritMultiplier: @ 2023D71
- .space 0x1
-
-gMultiHitCounter: @ 2023D72
- .space 0x2
-
-gBattlescriptCurrInstr: @ 2023D74
- .space 0x8
-
-gChosenActionByBattler: @ 2023D7C
- .space 0x4
-
-gSelectionBattleScripts: @ 2023D80
- .space 0x10
-
-gLastPrintedMoves: @ 2023D90
- .space 0x8
-
-gLastMoves: @ 2023D98
- .space 0x8
-
-gLastLandedMoves: @ 2023DA0
- .space 0x8
-
-gLastHitByType: @ 2023DA8
- .space 0x8
-
-gLastResultingMoves: @ 2023DB0
- .space 0x8
-
-gLockedMoves: @ 2023DB8
- .space 0x8
-
-gLastHitBy: @ 2023DC0
- .space 0x4
-
-gChosenMoveByBattler: @ 2023DC4
- .space 0x8
-
-gMoveResultFlags: @ 2023DCC
- .space 0x4
-
-gHitMarker: @ 2023DD0
- .space 0x4
-
-gUnknown_2023DD4: @ 2023DD4
- .space 0x4
-
-gTakenDmgByBattler: @ 2023DD8
- .space 0x4
-
-gUnknown_2023DDC: @ 2023DDC
- .space 0x2
-
-gSideStatuses: @ 2023DDE
- .space 0x6
-
-gSideTimers: @ 2023DE4
- .space 0x18
-
-gStatuses3: @ 2023DFC
- .space 0x10
-
-gDisableStructs: @ 2023E0C
- .space 0x70
-
-gPauseCounterBattle: @ 2023E7C
- .space 0x2
-
-gPaydayMoney: @ 2023E7E
- .space 0x2
-
-gUnknown_2023E80: @ 2023E80
- .space 0x2
-
-gBattleCommunication: @ 2023E82
- .space 0x1
-
-gUnknown_2023E83: @ 2023E83
- .space 0x7
-
-gBattleOutcome: @ 2023E8A
- .space 0x2
-
-gProtectStructs: @ 2023E8C
- .space 0x40
-
-gSpecialStatuses: @ 2023ECC
- .space 0x50
-
-gBattleWeather: @ 2023F1C
- .space 0x4
-
-gWishFutureKnock: @ 2023F20
- .space 0x2C
-
-gIntroSlideFlags: @ 2023F4C
- .space 0x2
-
-gSentPokesToOpponent: @ 2023F4E
- .space 0x2
-
-gDynamicBasePower: @ 2023F50
- .space 0x2
-
-gExpShareExp: @ 2023F52
- .space 0x2
-
-gEnigmaBerries: @ 2023F54
- .space 0x70
-
-gBattleScripting: @ 2023FC4
- .space 0x4
-
-gUnknown_2023FC8: @ 2023FC8
- .space 0x20
-
-gBattleStruct: @ 2023FE8
- .space 0x4
-
-gLinkBattleSendBuffer: @ 2023FEC
- .space 0x4
-
-gLinkBattleRecvBuffer: @ 2023FF0
- .space 0x4
-
-gBattleResources: @ 2023FF4
- .space 0x4
-
-gActionSelectionCursor: @ 2023FF8
- .space 0x4
-
-gMoveSelectionCursor: @ 2023FFC
- .space 0x4
-
-gBattlerStatusSummaryTaskId: @ 2024000
- .space 0x4
-
-gBattlerInMenuId: @ 2024004
- .space 0x1
-
-gDoingBattleAnim: @ 2024005
- .space 0x3
-
-gTransformedPersonalities: @ 2024008
- .space 0x10
-
-gBattleSpritesDataPtr: @ 2024018
- .space 0x4
-
-gMonSpritesGfxPtr: @ 202401C
- .space 0x4
-
-gBattleMovePower: @ 2024020
- .space 0x2
-
-gMoveToLearn: @ 2024022
- .space 0x2
-
-gBattleMonForms: @ 2024024
- .space 0x4
+ .include "src/battle_main.o"
sLearningMoveTableID: @ 2024028
.space 0x1
@@ -616,35 +266,8 @@ gUnknown_20386A4: @ 20386A4
gUnknown_20386A8: @ 20386A8
.space 0x4
-gUnknown_20386AC: @ 20386AC
- .space 0x2
-
-gTrainerBattleOpponent_A: @ 20386AE
- .space 0x2
-
-gUnknown_20386B0: @ 20386B0
- .space 0x4
-
-gUnknown_20386B4: @ 20386B4
- .space 0x4
-
-gUnknown_20386B8: @ 20386B8
- .space 0x4
-
-gUnknown_20386BC: @ 20386BC
- .space 0x4
-
-gUnknown_20386C0: @ 20386C0
- .space 0x4
-
-gUnknown_20386C4: @ 20386C4
- .space 0x4
-
-gUnknown_20386C8: @ 20386C8
- .space 0x4
-
-gUnknown_20386CC: @ 20386CC
- .space 0x4
+ .include "src/battle_setup.o"
+ .align 2
gUnknown_20386D0: @ 20386D0
.space 0xC