summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTetrable <atiftetra@gmail.com>2018-09-01 12:36:33 +0100
committerGitHub <noreply@github.com>2018-09-01 12:36:33 +0100
commit5a53d6d1fb304736c1fb3c222192a3b722707bca (patch)
treeeb1794c8da8a8b51caa4abc0de8b797c49ead358
parentd8f6da035015393339ea6391d293e5ff88558844 (diff)
parent1895383352da3bd5a4f4990fab045ae3610937fc (diff)
Merge pull request #2 from pret/master
Update
-rw-r--r--.travis.yml2
-rw-r--r--Makefile9
-rw-r--r--asm/battle_frontier_1.s13351
-rw-r--r--asm/battle_frontier_2.s140
-rw-r--r--asm/battle_pyramid.s3699
-rw-r--r--asm/battle_tent.s202
-rw-r--r--asm/battle_tower.s413
-rw-r--r--asm/easy_chat.s4
-rw-r--r--asm/macros/battle_script.inc300
-rw-r--r--asm/party_menu.s2
-rw-r--r--asm/pokemon_storage_system.s4
-rw-r--r--asm/pokenav.s241
-rw-r--r--asm/rom_8011DC0.s4
-rw-r--r--asm/rom_header.inc39
-rw-r--r--asm/trade.s4
-rwxr-xr-xbuild_tools.sh1
-rw-r--r--data/battle_frontier_1.s1436
-rw-r--r--data/battle_pyramid.s94
-rw-r--r--data/battle_pyramid_bag.s40
-rw-r--r--data/battle_scripts_1.s12
-rw-r--r--data/data2b.s3712
-rw-r--r--data/graphics/pokemon/still_front_pic_table.inc442
-rw-r--r--data/maps/BattleFrontier_BattleArenaLobby/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc32
-rw-r--r--data/maps/BattleFrontier_BattleDomeLobby/scripts.inc66
-rw-r--r--data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc16
-rw-r--r--data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc20
-rw-r--r--data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc26
-rw-r--r--data/maps/BattleFrontier_BattlePikeLobby/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc14
-rw-r--r--data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc12
-rw-r--r--data/maps/BattleFrontier_BattleTowerElevator/scripts.inc8
-rw-r--r--data/maps/BattleFrontier_BattleTowerLobby/scripts.inc50
-rw-r--r--data/maps/BattleFrontier_ScottsHouse/scripts.inc4
-rw-r--r--data/maps/FallarborTown_BattleTentLobby/scripts.inc2
-rw-r--r--data/maps/SlateportCity_BattleTentLobby/scripts.inc2
-rw-r--r--data/maps/VerdanturfTown_BattleTentLobby/scripts.inc2
-rw-r--r--data/specials.inc2
-rw-r--r--include/battle_dome.h9
-rw-r--r--include/battle_dome_cards.h13
-rw-r--r--include/battle_frontier_1.h8
-rw-r--r--include/battle_message.h1
-rw-r--r--include/battle_pyramid_bag.h49
-rw-r--r--include/battle_scripts.h2
-rw-r--r--include/battle_tower.h16
-rw-r--r--include/bg.h2
-rw-r--r--include/constants/battle_frontier.h10
-rw-r--r--include/constants/battle_script_commands.h2
-rw-r--r--include/constants/trainers.h5
-rw-r--r--include/constants/vars.h2
-rw-r--r--include/data2.h4
-rw-r--r--include/gba/io_reg.h2
-rw-r--r--include/global.h86
-rw-r--r--include/graphics.h422
-rw-r--r--include/item_use.h2
-rw-r--r--include/list_menu.h3
-rw-r--r--include/menu.h8
-rw-r--r--include/pokemon.h1
-rw-r--r--include/save.h2
-rw-r--r--include/strings.h19
-rw-r--r--include/trainer_pokemon_sprites.h13
-rw-r--r--ld_script.txt14
-rw-r--r--src/battle_controller_opponent.c18
-rw-r--r--src/battle_controller_player.c6
-rw-r--r--src/battle_controller_safari.c2
-rw-r--r--src/battle_controller_wally.c2
-rw-r--r--src/battle_dome.c6481
-rw-r--r--src/battle_frontier_1.c118
-rw-r--r--src/battle_main.c15
-rw-r--r--src/battle_message.c2
-rw-r--r--src/battle_pyramid.c248
-rw-r--r--src/battle_pyramid_bag.c1434
-rw-r--r--src/battle_script_commands.c4
-rw-r--r--src/battle_setup.c5
-rw-r--r--src/battle_tent.c276
-rw-r--r--src/battle_tower.c85
-rw-r--r--src/bg.c2
-rw-r--r--src/credits.c9
-rw-r--r--src/data/pokemon_graphics/back_pic_coordinates.h443
-rw-r--r--src/data/pokemon_graphics/front_pic_coordinates.h443
-rw-r--r--src/data/pokemon_graphics/still_front_pic_table.h446
-rw-r--r--src/data/pokemon_graphics/unknown_anims.h2347
-rw-r--r--src/data/trainer_graphics/back_pic_tables.h18
-rw-r--r--src/data/trainer_graphics/front_pic_tables.h188
-rw-r--r--src/data2b.c6
-rw-r--r--src/egg_hatch.c2
-rw-r--r--src/evolution_scene.c2
-rw-r--r--src/field_effect.c12
-rwxr-xr-xsrc/field_message_box.c10
-rw-r--r--src/field_specials.c57
-rw-r--r--src/fieldmap.c2
-rw-r--r--src/hall_of_fame.c28
-rw-r--r--src/item.c24
-rwxr-xr-xsrc/item_use.c46
-rw-r--r--src/link.c2
-rw-r--r--src/main_menu.c16
-rw-r--r--src/match_call.c2
-rw-r--r--src/menu.c2
-rw-r--r--src/new_game.c4
-rw-r--r--src/overworld.c4
-rw-r--r--src/pokedex.c128
-rw-r--r--src/pokemon.c16
-rw-r--r--src/record_mixing.c4
-rw-r--r--src/recorded_battle.c6
-rw-r--r--src/rom_8011DC0.c5
-rw-r--r--src/start_menu.c9
-rw-r--r--src/starter_choose.c15
-rw-r--r--src/trainer_pokemon_sprites.c (renamed from src/battle_dome_cards.c)216
-rw-r--r--src/unk_text_util_2.c1
-rw-r--r--sym_ewram.txt22
-rw-r--r--tools/gbafix/.gitignore1
-rw-r--r--tools/gbafix/COPYING674
-rw-r--r--tools/gbafix/Makefile10
-rw-r--r--tools/gbafix/gbafix.c281
118 files changed, 14835 insertions, 24480 deletions
diff --git a/.travis.yml b/.travis.yml
index aad16906c..302d10a72 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,7 +14,7 @@ cache:
apt: true
install:
- pushd $HOME
- - travis_retry wget https://github.com/devkitPro/buildscripts/releases/download/devkitARM_r48/devkitARM_r48-linux.tar.xz
+ - travis_retry wget https://github.com/devkitPro/buildscripts/releases/download/devkitARM_r49/devkitARM_r49-linux.tar.xz
- tar xJf devkitARM*.tar.xz
- travis_retry git clone https://github.com/pret/agbcc.git
- cd agbcc && ./build.sh && ./install.sh $TRAVIS_BUILD_DIR
diff --git a/Makefile b/Makefile
index 9637d98a8..ce3a6ec18 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,11 @@ include $(DEVKITARM)/base_tools
export CPP := $(PREFIX)cpp
export LD := $(PREFIX)ld
+TITLE := POKEMON EMER
+GAME_CODE := BPEE
+MAKER_CODE := 01
+REVISION := 0
+
SHELL := /bin/bash -o pipefail
ROM := pokeemerald.gba
@@ -38,6 +43,7 @@ MID := $(abspath tools/mid2agb/mid2agb)
SCANINC := tools/scaninc/scaninc
PREPROC := tools/preproc/preproc
RAMSCRGEN := tools/ramscrgen/ramscrgen
+FIX := tools/gbafix/gbafix
# Clear the default suffixes
.SUFFIXES:
@@ -165,5 +171,6 @@ $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
$(ROM): $(ELF)
- $(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@
+ $(OBJCOPY) -O binary $< $@
+ $(FIX) $@ -p -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION)
diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s
index e353cb475..7ebc2f256 100644
--- a/asm/battle_frontier_1.s
+++ b/asm/battle_frontier_1.s
@@ -5,13358 +5,7 @@
.text
- thumb_func_start sub_818E9AC
-sub_818E9AC: @ 818E9AC
- push {lr}
- ldr r1, =gUnknown_0860D090
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E9AC
-
- thumb_func_start sub_818E9CC
-sub_818E9CC: @ 818E9CC
- push {r4-r7,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, [r4]
- ldr r2, =0x00000ca8
- adds r0, r2
- movs r6, 0
- strb r6, [r0]
- ldr r1, [r4]
- adds r2, 0xA
- adds r0, r1, r2
- strh r6, [r0]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r4, [r4]
- ldr r0, =0x00000cdc
- adds r3, r4, r0
- ldr r2, =gUnknown_0860D0EC
- lsls r1, r5, 2
- lsls r0, r7, 3
- adds r1, r0
- adds r1, r2
- ldr r0, [r3]
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _0818EA3E
- lsls r0, r5, 1
- lsls r1, r7, 2
- adds r0, r1
- ldr r2, =0x00000d0c
- adds r1, r4, r2
- adds r1, r0
- strh r6, [r1]
-_0818EA3E:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- ldr r0, =gTrainerBattleOpponent_A
- strh r6, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E9CC
-
- thumb_func_start sub_818EA84
-sub_818EA84: @ 818EA84
- push {r4-r6,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x9
- bls _0818EAA8
- b _0818ED10
-_0818EAA8:
- lsls r0, 2
- ldr r1, =_0818EAC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0818EAC8:
- .4byte _0818EAF0
- .4byte _0818EB14
- .4byte _0818EB48
- .4byte _0818EB64
- .4byte _0818EB80
- .4byte _0818EB98
- .4byte _0818EBB4
- .4byte _0818EC40
- .4byte _0818ECD0
- .4byte _0818ECF4
-_0818EAF0:
- ldr r3, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r5, 1
- lsls r2, r6, 2
- adds r1, r2
- ldr r2, =0x00000d0c
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3]
- b _0818ED10
- .pool
-_0818EB14:
- ldr r4, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r3, =0x00000cdc
- adds r2, r3
- ldr r3, =gUnknown_0860D0EC
- lsls r0, r5, 2
- lsls r1, r6, 3
- adds r0, r1
- adds r0, r3
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- strh r0, [r4]
- b _0818ED10
- .pool
-_0818EB48:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000d08
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 31
- b _0818ECBE
- .pool
-_0818EB64:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r3, =0x00000d08
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 30
- b _0818ECBE
- .pool
-_0818EB80:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000d08
- adds r0, r2
- b _0818ECBA
- .pool
-_0818EB98:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r3, =0x00000d08
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 28
- b _0818ECBE
- .pool
-_0818EBB4:
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0818EC04
- cmp r5, 0
- beq _0818EBE8
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000d08
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 26
- b _0818ECBE
- .pool
-_0818EBE8:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r3, =0x00000d08
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 27
- b _0818ECBE
- .pool
-_0818EC04:
- cmp r5, 0
- beq _0818EC24
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000d08
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- b _0818ECBE
- .pool
-_0818EC24:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r3, =0x00000d08
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 31
- b _0818ECBE
- .pool
-_0818EC40:
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0818EC90
- cmp r5, 0
- beq _0818EC74
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000d08
- adds r0, r2
- ldrb r0, [r0]
- lsrs r0, 7
- strh r0, [r1]
- b _0818ED10
- .pool
-_0818EC74:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r3, =0x00000d08
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 25
- b _0818ECBE
- .pool
-_0818EC90:
- cmp r5, 0
- beq _0818ECB0
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000d08
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 28
- b _0818ECBE
- .pool
-_0818ECB0:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r3, =0x00000d08
- adds r0, r3
-_0818ECBA:
- ldrb r0, [r0]
- lsls r0, 29
-_0818ECBE:
- lsrs r0, 31
- strh r0, [r1]
- b _0818ED10
- .pool
-_0818ECD0:
- bl sub_81B8558
- ldr r2, =gUnknown_0203CEF8
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xCB
- lsls r1, 4
- adds r0, r1
- ldrh r1, [r0]
- strb r1, [r2]
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r2, 0x1]
- b _0818ED10
- .pool
-_0818ECF4:
- ldr r2, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r3, =0x00000d0a
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 1
- adds r3, 0x1
- adds r1, r3
- ldr r3, =0x0000fffd
- adds r0, r3
- ldrb r1, [r1]
- adds r0, r1
- strh r0, [r2]
-_0818ED10:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818EA84
-
- thumb_func_start sub_818ED28
-sub_818ED28: @ 818ED28
- push {r4,r5,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x8
- bls _0818ED4C
- b _0818F01E
-_0818ED4C:
- lsls r0, 2
- ldr r1, =_0818ED6C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0818ED6C:
- .4byte _0818ED90
- .4byte _0818EDB4
- .4byte _0818EE10
- .4byte _0818EE34
- .4byte _0818EE5C
- .4byte _0818EE78
- .4byte _0818EEA0
- .4byte _0818EF50
- .4byte _0818F008
-_0818ED90:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- lsls r0, r4, 1
- lsls r1, r5, 2
- adds r0, r1
- ldr r1, =0x00000d0c
- adds r2, r1
- adds r2, r0
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- strh r0, [r2]
- b _0818F01E
- .pool
-_0818EDB4:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _0818EDE8
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =0x00000cdc
- adds r2, r0
- ldr r3, =gUnknown_0860D0EC
- lsls r1, r4, 2
- lsls r0, r5, 3
- adds r1, r0
- adds r1, r3
- ldr r0, [r2]
- ldr r1, [r1]
- orrs r0, r1
- str r0, [r2]
- b _0818F01E
- .pool
-_0818EDE8:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r1, =0x00000cdc
- adds r2, r1
- ldr r3, =gUnknown_0860D0FC
- lsls r1, r4, 2
- lsls r0, r5, 3
- adds r1, r0
- adds r1, r3
- ldr r0, [r2]
- ldr r1, [r1]
- ands r0, r1
- str r0, [r2]
- b _0818F01E
- .pool
-_0818EE10:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =0x00000d08
- adds r2, r1
- movs r1, 0x1
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x2
- negs r0, r0
- b _0818EF74
- .pool
-_0818EE34:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r2, =0x00000d08
- adds r3, r2
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
- b _0818EFF4
- .pool
-_0818EE5C:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =0x00000d08
- adds r3, r1
- b _0818EFE8
- .pool
-_0818EE78:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r2, =0x00000d08
- adds r3, r2
- movs r1, 0x1
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r3]
- movs r0, 0x9
- negs r0, r0
- b _0818EFF4
- .pool
-_0818EEA0:
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bne _0818EF00
- cmp r4, 0
- beq _0818EEDC
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r2, =0x00000d08
- adds r3, r2
- ands r1, r0
- lsls r1, 5
- ldrb r2, [r3]
- movs r0, 0x21
- negs r0, r0
- b _0818EFF4
- .pool
-_0818EEDC:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r2, =0x00000d08
- adds r3, r2
- ands r1, r0
- lsls r1, 4
- ldrb r2, [r3]
- movs r0, 0x11
- negs r0, r0
- b _0818EFF4
- .pool
-_0818EF00:
- cmp r4, 0
- beq _0818EF2C
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =0x00000d08
- adds r3, r1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
- b _0818EFF4
- .pool
-_0818EF2C:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =0x00000d08
- adds r2, r1
- movs r1, 0x1
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x2
- negs r0, r0
- b _0818EF74
- .pool
-_0818EF50:
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bne _0818EFB0
- cmp r4, 0
- beq _0818EF8C
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r1, [r0]
- ldr r0, =0x00000d08
- adds r2, r0
- lsls r1, 7
- ldrb r3, [r2]
- movs r0, 0x7F
-_0818EF74:
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- b _0818F01E
- .pool
-_0818EF8C:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r2, =0x00000d08
- adds r3, r2
- ands r1, r0
- lsls r1, 6
- ldrb r2, [r3]
- movs r0, 0x41
- negs r0, r0
- b _0818EFF4
- .pool
-_0818EFB0:
- cmp r4, 0
- beq _0818EFDC
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =0x00000d08
- adds r3, r1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r3]
- movs r0, 0x9
- negs r0, r0
- b _0818EFF4
- .pool
-_0818EFDC:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r2, =0x00000d08
- adds r3, r2
-_0818EFE8:
- movs r1, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
-_0818EFF4:
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _0818F01E
- .pool
-_0818F008:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gUnknown_0203CEF8
- ldrb r1, [r0]
- ldrb r0, [r0, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0xCB
- lsls r0, 4
- adds r2, r0
- strh r1, [r2]
-_0818F01E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818ED28
-
- thumb_func_start sub_818F02C
-sub_818F02C: @ 818F02C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x20
- bl AllocZeroed
- str r0, [sp, 0x18]
- movs r0, 0x18
- bl AllocZeroed
- str r0, [sp, 0x1C]
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- adds r0, 0x1
- ldr r3, =0x00000d0a
- adds r1, r3
- strb r0, [r1]
- ldr r0, =0x000040ce
- bl VarGet
- ldr r1, [r4]
- adds r0, 0x1
- ldr r5, =0x00000d0b
- adds r1, r5
- strb r0, [r1]
- ldr r2, [r4]
- ldr r7, =0x00000d24
- adds r3, r2, r7
- ldrh r0, [r3]
- ldr r5, =0x000003ff
- adds r1, r5, 0
- orrs r0, r1
- strh r0, [r3]
- ldr r3, =0x00000d25
- adds r2, r3
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r1, [r4]
- adds r1, r3
- ldrb r2, [r1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r4]
- adds r1, r3
- ldrb r2, [r1]
- movs r0, 0x1F
- ands r0, r2
- strb r0, [r1]
- movs r7, 0
- mov r10, r7
- mov r8, r4
- ldr r0, =gBattleScripting + 0x14
- mov r9, r0
- movs r4, 0
-_0818F0BA:
- mov r1, r8
- ldr r0, [r1]
- ldr r2, =0x00000caa
- adds r0, r2
- adds r0, r4
- ldrh r0, [r0]
- movs r3, 0x64
- muls r0, r3
- add r0, r9
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- mov r5, r8
- ldr r1, [r5]
- ldr r7, =0x00000d64
- adds r1, r7
- adds r1, r4
- strh r0, [r1]
- movs r5, 0
- mov r0, r10
- lsls r7, r0, 4
- adds r6, r7, 0
-_0818F0E8:
- mov r1, r8
- ldr r0, [r1]
- ldr r2, =0x00000caa
- adds r0, r2
- adds r0, r4
- ldrh r0, [r0]
- movs r3, 0x64
- muls r0, r3
- add r0, r9
- adds r1, r5, 0
- adds r1, 0xD
- movs r2, 0
- bl GetMonData
- mov r2, r8
- ldr r1, [r2]
- ldr r3, =0x00000efc
- adds r1, r3
- adds r1, r6
- strh r0, [r1]
- adds r6, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0818F0E8
- movs r5, 0
- ldr r6, =gSaveBlock2Ptr
-_0818F11C:
- ldr r0, [r6]
- ldr r1, =0x00000caa
- adds r0, r1
- adds r0, r4
- ldrh r0, [r0]
- movs r2, 0x64
- muls r0, r2
- add r0, r9
- adds r1, r5, 0
- adds r1, 0x1A
- movs r2, 0
- bl GetMonData
- ldr r1, [r6]
- adds r2, r5, r7
- ldr r3, =0x00000f04
- adds r1, r3
- adds r1, r2
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x5
- ble _0818F11C
- mov r5, r8
- ldr r0, [r5]
- ldr r1, =0x00000caa
- adds r0, r1
- adds r0, r4
- ldrh r0, [r0]
- movs r2, 0x64
- muls r0, r2
- add r0, r9
- bl GetNature
- ldr r1, [r5]
- adds r1, r7
- ldr r3, =0x00000f0a
- adds r1, r3
- strb r0, [r1]
- adds r4, 0x2
- movs r5, 0x1
- add r10, r5
- mov r7, r10
- cmp r7, 0x2
- ble _0818F0BA
- mov r10, r5
- movs r0, 0x4
- str r0, [sp, 0x34]
- movs r1, 0x6
- str r1, [sp, 0x38]
-_0818F17E:
- mov r2, r10
- cmp r2, 0x5
- ble _0818F22C
-_0818F184:
- bl sub_81A39C4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8162548
- lsls r0, 16
- lsrs r4, r0, 16
- movs r5, 0x1
- cmp r5, r10
- bge _0818F1CA
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- ldr r7, =0x00000d28
- adds r0, r7
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- adds r2, r3, 0
- cmp r0, r4
- beq _0818F1CA
- ldr r3, =0x00000d24
-_0818F1B2:
- adds r5, 0x1
- cmp r5, r10
- bge _0818F1CA
- ldr r0, [r2]
- lsls r1, r5, 2
- adds r0, r1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- cmp r0, r4
- bne _0818F1B2
-_0818F1CA:
- cmp r5, r10
- bne _0818F184
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r1, [sp, 0x34]
- adds r3, r1
- ldr r2, =0x00000d24
- adds r3, r2
- ldr r5, =0x000003ff
- adds r0, r5, 0
- adds r2, r4, 0
- ands r2, r0
- ldrh r0, [r3]
- ldr r7, =0xfffffc00
- adds r1, r7, 0
- b _0818F292
- .pool
-_0818F22C:
- bl sub_81A39C4
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8162548
- lsls r0, 16
- lsrs r4, r0, 16
- movs r5, 0x1
- cmp r5, r10
- bge _0818F274
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000d28
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- adds r2, r1, 0
- cmp r0, r4
- beq _0818F274
- ldr r3, =0x00000d24
-_0818F25C:
- adds r5, 0x1
- cmp r5, r10
- bge _0818F274
- ldr r0, [r2]
- lsls r1, r5, 2
- adds r0, r1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- cmp r0, r4
- bne _0818F25C
-_0818F274:
- cmp r5, r10
- bne _0818F22C
- ldr r5, =gSaveBlock2Ptr
- ldr r3, [r5]
- ldr r7, [sp, 0x34]
- adds r3, r7
- ldr r0, =0x00000d24
- adds r3, r0
- ldr r1, =0x000003ff
- adds r0, r1, 0
- adds r2, r4, 0
- ands r2, r0
- ldrh r0, [r3]
- ldr r5, =0xfffffc00
- adds r1, r5, 0
-_0818F292:
- ands r0, r1
- orrs r0, r2
- strh r0, [r3]
- movs r5, 0
- lsls r4, 16
- str r4, [sp, 0x2C]
- ldr r7, [sp, 0x38]
- str r7, [sp, 0x20]
-_0818F2A2:
- lsls r0, r5, 1
- mov r9, r0
- adds r1, r5, 0x1
- str r1, [sp, 0x24]
- lsls r2, r5, 2
- str r2, [sp, 0x28]
-_0818F2AE:
- ldr r3, [sp, 0x2C]
- lsrs r0, r3, 16
- bl sub_8163524
- lsls r0, 16
- lsrs r6, r0, 16
- movs r7, 0
- cmp r7, r5
- bge _0818F300
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, [sp, 0x8]
- mov r8, r1
- ldr r2, [sp, 0xC]
- mov r12, r2
- ldr r3, =0x00000d64
- adds r0, r3
- ldr r1, [sp, 0x20]
- adds r4, r1, r0
-_0818F2D4:
- ldrh r3, [r4]
- cmp r3, r6
- beq _0818F300
- ldr r2, =gUnknown_0203BC8C
- ldr r1, [r2]
- lsls r0, r6, 4
- adds r2, r0, r1
- ldrh r0, [r2]
- cmp r8, r0
- beq _0818F300
- cmp r12, r0
- beq _0818F300
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0, 0xA]
- ldrb r2, [r2, 0xA]
- cmp r0, r2
- beq _0818F300
- adds r4, 0x2
- adds r7, 0x1
- cmp r7, r5
- blt _0818F2D4
-_0818F300:
- cmp r7, r5
- bne _0818F2AE
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- ldr r1, [sp, 0x38]
- add r1, r9
- ldr r5, =0x00000d64
- adds r0, r5
- adds r0, r1
- strh r6, [r0]
- ldr r2, [sp, 0x28]
- add r2, sp
- adds r2, 0x8
- ldr r0, =gUnknown_0203BC8C
- ldr r1, [r0]
- lsls r0, r6, 4
- adds r0, r1
- ldrh r0, [r0]
- str r0, [r2]
- ldr r5, [sp, 0x24]
- cmp r5, 0x2
- ble _0818F2A2
- ldr r2, [r3]
- ldr r7, [sp, 0x34]
- adds r2, r7
- ldr r0, =0x00000d25
- adds r2, r0
- ldrb r0, [r2]
- movs r3, 0x5
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- strb r0, [r2]
- ldr r5, =gSaveBlock2Ptr
- ldr r2, [r5]
- adds r2, r7
- ldr r7, =0x00000d25
- adds r2, r7
- ldrb r0, [r2]
- subs r3, 0x14
- adds r1, r3, 0
- ands r0, r1
- strb r0, [r2]
- ldr r1, [r5]
- ldr r5, [sp, 0x34]
- adds r1, r5
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x1F
- ands r0, r2
- strb r0, [r1]
- adds r5, 0x4
- str r5, [sp, 0x34]
- ldr r7, [sp, 0x38]
- adds r7, 0x6
- str r7, [sp, 0x38]
- movs r0, 0x1
- add r10, r0
- mov r1, r10
- cmp r1, 0xF
- bgt _0818F37C
- b _0818F17E
-_0818F37C:
- movs r7, 0
- ldr r2, [sp, 0x18]
- strh r7, [r2]
- movs r3, 0
- mov r10, r3
- ldr r6, =gBitTable
- ldr r5, =gBaseStats
-_0818F38A:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- mov r2, r10
- lsls r1, r2, 1
- ldr r3, =0x00000caa
- adds r0, r3
- adds r0, r1
- ldrh r0, [r0]
- subs r4, r0, 0x1
- movs r0, 0x64
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- ldr r2, [sp, 0x18]
- ldrh r1, [r2]
- adds r1, r0
- strh r1, [r2]
- adds r0, r4, 0
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- ldr r3, [sp, 0x18]
- ldrh r1, [r3]
- adds r1, r0
- strh r1, [r3]
- adds r0, r4, 0
- movs r1, 0x3E
- movs r2, 0
- bl GetMonData
- ldr r2, [sp, 0x18]
- ldrh r1, [r2]
- adds r1, r0
- strh r1, [r2]
- adds r0, r4, 0
- movs r1, 0x3F
- movs r2, 0
- bl GetMonData
- ldr r3, [sp, 0x18]
- ldrh r1, [r3]
- adds r1, r0
- strh r1, [r3]
- adds r0, r4, 0
- movs r1, 0x3D
- movs r2, 0
- bl GetMonData
- ldr r2, [sp, 0x18]
- ldrh r1, [r2]
- adds r1, r0
- strh r1, [r2]
- adds r0, r4, 0
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- ldr r3, [sp, 0x18]
- ldrh r1, [r3]
- adds r1, r0
- strh r1, [r3]
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x6]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- orrs r7, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x7]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- orrs r7, r0
- movs r0, 0x1
- add r10, r0
- mov r1, r10
- cmp r1, 0x2
- ble _0818F38A
- movs r4, 0
- movs r1, 0x1
- movs r5, 0x1F
-_0818F458:
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0818F462
- adds r4, 0x1
-_0818F462:
- asrs r7, 1
- subs r5, 0x1
- cmp r5, 0
- bge _0818F458
- bl sub_8165C40
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- adds r2, r0, 0
- adds r0, r4, 0
- muls r0, r2
- movs r1, 0x14
- bl __divsi3
- ldr r3, [sp, 0x18]
- ldrh r1, [r3]
- adds r1, r0
- strh r1, [r3]
- movs r5, 0x1
- mov r10, r5
- adds r6, r3, 0
- adds r6, 0x2
- movs r7, 0x2
- str r7, [sp, 0x30]
-_0818F494:
- movs r7, 0
- strh r7, [r6]
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- mov r2, r10
- lsls r1, r2, 2
- adds r0, r1
- ldr r3, =0x00000d24
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- bl sub_8190168
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r0, [sp, 0x30]
- mov r9, r0
-_0818F4BC:
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- mov r4, r9
- add r4, r10
- adds r4, r5
- lsls r4, 1
- ldr r2, =0x00000d64
- adds r0, r2
- adds r0, r4
- ldrh r1, [r0]
- ldr r3, =gUnknown_0203BC8C
- ldr r0, [r3]
- lsls r1, 4
- adds r1, r0
- ldrh r0, [r1]
- ldrb r3, [r1, 0xB]
- ldrb r1, [r1, 0xC]
- str r1, [sp]
- ldr r1, [sp, 0x1C]
- str r1, [sp, 0x4]
- ldr r1, [sp, 0x14]
- mov r2, r8
- bl sub_818F720
- ldr r2, [sp, 0x1C]
- ldr r1, [r2, 0x4]
- ldrh r0, [r6]
- adds r0, r1
- ldr r1, [r2, 0x8]
- adds r0, r1
- ldr r1, [r2, 0x10]
- adds r0, r1
- ldr r1, [r2, 0x14]
- adds r0, r1
- ldr r1, [r2, 0xC]
- adds r0, r1
- ldr r1, [r2]
- adds r0, r1
- strh r0, [r6]
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- ldr r1, =0x00000d64
- adds r0, r1
- adds r0, r4
- ldrh r0, [r0]
- ldr r2, =gUnknown_0203BC8C
- ldr r1, [r2]
- lsls r0, 4
- adds r0, r1
- ldrh r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r3, =gBaseStats
- adds r1, r3
- ldrb r0, [r1, 0x6]
- lsls r0, 2
- ldr r2, =gBitTable
- adds r0, r2
- ldr r0, [r0]
- orrs r7, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- orrs r7, r0
- adds r5, 0x1
- cmp r5, 0x2
- ble _0818F4BC
- movs r4, 0
- movs r1, 0x1
- movs r5, 0x1F
-_0818F54C:
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0818F556
- adds r4, 0x1
-_0818F556:
- asrs r7, 1
- subs r5, 0x1
- cmp r5, 0
- bge _0818F54C
- ldr r3, [sp, 0x14]
- adds r0, r4, 0
- muls r0, r3
- movs r1, 0x14
- bl __divsi3
- ldrh r1, [r6]
- adds r1, r0
- strh r1, [r6]
- adds r6, 0x2
- ldr r5, [sp, 0x30]
- adds r5, 0x2
- str r5, [sp, 0x30]
- movs r7, 0x1
- add r10, r7
- mov r0, r10
- cmp r0, 0xF
- ble _0818F494
- movs r1, 0
- mov r10, r1
- ldr r2, =0x000003ff
- mov r8, r2
-_0818F58A:
- mov r5, r10
- adds r5, 0x1
- adds r7, r5, 0
- cmp r5, 0xF
- bgt _0818F626
- mov r3, r10
- lsls r0, r3, 1
- ldr r1, [sp, 0x18]
- adds r6, r0, r1
- lsls r0, r5, 1
- adds r4, r0, r1
-_0818F5A0:
- ldrh r1, [r6]
- ldrh r0, [r4]
- cmp r1, r0
- bcc _0818F5C2
- cmp r1, r0
- bne _0818F61E
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1, r0
- ldr r2, =0x00000d24
- adds r0, r2
- ldrh r0, [r0]
- lsls r2, r0, 22
- lsrs r0, r2, 22
- cmp r0, r8
- bne _0818F602
-_0818F5C2:
- mov r0, r10
- adds r1, r5, 0
- ldr r2, [sp, 0x18]
- bl sub_818F904
- b _0818F600
- .pool
-_0818F600:
- b _0818F61E
-_0818F602:
- mov r3, r10
- lsls r0, r3, 2
- adds r0, r1, r0
- ldr r1, =0x00000d24
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 22
- cmp r0, r2
- bls _0818F61E
- mov r0, r10
- adds r1, r5, 0
- ldr r2, [sp, 0x18]
- bl sub_818F904
-_0818F61E:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0xF
- ble _0818F5A0
-_0818F626:
- mov r10, r7
- mov r2, r10
- cmp r2, 0xE
- ble _0818F58A
- bl sub_81A3610
- lsls r0, 24
- cmp r0, 0
- beq _0818F6EE
- movs r3, 0
- mov r10, r3
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r4, =0x00000d24
- adds r1, r4
- ldrh r1, [r1]
- lsls r1, 22
- lsrs r1, 22
- ldr r3, =0x000003ff
- adds r2, r0, 0
- ldr r6, =gUnknown_0860D3F1
- cmp r1, r3
- beq _0818F674
- adds r5, r2, 0
-_0818F656:
- movs r7, 0x1
- add r10, r7
- mov r0, r10
- cmp r0, 0xF
- bgt _0818F674
- ldr r0, [r5]
- mov r7, r10
- lsls r1, r7, 2
- adds r0, r1
- adds r0, r4
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- cmp r0, r3
- bne _0818F656
-_0818F674:
- mov r1, r10
- lsls r0, r1, 1
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0818F6AC
- movs r5, 0
- ldr r2, [r2]
- ldr r3, =0x00000d24
- adds r2, r3
- ldrh r1, [r2]
- ldr r0, =0xfffffc00
- ands r0, r1
- ldr r7, =0x000003fe
- adds r1, r7, 0
- b _0818F6BE
- .pool
-_0818F6AC:
- movs r5, 0x1
- ldr r2, [r2]
- ldr r0, =0x00000d28
- adds r2, r0
- ldrh r1, [r2]
- ldr r0, =0xfffffc00
- ands r0, r1
- ldr r3, =0x000003fe
- adds r1, r3, 0
-_0818F6BE:
- orrs r0, r1
- strh r0, [r2]
- movs r7, 0
- mov r10, r7
- lsls r0, r5, 1
- adds r0, r5
- lsls r4, r0, 1
-_0818F6CC:
- mov r1, r10
- lsls r0, r1, 24
- lsrs r0, 24
- bl sub_81A4FF0
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r2, =0x00000d64
- adds r1, r2
- adds r1, r4
- strh r0, [r1]
- adds r4, 0x2
- movs r3, 0x1
- add r10, r3
- mov r5, r10
- cmp r5, 0x2
- ble _0818F6CC
-_0818F6EE:
- ldr r0, [sp, 0x18]
- bl Free
- ldr r0, [sp, 0x1C]
- bl Free
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818F02C
-
- thumb_func_start sub_818F720
-sub_818F720: @ 818F720
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- adds r7, r1, 0
- mov r9, r2
- ldr r1, [sp, 0x3C]
- ldr r2, [sp, 0x40]
- mov r8, r2
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- movs r1, 0
- adds r4, r5, 0
- movs r3, 0x1
- movs r2, 0x5
-_0818F74C:
- adds r0, r4, 0
- ands r0, r3
- cmp r0, 0
- beq _0818F756
- adds r1, 0x1
-_0818F756:
- lsrs r4, 1
- subs r2, 0x1
- cmp r2, 0
- bge _0818F74C
- movs r0, 0xFF
- lsls r0, 1
- bl __divsi3
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r0, r6, 3
- mov r10, r0
- movs r1, 0
- mov r12, r1
- mov r1, sp
- movs r2, 0x5
-_0818F776:
- mov r0, r12
- str r0, [r1]
- adds r0, r5, 0
- ands r0, r4
- cmp r0, 0
- beq _0818F784
- str r3, [r1]
-_0818F784:
- lsls r0, r4, 25
- lsrs r4, r0, 24
- adds r1, 0x4
- subs r2, 0x1
- cmp r2, 0
- bge _0818F776
- ldr r0, =0x0000012f
- cmp r6, r0
- bne _0818F7A0
- movs r0, 0x1
- b _0818F7CA
- .pool
-_0818F7A0:
- mov r2, r10
- subs r0, r2, r6
- lsls r0, 2
- ldr r1, =gBaseStats
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- mov r2, r9
- adds r1, r0, r2
- ldr r0, [sp]
- cmp r0, 0
- bge _0818F7BA
- adds r0, 0x3
-_0818F7BA:
- asrs r0, 2
- adds r0, r1, r0
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- adds r0, r7
- adds r0, 0xA
-_0818F7CA:
- mov r1, r8
- str r0, [r1]
- mov r2, r10
- subs r0, r2, r6
- lsls r0, 2
- ldr r1, =gBaseStats
- adds r4, r0, r1
- ldrb r0, [r4, 0x1]
- lsls r0, 1
- mov r2, r9
- adds r1, r0, r2
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bge _0818F7E8
- adds r0, 0x3
-_0818F7E8:
- asrs r0, 2
- adds r0, r1, r0
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- adds r1, 0x5
- mov r0, r8
- str r1, [r0, 0x4]
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x18]
- movs r2, 0x1
- bl ModifyStatByNature
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- str r0, [r1, 0x4]
- ldrb r0, [r4, 0x2]
- lsls r0, 1
- mov r2, r9
- adds r1, r0, r2
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bge _0818F820
- adds r0, 0x3
-_0818F820:
- asrs r0, 2
- adds r0, r1, r0
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- adds r1, 0x5
- mov r0, r8
- str r1, [r0, 0x8]
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x18]
- movs r2, 0x2
- bl ModifyStatByNature
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- str r0, [r1, 0x8]
- ldrb r0, [r4, 0x3]
- lsls r0, 1
- mov r2, r9
- adds r1, r0, r2
- ldr r0, [sp, 0xC]
- cmp r0, 0
- bge _0818F858
- adds r0, 0x3
-_0818F858:
- asrs r0, 2
- adds r0, r1, r0
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- adds r1, 0x5
- mov r0, r8
- str r1, [r0, 0xC]
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x18]
- movs r2, 0x3
- bl ModifyStatByNature
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- str r0, [r1, 0xC]
- ldrb r0, [r4, 0x4]
- lsls r0, 1
- mov r2, r9
- adds r1, r0, r2
- ldr r0, [sp, 0x10]
- cmp r0, 0
- bge _0818F890
- adds r0, 0x3
-_0818F890:
- asrs r0, 2
- adds r0, r1, r0
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- adds r1, 0x5
- mov r0, r8
- str r1, [r0, 0x10]
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x18]
- movs r2, 0x4
- bl ModifyStatByNature
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- str r0, [r1, 0x10]
- ldrb r0, [r4, 0x5]
- lsls r0, 1
- mov r1, r9
- adds r2, r0, r1
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bge _0818F8C8
- adds r0, 0x3
-_0818F8C8:
- asrs r0, 2
- adds r0, r2, r0
- muls r0, r7
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- adds r1, 0x5
- mov r2, r8
- str r1, [r2, 0x14]
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x18]
- movs r2, 0x5
- bl ModifyStatByNature
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- str r0, [r1, 0x14]
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818F720
-
- thumb_func_start sub_818F904
-sub_818F904: @ 818F904
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r3, r0, 1
- mov r12, r3
- adds r4, r3, r2
- ldrh r5, [r4]
- lsls r7, r1, 1
- mov r9, r7
- add r2, r9
- ldrh r3, [r2]
- strh r3, [r4]
- strh r5, [r2]
- ldr r2, =gSaveBlock2Ptr
- ldr r5, [r2]
- lsls r6, r0, 2
- adds r6, r5, r6
- ldr r3, =0x00000d24
- adds r6, r3
- ldrh r7, [r6]
- mov r10, r7
- mov r2, r10
- lsls r2, 22
- mov r8, r2
- lsls r2, r1, 2
- adds r5, r2
- adds r5, r3
- ldrh r4, [r5]
- lsls r4, 22
- lsrs r4, 22
- ldr r3, =0xfffffc00
- adds r2, r3, 0
- mov r7, r10
- ands r2, r7
- orrs r2, r4
- strh r2, [r6]
- mov r2, r8
- lsrs r2, 22
- mov r8, r2
- ldrh r2, [r5]
- ands r3, r2
- mov r7, r8
- orrs r3, r7
- strh r3, [r5]
- ldr r2, =gSaveBlock2Ptr
- mov r8, r2
- add r12, r0
- add r9, r1
- mov r3, r9
- lsls r4, r3, 1
- mov r7, r12
- lsls r3, r7, 1
- ldr r7, =0x00000d64
- movs r6, 0x2
-_0818F974:
- mov r1, r8
- ldr r0, [r1]
- adds r0, r7
- adds r2, r0, r3
- ldrh r5, [r2]
- adds r0, r4
- ldrh r1, [r0]
- strh r1, [r2]
- strh r5, [r0]
- adds r4, 0x2
- adds r3, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _0818F974
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818F904
-
- thumb_func_start sub_818F9B0
-sub_818F9B0: @ 818F9B0
- push {lr}
- ldr r0, =gStringVar1
- ldr r2, =gRoundsStringTable
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r3, =0x00000cb2
- adds r1, r3
- ldrh r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818F9B0
-
- thumb_func_start sub_818F9E0
-sub_818F9E0: @ 818F9E0
- push {lr}
- ldr r0, =gStringVar1
- ldr r2, =gRoundsStringTable
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r3, =0x00000cb2
- adds r1, r3
- ldrh r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldr r0, =gStringVar2
- ldr r1, =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl sub_8195898
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818F9E0
-
- thumb_func_start sub_818FA20
-sub_818FA20: @ 818FA20
- push {r4,r5,lr}
- ldr r1, =gUnknown_0203CD70
- movs r0, 0
- str r0, [r1]
- ldr r4, =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- ldr r5, =gUnknown_0203CD74
- str r0, [r5]
- adds r4, 0x64
- adds r0, r4, 0
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- ldr r1, [r5]
- adds r1, r0
- str r1, [r5]
- bl CalculatePlayerPartyCount
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- bl sub_8195358
- lsls r0, 16
- lsrs r0, 16
- bl sub_818FBDC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818FA20
-
- thumb_func_start sub_818FA74
-sub_818FA74: @ 818FA74
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- adds r5, r2, 0
- str r3, [sp, 0x14]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x28]
- lsls r5, 24
- lsrs r5, 24
- add r0, sp, 0xC
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- ldr r0, [sp, 0x28]
- bl sub_8190168
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- str r6, [sp, 0x2C]
- bl sub_8165C40
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x64
- ldr r4, [sp, 0x10]
- adds r3, r4, 0
- muls r3, r0
- str r3, [sp, 0x18]
- ldr r6, =gEnemyParty
- adds r0, r3, r6
- ldr r7, =gSaveBlock2Ptr
- ldr r4, [r7]
- lsls r5, 1
- ldr r3, [sp, 0x28]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 1
- adds r1, r5, r1
- ldr r6, =0x00000d64
- adds r4, r6
- adds r4, r1
- ldrh r3, [r4]
- ldr r7, =gUnknown_0203BC8C
- ldr r7, [r7]
- mov r8, r7
- lsls r3, 4
- add r3, r8
- ldrh r1, [r3]
- ldrb r3, [r3, 0xC]
- ldr r6, [sp, 0x2C]
- str r6, [sp]
- ldrh r4, [r4]
- lsls r4, 4
- add r4, r8
- ldrb r4, [r4, 0xB]
- str r4, [sp, 0x4]
- ldr r7, [sp, 0x14]
- str r7, [sp, 0x8]
- bl CreateMonWithEVSpreadPersonalityOTID
- add r0, sp, 0xC
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- movs r6, 0
- ldr r2, [sp, 0x18]
- str r2, [sp, 0x1C]
- mov r10, r5
- ldr r3, =0x00000d64
- mov r9, r3
- ldr r3, =gUnknown_0203BC8C
- mov r4, r10
- str r4, [sp, 0x20]
-_0818FB18:
- ldr r7, =gSaveBlock2Ptr
- ldr r1, [r7]
- ldr r2, [sp, 0x28]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 1
- mov r8, r0
- mov r5, r10
- add r5, r8
- add r1, r9
- adds r1, r5
- ldrh r0, [r1]
- ldr r1, [r3]
- lsls r0, 4
- adds r0, r1
- lsls r4, r6, 1
- adds r0, 0x2
- adds r0, r4
- ldrh r1, [r0]
- lsls r2, r6, 24
- lsrs r2, 24
- mov r12, r2
- ldr r7, [sp, 0x1C]
- ldr r2, =gEnemyParty
- adds r0, r7, r2
- mov r2, r12
- str r3, [sp, 0x24]
- bl SetMonMoveSlot
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- add r0, r9
- adds r0, r5
- ldrh r0, [r0]
- ldr r3, [sp, 0x24]
- ldr r1, [r3]
- lsls r0, 4
- adds r0, r1
- adds r0, 0x2
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0xDA
- bne _0818FB74
- movs r1, 0
- add r0, sp, 0xC
- strb r1, [r0]
-_0818FB74:
- adds r6, 0x1
- cmp r6, 0x3
- ble _0818FB18
- movs r0, 0x64
- ldr r1, [sp, 0x10]
- adds r4, r1, 0
- muls r4, r0
- ldr r0, =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, [sp, 0x20]
- add r1, r8
- ldr r2, =0x00000d64
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, =gUnknown_0203BC8C
- ldr r1, [r1]
- lsls r0, 4
- adds r0, r1
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- add sp, 0x30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818FA74
-
- thumb_func_start sub_818FBDC
-sub_818FBDC: @ 818FBDC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- movs r6, 0
- bl ZeroEnemyPartyMons
- mov r0, r8
- bl sub_818FC78
- adds r5, r0, 0
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r7, r4, 16
- lsls r0, 16
- orrs r7, r0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bls _0818FC46
- movs r4, 0
-_0818FC20:
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _0818FC3C
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r6, 0
- mov r1, r8
- adds r3, r7, 0
- bl sub_818FA74
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0818FC3C:
- asrs r5, 1
- adds r4, 0x1
- cmp r4, 0x2
- ble _0818FC20
- b _0818FC6C
-_0818FC46:
- movs r4, 0x2
-_0818FC48:
- movs r0, 0x4
- ands r0, r5
- cmp r0, 0
- beq _0818FC64
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r6, 0
- mov r1, r8
- adds r3, r7, 0
- bl sub_818FA74
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0818FC64:
- lsls r5, 1
- subs r4, 0x1
- cmp r4, 0
- bge _0818FC48
-_0818FC6C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_818FBDC
-
- thumb_func_start sub_818FC78
-sub_818FC78: @ 818FC78
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0818FCA2
- adds r0, r4, 0
- movs r1, 0
- bl sub_818FCBC
- cmp r0, 0
- bne _0818FCB6
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_818FDB8
- b _0818FCB6
-_0818FCA2:
- adds r0, r5, 0
- movs r1, 0
- bl sub_818FDB8
- cmp r0, 0
- bne _0818FCB6
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_818FCBC
-_0818FCB6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_818FC78
- thumb_func_start sub_818FCBC
-sub_818FCBC: @ 818FCBC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0xC]
- movs r0, 0
- mov r9, r0
- mov r1, r8
- lsls r1, 2
- str r1, [sp, 0x18]
-_0818FCDE:
- mov r2, r9
- lsls r0, r2, 2
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0
- str r0, [r1]
- movs r7, 0
- mov r0, r9
- adds r0, 0x1
- str r0, [sp, 0x14]
- adds r5, r1, 0
- mov r1, r9
- lsls r1, 1
- str r1, [sp, 0x10]
-_0818FCFA:
- movs r6, 0
- adds r2, r7, 0x1
- mov r10, r2
-_0818FD00:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, [sp, 0x18]
- adds r0, r1, r2
- ldr r2, =0x00000d24
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- ldr r2, =0x000003fe
- cmp r0, r2
- bne _0818FD3C
- mov r1, r9
- lsls r0, r1, 24
- lsls r1, r7, 24
- lsrs r0, 24
- lsrs r1, 24
- bl sub_81A5060
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- b _0818FD60
- .pool
-_0818FD3C:
- mov r2, r8
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 1
- ldr r2, [sp, 0x10]
- adds r0, r2, r0
- ldr r2, =0x00000d64
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =gUnknown_0203BC8C
- ldr r1, [r1]
- lsls r0, 4
- adds r0, r1
- lsls r1, r7, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r4, [r0]
-_0818FD60:
- movs r0, 0x64
- muls r0, r6
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0
- bl sub_818FFC0
- ldr r1, [r5]
- adds r1, r0
- str r1, [r5]
- adds r6, 0x1
- cmp r6, 0x2
- ble _0818FD00
- mov r7, r10
- cmp r7, 0x3
- ble _0818FCFA
- ldr r0, [sp, 0x14]
- mov r9, r0
- cmp r0, 0x2
- ble _0818FCDE
- mov r0, sp
- ldr r1, [sp, 0xC]
- bl sub_818FEB4
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_818FCBC
-
- thumb_func_start sub_818FDB8
-sub_818FDB8: @ 818FDB8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0xC]
- movs r0, 0
- mov r9, r0
- mov r1, r8
- lsls r1, 2
- str r1, [sp, 0x18]
-_0818FDDA:
- mov r2, r9
- lsls r0, r2, 2
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0
- str r0, [r1]
- movs r7, 0
- mov r0, r9
- adds r0, 0x1
- str r0, [sp, 0x14]
- adds r5, r1, 0
- mov r1, r9
- lsls r1, 1
- str r1, [sp, 0x10]
-_0818FDF6:
- movs r6, 0
- adds r2, r7, 0x1
- mov r10, r2
-_0818FDFC:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, [sp, 0x18]
- adds r0, r1, r2
- ldr r2, =0x00000d24
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- ldr r2, =0x000003fe
- cmp r0, r2
- bne _0818FE38
- mov r1, r9
- lsls r0, r1, 24
- lsls r1, r7, 24
- lsrs r0, 24
- lsrs r1, 24
- bl sub_81A5060
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- b _0818FE5C
- .pool
-_0818FE38:
- mov r2, r8
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 1
- ldr r2, [sp, 0x10]
- adds r0, r2, r0
- ldr r2, =0x00000d64
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =gUnknown_0203BC8C
- ldr r1, [r1]
- lsls r0, 4
- adds r0, r1
- lsls r1, r7, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r4, [r0]
-_0818FE5C:
- movs r0, 0x64
- muls r0, r6
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_818FFC0
- ldr r1, [r5]
- adds r1, r0
- str r1, [r5]
- adds r6, 0x1
- cmp r6, 0x2
- ble _0818FDFC
- mov r7, r10
- cmp r7, 0x3
- ble _0818FDF6
- ldr r0, [sp, 0x14]
- mov r9, r0
- cmp r0, 0x2
- ble _0818FDDA
- mov r0, sp
- ldr r1, [sp, 0xC]
- bl sub_818FEB4
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_818FDB8
-
- thumb_func_start sub_818FEB4
-sub_818FEB4: @ 818FEB4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- str r0, [sp, 0xC]
- movs r3, 0x2
- add r0, sp, 0x8
-_0818FECE:
- str r3, [r0]
- subs r0, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _0818FECE
- mov r3, r10
- ldr r2, [r3]
- ldr r0, [r3, 0x4]
- cmp r2, r0
- bne _0818FF20
- ldr r0, [r3, 0x8]
- cmp r2, r0
- bne _0818FF20
- cmp r1, 0
- beq _0818FFAA
- movs r3, 0
- ldr r4, =gBitTable
-_0818FEF0:
- str r3, [sp, 0x14]
- bl Random
- movs r1, 0x3
- ands r1, r0
- ldr r3, [sp, 0x14]
- cmp r1, 0x3
- beq _0818FF16
- lsls r0, r1, 2
- adds r0, r4
- ldr r1, [r0]
- ldr r0, [sp, 0xC]
- ands r0, r1
- cmp r0, 0
- bne _0818FF16
- ldr r0, [sp, 0xC]
- orrs r0, r1
- str r0, [sp, 0xC]
- adds r3, 0x1
-_0818FF16:
- cmp r3, 0x2
- bne _0818FEF0
- b _0818FFAA
- .pool
-_0818FF20:
- movs r3, 0
- mov r9, sp
- mov r8, r10
-_0818FF26:
- adds r2, r3, 0x1
- cmp r2, 0x2
- bgt _0818FF84
- mov r6, r8
- mov r7, r9
- lsls r0, r2, 2
- mov r1, sp
- adds r5, r0, r1
- mov r1, r10
- adds r4, r0, r1
-_0818FF3A:
- ldr r0, [r6]
- ldr r1, [r4]
- cmp r0, r1
- bge _0818FF4E
- str r1, [r6]
- str r0, [r4]
- ldr r1, [r7]
- ldr r0, [r5]
- str r0, [r7]
- str r1, [r5]
-_0818FF4E:
- ldr r1, [r6]
- ldr r0, [r4]
- cmp r1, r0
- bne _0818FF7A
- str r2, [sp, 0x10]
- str r3, [sp, 0x14]
- bl Random
- movs r1, 0x1
- ands r1, r0
- ldr r2, [sp, 0x10]
- ldr r3, [sp, 0x14]
- cmp r1, 0
- beq _0818FF7A
- ldr r1, [r6]
- ldr r0, [r4]
- str r0, [r6]
- str r1, [r4]
- ldr r1, [r7]
- ldr r0, [r5]
- str r0, [r7]
- str r1, [r5]
-_0818FF7A:
- adds r5, 0x4
- adds r4, 0x4
- adds r2, 0x1
- cmp r2, 0x2
- ble _0818FF3A
-_0818FF84:
- movs r4, 0x4
- add r9, r4
- add r8, r4
- adds r3, 0x1
- cmp r3, 0x1
- ble _0818FF26
- ldr r2, =gBitTable
- mov r1, sp
- movs r3, 0x1
-_0818FF96:
- ldm r1!, {r0}
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ldr r4, [sp, 0xC]
- orrs r4, r0
- str r4, [sp, 0xC]
- subs r3, 0x1
- cmp r3, 0
- bge _0818FF96
-_0818FFAA:
- ldr r0, [sp, 0xC]
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_818FEB4
-
- thumb_func_start sub_818FFC0
-sub_818FFC0: @ 818FFC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r3, r0, 0
- adds r4, r1, 0
- str r2, [sp]
- movs r6, 0
- movs r2, 0x14
- cmp r3, 0
- beq _0818FFF0
- ldr r0, =0x0000ffff
- cmp r3, r0
- beq _0818FFF0
- ldr r0, =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3, 0x1]
- cmp r0, 0
- bne _0818FFFC
-_0818FFF0:
- movs r0, 0
- b _08190156
- .pool
-_0818FFFC:
- ldr r1, =gBaseStats
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x6]
- mov r10, r1
- ldrb r1, [r0, 0x7]
- mov r9, r1
- ldrb r0, [r0, 0x16]
- mov r8, r0
- ldrb r3, [r3, 0x2]
- str r3, [sp, 0x4]
- cmp r0, 0x1A
- bne _0819002C
- cmp r3, 0x4
- bne _0819002C
- ldr r0, [sp]
- cmp r0, 0x1
- bne _081900AA
- movs r2, 0x8
- b _081900A4
- .pool
-_0819002C:
- ldr r0, =gTypeEffectiveness
- adds r1, r6, r0
- ldrb r0, [r1]
- ldr r7, =gTypeEffectiveness
- cmp r0, 0xFF
- beq _081900A4
- adds r4, r1, 0
-_0819003A:
- ldrb r0, [r4]
- cmp r0, 0xFE
- beq _08190096
- ldrb r0, [r4]
- ldr r1, [sp, 0x4]
- cmp r0, r1
- bne _08190096
- ldrb r0, [r4, 0x1]
- adds r5, r6, 0x1
- cmp r0, r10
- bne _0819006C
- adds r1, r6, 0x2
- mov r0, r8
- cmp r0, 0x19
- bne _0819005E
- ldrb r0, [r4, 0x2]
- cmp r0, 0x28
- bne _0819006C
-_0819005E:
- adds r0, r1, r7
- ldrb r0, [r0]
- muls r0, r2
- movs r1, 0xA
- bl __divsi3
- adds r2, r0, 0
-_0819006C:
- adds r0, r5, r7
- ldrb r0, [r0]
- cmp r0, r9
- bne _08190096
- cmp r10, r9
- beq _08190096
- adds r1, r6, 0x2
- mov r0, r8
- cmp r0, 0x19
- bne _08190088
- adds r0, r1, r7
- ldrb r0, [r0]
- cmp r0, 0x28
- bne _08190096
-_08190088:
- adds r0, r1, r7
- ldrb r0, [r0]
- muls r0, r2
- movs r1, 0xA
- bl __divsi3
- adds r2, r0, 0
-_08190096:
- adds r4, 0x3
- adds r6, 0x3
- ldr r1, =gTypeEffectiveness
- adds r0, r6, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0819003A
-_081900A4:
- ldr r0, [sp]
- cmp r0, 0x1
- beq _081900E0
-_081900AA:
- ldr r1, [sp]
- cmp r1, 0x1
- bgt _081900BC
- cmp r1, 0
- beq _081900C4
- b _08190154
- .pool
-_081900BC:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08190114
- b _08190154
-_081900C4:
- cmp r2, 0xA
- beq _08190146
- cmp r2, 0xA
- ble _08190146
- cmp r2, 0x28
- beq _0819014A
- cmp r2, 0x28
- bgt _081900DA
- cmp r2, 0x14
- beq _08190104
- b _08190146
-_081900DA:
- cmp r2, 0x50
- bne _08190146
- b _08190100
-_081900E0:
- cmp r2, 0xA
- beq _08190104
- cmp r2, 0xA
- bgt _081900F2
- cmp r2, 0
- beq _08190100
- cmp r2, 0x5
- beq _0819014A
- b _08190146
-_081900F2:
- cmp r2, 0x28
- beq _08190108
- cmp r2, 0x28
- ble _08190146
- cmp r2, 0x50
- beq _0819010E
- b _08190146
-_08190100:
- movs r2, 0x8
- b _08190154
-_08190104:
- movs r2, 0x2
- b _08190154
-_08190108:
- movs r2, 0x2
- negs r2, r2
- b _08190154
-_0819010E:
- movs r2, 0x4
- negs r2, r2
- b _08190154
-_08190114:
- cmp r2, 0xA
- beq _08190146
- cmp r2, 0xA
- bgt _08190126
- cmp r2, 0
- beq _0819013A
- cmp r2, 0x5
- beq _08190140
- b _08190146
-_08190126:
- cmp r2, 0x28
- beq _0819014E
- cmp r2, 0x28
- bgt _08190134
- cmp r2, 0x14
- beq _0819014A
- b _08190146
-_08190134:
- cmp r2, 0x50
- beq _08190152
- b _08190146
-_0819013A:
- movs r2, 0x10
- negs r2, r2
- b _08190154
-_08190140:
- movs r2, 0x8
- negs r2, r2
- b _08190154
-_08190146:
- movs r2, 0
- b _08190154
-_0819014A:
- movs r2, 0x4
- b _08190154
-_0819014E:
- movs r2, 0xC
- b _08190154
-_08190152:
- movs r2, 0x14
-_08190154:
- adds r0, r2, 0
-_08190156:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_818FFC0
-
- thumb_func_start sub_8190168
-sub_8190168: @ 8190168
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- cmp r0, 0x63
- bls _0819019A
- movs r1, 0x6
- cmp r0, 0x77
- bls _0819019A
- movs r1, 0x9
- cmp r0, 0x8B
- bls _0819019A
- movs r1, 0xC
- cmp r0, 0x9F
- bls _0819019A
- movs r1, 0xF
- cmp r0, 0xB3
- bls _0819019A
- movs r1, 0x12
- cmp r0, 0xC7
- bls _0819019A
- movs r1, 0x1F
- cmp r0, 0xDB
- bhi _0819019A
- movs r1, 0x15
-_0819019A:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8190168
-
- thumb_func_start sub_81901A0
-sub_81901A0: @ 81901A0
- push {r4-r7,lr}
- adds r3, r0, 0
- adds r2, r1, 0
- movs r5, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r4, =0x00000d24
- adds r1, r4
- ldrh r1, [r1]
- lsls r1, 22
- lsrs r1, 22
- mov r12, r0
- ldr r6, =gUnknown_0860D10C
- cmp r1, r2
- beq _081901D8
- mov r7, r12
-_081901C0:
- adds r5, 0x1
- cmp r5, 0xF
- bgt _081901D8
- ldr r0, [r7]
- lsls r1, r5, 2
- adds r0, r1
- adds r0, r4
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- cmp r0, r2
- bne _081901C0
-_081901D8:
- cmp r3, 0
- beq _0819026C
- cmp r3, 0x3
- bne _081901FC
- lsls r0, r5, 2
- adds r1, r0, 0x3
- adds r1, r6
- ldrb r1, [r1]
- adds r4, r1, 0
- adds r4, 0x8
- b _08190206
- .pool
-_081901FC:
- lsls r0, r5, 2
- adds r1, r3, r0
- adds r1, r6
- ldrb r1, [r1]
- adds r4, r1, 0x4
-_08190206:
- adds r0, r3, r0
- adds r0, r6
- ldrb r2, [r0]
- cmp r2, r4
- bge _08190256
- ldr r1, =gUnknown_0860D14C
- adds r0, r2, r1
- ldrb r3, [r0]
- adds r6, r1, 0
- cmp r3, r5
- beq _08190234
- mov r1, r12
- ldr r0, [r1]
- lsls r1, r3, 2
- adds r0, r1
- ldr r3, =0x00000d25
- adds r0, r3
- b _0819024E
- .pool
-_08190234:
- adds r2, 0x1
- cmp r2, r4
- bge _08190256
- adds r0, r2, r6
- ldrb r1, [r0]
- cmp r1, r5
- beq _08190234
- mov r3, r12
- ldr r0, [r3]
- lsls r1, 2
- adds r0, r1
- ldr r1, =0x00000d25
- adds r0, r1
-_0819024E:
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08190234
-_08190256:
- cmp r2, r4
- beq _08190286
- ldr r0, =gUnknown_0860D14C
- adds r0, r2, r0
- ldrb r0, [r0]
- b _08190292
- .pool
-_0819026C:
- mov r3, r12
- ldr r1, [r3]
- lsls r0, r5, 2
- adds r0, r6
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r1, r0
- ldr r0, =0x00000d25
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _08190290
-_08190286:
- movs r0, 0xFF
- b _08190292
- .pool
-_08190290:
- adds r0, r2, 0
-_08190292:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81901A0
-
- thumb_func_start sub_8190298
-sub_8190298: @ 8190298
- push {lr}
- bl sub_81902AC
- ldr r1, =gTrainerBattleOpponent_A
- strh r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8190298
-
- thumb_func_start sub_81902AC
-sub_81902AC: @ 81902AC
- push {r4,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- ldr r1, =0x00000cb2
- adds r0, r4, r1
- ldrh r0, [r0]
- ldr r1, =0x000003ff
- bl sub_81901A0
- lsls r0, 2
- adds r4, r0
- ldr r0, =0x00000d24
- adds r4, r0
- ldrh r0, [r4]
- lsls r0, 22
- lsrs r0, 22
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81902AC
-
- thumb_func_start sub_81902E4
-sub_81902E4: @ 81902E4
- push {lr}
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- movs r1, 0
- bl sub_8162614
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81902E4
-
- thumb_func_start sub_81902F8
-sub_81902F8: @ 81902F8
- push {r4,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- strb r1, [r0]
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0
- bl VarSet
- ldr r1, [r4]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bl sub_81A4C30
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81902F8
-
- thumb_func_start sub_819033C
-sub_819033C: @ 819033C
- push {r4,r5,lr}
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r4, [r0]
- lsls r4, 30
- lsrs r4, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- ldr r1, [r5]
- lsls r4, 1
- lsrs r0, 22
- adds r4, r0
- ldr r3, =0x00000d0c
- adds r1, r3
- adds r1, r4
- ldrh r0, [r1]
- ldr r2, =0x000003e6
- cmp r0, r2
- bhi _0819036E
- adds r0, 0x1
- strh r0, [r1]
-_0819036E:
- ldr r0, [r5]
- ldr r1, =0x00000d1c
- adds r0, r1
- adds r1, r0, r4
- ldrh r0, [r1]
- cmp r0, r2
- bhi _08190380
- adds r0, 0x1
- strh r0, [r1]
-_08190380:
- ldr r0, [r5]
- adds r1, r0, r3
- adds r1, r4
- ldr r2, =0x00000d14
- adds r0, r2
- adds r0, r4
- ldrh r1, [r1]
- ldrh r2, [r0]
- cmp r1, r2
- bls _08190396
- strh r1, [r0]
-_08190396:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819033C
-
- thumb_func_start sub_81903B8
-sub_81903B8: @ 81903B8
- push {r4,r5,lr}
- ldr r0, =sub_8190400
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r5, 0
- strh r5, [r4, 0x8]
- bl sub_81902AC
- lsls r0, 16
- lsrs r0, 16
- bl sub_8195358
- strh r0, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- ldr r0, =sub_8194B54
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81903B8
-
- thumb_func_start sub_8190400
-sub_8190400: @ 8190400
- 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 r10, r0
- ldr r1, =gTasks
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- adds r6, r0, r1
- movs r0, 0xA
- ldrsh r5, [r6, r0]
- movs r2, 0xC
- ldrsh r1, [r6, r2]
- mov r9, r1
- movs r0, 0xE
- ldrsh r7, [r6, r0]
- movs r1, 0x8
- ldrsh r4, [r6, r1]
- cmp r4, 0x1
- beq _08190508
- cmp r4, 0x1
- bgt _08190440
- cmp r4, 0
- beq _0819044E
- b _08190772
- .pool
-_08190440:
- cmp r4, 0x2
- bne _08190446
- b _08190570
-_08190446:
- cmp r4, 0x3
- bne _0819044C
- b _08190634
-_0819044C:
- b _08190772
-_0819044E:
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x1
- bl EnableInterrupts
- str r4, [sp, 0x4]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, =0x05006000
- add r0, sp, 0x4
- bl CpuSet
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_0860CE84
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r0, =gUnknown_0860CEB4
- bl InitWindows
- bl DeactivateAllTextPrinters
- ldr r0, =gBattle_BG0_X
- strh r4, [r0]
- ldr r0, =gBattle_BG0_Y
- strh r4, [r0]
- ldr r0, =gBattle_BG1_X
- strh r4, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r4, [r0]
- ldr r0, =gBattle_BG3_X
- strh r4, [r0]
- ldr r0, =gBattle_BG3_Y
- strh r4, [r0]
- mov r2, r9
- cmp r2, 0x2
- bne _081904DC
- ldr r0, =gBattle_BG2_X
- strh r4, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r4, [r0]
- b _081904E6
- .pool
-_081904DC:
- ldr r0, =gBattle_BG2_X
- strh r4, [r0]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0xA0
- strh r0, [r1]
-_081904E6:
- ldr r0, =gTasks
- mov r2, r10
- lsls r1, r2, 2
- add r1, r10
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08190772
- .pool
-_08190508:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x42
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x46
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x3F
- bl SetGpuReg
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- b _08190602
- .pool
-_08190570:
- ldr r1, =gUnknown_08D83D50
- movs r5, 0x80
- lsls r5, 6
- movs r7, 0
- str r7, [sp]
- movs r0, 0x2
- adds r2, r5, 0
- movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
- ldr r1, =gUnknown_08D84970
- movs r4, 0x1
- str r4, [sp]
- movs r0, 0x2
- adds r2, r5, 0
- movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
- ldr r1, =gUnknown_08D84F00
- movs r2, 0x80
- lsls r2, 4
- str r4, [sp]
- movs r0, 0x3
- movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
- ldr r0, =gUnknown_0860CF50
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_08D85358
- movs r4, 0x80
- lsls r4, 2
- movs r1, 0
- adds r2, r4, 0
- bl LoadCompressedPalette
- ldr r0, =gUnknown_08D85444
- movs r1, 0x80
- lsls r1, 1
- adds r2, r4, 0
- bl LoadCompressedPalette
- ldr r0, =gUnknown_08D85600
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadCompressedPalette
- mov r0, r9
- cmp r0, 0x2
- bne _081905DE
- ldr r0, =gUnknown_08D854C8
- movs r1, 0x50
- movs r2, 0x20
- bl LoadCompressedPalette
-_081905DE:
- str r7, [sp, 0x8]
- add r0, sp, 0x8
- ldr r1, =gPlttBufferFaded
- ldr r2, =0x05000100
- bl CpuSet
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
-_08190602:
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _08190772
- .pool
-_08190634:
- ldr r0, =sub_8194B70
- bl SetVBlankCallback
- ldr r4, =gUnknown_0203CD78
- movs r0, 0x14
- bl AllocZeroed
- str r0, [r4]
- movs r6, 0
- lsls r5, 24
- movs r2, 0xFF
-_0819064A:
- ldr r1, [r4]
- adds r1, r6
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0xF
- ble _0819064A
- bl LoadMonIconPalettes
- ldr r0, =sub_8190CD4
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xC]
- mov r1, r9
- strh r1, [r0, 0xE]
- strh r7, [r0, 0x10]
- mov r2, r9
- cmp r2, 0x2
- bne _081906A8
- lsrs r1, r5, 24
- movs r0, 0
- bl sub_819314C
- ldr r0, =gUnknown_0203CD78
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x10]
- b _081906B0
- .pool
-_081906A8:
- lsrs r1, r5, 24
- movs r0, 0
- bl sub_81924E0
-_081906B0:
- movs r1, 0xFA
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- mov r0, r9
- cmp r0, 0
- beq _0819076C
- ldr r5, =gUnknown_0860D068
- adds r0, r5, 0
- movs r1, 0x78
- movs r2, 0x4
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- ldr r1, =gSprites
- mov r8, r1
- add r4, r8
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- strh r6, [r4, 0x2E]
- adds r0, r5, 0
- movs r1, 0x78
- movs r2, 0x9C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- add r4, r8
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- strh r6, [r4, 0x2E]
- ldr r5, =gUnknown_0860D050
- adds r0, r5, 0
- movs r1, 0x6
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- mov r2, r8
- adds r4, r0, r2
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- strh r6, [r4, 0x2E]
- movs r0, 0
- strh r0, [r4, 0x30]
- mov r1, r9
- cmp r1, 0x1
- bne _08190746
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08190746:
- adds r0, r5, 0
- movs r1, 0xEA
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- add r4, r8
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- strh r6, [r4, 0x2E]
- movs r0, 0x1
- strh r0, [r4, 0x30]
-_0819076C:
- mov r0, r10
- bl DestroyTask
-_08190772:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8190400
-
- thumb_func_start sub_8190790
-sub_8190790: @ 8190790
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x22]
- adds r1, r0, 0x4
- strh r1, [r2, 0x22]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _081907D4
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- blt _081907BC
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_081907BC:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- bne _081907F0
- ldr r0, =SpriteCallbackDummy
- str r0, [r2, 0x1C]
- b _081907F0
- .pool
-_081907D4:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xBF
- ble _081907F0
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldrh r0, [r2, 0x34]
- bl sub_818D8F0
-_081907F0:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8190790
-
- thumb_func_start sub_81907F8
-sub_81907F8: @ 81907F8
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x22]
- subs r1, r0, 0x4
- strh r1, [r2, 0x22]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08190838
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xC0
- bgt _08190820
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_08190820:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- bne _08190858
- ldr r0, =SpriteCallbackDummy
- str r0, [r2, 0x1C]
- b _08190858
- .pool
-_08190838:
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bgt _08190858
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldrh r0, [r2, 0x34]
- bl sub_818D8F0
-_08190858:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81907F8
-
- thumb_func_start sub_8190860
-sub_8190860: @ 8190860
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x20]
- adds r1, r0, 0x4
- strh r1, [r2, 0x20]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _081908A4
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- blt _0819088C
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_0819088C:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _081908C0
- ldr r0, =SpriteCallbackDummy
- str r0, [r2, 0x1C]
- b _081908C0
- .pool
-_081908A4:
- lsls r1, 16
- ldr r0, =0x010f0000
- cmp r1, r0
- ble _081908C0
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldrh r0, [r2, 0x34]
- bl sub_818D8F0
-_081908C0:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8190860
-
- thumb_func_start sub_81908CC
-sub_81908CC: @ 81908CC
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x20]
- subs r1, r0, 0x4
- strh r1, [r2, 0x20]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08190910
- lsls r1, 16
- movs r0, 0x88
- lsls r0, 17
- cmp r1, r0
- bgt _081908F6
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_081908F6:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _08190930
- ldr r0, =SpriteCallbackDummy
- str r0, [r2, 0x1C]
- b _08190930
- .pool
-_08190910:
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bgt _08190930
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldrh r0, [r2, 0x34]
- bl sub_818D8F0
-_08190930:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81908CC
-
- thumb_func_start sub_8190938
-sub_8190938: @ 8190938
- push {lr}
- adds r1, r0, 0
- movs r2, 0x34
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0819094A
- adds r0, r1, 0
- bl UpdateMonIconFrame
-_0819094A:
- pop {r0}
- bx r0
- thumb_func_end sub_8190938
-
- thumb_func_start sub_8190950
-sub_8190950: @ 8190950
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08190962
- adds r0, r4, 0
- bl UpdateMonIconFrame
-_08190962:
- ldrh r0, [r4, 0x22]
- adds r1, r0, 0x4
- strh r1, [r4, 0x22]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081909A4
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- blt _0819098A
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0819098A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- bne _081909C0
- ldr r0, =sub_8190938
- str r0, [r4, 0x1C]
- b _081909C0
- .pool
-_081909A4:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xAF
- ble _081909C0
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- adds r0, r4, 0
- bl sub_80D2EF8
-_081909C0:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8190950
-
- thumb_func_start sub_81909CC
-sub_81909CC: @ 81909CC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081909DE
- adds r0, r4, 0
- bl UpdateMonIconFrame
-_081909DE:
- ldrh r0, [r4, 0x22]
- subs r1, r0, 0x4
- strh r1, [r4, 0x22]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08190A1C
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xB0
- bgt _08190A02
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08190A02:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- bne _08190A3C
- ldr r0, =sub_8190938
- str r0, [r4, 0x1C]
- b _08190A3C
- .pool
-_08190A1C:
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bgt _08190A3C
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- adds r0, r4, 0
- bl sub_80D2EF8
-_08190A3C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81909CC
-
- thumb_func_start sub_8190A48
-sub_8190A48: @ 8190A48
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08190A5A
- adds r0, r4, 0
- bl UpdateMonIconFrame
-_08190A5A:
- ldrh r0, [r4, 0x20]
- adds r1, r0, 0x4
- strh r1, [r4, 0x20]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08190A9C
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- blt _08190A82
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08190A82:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _08190AB8
- ldr r0, =sub_8190938
- str r0, [r4, 0x1C]
- b _08190AB8
- .pool
-_08190A9C:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08190AB8
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- adds r0, r4, 0
- bl sub_80D2EF8
-_08190AB8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8190A48
-
- thumb_func_start sub_8190AC4
-sub_8190AC4: @ 8190AC4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08190AD6
- adds r0, r4, 0
- bl UpdateMonIconFrame
-_08190AD6:
- ldrh r0, [r4, 0x20]
- subs r1, r0, 0x4
- strh r1, [r4, 0x20]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08190B14
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- cmp r1, r0
- bgt _08190AFC
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08190AFC:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _08190B34
- ldr r0, =sub_8190938
- str r0, [r4, 0x1C]
- b _08190B34
- .pool
-_08190B14:
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bgt _08190B34
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- adds r0, r4, 0
- bl sub_80D2EF8
-_08190B34:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8190AC4
-
- thumb_func_start sub_8190B40
-sub_8190B40: @ 8190B40
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r6, [r3, r0]
- ldr r2, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r2
- movs r7, 0x10
- ldrsh r1, [r4, r7]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- ldr r1, =gUnknown_0860D080
- adds r0, r1
- ldrb r0, [r0]
- mov r10, r0
- ldr r1, =gSaveBlock2Ptr
- ldr r5, [r1]
- ldr r7, =0x00000cb2
- adds r0, r5, r7
- ldrh r0, [r0]
- mov r12, r0
- movs r7, 0xE
- ldrsh r0, [r4, r7]
- mov r9, r2
- mov r8, r1
- cmp r0, 0x1
- bne _08190C0C
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08190BFC
- mov r2, r10
- lsls r0, r2, 2
- adds r1, r5, r0
- ldr r7, =0x00000d25
- adds r1, r7
- ldrb r2, [r1]
- lsls r1, r2, 29
- adds r4, r0, 0
- cmp r1, 0
- bge _08190BB6
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- subs r1, 0x1
- lsls r0, r2, 27
- lsrs r0, 30
- cmp r1, r0
- blt _08190C32
-_08190BB6:
- mov r1, r8
- ldr r0, [r1]
- adds r0, r4
- ldr r2, =0x00000d25
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08190BD4
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- subs r0, 0x1
- cmp r0, r12
- blt _08190C32
-_08190BD4:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- add r0, r9
- movs r7, 0x8
- ldrsh r0, [r0, r7]
- b _08190C4C
- .pool
-_08190BFC:
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- bne _08190C32
- b _08190C48
- .pool
-_08190C0C:
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _08190C28
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- cmp r0, 0x1
- bls _08190C32
- movs r7, 0x8
- ldrsh r0, [r4, r7]
- b _08190C4C
- .pool
-_08190C28:
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- beq _08190C48
-_08190C32:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _08190C5C
- .pool
-_08190C48:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
-_08190C4C:
- cmp r0, 0x2
- bne _08190C5C
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08190C5C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8190B40
-
- thumb_func_start sub_8190C6C
-sub_8190C6C: @ 8190C6C
- push {lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- ldr r2, =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _08190C9C
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- bne _08190CA6
- b _08190CC0
- .pool
-_08190C9C:
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- cmp r0, 0x1
- beq _08190CC0
-_08190CA6:
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- bne _08190CCE
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _08190CCE
- .pool
-_08190CC0:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08190CCE:
- pop {r0}
- bx r0
- thumb_func_end sub_8190C6C
-
- thumb_func_start sub_8190CD4
-sub_8190CD4: @ 8190CD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r3, 0xE
- ldrsh r2, [r0, r3]
- mov r9, r2
- movs r4, 0x10
- ldrsh r7, [r0, r4]
- movs r5, 0x8
- ldrsh r0, [r0, r5]
- cmp r0, 0x8
- bls _08190D06
- bl _08192202
-_08190D06:
- lsls r0, 2
- ldr r1, =_08190D18
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08190D18:
- .4byte _08190D3C
- .4byte _08190D7C
- .4byte _08190DA8
- .4byte _08190E48
- .4byte _08191FF8
- .4byte _08192038
- .4byte _08192078
- .4byte _081920BC
- .4byte _08192106
-_08190D3C:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08190D50
- bl _08192202
-_08190D50:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- mov r6, r8
- lsls r0, r6, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- bl _08192202
- .pool
-_08190D7C:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08190D8C
- bl _08192202
-_08190D8C:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- ldr r2, =gTasks
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x8]
- bl _08192202
- .pool
-_08190DA8:
- mov r0, r8
- bl sub_819221C
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x8
- bgt _08190DBE
- cmp r6, 0x1
- bge _08190DF0
- bl _08192202
-_08190DBE:
- cmp r6, 0x9
- beq _08190DC6
- bl _08192202
-_08190DC6:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- strh r1, [r0, 0x8]
- bl _08192202
- .pool
-_08190DF0:
- ldr r1, =gTasks
- mov r4, r8
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x12]
- movs r5, 0xC
- ldrsh r0, [r0, r5]
- movs r1, 0
- mov r9, r2
- cmp r0, 0
- beq _08190E0C
- movs r1, 0x9
-_08190E0C:
- adds r6, r1, 0
- adds r0, r6, 0
- adds r0, 0x9
- cmp r6, r0
- bge _08190E32
- adds r5, r0, 0
-_08190E18:
- lsls r4, r6, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x2
- bl CopyWindowToVram
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r6, 0x1
- cmp r6, r5
- blt _08190E18
-_08190E32:
- ldr r0, =gTasks
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x3
- strh r0, [r1, 0x8]
- bl _08192202
- .pool
-_08190E48:
- mov r6, r8
- lsls r1, r6, 2
- adds r0, r1, r6
- lsls r0, 3
- ldr r2, =gTasks
- adds r0, r2
- movs r3, 0x12
- ldrsh r6, [r0, r3]
- subs r0, r6, 0x1
- mov r9, r1
- cmp r0, 0x7
- bls _08190E64
- bl _08192202
-_08190E64:
- lsls r0, 2
- ldr r1, =_08190E78
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08190E78:
- .4byte _08190E98
- .4byte _08191234
- .4byte _081915CC
- .4byte _08191B08
- .4byte _08190E98
- .4byte _08191234
- .4byte _0819187C
- .4byte _08191D68
-_08190E98:
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r4, =gTasks
- adds r0, r4
- movs r5, 0xC
- ldrsh r2, [r0, r5]
- cmp r2, 0
- beq _08190ED4
- ldr r0, =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG0_Y
- strh r1, [r0]
- ldr r0, =gBattle_BG1_X
- strh r1, [r0]
- ldr r1, =gBattle_BG1_Y
- movs r0, 0xA0
- strh r0, [r1]
- b _08190EE6
- .pool
-_08190ED4:
- ldr r0, =gBattle_BG0_X
- strh r2, [r0]
- ldr r1, =gBattle_BG0_Y
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, =gBattle_BG1_X
- strh r2, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r2, [r0]
-_08190EE6:
- cmp r6, 0x1
- bne _08190F9C
- ldr r5, =gUnknown_0203CD78
- ldr r0, [r5]
- ldrb r1, [r0, 0x10]
- cmp r1, 0
- bne _08190F50
- ldr r0, =gBattle_BG2_X
- strh r1, [r0]
- ldr r1, =gBattle_BG2_Y
- movs r6, 0xA0
- lsls r6, 1
- adds r0, r6, 0
- strh r0, [r1]
- ldr r3, =gUnknown_0860D080
- ldr r2, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- movs r4, 0xA
- ldrsh r1, [r0, r4]
- adds r1, r3
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r2
- ldrb r2, [r0, 0xC]
- movs r0, 0x10
- orrs r0, r2
- ldrb r1, [r1]
- bl sub_81924E0
- b _08191084
- .pool
-_08190F50:
- ldr r1, =gBattle_BG2_X
- movs r6, 0x80
- lsls r6, 1
- adds r0, r6, 0
- strh r0, [r1]
- ldr r0, =gBattle_BG2_Y
- movs r4, 0
- strh r4, [r0]
- ldr r3, =gUnknown_0860D080
- ldr r2, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- movs r6, 0xA
- ldrsh r1, [r0, r6]
- adds r1, r3
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r2
- ldrb r2, [r0, 0xC]
- movs r0, 0x10
- orrs r0, r2
- ldrb r1, [r1]
- bl sub_81924E0
- ldr r0, [r5]
- strb r4, [r0, 0x10]
- b _08191084
- .pool
-_08190F9C:
- ldr r6, =gUnknown_0203CD78
- ldr r1, [r6]
- ldrb r5, [r1, 0x10]
- cmp r5, 0
- bne _08190FF8
- ldr r4, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r4
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- adds r2, r0, 0
- subs r2, 0x10
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, 0x11
- bl sub_8192F08
- ldr r0, =gBattle_BG2_X
- strh r5, [r0]
- ldr r1, =gBattle_BG2_Y
- movs r3, 0xA0
- lsls r3, 1
- adds r0, r3, 0
- strh r0, [r1]
- ldr r2, [r6]
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r4
- ldrb r1, [r0, 0xC]
- movs r0, 0x10
- orrs r0, r1
- ldrb r1, [r2, 0x11]
- bl sub_81924E0
- b _08191084
- .pool
-_08190FF8:
- cmp r5, 0x2
- bne _0819104C
- ldr r4, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r4
- movs r5, 0xA
- ldrsh r0, [r0, r5]
- adds r2, r0, 0
- subs r2, 0x10
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, 0x11
- bl sub_8192F08
- ldr r1, =gBattle_BG2_X
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, [r6]
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r4
- ldrb r1, [r0, 0xC]
- movs r0, 0x10
- orrs r0, r1
- ldrb r1, [r2, 0x12]
- bl sub_81924E0
- b _08191084
- .pool
-_0819104C:
- ldr r1, =gBattle_BG2_X
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r4, 0xA
- ldrsh r0, [r0, r4]
- adds r2, r0, 0
- subs r2, 0x10
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xC]
- movs r0, 0x10
- orrs r0, r1
- lsls r1, r2, 24
- lsrs r1, 24
- bl sub_819314C
-_08191084:
- movs r6, 0
- ldr r5, =gUnknown_0203CD78
- mov r10, r5
- ldr r3, =gSprites
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- mov r12, r6
- adds r4, r3, 0
- adds r4, 0x1C
- movs r7, 0x1
-_0819109E:
- cmp r6, 0x1
- bgt _0819110C
- mov r2, r10
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191150
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =sub_8190790
- str r1, [r0]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r5, 0xC]
- eors r0, r7
- strh r0, [r1, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r1, [r0, 0x34]
- b _08191150
- .pool
-_0819110C:
- mov r2, r10
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191150
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =sub_8190950
- str r1, [r0]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r5, 0xC]
- eors r0, r7
- strh r0, [r1, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
-_08191150:
- adds r6, 0x1
- cmp r6, 0x7
- ble _0819109E
- movs r6, 0x8
- ldr r2, =gUnknown_0203CD78
- mov r12, r2
- ldr r3, =gSprites
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r5, r0, r1
- movs r4, 0
- adds r7, r3, 0
- adds r7, 0x1C
-_0819116E:
- cmp r6, 0x9
- bgt _081911D4
- mov r1, r12
- ldr r0, [r1]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191214
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_8190790
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r5, 0xC]
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r1, [r0, 0x34]
- b _08191214
- .pool
-_081911D4:
- mov r2, r12
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191214
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_8190950
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r5, 0xC]
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
-_08191214:
- adds r6, 0x1
- cmp r6, 0xF
- ble _0819116E
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r3, =gTasks
- adds r0, r3
- movs r2, 0
- movs r1, 0x4
- bl _08191FE8
- .pool
-_08191234:
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r4, =gTasks
- adds r0, r4
- movs r5, 0xC
- ldrsh r2, [r0, r5]
- cmp r2, 0
- beq _08191278
- ldr r0, =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG0_Y
- strh r1, [r0]
- ldr r0, =gBattle_BG1_X
- strh r1, [r0]
- ldr r1, =gBattle_BG1_Y
- ldr r2, =0x0000ff60
- adds r0, r2, 0
- strh r0, [r1]
- b _0819128C
- .pool
-_08191278:
- ldr r0, =gBattle_BG0_X
- strh r2, [r0]
- ldr r1, =gBattle_BG0_Y
- ldr r3, =0x0000ff60
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, =gBattle_BG1_X
- strh r2, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r2, [r0]
-_0819128C:
- cmp r6, 0x2
- bne _0819133C
- ldr r5, =gUnknown_0203CD78
- ldr r0, [r5]
- ldrb r1, [r0, 0x10]
- cmp r1, 0
- bne _081912F4
- ldr r0, =gBattle_BG2_X
- strh r1, [r0]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0xA0
- strh r0, [r1]
- ldr r3, =gUnknown_0860D080
- ldr r2, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- movs r4, 0xA
- ldrsh r1, [r0, r4]
- adds r1, r3
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r2
- ldrb r2, [r0, 0xC]
- movs r0, 0x4
- orrs r0, r2
- ldrb r1, [r1]
- bl sub_81924E0
- b _0819141C
- .pool
-_081912F4:
- ldr r0, =gBattle_BG2_X
- movs r4, 0
- strh r4, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r4, [r0]
- ldr r3, =gUnknown_0860D080
- ldr r2, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- movs r6, 0xA
- ldrsh r1, [r0, r6]
- adds r1, r3
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r2
- ldrb r2, [r0, 0xC]
- movs r0, 0x4
- orrs r0, r2
- ldrb r1, [r1]
- bl sub_81924E0
- ldr r0, [r5]
- strb r4, [r0, 0x10]
- b _0819141C
- .pool
-_0819133C:
- ldr r6, =gUnknown_0203CD78
- ldr r1, [r6]
- ldrb r5, [r1, 0x10]
- cmp r5, 0
- bne _08191394
- ldr r4, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r4
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- adds r2, r0, 0
- subs r2, 0x10
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, 0x11
- bl sub_8192F08
- ldr r0, =gBattle_BG2_X
- strh r5, [r0]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0xA0
- strh r0, [r1]
- ldr r2, [r6]
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r4
- ldrb r1, [r0, 0xC]
- movs r0, 0x4
- orrs r0, r1
- ldrb r1, [r2, 0x11]
- bl sub_81924E0
- b _0819141C
- .pool
-_08191394:
- cmp r5, 0x2
- bne _081913E4
- ldr r4, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r4
- movs r3, 0xA
- ldrsh r0, [r0, r3]
- adds r2, r0, 0
- subs r2, 0x10
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, 0x11
- bl sub_8192F08
- ldr r1, =gBattle_BG2_X
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0xA0
- strh r0, [r1]
- ldr r2, [r6]
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r4
- ldrb r1, [r0, 0xC]
- movs r0, 0x4
- orrs r0, r1
- ldrb r1, [r2, 0x12]
- bl sub_81924E0
- b _0819141C
- .pool
-_081913E4:
- ldr r1, =gBattle_BG2_X
- movs r4, 0x80
- lsls r4, 1
- adds r0, r4, 0
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r5, 0xA
- ldrsh r0, [r0, r5]
- adds r2, r0, 0
- subs r2, 0x10
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xC]
- movs r0, 0x4
- orrs r0, r1
- lsls r1, r2, 24
- lsrs r1, 24
- bl sub_819314C
-_0819141C:
- movs r6, 0
- ldr r0, =gUnknown_0203CD78
- mov r10, r0
- ldr r3, =gSprites
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- mov r12, r6
- adds r4, r3, 0
- adds r4, 0x1C
- movs r7, 0x1
-_08191436:
- cmp r6, 0x1
- bgt _081914A4
- mov r2, r10
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _081914E8
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =sub_81907F8
- str r1, [r0]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r5, 0xC]
- eors r0, r7
- strh r0, [r1, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r1, [r0, 0x34]
- b _081914E8
- .pool
-_081914A4:
- mov r2, r10
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _081914E8
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =sub_81909CC
- str r1, [r0]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r5, 0xC]
- eors r0, r7
- strh r0, [r1, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
-_081914E8:
- adds r6, 0x1
- cmp r6, 0x7
- ble _08191436
- movs r6, 0x8
- ldr r2, =gUnknown_0203CD78
- mov r12, r2
- ldr r3, =gSprites
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r5, r0, r1
- movs r4, 0
- adds r7, r3, 0
- adds r7, 0x1C
-_08191506:
- cmp r6, 0x9
- bgt _0819156C
- mov r1, r12
- ldr r0, [r1]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _081915AC
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_81907F8
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r5, 0xC]
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r1, [r0, 0x34]
- b _081915AC
- .pool
-_0819156C:
- mov r2, r12
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _081915AC
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_81909CC
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r5, 0xC]
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
-_081915AC:
- adds r6, 0x1
- cmp r6, 0xF
- ble _08191506
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r3, =gTasks
- adds r0, r3
- movs r2, 0
- movs r1, 0x5
- bl _08191FE8
- .pool
-_081915CC:
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r4, =gTasks
- adds r0, r4
- movs r5, 0xC
- ldrsh r2, [r0, r5]
- cmp r2, 0
- beq _0819160C
- ldr r0, =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG0_Y
- strh r1, [r0]
- ldr r2, =gBattle_BG1_X
- movs r6, 0x80
- lsls r6, 1
- adds r0, r6, 0
- strh r0, [r2]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- b _08191622
- .pool
-_0819160C:
- ldr r1, =gBattle_BG0_X
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, =gBattle_BG0_Y
- strh r2, [r0]
- ldr r0, =gBattle_BG1_X
- strh r2, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r2, [r0]
-_08191622:
- ldr r0, =gUnknown_0203CD78
- ldr r4, [r0]
- ldrb r0, [r4, 0x10]
- cmp r0, 0
- bne _08191688
- ldr r1, =gBattle_BG2_X
- movs r4, 0x80
- lsls r4, 1
- adds r0, r4, 0
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0xA0
- strh r0, [r1]
- ldr r3, =gUnknown_0860D080
- ldr r2, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- movs r5, 0xA
- ldrsh r1, [r0, r5]
- adds r1, r3
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r2
- ldrb r2, [r0, 0xC]
- movs r0, 0x8
- orrs r0, r2
- ldrb r1, [r1]
- bl sub_81924E0
- b _081916C6
- .pool
-_08191688:
- ldr r1, =gBattle_BG2_X
- movs r6, 0x80
- lsls r6, 1
- adds r0, r6, 0
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0
- strh r0, [r1]
- ldr r3, =gUnknown_0860D15C
- ldr r2, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- movs r5, 0xA
- ldrsh r1, [r0, r5]
- lsls r1, 2
- subs r1, 0x1
- ldrb r4, [r4, 0x10]
- adds r1, r4
- adds r1, r3
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r2
- ldrb r2, [r0, 0xC]
- movs r0, 0x8
- orrs r0, r2
- ldrb r1, [r1]
- bl sub_819314C
-_081916C6:
- movs r6, 0
- ldr r0, =gUnknown_0203CD78
- mov r10, r0
- ldr r3, =gSprites
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- mov r12, r6
- adds r4, r3, 0
- adds r4, 0x1C
- movs r7, 0x1
-_081916E0:
- cmp r6, 0x1
- bgt _08191754
- mov r2, r10
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191798
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =sub_8190860
- str r1, [r0]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r5, 0xC]
- eors r0, r7
- strh r0, [r1, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r1, [r0, 0x34]
- b _08191798
- .pool
-_08191754:
- mov r2, r10
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191798
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =sub_8190A48
- str r1, [r0]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r5, 0xC]
- eors r0, r7
- strh r0, [r1, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
-_08191798:
- adds r6, 0x1
- cmp r6, 0x7
- ble _081916E0
- movs r6, 0x8
- ldr r2, =gUnknown_0203CD78
- mov r12, r2
- ldr r3, =gSprites
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r5, r0, r1
- movs r4, 0
- adds r7, r3, 0
- adds r7, 0x1C
-_081917B6:
- cmp r6, 0x9
- bgt _0819181C
- mov r1, r12
- ldr r0, [r1]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _0819185C
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_8190860
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r5, 0xC]
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r1, [r0, 0x34]
- b _0819185C
- .pool
-_0819181C:
- mov r2, r12
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _0819185C
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_8190A48
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r5, 0xC]
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
-_0819185C:
- adds r6, 0x1
- cmp r6, 0xF
- ble _081917B6
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r3, =gTasks
- adds r0, r3
- movs r2, 0
- movs r1, 0x6
- b _08191FE8
- .pool
-_0819187C:
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r4, =gTasks
- adds r0, r4
- movs r5, 0xC
- ldrsh r2, [r0, r5]
- cmp r2, 0
- beq _081918BC
- ldr r0, =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG0_Y
- strh r1, [r0]
- ldr r2, =gBattle_BG1_X
- movs r6, 0x80
- lsls r6, 1
- adds r0, r6, 0
- strh r0, [r2]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- b _081918D2
- .pool
-_081918BC:
- ldr r1, =gBattle_BG0_X
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, =gBattle_BG0_Y
- strh r2, [r0]
- ldr r0, =gBattle_BG1_X
- strh r2, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r2, [r0]
-_081918D2:
- ldr r0, =gUnknown_0203CD78
- ldr r2, [r0]
- ldrb r0, [r2, 0x10]
- cmp r0, 0
- bne _08191924
- ldr r1, =gBattle_BG2_X
- movs r4, 0x80
- lsls r4, 1
- adds r0, r4, 0
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xC]
- movs r0, 0x8
- orrs r0, r1
- ldrb r1, [r2, 0x11]
- bl sub_81924E0
- b _08191958
- .pool
-_08191924:
- ldr r1, =gBattle_BG2_X
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r5, 0xA
- ldrsh r0, [r0, r5]
- adds r2, r0, 0
- subs r2, 0x10
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xC]
- movs r0, 0x8
- orrs r0, r1
- lsls r1, r2, 24
- lsrs r1, 24
- bl sub_819314C
-_08191958:
- movs r6, 0
- ldr r0, =gUnknown_0203CD78
- mov r10, r0
- ldr r3, =gSprites
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- mov r12, r6
- adds r4, r3, 0
- adds r4, 0x1C
- movs r7, 0x1
-_08191972:
- cmp r6, 0x1
- bgt _081919E0
- mov r2, r10
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191A24
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =sub_8190860
- str r1, [r0]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r5, 0xC]
- eors r0, r7
- strh r0, [r1, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r1, [r0, 0x34]
- b _08191A24
- .pool
-_081919E0:
- mov r2, r10
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191A24
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =sub_8190A48
- str r1, [r0]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r5, 0xC]
- eors r0, r7
- strh r0, [r1, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
-_08191A24:
- adds r6, 0x1
- cmp r6, 0x7
- ble _08191972
- movs r6, 0x8
- ldr r2, =gUnknown_0203CD78
- mov r12, r2
- ldr r3, =gSprites
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r5, r0, r1
- movs r4, 0
- adds r7, r3, 0
- adds r7, 0x1C
-_08191A42:
- cmp r6, 0x9
- bgt _08191AA8
- mov r1, r12
- ldr r0, [r1]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191AE8
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_8190860
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r5, 0xC]
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r1, [r0, 0x34]
- b _08191AE8
- .pool
-_08191AA8:
- mov r2, r12
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191AE8
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_8190A48
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r5, 0xC]
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
-_08191AE8:
- adds r6, 0x1
- cmp r6, 0xF
- ble _08191A42
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r3, =gTasks
- adds r0, r3
- movs r2, 0
- movs r1, 0x6
- b _08191FE8
- .pool
-_08191B08:
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r4, =gTasks
- adds r0, r4
- movs r5, 0xC
- ldrsh r2, [r0, r5]
- cmp r2, 0
- beq _08191B48
- ldr r0, =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG0_Y
- strh r1, [r0]
- ldr r2, =gBattle_BG1_X
- movs r6, 0xFF
- lsls r6, 8
- adds r0, r6, 0
- strh r0, [r2]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- b _08191B5E
- .pool
-_08191B48:
- ldr r1, =gBattle_BG0_X
- movs r3, 0xFF
- lsls r3, 8
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, =gBattle_BG0_Y
- strh r2, [r0]
- ldr r0, =gBattle_BG1_X
- strh r2, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r2, [r0]
-_08191B5E:
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- cmp r0, 0x1
- bne _08191B94
- ldr r1, =gBattle_BG2_X
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0xA0
- strh r0, [r1]
- b _08191B9E
- .pool
-_08191B94:
- ldr r0, =gBattle_BG2_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r1, [r0]
-_08191B9E:
- ldr r4, =gUnknown_0860D15C
- ldr r5, =gUnknown_0203CD78
- ldr r3, [r5]
- ldr r2, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- movs r6, 0xA
- ldrsh r1, [r0, r6]
- lsls r1, 2
- subs r1, 0x1
- ldrb r3, [r3, 0x10]
- adds r1, r3
- adds r1, r4
- mov r4, r9
- add r4, r8
- lsls r4, 3
- adds r4, r2
- ldrb r2, [r4, 0xC]
- movs r0, 0x2
- orrs r0, r2
- ldrb r1, [r1]
- bl sub_819314C
- movs r6, 0
- ldr r7, =gSprites
- mov r12, r6
- mov r10, r5
- adds r5, r7, 0
- adds r5, 0x1C
-_08191BDC:
- cmp r6, 0x1
- bgt _08191C50
- mov r1, r10
- ldr r0, [r1]
- adds r3, r0, r6
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _08191C96
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, =sub_81908CC
- str r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r4, 0xC]
- movs r2, 0x1
- eors r1, r2
- strh r1, [r0, 0x2E]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- mov r2, r12
- strh r2, [r0, 0x30]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r6, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r1, [r0, 0x34]
- b _08191C96
- .pool
-_08191C50:
- mov r3, r10
- ldr r0, [r3]
- adds r3, r0, r6
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _08191C96
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, =sub_8190AC4
- str r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r4, 0xC]
- movs r2, 0x1
- eors r1, r2
- strh r1, [r0, 0x2E]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- mov r1, r12
- strh r1, [r0, 0x30]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r6, [r0, 0x32]
-_08191C96:
- adds r6, 0x1
- cmp r6, 0x7
- ble _08191BDC
- movs r6, 0x8
- ldr r2, =gUnknown_0203CD78
- mov r12, r2
- ldr r3, =gSprites
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r5, r0, r1
- movs r4, 0
- adds r7, r3, 0
- adds r7, 0x1C
-_08191CB4:
- cmp r6, 0x9
- bgt _08191D1C
- mov r1, r12
- ldr r0, [r1]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191D5C
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_81908CC
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r5, 0xC]
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r1, [r0, 0x34]
- b _08191D5C
- .pool
-_08191D1C:
- mov r2, r12
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191D5C
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_8190AC4
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r5, 0xC]
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
-_08191D5C:
- adds r6, 0x1
- cmp r6, 0xF
- ble _08191CB4
- b _08191FDA
- .pool
-_08191D68:
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r4, =gTasks
- adds r0, r4
- movs r5, 0xC
- ldrsh r2, [r0, r5]
- cmp r2, 0
- beq _08191DA8
- ldr r0, =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG0_Y
- strh r1, [r0]
- ldr r2, =gBattle_BG1_X
- movs r6, 0xFF
- lsls r6, 8
- adds r0, r6, 0
- strh r0, [r2]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- b _08191DBE
- .pool
-_08191DA8:
- ldr r1, =gBattle_BG0_X
- movs r3, 0xFF
- lsls r3, 8
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, =gBattle_BG0_Y
- strh r2, [r0]
- ldr r0, =gBattle_BG1_X
- strh r2, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r2, [r0]
-_08191DBE:
- ldr r0, =gUnknown_0203CD78
- ldr r2, [r0]
- ldrb r0, [r2, 0x10]
- cmp r0, 0x2
- bne _08191E10
- ldr r1, =gBattle_BG2_X
- movs r4, 0x80
- lsls r4, 1
- adds r0, r4, 0
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xC]
- movs r0, 0x2
- orrs r0, r1
- ldrb r1, [r2, 0x12]
- bl sub_81924E0
- b _08191E44
- .pool
-_08191E10:
- ldr r1, =gBattle_BG2_X
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r5, 0xA
- ldrsh r0, [r0, r5]
- adds r2, r0, 0
- subs r2, 0x10
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xC]
- movs r0, 0x2
- orrs r0, r1
- lsls r1, r2, 24
- lsrs r1, 24
- bl sub_819314C
-_08191E44:
- movs r6, 0
- ldr r0, =gUnknown_0203CD78
- mov r10, r0
- ldr r3, =gSprites
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- mov r12, r6
- adds r4, r3, 0
- adds r4, 0x1C
- movs r7, 0x1
-_08191E5E:
- cmp r6, 0x1
- bgt _08191ECC
- mov r2, r10
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191F10
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =sub_81908CC
- str r1, [r0]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r5, 0xC]
- eors r0, r7
- strh r0, [r1, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r1, [r0, 0x34]
- b _08191F10
- .pool
-_08191ECC:
- mov r2, r10
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191F10
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =sub_8190AC4
- str r1, [r0]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r5, 0xC]
- eors r0, r7
- strh r0, [r1, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
-_08191F10:
- adds r6, 0x1
- cmp r6, 0x7
- ble _08191E5E
- movs r6, 0x8
- ldr r2, =gUnknown_0203CD78
- mov r12, r2
- ldr r3, =gSprites
- ldr r1, =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r5, r0, r1
- movs r4, 0
- adds r7, r3, 0
- adds r7, 0x1C
-_08191F2E:
- cmp r6, 0x9
- bgt _08191F94
- mov r1, r12
- ldr r0, [r1]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191FD4
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_81908CC
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r5, 0xC]
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r1, [r0, 0x34]
- b _08191FD4
- .pool
-_08191F94:
- mov r2, r12
- ldr r0, [r2]
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _08191FD4
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, =sub_8190AC4
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r5, 0xC]
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r6, [r0, 0x32]
-_08191FD4:
- adds r6, 0x1
- cmp r6, 0xF
- ble _08191F2E
-_08191FDA:
- mov r0, r9
- add r0, r8
- lsls r0, 3
- ldr r3, =gTasks
- adds r0, r3
- movs r2, 0
- movs r1, 0x7
-_08191FE8:
- strh r1, [r0, 0x8]
- strh r2, [r0, 0x12]
- b _08192202
- .pool
-_08191FF8:
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- ldr r5, =gTasks
- adds r1, r0, r5
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x29
- beq _08192100
- ldr r1, =gBattle_BG0_Y
- ldrh r0, [r1]
- subs r0, 0x4
- strh r0, [r1]
- ldr r1, =gBattle_BG1_Y
- ldrh r0, [r1]
- subs r0, 0x4
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- b _081920A4
- .pool
-_08192038:
- mov r6, r8
- lsls r0, r6, 2
- add r0, r8
- lsls r0, 3
- ldr r2, =gTasks
- adds r1, r0, r2
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x29
- beq _08192100
- ldr r1, =gBattle_BG0_Y
- ldrh r0, [r1]
- adds r0, 0x4
- strh r0, [r1]
- ldr r1, =gBattle_BG1_Y
- ldrh r0, [r1]
- adds r0, 0x4
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- b _081920E8
- .pool
-_08192078:
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- ldr r4, =gTasks
- adds r1, r0, r4
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x41
- beq _08192100
- ldr r1, =gBattle_BG0_X
- ldrh r0, [r1]
- subs r0, 0x4
- strh r0, [r1]
- ldr r1, =gBattle_BG1_X
- ldrh r0, [r1]
- subs r0, 0x4
- strh r0, [r1]
- ldr r1, =gBattle_BG2_X
-_081920A4:
- ldrh r0, [r1]
- subs r0, 0x4
- strh r0, [r1]
- b _08192202
- .pool
-_081920BC:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- ldr r6, =gTasks
- adds r1, r0, r6
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x41
- beq _08192100
- ldr r1, =gBattle_BG0_X
- ldrh r0, [r1]
- adds r0, 0x4
- strh r0, [r1]
- ldr r1, =gBattle_BG1_X
- ldrh r0, [r1]
- adds r0, 0x4
- strh r0, [r1]
- ldr r1, =gBattle_BG2_X
-_081920E8:
- ldrh r0, [r1]
- adds r0, 0x4
- strh r0, [r1]
- b _08192202
- .pool
-_08192100:
- movs r0, 0x2
- strh r0, [r1, 0x8]
- b _08192202
-_08192106:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08192202
- movs r6, 0
- ldr r4, =gUnknown_0203CD78
-_08192116:
- cmp r6, 0x1
- bgt _08192134
- ldr r0, [r4]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0819214E
- bl sub_818D8F0
- b _0819214E
- .pool
-_08192134:
- ldr r0, [r4]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0819214E
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl sub_80D2EF8
-_0819214E:
- adds r6, 0x1
- cmp r6, 0x7
- ble _08192116
- movs r6, 0x8
- ldr r4, =gUnknown_0203CD78
-_08192158:
- cmp r6, 0x9
- bgt _08192174
- ldr r0, [r4]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0819218E
- bl sub_818D8F0
- b _0819218E
- .pool
-_08192174:
- ldr r0, [r4]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0819218E
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl sub_80D2EF8
-_0819218E:
- adds r6, 0x1
- cmp r6, 0xF
- ble _08192158
- bl FreeMonIconPalettes
- ldr r4, =gUnknown_0203CD78
- ldr r0, [r4]
- bl Free
- movs r5, 0
- str r5, [r4]
- bl FreeAllWindowBuffers
- mov r0, r9
- cmp r0, 0
- bne _081921C4
- ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- b _081921FC
- .pool
-_081921C4:
- ldr r0, =sub_8194220
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- strh r5, [r1, 0xA]
- movs r0, 0x3
- strh r0, [r1, 0xC]
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0x10]
- strh r0, [r1, 0xE]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0x14]
- strh r0, [r1, 0x10]
-_081921FC:
- mov r0, r8
- bl DestroyTask
-_08192202:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8190CD4
-
- thumb_func_start sub_819221C
-sub_819221C: @ 819221C
- 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
- movs r7, 0
- ldr r2, =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r2
- mov r12, r0
- movs r1, 0x10
- ldrsh r6, [r0, r1]
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r2
- movs r3, 0xA
- ldrsh r5, [r0, r3]
- ldr r0, =gUnknown_0860D080
- adds r0, r5, r0
- ldrb r0, [r0]
- mov r10, r0
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- mov r8, r0
- ldr r1, =gMain
- ldrh r4, [r1, 0x2E]
- movs r0, 0x3
- ands r0, r4
- adds r2, r1, 0
- cmp r0, 0
- beq _0819226E
- movs r7, 0x9
-_0819226E:
- mov r3, r12
- movs r1, 0xE
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _0819227A
- b _081924CC
-_0819227A:
- cmp r0, 0x1
- beq _08192280
- b _081923B0
-_08192280:
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- beq _081922BA
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- bne _081922BA
- cmp r5, 0
- bne _081922B4
- movs r5, 0xF
- b _081922B6
- .pool
-_081922B4:
- subs r5, 0x1
-_081922B6:
- movs r7, 0x1
- b _08192360
-_081922BA:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081922E2
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- bne _081922E2
- cmp r5, 0xF
- bne _081922DC
- movs r5, 0
- b _081922DE
- .pool
-_081922DC:
- adds r5, 0x1
-_081922DE:
- movs r7, 0x2
- b _08192360
-_081922E2:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08192304
- ldr r0, =gUnknown_0203CD78
- ldr r1, [r0]
- ldrb r0, [r1, 0x10]
- cmp r0, 0
- beq _08192304
- subs r0, 0x1
- strb r0, [r1, 0x10]
- movs r7, 0x3
- b _08192360
- .pool
-_08192304:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08192360
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- mov r3, r10
- lsls r1, r3, 2
- adds r0, r1
- ldr r2, =0x00000d25
- adds r0, r2
- ldrb r3, [r0]
- lsls r0, r3, 29
- mov r12, r1
- cmp r0, 0
- bge _0819233C
- ldr r0, =gUnknown_0203CD78
- ldr r2, [r0]
- ldrb r4, [r2, 0x10]
- subs r1, r4, 0x1
- lsls r0, r3, 27
- lsrs r0, 30
- cmp r1, r0
- bge _0819233C
- adds r0, r4, 0x1
- strb r0, [r2, 0x10]
- movs r7, 0x4
-_0819233C:
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- add r0, r12
- ldr r1, =0x00000d25
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08192360
- ldr r0, =gUnknown_0203CD78
- ldr r3, [r0]
- ldrb r1, [r3, 0x10]
- subs r0, r1, 0x1
- cmp r0, r8
- bge _08192360
- adds r0, r1, 0x1
- strb r0, [r3, 0x10]
- movs r7, 0x4
-_08192360:
- cmp r7, 0x9
- beq _08192366
- b _081924A0
-_08192366:
- ldr r0, =gUnknown_0203CD78
- ldr r3, [r0]
- ldrb r0, [r3, 0x10]
- cmp r0, 0
- beq _081923A0
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- ldr r2, =gTasks
- adds r1, r2
- ldr r2, =gUnknown_0860D1A0
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r0, 1
- lsls r0, 2
- subs r0, 0x1
- ldrb r3, [r3, 0x10]
- adds r0, r3
- b _08192482
- .pool
-_081923A0:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r3, =gTasks
- adds r0, r3
- b _0819249E
- .pool
-_081923B0:
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- beq _081923DE
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- cmp r0, 0x1
- bne _081923DE
- cmp r5, 0x10
- bne _081923D8
- ldr r0, =gUnknown_0860D19C
- add r0, r8
- ldrb r5, [r0]
- b _081923DA
- .pool
-_081923D8:
- subs r5, 0x1
-_081923DA:
- movs r7, 0x5
- b _08192446
-_081923DE:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0819240E
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- cmp r0, 0x1
- bne _0819240E
- ldr r0, =gUnknown_0860D19C
- add r0, r8
- ldrb r0, [r0]
- cmp r5, r0
- bne _08192408
- movs r5, 0x10
- b _0819240A
- .pool
-_08192408:
- adds r5, 0x1
-_0819240A:
- movs r7, 0x6
- b _08192446
-_0819240E:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0819242C
- ldr r0, =gUnknown_0203CD78
- ldr r1, [r0]
- ldrb r0, [r1, 0x10]
- cmp r0, 0
- beq _0819242C
- movs r7, 0x7
- subs r0, 0x1
- b _08192444
- .pool
-_0819242C:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08192446
- ldr r0, =gUnknown_0203CD78
- ldr r1, [r0]
- ldrb r0, [r1, 0x10]
- cmp r0, 0x1
- bhi _08192446
- movs r7, 0x8
- adds r0, 0x1
-_08192444:
- strb r0, [r1, 0x10]
-_08192446:
- cmp r7, 0x9
- bne _081924A0
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- cmp r1, 0
- bne _08192470
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- ldr r2, =gTasks
- adds r1, r2
- ldr r2, =gUnknown_0860D1C0
- ldrb r0, [r0, 0x11]
- b _08192482
- .pool
-_08192470:
- cmp r1, 0x2
- bne _08192494
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- ldr r3, =gTasks
- adds r1, r3
- ldr r2, =gUnknown_0860D1C0
- ldrb r0, [r0, 0x12]
-_08192482:
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1, 0xA]
- b _081924A0
- .pool
-_08192494:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
-_0819249E:
- strh r5, [r0, 0xA]
-_081924A0:
- cmp r7, 0
- beq _081924CC
- cmp r7, 0x9
- beq _081924CC
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0xA]
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xC]
- movs r2, 0x1
- eors r1, r2
- strh r1, [r0, 0xC]
-_081924CC:
- adds r0, r7, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_819221C
-
- thumb_func_start sub_81924E0
-sub_81924E0: @ 81924E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x58
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x20]
- movs r5, 0
- movs r0, 0
- str r0, [sp, 0x28]
- movs r1, 0
- str r1, [sp, 0x2C]
- movs r2, 0
- str r2, [sp, 0x30]
- movs r4, 0
- movs r0, 0x24
- bl AllocZeroed
- mov r8, r0
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r3, [sp, 0x20]
- lsls r0, r3, 2
- adds r0, r1, r0
- ldr r2, =0x00000d24
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- str r0, [sp, 0x24]
- movs r0, 0x1
- ldr r3, [sp, 0x1C]
- ands r0, r3
- cmp r0, 0
- beq _08192538
- movs r5, 0x8
- movs r4, 0x9
- str r4, [sp, 0x28]
- movs r4, 0x2
-_08192538:
- movs r0, 0x2
- ldr r2, [sp, 0x1C]
- ands r0, r2
- cmp r0, 0
- beq _08192548
- movs r3, 0x80
- lsls r3, 1
- str r3, [sp, 0x2C]
-_08192548:
- movs r0, 0x4
- ldr r2, [sp, 0x1C]
- ands r0, r2
- cmp r0, 0
- beq _08192556
- movs r3, 0xA0
- str r3, [sp, 0x30]
-_08192556:
- movs r0, 0x8
- ldr r2, [sp, 0x1C]
- ands r0, r2
- cmp r0, 0
- beq _08192564
- ldr r3, =0xffffff00
- str r3, [sp, 0x2C]
-_08192564:
- movs r0, 0x10
- ldr r2, [sp, 0x1C]
- ands r0, r2
- cmp r0, 0
- beq _08192574
- movs r3, 0xA0
- negs r3, r3
- str r3, [sp, 0x30]
-_08192574:
- ldr r0, =0x000003ff
- ldr r2, [sp, 0x24]
- cmp r2, r0
- bne _08192598
- ldrb r0, [r1, 0x8]
- bl PlayerGenderToFrontTrainerPicId
- lsls r0, 16
- lsrs r0, 16
- b _081925B6
- .pool
-_08192598:
- ldr r0, =0x000003fe
- ldr r3, [sp, 0x24]
- cmp r3, r0
- bne _081925AC
- bl sub_8195910
- b _081925B2
- .pool
-_081925AC:
- ldr r0, [sp, 0x24]
- bl GetFrontierTrainerFrontSpriteId
-_081925B2:
- lsls r0, 24
- lsrs r0, 24
-_081925B6:
- ldr r2, [sp, 0x2C]
- adds r2, 0x30
- ldr r3, [sp, 0x30]
- adds r3, 0x40
- adds r1, r4, 0
- adds r1, 0xC
- str r1, [sp]
- ldr r1, =0x0000ffff
- str r1, [sp, 0x4]
- movs r1, 0x1
- bl sub_818D8AC
- ldr r1, =gUnknown_0203CD78
- ldr r1, [r1]
- adds r1, r5
- strb r0, [r1]
- movs r0, 0x1E
- ldr r4, [sp, 0x1C]
- ands r0, r4
- cmp r0, 0
- beq _081925FC
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_081925FC:
- movs r7, 0
- ldr r0, [sp, 0x20]
- lsls r0, 1
- str r0, [sp, 0x3C]
- adds r1, r5, 0x2
- ldr r2, [sp, 0x28]
- lsls r2, 24
- str r2, [sp, 0x44]
- ldr r3, [sp, 0x28]
- adds r3, 0x4
- str r3, [sp, 0x40]
- ldr r4, [sp, 0x20]
- adds r0, r4
- ldr r6, =gUnknown_0203CD78
- ldr r2, =gSprites
- mov r10, r2
- adds r4, r1, 0
- lsls r5, r0, 1
- movs r3, 0
- mov r9, r3
-_08192624:
- ldr r0, =0x000003ff
- ldr r1, [sp, 0x24]
- cmp r1, r0
- bne _08192660
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000d64
- adds r0, r2
- adds r0, r5
- ldrh r0, [r0]
- ldr r1, =gUnknown_0860D340
- adds r1, r7, r1
- ldrb r2, [r1]
- ldr r3, [sp, 0x2C]
- orrs r2, r3
- b _081926B0
- .pool
-_08192660:
- ldr r0, =0x000003fe
- ldr r3, [sp, 0x24]
- cmp r3, r0
- bne _08192690
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000d64
- adds r0, r1
- adds r0, r5
- ldrh r0, [r0]
- ldr r1, =gUnknown_0860D340
- adds r1, r7, r1
- ldrb r2, [r1]
- ldr r3, [sp, 0x2C]
- orrs r2, r3
- b _081926B0
- .pool
-_08192690:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r3, =0x00000d64
- adds r0, r3
- adds r0, r5
- ldrh r1, [r0]
- ldr r0, =gUnknown_0203BC8C
- ldr r0, [r0]
- lsls r1, 4
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =gUnknown_0860D340
- adds r1, r7, r1
- ldrb r2, [r1]
- ldr r1, [sp, 0x2C]
- orrs r2, r1
-_081926B0:
- ldr r1, =gUnknown_0860D343
- adds r1, r7, r1
- ldrb r3, [r1]
- ldr r1, [sp, 0x30]
- adds r3, r1
- mov r1, r9
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x1
- str r1, [sp, 0x8]
- ldr r1, =sub_8190938
- bl CreateMonIcon
- ldr r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrb r1, [r0, 0x5]
- movs r2, 0xD
- negs r2, r2
- ands r1, r2
- strb r1, [r0, 0x5]
- movs r0, 0x1E
- ldr r3, [sp, 0x1C]
- ands r0, r3
- cmp r0, 0
- beq _0819270A
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0819270A:
- adds r4, 0x1
- adds r5, 0x2
- adds r7, 0x1
- cmp r7, 0x2
- ble _08192624
- add r0, sp, 0xC
- movs r2, 0
- movs r3, 0x2
- strb r3, [r0, 0x5]
- strb r2, [r0, 0x6]
- strb r2, [r0, 0x7]
- adds r1, r0, 0
- adds r0, r2, 0
- strb r0, [r1, 0x8]
- adds r0, r1, 0
- ldrb r0, [r0, 0x7]
- strb r0, [r1, 0x9]
- adds r0, r1, 0
- strb r3, [r0, 0xA]
- strb r2, [r0, 0xB]
- adds r3, r0, 0
- ldrb r2, [r3, 0xC]
- movs r1, 0x10
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0xC]
- adds r2, r3, 0
- movs r0, 0xE0
- strb r0, [r2, 0xC]
- ldrb r0, [r2, 0xD]
- ands r1, r0
- strb r1, [r2, 0xD]
- adds r1, r2, 0
- movs r0, 0xD0
- strb r0, [r1, 0xD]
- movs r7, 0
- ldr r0, =0x000003ff
- ldr r4, [sp, 0x24]
- cmp r4, r0
- bne _08192784
- ldr r0, =gFacilityClassToTrainerClass
- adds r0, 0x3C
- ldrb r5, [r0]
- b _081927A2
- .pool
-_08192784:
- ldr r0, =0x000003fe
- ldr r1, [sp, 0x24]
- cmp r1, r0
- bne _08192798
- bl sub_8195924
- b _0819279E
- .pool
-_08192798:
- ldr r0, [sp, 0x24]
- bl GetFrontierOpponentClass
-_0819279E:
- lsls r0, 24
- lsrs r5, r0, 24
-_081927A2:
- ldr r2, =gTrainerClassNames
- movs r0, 0xD
- adds r1, r5, 0
- muls r1, r0
- adds r0, r7, r1
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _081927CA
- ldr r3, =gStringVar1
- adds r0, r1, r2
- adds r2, r7, r0
-_081927BA:
- adds r0, r7, r3
- ldrb r1, [r2]
- strb r1, [r0]
- adds r2, 0x1
- adds r7, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _081927BA
-_081927CA:
- ldr r5, =gStringVar1
- adds r1, r7, r5
- movs r0, 0
- strb r0, [r1]
- adds r0, r7, 0x1
- adds r0, r5
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, =0x000003ff
- ldr r2, [sp, 0x24]
- cmp r2, r0
- bne _08192800
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringAppend
- b _08192836
- .pool
-_08192800:
- ldr r0, =0x000003fe
- ldr r3, [sp, 0x24]
- cmp r3, r0
- bne _08192824
- ldr r4, =gStringVar2
- adds r0, r4, 0
- bl sub_8195938
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
- b _08192836
- .pool
-_08192824:
- ldr r4, =gStringVar2
- ldr r1, [sp, 0x24]
- adds r0, r4, 0
- bl sub_8195898
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
-_08192836:
- add r0, sp, 0xC
- ldrb r0, [r0, 0x5]
- ldr r4, =gStringVar1
- add r1, sp, 0xC
- ldrb r3, [r1, 0xA]
- adds r1, r4, 0
- movs r2, 0xD0
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- add r1, sp, 0xC
- movs r5, 0
- strb r0, [r1, 0x8]
- str r4, [sp, 0xC]
- adds r0, r1, 0
- add r4, sp, 0x28
- ldrb r4, [r4]
- strb r4, [r0, 0x4]
- ldr r0, [sp, 0x44]
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add r0, sp, 0xC
- movs r1, 0
- movs r2, 0
- bl AddTextPrinter
- add r0, sp, 0xC
- strb r5, [r0, 0xA]
- movs r7, 0
- adds r6, r0, 0
- ldr r1, [sp, 0x3C]
- ldr r2, [sp, 0x20]
- adds r0, r1, r2
- lsls r0, 1
- mov r9, r0
- movs r3, 0xB
- mov r10, r3
-_0819288A:
- ldr r0, =gUnknown_0860D346
- adds r0, r7, r0
- ldrb r0, [r0]
- strb r0, [r6, 0x9]
- ldr r0, =0x000003ff
- ldr r4, [sp, 0x24]
- cmp r4, r0
- bne _081928C0
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- lsls r0, r7, 1
- add r0, r9
- ldr r2, =0x00000d64
- adds r1, r2
- b _081928FA
- .pool
-_081928C0:
- ldr r0, =0x000003fe
- ldr r4, [sp, 0x24]
- cmp r4, r0
- bne _081928E4
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- lsls r0, r7, 1
- add r0, r9
- ldr r2, =0x00000d64
- adds r1, r2
- b _081928FA
- .pool
-_081928E4:
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- lsls r0, r7, 1
- add r0, r9
- ldr r2, =0x00000d64
- adds r1, r2
- adds r1, r0
- ldrh r1, [r1]
- ldr r0, =gUnknown_0203BC8C
- ldr r0, [r0]
- lsls r1, 4
-_081928FA:
- adds r1, r0
- ldrh r0, [r1]
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- ldr r1, =gSpeciesNames
- adds r0, r1
- str r0, [sp, 0xC]
- adds r0, r7, 0x1
- ldr r4, [sp, 0x28]
- adds r0, r4
- movs r1, 0
- strb r0, [r6, 0x4]
- cmp r7, 0x1
- bne _08192930
- movs r0, 0x7
- strb r0, [r6, 0x8]
- b _08192932
- .pool
-_08192930:
- strb r1, [r6, 0x8]
-_08192932:
- adds r5, r7, 0x1
- ldr r0, [sp, 0x28]
- adds r4, r5, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add r0, sp, 0xC
- movs r1, 0
- movs r2, 0
- bl AddTextPrinter
- adds r7, r5, 0
- cmp r7, 0x2
- ble _0819288A
- ldr r4, [sp, 0x40]
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, =0x000003fe
- ldr r1, [sp, 0x24]
- cmp r1, r0
- bne _08192980
- ldr r0, =gBattleDomePotentialPointers
- ldr r0, [r0, 0x40]
- b _0819298A
- .pool
-_08192980:
- ldr r0, =gBattleDomePotentialPointers
- ldr r2, [sp, 0x20]
- lsls r1, r2, 2
- adds r1, r0
- ldr r0, [r1]
-_0819298A:
- str r0, [sp, 0xC]
- add r1, sp, 0xC
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x5]
- adds r0, r1, 0
- add r3, sp, 0x40
- ldrb r3, [r3]
- strb r3, [r0, 0x4]
- strb r2, [r0, 0x8]
- movs r1, 0x4
- strb r1, [r0, 0x7]
- strb r1, [r0, 0x9]
- movs r1, 0
- bl AddTextPrinter
- movs r7, 0
- ldr r3, =gUnknown_0860B358
-_081929AE:
- movs r5, 0
- adds r4, r7, 0x1
- str r4, [sp, 0x38]
- lsls r0, r7, 1
- str r0, [sp, 0x34]
- lsls r2, r7, 4
-_081929BA:
- movs r6, 0
- lsls r1, r5, 1
- mov r10, r1
- mov r4, r8
- mov r9, r2
-_081929C4:
- ldr r0, =0x000003fe
- ldr r1, [sp, 0x24]
- cmp r1, r0
- bne _08192A00
- lsls r0, r7, 24
- lsls r1, r5, 24
- lsrs r0, 24
- lsrs r1, 24
- str r2, [sp, 0x48]
- str r3, [sp, 0x4C]
- bl sub_81A5060
- lsls r0, 16
- lsrs r0, 12
- adds r0, r6, r0
- ldr r3, [sp, 0x4C]
- adds r0, r3
- ldrh r1, [r4]
- ldrb r0, [r0]
- adds r1, r0
- strh r1, [r4]
- ldr r2, [sp, 0x48]
- b _08192A58
- .pool
-_08192A00:
- ldr r0, =0x000003ff
- ldr r1, [sp, 0x24]
- cmp r1, r0
- bne _08192A20
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000efc
- adds r0, r1
- add r0, r9
- b _08192A48
- .pool
-_08192A20:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- mov r12, r0
- ldr r0, [sp, 0x3C]
- ldr r1, [sp, 0x20]
- adds r0, r1
- str r0, [sp, 0x50]
- lsls r0, 1
- ldr r1, [sp, 0x34]
- adds r0, r1, r0
- ldr r1, =0x00000d64
- add r1, r12
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =gUnknown_0203BC8C
- ldr r1, [r1]
- lsls r0, 4
- adds r0, r1
- adds r0, 0x2
- add r0, r10
-_08192A48:
- ldrh r0, [r0]
- lsls r0, 4
- adds r0, r6, r0
- adds r0, r3
- ldrh r1, [r4]
- ldrb r0, [r0]
- adds r1, r0
- strh r1, [r4]
-_08192A58:
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0xF
- ble _081929C4
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _081929BA
- ldr r7, [sp, 0x38]
- cmp r7, 0x2
- ble _081929AE
- movs r7, 0
- ldr r2, =gBattleDomeOpponentStylePointers
- mov r9, r2
- ldr r3, =gUnknown_0860C988
- mov r10, r3
-_08192A78:
- movs r4, 0
- movs r6, 0
- movs r5, 0
- mov r3, r8
- lsls r0, r7, 4
- mov r1, r10
- adds r2, r0, r1
-_08192A86:
- ldrb r0, [r2]
- cmp r0, 0
- beq _08192A9E
- adds r4, 0x1
- movs r1, 0
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08192A9E
- ldrb r1, [r2]
- cmp r0, r1
- blt _08192A9E
- adds r6, 0x1
-_08192A9E:
- adds r3, 0x2
- adds r2, 0x1
- adds r5, 0x1
- cmp r5, 0xF
- ble _08192A86
- cmp r4, r6
- beq _08192AB2
- adds r7, 0x1
- cmp r7, 0x1E
- bls _08192A78
-_08192AB2:
- lsls r0, r7, 2
- add r0, r9
- ldr r0, [r0]
- str r0, [sp, 0xC]
- add r0, sp, 0xC
- movs r1, 0x14
- strb r1, [r0, 0x7]
- strb r1, [r0, 0x9]
- movs r1, 0
- movs r2, 0
- bl AddTextPrinter
- movs r1, 0
- mov r0, r8
- adds r0, 0x22
-_08192AD0:
- strh r1, [r0]
- subs r0, 0x2
- cmp r0, r8
- bge _08192AD0
- ldr r2, [sp, 0x24]
- ldr r3, =0xfffffc02
- adds r0, r2, r3
- cmp r0, 0x1
- bls _08192AE4
- b _08192C24
-_08192AE4:
- movs r7, 0
- movs r4, 0
- mov r9, r4
-_08192AEA:
- movs r5, 0
- mov r4, r8
- mov r6, r9
-_08192AF0:
- ldr r0, =0x000003fe
- ldr r1, [sp, 0x24]
- cmp r1, r0
- bne _08192B24
- lsls r1, r5, 24
- lsrs r1, 24
- lsrs r0, r6, 24
- bl sub_81A50F0
- lsls r0, 24
- lsrs r0, 24
- b _08192B34
- .pool
-_08192B24:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r7, 4
- adds r1, r5, r1
- ldr r2, =0x00000f04
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
-_08192B34:
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x5
- ble _08192AF0
- mov r3, r8
- ldrh r0, [r3]
- ldrh r4, [r3, 0xC]
- adds r0, r4
- strh r0, [r3, 0xC]
- movs r5, 0
- mov r4, r8
-_08192B4C:
- ldr r0, =0x000003fe
- ldr r1, [sp, 0x24]
- cmp r1, r0
- bne _08192B70
- mov r2, r9
- lsrs r0, r2, 24
- bl sub_81A50B0
- lsls r0, 24
- lsrs r2, r0, 24
- b _08192B7E
- .pool
-_08192B70:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r7, 4
- adds r0, r1
- ldr r3, =0x00000f0a
- adds r0, r3
- ldrb r2, [r0]
-_08192B7E:
- ldr r1, =gNatureStatTable
- lsls r0, r2, 2
- adds r0, r2
- adds r0, r5, r0
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _08192BB4
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r0, 0x6E
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- ldrh r1, [r4, 0xE]
- adds r1, r0
- strh r1, [r4, 0xE]
- b _08192BDC
- .pool
-_08192BB4:
- cmp r0, 0
- bge _08192BD4
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r0, 0x5A
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- ldrh r1, [r4, 0xE]
- adds r1, r0
- strh r1, [r4, 0xE]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- b _08192BDC
-_08192BD4:
- ldrh r0, [r4, 0x2]
- ldrh r3, [r4, 0xE]
- adds r0, r3
- strh r0, [r4, 0xE]
-_08192BDC:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x4
- ble _08192B4C
- movs r4, 0x80
- lsls r4, 17
- add r9, r4
- adds r7, 0x1
- cmp r7, 0x2
- bgt _08192BF2
- b _08192AEA
-_08192BF2:
- movs r5, 0
- mov r1, r8
- movs r7, 0x5
-_08192BF8:
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- adds r5, r0
- adds r1, 0x2
- subs r7, 0x1
- cmp r7, 0
- bge _08192BF8
- movs r6, 0x64
- mov r4, r8
- movs r7, 0x5
-_08192C0C:
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- muls r0, r6
- adds r1, r5, 0
- bl __divsi3
- strh r0, [r4]
- adds r4, 0x2
- subs r7, 0x1
- cmp r7, 0
- bge _08192C0C
- b _08192D70
-_08192C24:
- ldr r4, =gUnknown_0203BC8C
- mov r10, r4
- ldr r1, [sp, 0x3C]
- ldr r2, [sp, 0x20]
- adds r0, r1, r2
- lsls r0, 1
- mov r9, r0
- movs r7, 0x2
-_08192C34:
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- ldr r4, =0x00000d64
- adds r0, r4
- add r0, r9
- ldrh r0, [r0]
- mov r2, r10
- ldr r1, [r2]
- lsls r0, 4
- adds r0, r1
- ldrb r2, [r0, 0xB]
- movs r6, 0
- movs r4, 0
- movs r3, 0x1
- mov r1, r8
- movs r5, 0x5
-_08192C54:
- strh r4, [r1]
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _08192C60
- adds r6, 0x1
-_08192C60:
- asrs r2, 1
- adds r1, 0x2
- subs r5, 0x1
- cmp r5, 0
- bge _08192C54
- movs r0, 0xFF
- lsls r0, 1
- adds r1, r6, 0
- bl __divsi3
- adds r6, r0, 0
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- ldr r4, =0x00000d64
- adds r0, r4
- add r0, r9
- ldrh r0, [r0]
- mov r2, r10
- ldr r1, [r2]
- lsls r0, 4
- adds r0, r1
- ldrb r2, [r0, 0xB]
- movs r3, 0x1
- mov r1, r8
- movs r5, 0x5
-_08192C92:
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _08192C9C
- strh r6, [r1]
-_08192C9C:
- asrs r2, 1
- adds r1, 0x2
- subs r5, 0x1
- cmp r5, 0
- bge _08192C92
- mov r3, r8
- ldrh r0, [r3]
- ldrh r4, [r3, 0xC]
- adds r0, r4
- strh r0, [r3, 0xC]
- movs r5, 0
- mov r4, r8
-_08192CB4:
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000d64
- adds r0, r2
- add r0, r9
- ldrh r0, [r0]
- mov r3, r10
- ldr r1, [r3]
- lsls r0, 4
- adds r0, r1
- ldrb r2, [r0, 0xC]
- lsls r0, r2, 2
- adds r0, r2
- adds r0, r5, r0
- ldr r1, =gNatureStatTable
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _08192D04
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r0, 0x6E
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- ldrh r1, [r4, 0xE]
- adds r1, r0
- strh r1, [r4, 0xE]
- b _08192D2C
- .pool
-_08192D04:
- cmp r0, 0
- bge _08192D24
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- movs r0, 0x5A
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- ldrh r1, [r4, 0xE]
- adds r1, r0
- strh r1, [r4, 0xE]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- b _08192D2C
-_08192D24:
- ldrh r0, [r4, 0x2]
- ldrh r1, [r4, 0xE]
- adds r0, r1
- strh r0, [r4, 0xE]
-_08192D2C:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x4
- ble _08192CB4
- movs r2, 0x2
- add r9, r2
- subs r7, 0x1
- cmp r7, 0
- blt _08192D40
- b _08192C34
-_08192D40:
- movs r5, 0
- mov r1, r8
- movs r7, 0x5
-_08192D46:
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- adds r5, r0
- adds r1, 0x2
- subs r7, 0x1
- cmp r7, 0
- bge _08192D46
- movs r6, 0x64
- mov r4, r8
- movs r7, 0x5
-_08192D5A:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- muls r0, r6
- adds r1, r5, 0
- bl __divsi3
- strh r0, [r4]
- adds r4, 0x2
- subs r7, 0x1
- cmp r7, 0
- bge _08192D5A
-_08192D70:
- movs r7, 0
- movs r5, 0
- movs r6, 0
- mov r4, r8
- mov r10, r8
- mov r9, r8
-_08192D7C:
- movs r2, 0
- ldrsh r1, [r4, r2]
- cmp r1, 0x1D
- ble _08192DDE
- cmp r7, 0x2
- bne _08192DD4
- mov r3, r8
- movs r0, 0xC
- ldrsh r3, [r3, r0]
- mov r12, r3
- cmp r12, r1
- bge _08192DC6
- mov r2, r8
- ldrh r2, [r2, 0xE]
- add r3, sp, 0x54
- strh r2, [r3]
- mov r2, r8
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, r1
- bge _08192DBA
- cmp r12, r0
- bge _08192DB4
- add r0, sp, 0x54
- ldrh r0, [r0]
- strh r0, [r2, 0xC]
- strh r6, [r2, 0xE]
- b _08192DDE
-_08192DB4:
- mov r1, r8
- strh r6, [r1, 0xE]
- b _08192DDE
-_08192DBA:
- add r2, sp, 0x54
- ldrh r3, [r2]
- mov r2, r8
- strh r3, [r2, 0xC]
- strh r6, [r2, 0xE]
- b _08192DDE
-_08192DC6:
- mov r3, r8
- movs r2, 0xE
- ldrsh r0, [r3, r2]
- cmp r0, r1
- bge _08192DDE
- strh r6, [r3, 0xE]
- b _08192DDE
-_08192DD4:
- mov r3, r9
- strh r6, [r3, 0xC]
- movs r0, 0x2
- add r9, r0
- adds r7, 0x1
-_08192DDE:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08192E64
- cmp r5, 0x2
- bne _08192E5A
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bgt _08192E18
- cmp r0, 0x1
- bne _08192E64
- mov r3, r8
- movs r1, 0x10
- ldrsh r0, [r3, r1]
- lsls r0, 1
- add r0, r8
- movs r2, 0x18
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _08192E22
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 1
- add r0, r8
- movs r2, 0x18
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _08192E22
-_08192E18:
- mov r3, r8
- ldrh r0, [r3, 0x12]
- strh r0, [r3, 0x10]
- strh r6, [r3, 0x12]
- b _08192E64
-_08192E22:
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08192E64
- mov r2, r8
- movs r3, 0x10
- ldrsh r0, [r2, r3]
- lsls r0, 1
- add r0, r8
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08192E44
- ldrh r0, [r2, 0x12]
- strh r0, [r2, 0x10]
- strh r6, [r2, 0x12]
- b _08192E64
-_08192E44:
- mov r2, r8
- movs r3, 0x12
- ldrsh r0, [r2, r3]
- lsls r0, 1
- add r0, r8
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08192E64
- strh r6, [r2, 0x12]
- b _08192E64
-_08192E5A:
- mov r2, r10
- strh r6, [r2, 0x10]
- movs r3, 0x2
- add r10, r3
- adds r5, 0x1
-_08192E64:
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x5
- ble _08192D7C
- cmp r7, 0x2
- bne _08192E8C
- ldr r0, =gUnknown_0860D349
- mov r4, r8
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- adds r0, r2, r0
- movs r3, 0xE
- ldrsh r1, [r4, r3]
- subs r1, 0x1
- subs r1, r2
- ldrb r0, [r0]
- adds r7, r1, r0
- b _08192ED2
- .pool
-_08192E8C:
- cmp r7, 0x1
- bne _08192E9C
- mov r4, r8
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- adds r7, r0, 0
- adds r7, 0xF
- b _08192ED2
-_08192E9C:
- cmp r5, 0x2
- bne _08192EC0
- ldr r0, =gUnknown_0860D349
- mov r3, r8
- movs r4, 0x10
- ldrsh r2, [r3, r4]
- adds r0, r2, r0
- movs r4, 0x12
- ldrsh r1, [r3, r4]
- subs r1, 0x1
- subs r1, r2
- ldrb r0, [r0]
- adds r1, r0
- adds r7, r1, 0
- adds r7, 0x15
- b _08192ED2
- .pool
-_08192EC0:
- cmp r5, 0x1
- bne _08192ED0
- mov r1, r8
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- adds r7, r0, 0
- adds r7, 0x24
- b _08192ED2
-_08192ED0:
- movs r7, 0x2A
-_08192ED2:
- lsls r0, r7, 2
- ldr r3, =gBattleDomeOpponentStatsPointers
- adds r0, r3
- ldr r0, [r0]
- str r0, [sp, 0xC]
- add r0, sp, 0xC
- movs r1, 0x24
- strb r1, [r0, 0x7]
- strb r1, [r0, 0x9]
- movs r1, 0
- movs r2, 0
- bl AddTextPrinter
- mov r0, r8
- bl Free
- add sp, 0x58
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81924E0
-
- thumb_func_start sub_8192F08
-sub_8192F08: @ 8192F08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- str r1, [sp]
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- str r0, [sp, 0x4]
- mov r8, r0
- ldr r2, =gUnknown_0860D3C4
- lsls r0, r7, 1
- adds r0, r7
- adds r1, r0, r2
- ldrb r6, [r1]
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r6, r0
- adds r3, r2, 0
- cmp r6, r0
- bge _08192FD4
- ldr r5, =gSaveBlock2Ptr
- ldr r1, =0x000003ff
- mov r10, r1
- ldr r2, =0x000003fe
- mov r9, r2
-_08192F42:
- ldr r0, =gUnknown_0860D3B4
- adds r0, r6, r0
- ldrb r4, [r0]
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, r1
- ldr r2, =0x00000d25
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08192FBE
- ldr r0, [sp]
- add r0, r8
- strb r4, [r0]
- ldr r2, [r5]
- adds r0, r2, r1
- ldr r1, =0x00000d24
- adds r0, r1
- ldrh r0, [r0]
- lsls r1, r0, 22
- lsrs r0, r1, 22
- cmp r0, r10
- bne _08192F9C
- ldr r0, =gStringVar1
- adds r1, r2, 0
- bl StringCopy
- b _08192FB8
- .pool
-_08192F9C:
- lsrs r0, r1, 22
- cmp r0, r9
- bne _08192FB0
- ldr r0, =gStringVar1
- bl sub_8195938
- b _08192FB8
- .pool
-_08192FB0:
- lsrs r1, 22
- ldr r0, =gStringVar1
- bl sub_8195898
-_08192FB8:
- movs r2, 0x1
- add r8, r2
- ldr r3, =gUnknown_0860D3C4
-_08192FBE:
- adds r6, 0x1
- lsls r1, r7, 1
- adds r1, r7
- adds r0, r1, r3
- ldrb r2, [r0]
- adds r0, r3, 0x1
- adds r1, r0
- ldrb r0, [r1]
- adds r2, r0
- cmp r6, r2
- blt _08192F42
-_08192FD4:
- mov r5, r8
- cmp r5, 0x2
- bne _08192FE8
- movs r0, 0
- b _0819313C
- .pool
-_08192FE8:
- mov r12, r3
- lsls r3, r7, 1
- adds r0, r3, r7
- mov r2, r12
- adds r1, r0, r2
- ldrb r6, [r1]
- mov r1, r12
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r6, r0
- str r3, [sp, 0x8]
- cmp r6, r0
- blt _08193006
- b _08193126
-_08193006:
- ldr r5, =gSaveBlock2Ptr
- mov r10, r5
- ldr r0, =0x00000d25
- mov r9, r0
-_0819300E:
- ldr r0, =gUnknown_0860D3B4
- adds r0, r6, r0
- ldrb r4, [r0]
- mov r1, r10
- ldr r0, [r1]
- lsls r2, r4, 2
- str r2, [sp, 0xC]
- adds r0, r2
- add r0, r9
- ldrb r2, [r0]
- lsls r0, r2, 29
- cmp r0, 0
- bge _08193100
- lsls r2, 27
- adds r1, r3, r7
- mov r0, r12
- adds r0, 0x2
- adds r1, r0
- lsrs r2, 30
- ldrb r1, [r1]
- cmp r2, r1
- bcc _08193100
- ldr r0, [sp]
- add r0, r8
- strb r4, [r0]
- movs r5, 0x1
- add r8, r5
- mov r0, r10
- ldr r3, [r0]
- ldr r5, [sp, 0xC]
- adds r2, r3, r5
- adds r0, r2, 0
- add r0, r9
- ldrb r5, [r0]
- mov r12, r5
- mov r0, r12
- lsls r0, 27
- lsrs r0, 30
- cmp r0, r1
- bne _081930BC
- lsls r4, 1
- movs r1, 0xEC
- lsls r1, 4
- adds r0, r3, r1
- adds r0, r4
- ldrh r1, [r0]
- movs r0, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- ldr r0, =gStringVar2
- bl StringCopy
- mov r2, r10
- ldr r1, [r2]
- ldr r5, [sp, 0xC]
- adds r0, r1, r5
- add r0, r9
- ldrb r0, [r0]
- lsls r2, r0, 24
- lsrs r0, r2, 29
- lsls r0, 1
- str r0, [sp, 0x4]
- movs r0, 0xEC
- lsls r0, 4
- adds r1, r0
- adds r1, r4
- ldrh r0, [r1]
- cmp r0, 0
- bne _08193100
- lsrs r0, r2, 29
- cmp r0, 0
- bne _08193100
- movs r1, 0x4
- str r1, [sp, 0x4]
- b _08193100
- .pool
-_081930BC:
- ldr r5, =0x00000d24
- adds r0, r2, r5
- ldrh r0, [r0]
- lsls r1, r0, 22
- ldr r0, =0xffc00000
- cmp r1, r0
- bne _081930E0
- ldr r0, =gStringVar1
- adds r1, r3, 0
- bl StringCopy
- b _08193100
- .pool
-_081930E0:
- ldr r0, =0xff800000
- cmp r1, r0
- bne _081930F8
- ldr r0, =gStringVar1
- bl sub_8195938
- b _08193100
- .pool
-_081930F8:
- lsrs r1, 22
- ldr r0, =gStringVar1
- bl sub_8195898
-_08193100:
- mov r0, r8
- cmp r0, 0x2
- beq _08193126
- adds r6, 0x1
- ldr r1, =gUnknown_0860D3C4
- mov r12, r1
- ldr r3, [sp, 0x8]
- adds r1, r3, r7
- mov r2, r12
- adds r0, r1, r2
- ldrb r2, [r0]
- mov r0, r12
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- adds r2, r0
- cmp r6, r2
- bge _08193126
- b _0819300E
-_08193126:
- cmp r7, 0xE
- beq _08193138
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- b _0819313C
- .pool
-_08193138:
- ldr r0, [sp, 0x4]
- adds r0, 0x2
-_0819313C:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8192F08
-
- thumb_func_start sub_819314C
-sub_819314C: @ 819314C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x80
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x34]
- lsls r1, 24
- lsrs r6, r1, 24
- movs r0, 0
- str r0, [sp, 0x3C]
- movs r7, 0
- movs r1, 0
- str r1, [sp, 0x40]
- movs r2, 0
- str r2, [sp, 0x44]
- mov r9, r2
- movs r0, 0x1
- ldr r3, [sp, 0x34]
- ands r0, r3
- cmp r0, 0
- beq _08193186
- movs r7, 0x8
- str r7, [sp, 0x3C]
- movs r7, 0x9
- movs r0, 0x2
- mov r9, r0
-_08193186:
- movs r0, 0x2
- ldr r1, [sp, 0x34]
- ands r0, r1
- cmp r0, 0
- beq _08193196
- movs r2, 0x80
- lsls r2, 1
- str r2, [sp, 0x40]
-_08193196:
- movs r0, 0x4
- ldr r3, [sp, 0x34]
- ands r0, r3
- cmp r0, 0
- beq _081931A4
- movs r0, 0xA0
- str r0, [sp, 0x44]
-_081931A4:
- movs r0, 0x8
- ldr r1, [sp, 0x34]
- ands r0, r1
- cmp r0, 0
- beq _081931B2
- ldr r2, =0xffffff00
- str r2, [sp, 0x40]
-_081931B2:
- movs r0, 0x10
- ldr r3, [sp, 0x34]
- ands r0, r3
- cmp r0, 0
- beq _081931C2
- movs r0, 0xA0
- negs r0, r0
- str r0, [sp, 0x44]
-_081931C2:
- ldr r4, =gUnknown_0203CD78
- ldr r1, [r4]
- adds r1, 0x11
- adds r0, r6, 0
- bl sub_8192F08
- str r0, [sp, 0x38]
- movs r5, 0
- mov r1, sp
- adds r1, 0x1C
- str r1, [sp, 0x48]
- mov r2, sp
- adds r2, 0x24
- str r2, [sp, 0x4C]
- lsls r1, r6, 1
- mov r3, sp
- adds r3, 0x2C
- str r3, [sp, 0x50]
- ldr r0, [sp, 0x40]
- adds r0, 0x30
- mov r8, r0
- ldr r2, [sp, 0x44]
- adds r2, 0x58
- str r2, [sp, 0x78]
- movs r3, 0xC
- add r3, r9
- mov r10, r3
- ldr r0, [sp, 0x40]
- adds r0, 0xC0
- str r0, [sp, 0x7C]
- mov r2, r9
- adds r2, 0xD
- str r2, [sp, 0x74]
- ldr r3, [sp, 0x3C]
- adds r3, 0x1
- mov r9, r3
- ldr r0, [sp, 0x3C]
- adds r0, 0x2
- str r0, [sp, 0x54]
- ldr r2, [sp, 0x3C]
- adds r2, 0x5
- str r2, [sp, 0x5C]
- adds r3, r7, 0
- adds r3, 0x8
- str r3, [sp, 0x6C]
- adds r0, r7, 0x6
- str r0, [sp, 0x64]
- adds r2, r7, 0x7
- str r2, [sp, 0x68]
- lsls r3, r6, 2
- str r3, [sp, 0x58]
- adds r0, r7, 0x5
- str r0, [sp, 0x60]
- ldr r0, [r4]
- adds r0, 0x11
- mov r12, r0
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- ldr r0, =gUnknown_0860D3C6
- movs r3, 0
- adds r1, r6
- adds r1, r0
- ldrb r6, [r1]
-_08193240:
- ldr r1, [sp, 0x48]
- adds r2, r3, r1
- mov r7, r12
- adds r0, r7, r5
- ldrb r0, [r0]
- str r0, [r2]
- ldr r7, [sp, 0x4C]
- adds r1, r3, r7
- lsls r0, 2
- adds r0, r4, r0
- ldr r7, =0x00000d24
- adds r0, r7
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- str r0, [r1]
- ldr r0, [r2]
- lsls r0, 2
- adds r0, r4, r0
- ldr r1, =0x00000d25
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 27
- lsrs r0, 30
- cmp r0, r6
- bhi _0819329C
- lsls r0, r1, 29
- cmp r0, 0
- bge _0819329C
- ldr r2, [sp, 0x50]
- adds r1, r3, r2
- movs r0, 0x1
- b _081932A2
- .pool
-_0819329C:
- ldr r7, [sp, 0x50]
- adds r1, r3, r7
- movs r0, 0
-_081932A2:
- str r0, [r1]
- adds r3, 0x4
- adds r5, 0x1
- cmp r5, 0x1
- ble _08193240
- ldr r1, [sp, 0x24]
- ldr r0, =0x000003ff
- cmp r1, r0
- bne _081932D4
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- bl PlayerGenderToFrontTrainerPicId
- lsls r0, 16
- lsrs r0, 16
- mov r2, r8
- ldr r3, [sp, 0x78]
- mov r1, r10
- str r1, [sp]
- b _081932F8
- .pool
-_081932D4:
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _081932E4
- bl sub_8195910
- b _081932EC
- .pool
-_081932E4:
- lsls r0, r1, 16
- lsrs r0, 16
- bl GetFrontierTrainerFrontSpriteId
-_081932EC:
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- ldr r3, [sp, 0x78]
- mov r7, r10
- str r7, [sp]
-_081932F8:
- ldr r1, =0x0000ffff
- str r1, [sp, 0x4]
- movs r1, 0x1
- bl sub_818D8AC
- ldr r1, =gUnknown_0203CD78
- ldr r1, [r1]
- ldr r2, [sp, 0x3C]
- adds r1, r2
- strb r0, [r1]
- movs r0, 0x1E
- ldr r3, [sp, 0x34]
- ands r0, r3
- cmp r0, 0
- beq _08193334
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldr r7, [sp, 0x3C]
- adds r0, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08193334:
- ldr r0, [sp, 0x2C]
- cmp r0, 0
- beq _0819335A
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- ldr r1, [sp, 0x3C]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x5]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x30
- orrs r1, r2
- strb r1, [r0, 0x5]
-_0819335A:
- ldr r2, [sp, 0x4C]
- ldr r1, [r2, 0x4]
- ldr r0, =0x000003ff
- cmp r1, r0
- bne _08193388
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- bl PlayerGenderToFrontTrainerPicId
- lsls r0, 16
- lsrs r0, 16
- b _081933B0
- .pool
-_08193388:
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _081933A4
- bl sub_8195910
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x7C]
- ldr r3, [sp, 0x78]
- ldr r1, [sp, 0x74]
- str r1, [sp]
- b _081933B8
- .pool
-_081933A4:
- lsls r0, r1, 16
- lsrs r0, 16
- bl GetFrontierTrainerFrontSpriteId
- lsls r0, 24
- lsrs r0, 24
-_081933B0:
- ldr r2, [sp, 0x7C]
- ldr r3, [sp, 0x78]
- ldr r7, [sp, 0x74]
- str r7, [sp]
-_081933B8:
- ldr r1, =0x0000ffff
- str r1, [sp, 0x4]
- movs r1, 0x1
- bl sub_818D8AC
- ldr r1, =gUnknown_0203CD78
- ldr r1, [r1]
- add r1, r9
- strb r0, [r1]
- movs r0, 0x1E
- ldr r1, [sp, 0x34]
- ands r0, r1
- cmp r0, 0
- beq _081933F0
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_081933F0:
- ldr r2, [sp, 0x50]
- ldr r0, [r2, 0x4]
- cmp r0, 0
- beq _08193416
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x5]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x30
- orrs r1, r2
- strb r1, [r0, 0x5]
-_08193416:
- movs r5, 0
- ldr r3, [sp, 0x38]
- lsls r3, 2
- str r3, [sp, 0x70]
- mov r8, r5
- ldr r6, =gUnknown_0203CD78
- ldr r7, =gSprites
- ldr r4, [sp, 0x54]
- mov r9, r5
- movs r0, 0x1
- mov r10, r0
-_0819342C:
- ldr r1, [sp, 0x24]
- ldr r0, =0x000003ff
- cmp r1, r0
- bne _08193464
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- add r0, r9
- ldr r1, =0x00000d64
- adds r2, r1
- adds r2, r0
- ldrh r0, [r2]
- b _081934B0
- .pool
-_08193464:
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _08193490
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- add r0, r9
- ldr r1, =0x00000d64
- adds r2, r1
- adds r2, r0
- ldrh r0, [r2]
- b _081934B0
- .pool
-_08193490:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- add r0, r9
- ldr r1, =0x00000d64
- adds r2, r1
- adds r2, r0
- ldrh r1, [r2]
- ldr r0, =gUnknown_0203BC8C
- ldr r0, [r0]
- lsls r1, 4
- adds r1, r0
- ldrh r0, [r1]
-_081934B0:
- ldr r1, =gUnknown_0860D3A8
- adds r1, r5, r1
- ldrb r2, [r1]
- ldr r3, [sp, 0x40]
- orrs r2, r3
- ldr r1, =gUnknown_0860D3AB
- adds r1, r5, r1
- ldrb r3, [r1]
- ldr r1, [sp, 0x44]
- adds r3, r1
- mov r1, r8
- str r1, [sp]
- str r1, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- ldr r1, =sub_8190938
- bl CreateMonIcon
- ldr r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- strb r1, [r0, 0x5]
- movs r0, 0x1E
- ldr r1, [sp, 0x34]
- ands r0, r1
- cmp r0, 0
- beq _08193516
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08193516:
- ldr r0, [sp, 0x2C]
- cmp r0, 0
- beq _08193548
- ldr r0, [r6]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- movs r2, 0x30
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- mov r2, r10
- strh r2, [r0, 0x34]
-_08193548:
- adds r4, 0x1
- movs r3, 0x2
- add r9, r3
- adds r5, 0x1
- cmp r5, 0x2
- bgt _08193556
- b _0819342C
-_08193556:
- movs r5, 0
- ldr r6, =gUnknown_0203CD78
- ldr r7, =gSprites
- mov r8, r7
- ldr r4, [sp, 0x5C]
- mov r9, r5
- movs r7, 0
-_08193564:
- ldr r0, [sp, 0x4C]
- ldr r1, [r0, 0x4]
- ldr r0, =0x000003ff
- cmp r1, r0
- bne _081935AC
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r3, [sp, 0x48]
- ldr r1, [r3, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- add r0, r9
- ldr r1, =0x00000d64
- adds r2, r1
- adds r2, r0
- ldrh r0, [r2]
- b _081935FA
- .pool
-_081935AC:
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _081935D8
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, [sp, 0x48]
- ldr r1, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- add r0, r9
- ldr r1, =0x00000d64
- adds r2, r1
- adds r2, r0
- ldrh r0, [r2]
- b _081935FA
- .pool
-_081935D8:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, [sp, 0x48]
- ldr r1, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- add r0, r9
- ldr r1, =0x00000d64
- adds r2, r1
- adds r2, r0
- ldrh r1, [r2]
- ldr r0, =gUnknown_0203BC8C
- ldr r0, [r0]
- lsls r1, 4
- adds r1, r0
- ldrh r0, [r1]
-_081935FA:
- ldr r1, =gUnknown_0860D3AE
- adds r1, r5, r1
- ldrb r2, [r1]
- ldr r3, [sp, 0x40]
- orrs r2, r3
- ldr r1, =gUnknown_0860D3B1
- adds r1, r5, r1
- ldrb r3, [r1]
- ldr r1, [sp, 0x44]
- adds r3, r1
- str r7, [sp]
- str r7, [sp, 0x4]
- movs r1, 0x1
- str r1, [sp, 0x8]
- ldr r1, =sub_8190938
- bl CreateMonIcon
- ldr r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r1, [r0, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- strb r1, [r0, 0x5]
- movs r0, 0x1E
- ldr r1, [sp, 0x34]
- ands r0, r1
- cmp r0, 0
- beq _0819365E
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0819365E:
- ldr r2, [sp, 0x50]
- ldr r0, [r2, 0x4]
- cmp r0, 0
- beq _08193692
- ldr r0, [r6]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- movs r2, 0x30
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- movs r1, 0x1
- strh r1, [r0, 0x34]
-_08193692:
- adds r4, 0x1
- movs r3, 0x2
- add r9, r3
- adds r5, 0x1
- cmp r5, 0x2
- bgt _081936A0
- b _08193564
-_081936A0:
- add r0, sp, 0xC
- movs r5, 0
- strb r5, [r0, 0x6]
- adds r1, r0, 0
- movs r0, 0x2
- strb r0, [r1, 0x7]
- adds r0, r1, 0
- ldrb r0, [r0, 0x6]
- strb r0, [r1, 0x8]
- adds r0, r1, 0
- ldrb r0, [r0, 0x7]
- strb r0, [r1, 0x9]
- adds r0, r1, 0
- strb r5, [r0, 0xA]
- strb r5, [r0, 0xB]
- adds r3, r0, 0
- ldrb r2, [r3, 0xC]
- movs r1, 0x10
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0xC]
- adds r2, r3, 0
- movs r0, 0xE0
- strb r0, [r2, 0xC]
- ldrb r0, [r2, 0xD]
- ands r1, r0
- strb r1, [r2, 0xD]
- adds r1, r2, 0
- movs r0, 0xD0
- strb r0, [r1, 0xD]
- ldr r4, =gStringVar4
- ldr r0, =gBattleDomeWinStringsPointers
- ldr r7, [sp, 0x70]
- adds r0, r7, r0
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringExpandPlaceholders
- str r4, [sp, 0xC]
- add r0, sp, 0xC
- add r1, sp, 0x6C
- ldrb r1, [r1]
- strb r1, [r0, 0x4]
- adds r1, r0, 0
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r4, [sp, 0x6C]
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add r0, sp, 0xC
- strb r5, [r0, 0x8]
- adds r1, r0, 0
- strb r5, [r0, 0x7]
- strb r5, [r1, 0x9]
- movs r1, 0
- movs r2, 0
- bl AddTextPrinter
- ldr r1, [sp, 0x24]
- ldr r0, =0x000003ff
- cmp r1, r0
- bne _0819375C
- ldr r0, =gStringVar1
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- bl StringCopy
- b _0819377E
- .pool
-_0819375C:
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _08193774
- ldr r0, =gStringVar1
- bl sub_8195938
- b _0819377E
- .pool
-_08193774:
- ldr r0, =gStringVar1
- lsls r1, 16
- lsrs r1, 16
- bl sub_8195898
-_0819377E:
- add r0, sp, 0xC
- movs r4, 0x2
- strb r4, [r0, 0x5]
- strb r4, [r0, 0xA]
- ldr r5, =gStringVar1
- str r5, [sp, 0xC]
- add r2, sp, 0x64
- ldrb r2, [r2]
- strb r2, [r0, 0x4]
- ldrb r0, [r0, 0x5]
- ldr r1, [sp, 0xC]
- add r2, sp, 0xC
- ldrb r3, [r2, 0xA]
- movs r2, 0x40
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- add r1, sp, 0xC
- strb r0, [r1, 0x8]
- adds r0, r1, 0
- strb r4, [r0, 0x7]
- strb r4, [r1, 0x9]
- ldr r4, [sp, 0x64]
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add r0, sp, 0xC
- movs r1, 0
- movs r2, 0
- bl AddTextPrinter
- ldr r3, [sp, 0x4C]
- ldr r1, [r3, 0x4]
- ldr r0, =0x000003ff
- cmp r1, r0
- bne _081937E4
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringCopy
- b _08193802
- .pool
-_081937E4:
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _081937F8
- adds r0, r5, 0
- bl sub_8195938
- b _08193802
- .pool
-_081937F8:
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_8195898
-_08193802:
- ldr r0, =gStringVar1
- str r0, [sp, 0xC]
- add r0, sp, 0xC
- movs r6, 0
- add r7, sp, 0x68
- ldrb r7, [r7]
- strb r7, [r0, 0x4]
- ldrb r0, [r0, 0x5]
- ldr r1, [sp, 0xC]
- add r2, sp, 0xC
- ldrb r3, [r2, 0xA]
- movs r2, 0x40
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- add r1, sp, 0xC
- strb r0, [r1, 0x8]
- adds r0, r1, 0
- movs r5, 0x2
- strb r5, [r0, 0x7]
- strb r5, [r1, 0x9]
- ldr r4, [sp, 0x68]
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add r0, sp, 0xC
- movs r1, 0
- movs r2, 0
- bl AddTextPrinter
- add r0, sp, 0xC
- strb r6, [r0, 0xA]
- ldr r0, =gBattleDomeMatchNumberPointers
- ldr r1, [sp, 0x58]
- adds r0, r1, r0
- ldr r0, [r0]
- str r0, [sp, 0xC]
- add r0, sp, 0xC
- add r2, sp, 0x60
- ldrb r2, [r2]
- strb r2, [r0, 0x4]
- ldrb r0, [r0, 0x5]
- ldr r1, [sp, 0xC]
- add r2, sp, 0xC
- ldrb r3, [r2, 0xA]
- movs r2, 0xA0
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- add r1, sp, 0xC
- strb r0, [r1, 0x8]
- adds r0, r1, 0
- strb r5, [r0, 0x7]
- strb r5, [r1, 0x9]
- ldr r4, [sp, 0x60]
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add r0, sp, 0xC
- movs r1, 0
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x80
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819314C
-
- thumb_func_start sub_81938A4
-sub_81938A4: @ 81938A4
- push {lr}
- ldr r0, =sub_8194220
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r2, [r1, 0xA]
- movs r0, 0x2
- strh r0, [r1, 0xC]
- strh r2, [r1, 0x10]
- ldr r0, =sub_8194B54
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81938A4
-
- thumb_func_start sub_81938E0
-sub_81938E0: @ 81938E0
- push {r4,lr}
- bl sub_8194D48
- ldr r4, =gSaveBlock2Ptr
- ldr r2, [r4]
- ldr r1, =0x00000d0a
- adds r0, r2, r1
- ldrb r1, [r0]
- subs r1, 0x1
- ldr r0, =0x00000ca9
- adds r2, r0
- movs r0, 0x3
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldr r0, [r4]
- ldr r1, =0x00000cb2
- adds r0, r1
- movs r4, 0
- movs r1, 0x3
- strh r1, [r0]
- ldr r0, =sub_8194220
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r4, [r1, 0xA]
- movs r0, 0x2
- strh r0, [r1, 0xC]
- movs r0, 0x1
- strh r0, [r1, 0x10]
- ldr r0, =sub_8194B54
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81938E0
-
- thumb_func_start sub_819395C
-sub_819395C: @ 819395C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0xA
- ldrsh r7, [r0, r2]
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x7
- bls _0819397E
- b _08193BC2
-_0819397E:
- lsls r0, 2
- ldr r1, =_08193990
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08193990:
- .4byte _081939B0
- .4byte _08193A00
- .4byte _08193A20
- .4byte _08193AA8
- .4byte _08193BC2
- .4byte _08193B20
- .4byte _08193BC2
- .4byte _08193B84
-_081939B0:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _081939C2
- b _08193BC2
-_081939C2:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- b _08193BC2
- .pool
-_08193A00:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08193A0E
- b _08193BC2
-_08193A0E:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x8]
- b _08193BC2
- .pool
-_08193A20:
- adds r0, r5, 0
- bl sub_8193BDC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08193A30
- b _08193BC2
-_08193A30:
- cmp r0, 0x1
- ble _08193A3C
- cmp r0, 0x2
- beq _08193A60
- cmp r0, 0x3
- beq _08193A84
-_08193A3C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x7
- strh r1, [r0, 0x8]
- b _08193BC2
- .pool
-_08193A60:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x8]
- b _08193BC2
- .pool
-_08193A84:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x5
- strh r1, [r0, 0x8]
- b _08193BC2
- .pool
-_08193AA8:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _08193ABA
- b _08193BC2
-_08193ABA:
- bl FreeAllWindowBuffers
- bl ScanlineEffect_Stop
- ldr r4, =gUnknown_0203CD7C
- ldr r0, [r4]
- bl Free
- str r6, [r4]
- ldr r0, =sub_8190400
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r2
- movs r3, 0
- strh r6, [r1, 0x8]
- ldr r0, =gUnknown_0860D080
- adds r0, r7, r0
- ldrb r0, [r0]
- strh r0, [r1, 0xA]
- movs r0, 0x1
- strh r0, [r1, 0xC]
- strh r5, [r1, 0xE]
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0x4
- strh r1, [r0, 0x8]
- ldr r0, =gUnknown_0203CD78
- ldr r0, [r0]
- strb r3, [r0, 0x10]
- b _08193BC2
- .pool
-_08193B20:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _08193BC2
- bl FreeAllWindowBuffers
- bl ScanlineEffect_Stop
- ldr r4, =gUnknown_0203CD7C
- ldr r0, [r4]
- bl Free
- str r6, [r4]
- ldr r0, =sub_8190400
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r2
- strh r6, [r0, 0x8]
- adds r1, r7, 0
- subs r1, 0x10
- strh r1, [r0, 0xA]
- movs r1, 0x2
- strh r1, [r0, 0xC]
- strh r5, [r0, 0xE]
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0x6
- strh r1, [r0, 0x8]
- b _08193BC2
- .pool
-_08193B84:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _08193BC2
- bl FreeAllWindowBuffers
- bl ScanlineEffect_Stop
- ldr r4, =gUnknown_0203CD7C
- ldr r0, [r4]
- bl Free
- str r6, [r4]
- ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x16]
- bl DestroyTask
- adds r0, r5, 0
- bl DestroyTask
-_08193BC2:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819395C
-
- thumb_func_start sub_8193BDC
-sub_8193BDC: @ 8193BDC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x1
- mov r9, r0
- movs r1, 0x4
- mov r8, r1
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA
- ldrsh r5, [r0, r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r6, [r0]
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- adds r2, r1, 0
- adds r3, r0, 0
- cmp r2, 0x2
- beq _08193C20
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- beq _08193C58
- cmp r5, 0x1F
- bne _08193C3C
-_08193C20:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- mov r9, r0
- b _08193CDE
- .pool
-_08193C3C:
- cmp r5, 0xF
- bgt _08193C4C
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x2
- mov r9, r1
- b _08193CDE
-_08193C4C:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x3
- mov r9, r0
- b _08193CDE
-_08193C58:
- cmp r2, 0x40
- bne _08193C78
- ldr r0, =gUnknown_0860CBF1
- lsls r1, r5, 2
- adds r1, r5
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08193C78
- movs r1, 0
- mov r8, r1
- b _08193CDE
- .pool
-_08193C78:
- ldrh r0, [r3, 0x2E]
- cmp r0, 0x80
- bne _08193C9C
- ldr r0, =gUnknown_0860CBF1
- lsls r1, r5, 2
- adds r1, r5
- adds r1, r6
- lsls r1, 2
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08193C9C
- movs r0, 0x1
- b _08193CDC
- .pool
-_08193C9C:
- ldrh r0, [r3, 0x2E]
- cmp r0, 0x20
- bne _08193CC0
- ldr r0, =gUnknown_0860CBF1
- lsls r1, r5, 2
- adds r1, r5
- adds r1, r6
- lsls r1, 2
- adds r0, 0x2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08193CC0
- movs r1, 0x2
- mov r8, r1
- b _08193CDE
- .pool
-_08193CC0:
- ldrh r0, [r3, 0x2E]
- cmp r0, 0x10
- bne _08193CDE
- ldr r0, =gUnknown_0860CBF1
- lsls r1, r5, 2
- adds r1, r5
- adds r1, r6
- lsls r1, 2
- adds r0, 0x3
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08193CDE
- movs r0, 0x3
-_08193CDC:
- mov r8, r0
-_08193CDE:
- mov r1, r8
- cmp r1, 0x4
- beq _08193D26
- movs r0, 0x5
- bl PlaySE
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- movs r1, 0
- bl StartSpriteAnim
- ldr r2, =gUnknown_0860CBF1
- lsls r1, r6, 2
- add r1, r8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 2
- adds r1, r0
- adds r1, r2
- ldrb r5, [r1]
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0xA]
-_08193D26:
- mov r0, r9
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8193BDC
-
- thumb_func_start sub_8193D40
-sub_8193D40: @ 8193D40
- push {lr}
- ldr r0, =sub_8194220
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- movs r0, 0x1
- strh r0, [r1, 0xA]
- movs r0, 0x2
- strh r0, [r1, 0xC]
- strh r2, [r1, 0x10]
- ldr r0, =sub_8194B54
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8193D40
-
- thumb_func_start sub_8193D7C
-sub_8193D7C: @ 8193D7C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, =gSpecialVar_0x8005
- ldrh r0, [r7]
- cmp r0, 0x1
- bne _08193E10
- ldr r5, =gTrainerBattleOpponent_A
- ldrh r0, [r5]
- bl sub_8195358
- ldr r4, =gSaveBlock2Ptr
- ldr r2, [r4]
- lsls r0, 2
- adds r2, r0
- ldr r6, =0x00000d25
- adds r2, r6
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5]
- bl sub_8195358
- ldr r1, [r4]
- lsls r0, 2
- adds r0, r1, r0
- ldr r2, =0x00000cb2
- mov r8, r2
- add r1, r8
- adds r0, r6
- movs r3, 0x3
- ldrb r2, [r1]
- ands r2, r3
- lsls r2, 3
- ldrb r3, [r0]
- movs r1, 0x19
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0]
- ldrh r0, [r5]
- bl sub_8195358
- ldr r2, [r4]
- lsls r0, 1
- movs r3, 0xEC
- lsls r3, 4
- adds r1, r2, r3
- adds r1, r0
- ldr r0, =gBattleResults
- ldrh r0, [r0, 0x22]
- strh r0, [r1]
- add r2, r8
- ldrh r0, [r2]
- cmp r0, 0x2
- bhi _08193EAE
- lsls r0, 24
- lsrs r0, 24
- bl sub_8195438
- b _08193EAE
- .pool
-_08193E10:
- ldr r5, =0x000003ff
- adds r0, r5, 0
- bl sub_8195358
- ldr r4, =gSaveBlock2Ptr
- ldr r2, [r4]
- lsls r0, 2
- adds r2, r0
- ldr r6, =0x00000d25
- adds r2, r6
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- bl sub_8195358
- ldr r1, [r4]
- lsls r0, 2
- adds r0, r1, r0
- ldr r2, =0x00000cb2
- adds r1, r2
- adds r0, r6
- movs r3, 0x3
- ldrb r2, [r1]
- ands r2, r3
- lsls r2, 3
- ldrb r3, [r0]
- movs r1, 0x19
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl sub_8195358
- ldr r1, [r4]
- lsls r0, 1
- movs r3, 0xEC
- lsls r3, 4
- adds r1, r3
- adds r1, r0
- ldr r0, =gBattleResults
- ldrh r0, [r0, 0x24]
- strh r0, [r1]
- ldr r0, =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x9
- beq _08193E78
- ldrh r0, [r7]
- cmp r0, 0x9
- bne _08193E92
-_08193E78:
- adds r0, r5, 0
- bl sub_8195358
- ldr r2, [r4]
- lsls r0, 2
- adds r2, r0
- adds r2, r6
- ldrb r1, [r2]
- movs r0, 0x1F
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
-_08193E92:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r4, [r0]
- cmp r4, 0x3
- bgt _08193EAE
-_08193EA0:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8195438
- adds r4, 0x1
- cmp r4, 0x3
- ble _08193EA0
-_08193EAE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8193D7C
-
- thumb_func_start sub_8193ED0
-sub_8193ED0: @ 8193ED0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x84
- str r0, [sp, 0x48]
- str r1, [sp, 0x4C]
- lsls r4, r2, 24
- lsrs r4, 24
- movs r0, 0
- str r0, [sp, 0x54]
- movs r1, 0
- str r1, [sp, 0x58]
- bl sub_8165C40
- movs r2, 0
- str r2, [sp, 0x50]
- add r3, sp, 0x30
- mov r10, r3
- ldr r5, [sp, 0x4C]
- lsls r5, 1
- str r5, [sp, 0x70]
- subs r4, 0x1
- str r4, [sp, 0x78]
-_08193F02:
- movs r0, 0
- mov r9, r0
- ldr r1, [sp, 0x50]
- lsls r1, 2
- str r1, [sp, 0x74]
- ldr r2, [sp, 0x48]
- lsls r2, 2
- str r2, [sp, 0x6C]
- ldr r3, [sp, 0x50]
- adds r3, 0x1
- str r3, [sp, 0x60]
-_08193F18:
- ldr r4, [sp, 0x74]
- add r4, r9
- lsls r0, r4, 2
- mov r5, sp
- adds r1, r5, r0
- movs r0, 0
- str r0, [r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r1, [sp, 0x6C]
- adds r0, r3, r1
- ldr r2, =0x00000d24
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 22
- ldr r1, =0xff800000
- cmp r0, r1
- bne _08193F60
- ldr r3, [sp, 0x50]
- lsls r0, r3, 24
- mov r5, r9
- lsls r1, r5, 24
- lsrs r1, 24
- lsrs r0, 24
- bl sub_81A5060
- lsls r1, r4, 1
- add r1, r10
- strh r0, [r1]
- b _08193F8C
- .pool
-_08193F60:
- lsls r2, r4, 1
- add r2, r10
- ldr r1, [sp, 0x48]
- lsls r0, r1, 1
- adds r0, r1
- ldr r4, [sp, 0x50]
- adds r0, r4
- lsls r0, 1
- ldr r5, =0x00000d64
- adds r1, r3, r5
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =gUnknown_0203BC8C
- ldr r1, [r1]
- lsls r0, 4
- adds r0, r1
- mov r3, r9
- lsls r1, r3, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
-_08193F8C:
- ldr r0, =gBattleMoves
- ldr r1, [sp, 0x74]
- add r1, r9
- lsls r1, 1
- add r1, r10
- ldrh r2, [r1]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r6, [r1, 0x1]
- cmp r6, 0
- bne _08193FB8
- movs r6, 0x28
- b _08193FD0
- .pool
-_08193FB8:
- cmp r6, 0x1
- bne _08193FC0
- movs r6, 0x3C
- b _08193FD0
-_08193FC0:
- adds r1, r2, 0
- cmp r1, 0x78
- beq _08193FCA
- cmp r1, 0x99
- bne _08193FD0
-_08193FCA:
- lsrs r0, r6, 31
- adds r0, r6, r0
- asrs r6, r0, 1
-_08193FD0:
- movs r1, 0
- mov r4, r9
- adds r4, 0x1
- str r4, [sp, 0x64]
- ldr r5, [sp, 0x70]
- ldr r2, [sp, 0x4C]
- adds r0, r5, r2
- lsls r0, 1
- str r0, [sp, 0x5C]
-_08193FE2:
- lsls r7, r1, 1
- adds r1, 0x1
- str r1, [sp, 0x68]
- ldr r3, [sp, 0x5C]
- adds r3, r7
- mov r8, r3
-_08193FEE:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r5, r4, 16
- lsls r0, 16
- orrs r5, r0
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r4, =0x00000d64
- adds r0, r4
- add r0, r8
- ldrh r4, [r0]
- ldr r3, =gUnknown_0203BC8C
- ldr r0, [r3]
- lsls r4, 4
- adds r4, r0
- adds r0, r5, 0
- str r2, [sp, 0x7C]
- str r3, [sp, 0x80]
- bl GetNatureFromPersonality
- ldrb r1, [r4, 0xC]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x7C]
- ldr r3, [sp, 0x80]
- cmp r1, r0
- bne _08193FEE
- ldr r0, [r2]
- ldr r2, [sp, 0x5C]
- adds r1, r7, r2
- ldr r4, =0x00000d64
- adds r0, r4
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, [r3]
- lsls r0, 4
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x1
- ands r5, r0
- cmp r5, 0
- beq _08194068
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r5, =gBaseStats
- adds r0, r5
- ldrb r2, [r0, 0x17]
- b _08194074
- .pool
-_08194068:
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r2, =gBaseStats
- adds r0, r2
- ldrb r2, [r0, 0x16]
-_08194074:
- ldr r4, [sp, 0x74]
- add r4, r9
- lsls r0, r4, 1
- add r0, r10
- ldrh r0, [r0]
- bl AI_TypeCalc
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x6
- ands r0, r5
- cmp r0, 0x6
- bne _0819409C
- lsls r0, r4, 2
- mov r3, sp
- adds r1, r3, r0
- b _081940D8
- .pool
-_0819409C:
- movs r0, 0x29
- ands r0, r5
- cmp r0, 0
- bne _081940DE
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _081940B6
- lsls r0, r4, 2
- mov r5, sp
- adds r2, r5, r0
- lsls r1, r6, 1
- b _081940CA
-_081940B6:
- movs r0, 0x4
- ands r5, r0
- cmp r5, 0
- beq _081940D2
- lsls r0, r4, 2
- mov r1, sp
- adds r2, r1, r0
- lsrs r1, r6, 31
- adds r1, r6, r1
- asrs r1, 1
-_081940CA:
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
- b _081940DE
-_081940D2:
- lsls r0, r4, 2
- mov r2, sp
- adds r1, r2, r0
-_081940D8:
- ldr r0, [r1]
- adds r0, r6
- str r0, [r1]
-_081940DE:
- ldr r1, [sp, 0x68]
- cmp r1, 0x2
- bgt _081940E6
- b _08193FE2
-_081940E6:
- ldr r2, [sp, 0x74]
- add r2, r9
- lsls r0, r2, 2
- add r0, sp
- ldr r1, [r0]
- ldr r3, [sp, 0x54]
- cmp r3, r1
- bge _08194104
- lsls r0, r2, 16
- lsrs r0, 16
- str r0, [sp, 0x58]
- lsls r0, r1, 16
- lsrs r0, 16
- str r0, [sp, 0x54]
- b _08194122
-_08194104:
- ldr r4, [sp, 0x54]
- cmp r4, r1
- bne _08194122
- ldr r5, [sp, 0x58]
- lsls r0, r5, 1
- add r0, r10
- lsls r1, r2, 1
- add r1, r10
- ldrh r0, [r0]
- ldrh r1, [r1]
- cmp r0, r1
- bcs _08194122
- lsls r0, r2, 16
- lsrs r0, 16
- str r0, [sp, 0x58]
-_08194122:
- ldr r0, [sp, 0x64]
- mov r9, r0
- cmp r0, 0x3
- bgt _0819412C
- b _08193F18
-_0819412C:
- ldr r1, [sp, 0x60]
- str r1, [sp, 0x50]
- cmp r1, 0x2
- bgt _08194136
- b _08193F02
-_08194136:
- ldr r2, [sp, 0x58]
- mov r9, r2
- b _08194182
-_0819413C:
- movs r3, 0
- mov r9, r3
- movs r1, 0
- mov r4, r10
- mov r3, r10
- mov r2, sp
-_08194148:
- ldr r0, [r2]
- ldr r5, [sp, 0x54]
- cmp r5, r0
- bge _0819415A
- mov r9, r1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x54]
- b _08194170
-_0819415A:
- ldr r5, [sp, 0x54]
- cmp r5, r0
- bne _08194170
- mov r5, r9
- lsls r0, r5, 1
- adds r0, r4, r0
- ldrh r0, [r0]
- ldrh r5, [r3]
- cmp r0, r5
- bcs _08194170
- mov r9, r1
-_08194170:
- adds r3, 0x2
- adds r2, 0x4
- adds r1, 0x1
- cmp r1, 0xB
- ble _08194148
- ldr r0, [sp, 0x50]
- ldr r1, [sp, 0x78]
- cmp r0, r1
- beq _081941F4
-_08194182:
- movs r2, 0
- str r2, [sp, 0x50]
- mov r3, r9
- lsls r7, r3, 2
- ldr r4, [sp, 0x78]
- cmp r2, r4
- bge _081941CA
- lsls r0, r3, 1
- mov r5, r10
- adds r6, r5, r0
- ldr r0, [sp, 0x48]
- lsls r5, r0, 24
-_0819419A:
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- ldr r2, [sp, 0x50]
- lsls r1, r2, 24
- lsrs r1, 24
- lsrs r0, r5, 24
- bl sub_81953E8
- lsls r0, 24
- lsrs r0, 23
- movs r3, 0xEC
- lsls r3, 4
- adds r4, r3
- adds r4, r0
- ldrh r0, [r4]
- ldrh r4, [r6]
- cmp r0, r4
- beq _081941CA
- ldr r0, [sp, 0x50]
- adds r0, 0x1
- str r0, [sp, 0x50]
- ldr r1, [sp, 0x78]
- cmp r0, r1
- blt _0819419A
-_081941CA:
- ldr r2, [sp, 0x50]
- ldr r3, [sp, 0x78]
- cmp r2, r3
- beq _081941F4
- mov r4, sp
- adds r1, r4, r7
- movs r0, 0
- str r0, [r1]
- movs r5, 0
- str r5, [sp, 0x54]
- mov r9, r5
- mov r2, sp
- movs r1, 0xB
-_081941E4:
- ldm r2!, {r0}
- add r9, r0
- subs r1, 0x1
- cmp r1, 0
- bge _081941E4
- mov r0, r9
- cmp r0, 0
- bne _0819413C
-_081941F4:
- mov r1, r9
- lsls r0, r1, 2
- add r0, sp
- ldr r0, [r0]
- cmp r0, 0
- bne _08194204
- ldr r2, [sp, 0x58]
- mov r9, r2
-_08194204:
- mov r3, r9
- lsls r0, r3, 1
- add r0, r10
- ldrh r0, [r0]
- add sp, 0x84
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8193ED0
-
- thumb_func_start sub_8194220
-sub_8194220: @ 8194220
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r2, 0xA
- ldrsh r1, [r0, r2]
- mov r10, r1
- movs r3, 0xC
- ldrsh r4, [r0, r3]
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x5
- bls _08194250
- b _081948C2
-_08194250:
- lsls r0, 2
- ldr r1, =_08194264
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08194264:
- .4byte _0819427C
- .4byte _0819431C
- .4byte _0819438C
- .4byte _0819447C
- .4byte _081944FC
- .4byte _081947C8
-_0819427C:
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x3
- bl EnableInterrupts
- movs r4, 0
- str r4, [sp, 0x14]
- add r0, sp, 0x14
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, =0x05006000
- bl CpuSet
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_0860CE74
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r0, =gUnknown_0860CE94
- bl InitWindows
- bl DeactivateAllTextPrinters
- ldr r0, =gBattle_BG0_X
- strh r4, [r0]
- ldr r0, =gBattle_BG0_Y
- strh r4, [r0]
- ldr r0, =gBattle_BG1_X
- strh r4, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r4, [r0]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r1, 0xB0
- lsls r1, 4
- movs r0, 0x3
- movs r2, 0
- bl ChangeBgY
- ldr r1, =gTasks
- mov r2, r8
- lsls r0, r2, 2
- b _0819443C
- .pool
-_0819431C:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- ldr r1, =0x00005860
- movs r0, 0x40
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0x9F
- bl SetGpuReg
- ldr r1, =0x00009098
- movs r0, 0x42
- bl SetGpuReg
- movs r0, 0x46
- movs r1, 0x9F
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x3F
- bl SetGpuReg
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, =gTasks
- mov r3, r8
- lsls r0, r3, 2
- b _0819443C
- .pool
-_0819438C:
- ldr r4, =gUnknown_0203CD7C
- movs r0, 0x80
- lsls r0, 4
- bl AllocZeroed
- adds r1, r0, 0
- str r1, [r4]
- ldr r0, =gUnknown_08D83900
- bl LZDecompressWram
- ldr r1, [r4]
- movs r0, 0x1
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- ldr r1, =gUnknown_08D82F10
- movs r5, 0x80
- lsls r5, 6
- movs r6, 0
- str r6, [sp]
- movs r0, 0x1
- adds r2, r5, 0
- movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
- ldr r1, =gUnknown_08D834FC
- str r6, [sp]
- movs r0, 0x2
- adds r2, r5, 0
- movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
- ldr r1, =gUnknown_08D83B2C
- movs r4, 0x1
- str r4, [sp]
- movs r0, 0x2
- adds r2, r5, 0
- movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
- ldr r1, =gUnknown_08D83C3C
- str r4, [sp]
- movs r0, 0x3
- adds r2, r5, 0
- movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
- ldr r0, =gUnknown_08D85358
- movs r4, 0x80
- lsls r4, 2
- movs r1, 0
- adds r2, r4, 0
- bl LoadCompressedPalette
- ldr r0, =gUnknown_08D85444
- movs r1, 0x80
- lsls r1, 1
- adds r2, r4, 0
- bl LoadCompressedPalette
- ldr r0, =gUnknown_08D85600
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadCompressedPalette
- str r6, [sp, 0x18]
- add r0, sp, 0x18
- ldr r1, =gPlttBufferFaded
- ldr r2, =0x05000100
- bl CpuSet
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- ldr r1, =gTasks
- mov r4, r8
- lsls r0, r4, 2
-_0819443C:
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _081948C2
- .pool
-_0819447C:
- ldr r0, =gUnknown_0860CF50
- bl LoadCompressedObjectPic
- mov r0, r8
- lsls r0, 2
- str r0, [sp, 0x1C]
- mov r1, r10
- cmp r1, 0
- bne _081944E8
- movs r5, 0
- ldr r4, =gUnknown_0860D411
-_08194492:
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- ldr r0, =gUnknown_0860CFA8
- movs r3, 0
- bl CreateSprite
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x1E
- bls _08194492
- ldr r0, =gTasks
- ldr r1, [sp, 0x1C]
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _081944DC
- ldr r0, =gUnknown_0860D008
- movs r1, 0xDA
- movs r2, 0xC
- movs r3, 0
- bl CreateSprite
- b _081944E8
- .pool
-_081944DC:
- ldr r0, =gUnknown_0860CFD8
- movs r1, 0xDA
- movs r2, 0xC
- movs r3, 0
- bl CreateSprite
-_081944E8:
- ldr r1, =0x00007f40
- movs r0, 0
- bl SetGpuReg
- b _081947A6
- .pool
-_081944FC:
- add r0, sp, 0x4
- movs r2, 0
- movs r1, 0x2
- strb r1, [r0, 0x5]
- ldr r0, =gText_BattleTourney
- str r0, [sp, 0x4]
- add r0, sp, 0x4
- strb r1, [r0, 0x4]
- strb r2, [r0, 0x6]
- strb r2, [r0, 0x7]
- strb r1, [r0, 0xA]
- strb r2, [r0, 0xB]
- ldrb r0, [r0, 0x5]
- ldr r1, [sp, 0x4]
- add r2, sp, 0x4
- ldrb r3, [r2, 0xA]
- movs r2, 0x70
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- add r1, sp, 0x4
- strb r0, [r1, 0x8]
- movs r0, 0x1
- strb r0, [r1, 0x9]
- adds r3, r1, 0
- ldrb r2, [r3, 0xC]
- movs r1, 0x10
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0xC]
- adds r2, r3, 0
- movs r0, 0xE0
- strb r0, [r2, 0xC]
- ldrb r0, [r2, 0xD]
- ands r1, r0
- strb r1, [r2, 0xD]
- adds r1, r2, 0
- movs r0, 0xD0
- strb r0, [r1, 0xD]
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0
- bl AddTextPrinter
- mov r3, r8
- lsls r3, 2
- str r3, [sp, 0x1C]
- add r4, sp, 0x4
- movs r0, 0xF
- mov r9, r0
- movs r1, 0
- str r1, [sp, 0x20]
- movs r2, 0
- str r2, [sp, 0x24]
- movs r7, 0
- movs r5, 0xF
-_0819456C:
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- adds r0, r7
- ldr r1, =0x00000d24
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 22
- lsrs r1, 22
- ldr r0, =gDisplayedStringBattle
- bl sub_8195898
- mov r2, r10
- cmp r2, 0x1
- bne _081945C4
- ldr r3, =gSaveBlock2Ptr
- ldr r2, [r3]
- adds r0, r2, r7
- ldr r1, =0x00000d25
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 29
- cmp r0, 0
- blt _081945DC
- ldr r3, =0x00000cb2
- adds r0, r2, r3
- ldrh r1, [r0]
- cmp r1, 0x1
- beq _08194634
- ldr r2, [sp, 0x24]
- lsrs r0, r2, 24
- subs r1, 0x2
- b _081945EA
- .pool
-_081945C4:
- mov r3, r10
- cmp r3, 0
- bne _08194634
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r0, r2, r7
- ldr r1, =0x00000d25
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 29
- cmp r0, 0
- bge _081945FC
-_081945DC:
- lsls r1, 27
- lsrs r0, r1, 30
- cmp r0, 0
- beq _08194634
- subs r1, r0, 0x1
- ldr r2, [sp, 0x24]
- lsrs r0, r2, 24
-_081945EA:
- lsls r1, 24
- lsrs r1, 24
- bl sub_81948EC
- b _08194634
- .pool
-_081945FC:
- ldr r3, =0x00000cb2
- adds r1, r2, r3
- ldrh r0, [r1]
- cmp r0, 0
- beq _08194634
- ldr r0, [sp, 0x1C]
- add r0, r8
- lsls r0, 3
- ldr r2, =gTasks
- adds r0, r2
- movs r3, 0x10
- ldrsh r0, [r0, r3]
- cmp r0, 0
- beq _08194624
- ldrh r1, [r1]
- b _08194628
- .pool
-_08194624:
- ldrh r0, [r1]
- subs r1, r0, 0x1
-_08194628:
- ldr r2, [sp, 0x24]
- lsrs r0, r2, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_81948EC
-_08194634:
- ldr r0, [sp, 0x1C]
- add r0, r8
- lsls r0, 3
- ldr r3, =gTasks
- adds r0, r3
- movs r1, 0x10
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08194660
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r3, =0x00000cb2
- adds r0, r3
- ldrh r3, [r0]
- adds r6, r2, 0
- b _0819466E
- .pool
-_08194660:
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000cb2
- adds r0, r2
- ldrh r0, [r0]
- subs r3, r0, 0x1
- adds r6, r1, 0
-_0819466E:
- mov r0, r10
- cmp r0, 0x1
- bne _0819468E
- ldr r2, [r6]
- adds r0, r2, r7
- ldr r1, =0x00000d25
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 27
- lsrs r1, 30
- ldr r0, =0x00000cb2
- adds r2, r0
- ldrh r0, [r2]
- subs r0, 0x1
- cmp r1, r0
- blt _081946A6
-_0819468E:
- mov r1, r10
- cmp r1, 0
- bne _081946FA
- ldr r0, [r6]
- adds r0, r7
- ldr r2, =0x00000d25
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 30
- cmp r0, r3
- bgt _081946FA
-_081946A6:
- ldr r0, [r6]
- adds r1, r0, r7
- ldr r3, =0x00000d25
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _081946FA
- ldr r2, =0x00000d24
- adds r0, r1, r2
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- ldr r3, =0x000003ff
- cmp r0, r3
- bne _081946F0
- ldrb r1, [r4, 0xC]
- mov r0, r9
- ands r0, r1
- movs r1, 0x30
- orrs r0, r1
- strb r0, [r4, 0xC]
- ldrb r1, [r4, 0xD]
- mov r0, r9
- ands r0, r1
- movs r1, 0x40
- b _08194740
- .pool
-_081946F0:
- ldrb r1, [r4, 0xC]
- mov r0, r9
- ands r0, r1
- movs r1, 0xB0
- b _08194734
-_081946FA:
- ldr r0, [r6]
- adds r0, r7
- ldr r1, =0x00000d24
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- ldr r2, =0x000003ff
- cmp r0, r2
- bne _0819472C
- ldrb r1, [r4, 0xC]
- mov r0, r9
- ands r0, r1
- movs r1, 0x30
- orrs r0, r1
- strb r0, [r4, 0xC]
- ldrb r1, [r4, 0xD]
- mov r0, r9
- ands r0, r1
- movs r1, 0x40
- b _08194740
- .pool
-_0819472C:
- ldrb r1, [r4, 0xC]
- mov r0, r9
- ands r0, r1
- movs r1, 0xE0
-_08194734:
- orrs r0, r1
- strb r0, [r4, 0xC]
- ldrb r1, [r4, 0xD]
- mov r0, r9
- ands r0, r1
- movs r1, 0xD0
-_08194740:
- orrs r0, r1
- strb r0, [r4, 0xD]
- ldr r0, =gUnknown_0860D3F1
- ldr r3, [sp, 0x20]
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08194768
- ldrb r0, [r4, 0x5]
- ldrb r3, [r4, 0xA]
- ldr r1, =gDisplayedStringBattle
- movs r2, 0x3D
- bl GetStringWidthDifference
- b _0819476A
- .pool
-_08194768:
- movs r0, 0x3
-_0819476A:
- strb r0, [r4, 0x8]
- ldr r0, =gDisplayedStringBattle
- str r0, [sp, 0x4]
- ldr r0, =gUnknown_0860D3F1
- ldr r1, [sp, 0x20]
- adds r0, r1, r0
- ldrb r0, [r0]
- strb r0, [r4, 0x4]
- ldr r2, =gUnknown_0860D3F2
- adds r0, r1, r2
- ldrb r0, [r0]
- strb r0, [r4, 0x9]
- add r0, sp, 0x4
- movs r1, 0
- movs r2, 0
- bl AddTextPrinter
- ldr r3, [sp, 0x20]
- adds r3, 0x2
- str r3, [sp, 0x20]
- ldr r0, [sp, 0x24]
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- str r0, [sp, 0x24]
- adds r7, 0x4
- subs r5, 0x1
- cmp r5, 0
- blt _081947A6
- b _0819456C
-_081947A6:
- ldr r0, =gTasks
- ldr r1, [sp, 0x1C]
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _081948C2
- .pool
-_081947C8:
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, =sub_8194BEC
- bl SetHBlankCallback
- ldr r0, =sub_8194CE4
- bl SetVBlankCallback
- cmp r4, 0x2
- bne _0819485C
- mov r2, r10
- cmp r2, 0
- bne _08194844
- ldr r0, =sub_819395C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- mov r3, r10
- strh r3, [r1, 0x8]
- strh r3, [r1, 0xA]
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0x10]
- strh r0, [r1, 0x14]
- b _08194878
- .pool
-_08194844:
- ldr r0, =sub_8194950
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- b _0819486C
- .pool
-_0819485C:
- ldr r1, =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r3, 0xE
- ldrsh r5, [r0, r3]
-_0819486C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
-_08194878:
- bl ScanlineEffect_Clear
- ldr r0, =gScanlineEffectRegBuffers
- ldr r2, =0x00001f0a
- movs r4, 0xF0
- lsls r4, 3
- adds r1, r0, r4
- movs r5, 0x5A
-_08194888:
- strh r2, [r0]
- strh r2, [r1]
- adds r1, 0x2
- adds r0, 0x2
- subs r5, 0x1
- cmp r5, 0
- bge _08194888
- movs r5, 0x5B
- ldr r3, =gUnknown_0860CF44
- ldr r0, =gScanlineEffectRegBuffers
- ldr r2, =0x00001f09
- ldr r4, =0x00000836
- adds r1, r0, r4
- adds r0, 0xB6
-_081948A4:
- strh r2, [r0]
- strh r2, [r1]
- adds r1, 0x2
- adds r0, 0x2
- adds r5, 0x1
- cmp r5, 0x9F
- ble _081948A4
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- ldr r2, [r3, 0x8]
- bl ScanlineEffect_SetParams
- mov r0, r8
- bl DestroyTask
-_081948C2:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8194220
-
- thumb_func_start sub_81948EC
-sub_81948EC: @ 81948EC
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r4, =gUnknown_0860DD10
- lsls r2, r1, 2
- lsls r3, r0, 4
- adds r2, r3
- adds r2, r4
- ldr r3, [r2]
- ldr r2, =gUnknown_0860DE10
- lsls r0, 2
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _08194938
- movs r7, 0x1
- adds r4, r3, 0
- adds r5, r4, 0x2
- adds r6, r0, 0
-_0819491A:
- ldrb r2, [r4]
- ldrb r3, [r4, 0x1]
- str r7, [sp]
- str r7, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0x1
- adds r1, r5, 0
- bl CopyToBgTilemapBufferRect_ChangePalette
- adds r4, 0x4
- adds r5, 0x4
- subs r6, 0x1
- cmp r6, 0
- bne _0819491A
-_08194938:
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81948EC
-
- thumb_func_start sub_8194950
-sub_8194950: @ 8194950
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _08194974
- b _08194B3C
-_08194974:
- lsls r0, 2
- ldr r1, =_08194988
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08194988:
- .4byte _0819499C
- .4byte _081949C0
- .4byte _08194AD4
- .4byte _08194AEE
- .4byte _08194B24
-_0819499C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- b _08194B3C
- .pool
-_081949C0:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081949CE
- b _08194B3C
-_081949CE:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0
- movs r3, 0x2
- movs r1, 0x2
- strh r1, [r0, 0x8]
- movs r1, 0x40
- strh r1, [r0, 0xE]
- add r0, sp, 0x4
- strb r3, [r0, 0x5]
- strb r2, [r0, 0x6]
- strb r2, [r0, 0x7]
- strb r3, [r0, 0xA]
- strb r2, [r0, 0xB]
- adds r3, r0, 0
- ldrb r2, [r3, 0xC]
- subs r1, 0x50
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0xC]
- adds r2, r3, 0
- movs r0, 0xB0
- strb r0, [r2, 0xC]
- ldrb r0, [r2, 0xD]
- ands r1, r0
- strb r1, [r2, 0xD]
- adds r1, r2, 0
- movs r0, 0xD0
- strb r0, [r1, 0xD]
- movs r7, 0
- ldr r0, =gDisplayedStringBattle
- mov r9, r0
- ldr r1, =gSaveBlock2Ptr
- mov r8, r1
- adds r4, r2, 0
- ldr r6, =gUnknown_0860D3F1
- movs r5, 0
-_08194A1C:
- mov r2, r8
- ldr r0, [r2]
- adds r0, r5
- ldr r1, =0x00000d24
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 22
- lsrs r1, 22
- mov r0, r9
- bl sub_8195898
- mov r0, r8
- ldr r2, [r0]
- adds r0, r2, r5
- ldr r1, =0x00000d25
- adds r0, r1
- ldrb r3, [r0]
- lsls r1, r3, 27
- lsrs r1, 30
- ldr r0, =0x00000cb2
- adds r2, r0
- ldrh r0, [r2]
- subs r0, 0x1
- cmp r1, r0
- bne _08194A9E
- lsls r0, r3, 29
- cmp r0, 0
- bge _08194A9E
- ldrb r0, [r6]
- cmp r0, 0
- bne _08194A84
- ldrb r0, [r4, 0x5]
- ldrb r3, [r4, 0xA]
- mov r1, r9
- movs r2, 0x3D
- bl GetStringWidthDifference
- b _08194A86
- .pool
-_08194A84:
- movs r0, 0x3
-_08194A86:
- strb r0, [r4, 0x8]
- mov r1, r9
- str r1, [sp, 0x4]
- ldrb r0, [r6]
- strb r0, [r4, 0x4]
- ldrb r0, [r6, 0x1]
- strb r0, [r4, 0x9]
- add r0, sp, 0x4
- movs r1, 0
- movs r2, 0
- bl AddTextPrinter
-_08194A9E:
- mov r2, r8
- ldr r1, [r2]
- adds r0, r1, r5
- ldr r2, =0x00000d25
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08194AC4
- subs r2, 0x73
- adds r0, r1, r2
- ldrh r1, [r0]
- subs r1, 0x1
- lsls r0, r7, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_81948EC
-_08194AC4:
- adds r6, 0x2
- adds r5, 0x4
- adds r7, 0x1
- cmp r7, 0xF
- ble _08194A1C
- b _08194B3C
- .pool
-_08194AD4:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xE]
- subs r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _08194B3C
- movs r0, 0x3
- strh r0, [r1, 0x8]
- b _08194B3C
-_08194AEE:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08194B3C
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- b _08194B3C
- .pool
-_08194B24:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08194B3C
- ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08194B3C:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8194950
-
- thumb_func_start sub_8194B54
-sub_8194B54: @ 8194B54
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_8194B54
-
- thumb_func_start sub_8194B70
-sub_8194B70: @ 8194B70
- push {lr}
- movs r0, 0x3
- movs r1, 0x80
- movs r2, 0x1
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0x80
- movs r2, 0x2
- bl ChangeBgY
- ldr r0, =gBattle_BG0_X
- ldrh r1, [r0]
- movs r0, 0x10
- bl SetGpuReg
- ldr r0, =gBattle_BG0_Y
- ldrh r1, [r0]
- movs r0, 0x12
- bl SetGpuReg
- ldr r0, =gBattle_BG1_X
- ldrh r1, [r0]
- movs r0, 0x14
- bl SetGpuReg
- ldr r0, =gBattle_BG1_Y
- ldrh r1, [r0]
- movs r0, 0x16
- bl SetGpuReg
- ldr r0, =gBattle_BG2_X
- ldrh r1, [r0]
- movs r0, 0x18
- bl SetGpuReg
- ldr r0, =gBattle_BG2_Y
- ldrh r1, [r0]
- movs r0, 0x1A
- bl SetGpuReg
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8194B70
-
- thumb_func_start sub_8194BEC
-sub_8194BEC: @ 8194BEC
- push {lr}
- ldr r0, =0x04000006
- ldrh r0, [r0]
- adds r1, r0, 0
- cmp r0, 0x29
- bls _08194CC8
- cmp r0, 0x31
- bhi _08194C1C
- ldr r1, =0x04000048
- ldr r2, =0x00003b3b
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x8
- ldr r0, =0x989b5558
- b _08194CD4
- .pool
-_08194C1C:
- cmp r0, 0x39
- bls _08194CC8
- cmp r0, 0x4A
- bhi _08194C40
- ldr r1, =0x04000048
- ldr r2, =0x00003b3b
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x8
- ldr r0, =0x90985860
- b _08194CD4
- .pool
-_08194C40:
- cmp r0, 0x51
- bhi _08194C60
- ldr r1, =0x04000048
- ldr r2, =0x00003b3b
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x8
- ldr r0, =0x989b5558
- b _08194CD4
- .pool
-_08194C60:
- cmp r0, 0x5E
- bls _08194CC8
- cmp r0, 0x66
- bhi _08194C84
- ldr r1, =0x04000048
- ldr r2, =0x00003737
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x8
- ldr r0, =0x989b5558
- b _08194CD4
- .pool
-_08194C84:
- cmp r0, 0x76
- bhi _08194CA4
- ldr r1, =0x04000048
- ldr r2, =0x00003737
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x8
- ldr r0, =0x90985860
- b _08194CD4
- .pool
-_08194CA4:
- cmp r0, 0x7E
- bls _08194CC8
- cmp r1, 0x86
- bhi _08194CC8
- ldr r1, =0x04000048
- ldr r2, =0x00003737
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x8
- ldr r0, =0x989b5558
- b _08194CD4
- .pool
-_08194CC8:
- ldr r1, =0x04000048
- ldr r2, =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x8
- movs r0, 0
-_08194CD4:
- str r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8194BEC
-
- thumb_func_start sub_8194CE4
-sub_8194CE4: @ 8194CE4
- push {lr}
- ldr r0, =gBattle_BG0_X
- ldrh r1, [r0]
- movs r0, 0x10
- bl SetGpuReg
- ldr r0, =gBattle_BG0_Y
- ldrh r1, [r0]
- movs r0, 0x12
- bl SetGpuReg
- ldr r0, =gBattle_BG1_X
- ldrh r1, [r0]
- movs r0, 0x14
- bl SetGpuReg
- ldr r0, =gBattle_BG1_Y
- ldrh r1, [r0]
- movs r0, 0x16
- bl SetGpuReg
- movs r0, 0x2
- movs r1, 0x80
- movs r2, 0x2
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0x80
- movs r2, 0x1
- bl ChangeBgY
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl ScanlineEffect_InitHBlankDmaTransfer
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8194CE4
-
- thumb_func_start sub_8194D48
-sub_8194D48: @ 8194D48
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_8194D48
-
- thumb_func_start sub_8194D68
-sub_8194D68: @ 8194D68
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r3, 0
-_08194D76:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =gUnknown_0203CEF8
- adds r0, r3, r0
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 1
- ldr r2, =0x00000caa
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- subs r0, 0x1
- mov r10, r0
- movs r6, 0
- adds r0, r3, 0x1
- str r0, [sp]
- movs r1, 0x64
- mov r0, r10
- muls r0, r1
- movs r2, 0x8E
- lsls r2, 2
- adds r2, r0
- mov r9, r2
- adds r7, r3, 0
- muls r7, r1
-_08194DA8:
- movs r5, 0
- adds r0, r6, 0x1
- mov r8, r0
- b _08194DBE
- .pool
-_08194DBC:
- adds r5, 0x1
-_08194DBE:
- cmp r5, 0x3
- bgt _08194DEA
- ldr r1, =gSaveBlock1Ptr
- ldr r0, [r1]
- add r0, r9
- adds r1, r5, 0
- adds r1, 0xD
- movs r2, 0
- str r3, [sp, 0x4]
- bl GetMonData
- adds r4, r0, 0
- adds r1, r6, 0
- adds r1, 0xD
- ldr r2, =gPlayerParty
- adds r0, r7, r2
- movs r2, 0
- bl GetMonData
- ldr r3, [sp, 0x4]
- cmp r4, r0
- bne _08194DBC
-_08194DEA:
- cmp r5, 0x4
- bne _08194E00
- lsls r2, r6, 24
- lsrs r2, 24
- ldr r1, =gPlayerParty
- adds r0, r7, r1
- movs r1, 0xA6
- str r3, [sp, 0x4]
- bl SetMonMoveSlot
- ldr r3, [sp, 0x4]
-_08194E00:
- mov r6, r8
- cmp r6, 0x3
- ble _08194DA8
- ldr r2, =gSaveBlock1Ptr
- ldr r0, [r2]
- movs r2, 0x64
- mov r1, r10
- muls r1, r2
- adds r0, r1
- movs r1, 0x8E
- lsls r1, 2
- adds r0, r1
- adds r1, r3, 0
- muls r1, r2
- ldr r2, =gPlayerParty
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- ldr r3, [sp]
- cmp r3, 0x1
- ble _08194D76
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8194D68
-
- thumb_func_start sub_8194E44
-sub_8194E44: @ 8194E44
- push {r4-r7,lr}
- sub sp, 0x4
- movs r4, 0
- ldr r7, =gSaveBlock1Ptr
- movs r6, 0x64
- movs r5, 0
-_08194E50:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =gUnknown_0203CEF8
- adds r0, r4, r0
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 1
- ldr r2, =0x00000caa
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- subs r0, 0x1
- adds r1, r0, 0
- muls r1, r6
- movs r0, 0x8E
- lsls r0, 2
- adds r1, r0
- ldr r0, [r7]
- adds r0, r1
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, =gPlayerParty
- adds r0, r5, r0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x64
- adds r4, 0x1
- cmp r4, 0x1
- ble _08194E50
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8194E44
-
- thumb_func_start sub_8194EB4
-sub_8194EB4: @ 8194EB4
- push {lr}
- bl sub_80F94E8
- pop {r0}
- bx r0
- thumb_func_end sub_8194EB4
-
- thumb_func_start sub_8194EC0
-sub_8194EC0: @ 8194EC0
- push {r4,lr}
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- bl sub_8195358
- adds r4, r0, 0
- ldr r0, =0x000003ff
- bl sub_8195358
- cmp r4, r0
- ble _08194EE8
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- b _08194EEC
- .pool
-_08194EE8:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x2
-_08194EEC:
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8194EC0
-
- thumb_func_start sub_8194EF8
-sub_8194EF8: @ 8194EF8
- push {r4,lr}
- bl sub_8194D48
- movs r2, 0
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- ldr r1, =0x00000d25
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08194F2A
- adds r4, r3, 0
- adds r3, r1, 0
-_08194F14:
- adds r2, 0x1
- cmp r2, 0xF
- bgt _08194F2A
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, r1
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08194F14
-_08194F2A:
- ldr r0, =gStringVar1
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsls r2, 2
- adds r1, r2
- ldr r2, =0x00000d24
- adds r1, r2
- ldrh r1, [r1]
- lsls r1, 22
- lsrs r1, 22
- bl sub_8195898
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8194EF8
-
- thumb_func_start sub_8194F58
-sub_8194F58: @ 8194F58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x40
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- ldr r4, =gSaveBlock2Ptr
- ldr r2, [r4]
- ldr r5, =0x00000d0a
- adds r0, r2, r5
- ldrb r1, [r0]
- ldr r6, =0x00000d0b
- adds r0, r2, r6
- ldrb r0, [r0]
- cmn r1, r0
- beq _08194F8C
- ldr r1, =0x00000ca8
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08194F8C
- b _0819533E
-_08194F8C:
- movs r0, 0x20
- bl AllocZeroed
- str r0, [sp, 0x18]
- movs r0, 0x18
- bl AllocZeroed
- str r0, [sp, 0x1C]
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r1, r2
- ldrb r2, [r1]
- lsls r0, r2, 30
- lsrs r0, 30
- str r0, [sp, 0x14]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r4]
- movs r1, 0x1
- adds r0, r5
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, r6
- strb r1, [r0]
- movs r3, 0
- mov r10, r3
- movs r4, 0
- str r4, [sp, 0x38]
- movs r5, 0
- str r5, [sp, 0x3C]
-_08194FCC:
- mov r0, r10
- cmp r0, 0x4
- bgt _08194FFC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- b _08195030
- .pool
-_08194FFC:
- mov r1, r10
- cmp r1, 0xE
- bgt _0819501A
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r4, r0, 0
- adds r4, 0xA
- b _08195030
-_0819501A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r4, r0, 0
- adds r4, 0x1E
-_08195030:
- movs r6, 0
- cmp r6, r10
- bge _08195064
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r3, =0x00000d24
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- cmp r0, r4
- beq _08195064
- adds r3, r2, 0
- ldr r2, =0x00000d24
-_0819504C:
- adds r6, 0x1
- cmp r6, r10
- bge _08195064
- ldr r0, [r3]
- lsls r1, r6, 2
- adds r0, r1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- cmp r0, r4
- bne _0819504C
-_08195064:
- cmp r6, r10
- bne _08194FCC
- ldr r5, =gSaveBlock2Ptr
- ldr r3, [r5]
- ldr r0, [sp, 0x38]
- adds r3, r0
- ldr r1, =0x00000d24
- adds r3, r1
- ldr r2, =0x000003ff
- adds r0, r2, 0
- adds r2, r4, 0
- ands r2, r0
- ldrh r0, [r3]
- ldr r5, =0xfffffc00
- adds r1, r5, 0
- ands r0, r1
- orrs r0, r2
- strh r0, [r3]
- movs r6, 0
- lsls r4, 16
- str r4, [sp, 0x30]
- ldr r0, [sp, 0x3C]
- str r0, [sp, 0x20]
-_08195092:
- adds r1, r6, 0x1
- str r1, [sp, 0x24]
- lsls r2, r6, 2
- str r2, [sp, 0x2C]
- lsls r3, r6, 1
- str r3, [sp, 0x28]
-_0819509E:
- ldr r4, [sp, 0x30]
- lsrs r0, r4, 16
- bl sub_8163524
- lsls r0, 16
- lsrs r5, r0, 16
- movs r7, 0
- cmp r7, r6
- bge _081950F4
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =gUnknown_0203BC8C
- mov r9, r1
- ldr r2, [sp, 0x8]
- mov r8, r2
- ldr r3, [sp, 0xC]
- mov r12, r3
- ldr r4, =0x00000d64
- adds r0, r4
- ldr r1, [sp, 0x20]
- adds r4, r1, r0
-_081950C8:
- ldrh r3, [r4]
- cmp r3, r5
- beq _081950F4
- mov r2, r9
- ldr r1, [r2]
- lsls r0, r5, 4
- adds r2, r0, r1
- ldrh r0, [r2]
- cmp r8, r0
- beq _081950F4
- cmp r12, r0
- beq _081950F4
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0, 0xA]
- ldrb r2, [r2, 0xA]
- cmp r0, r2
- beq _081950F4
- adds r4, 0x2
- adds r7, 0x1
- cmp r7, r6
- blt _081950C8
-_081950F4:
- cmp r7, r6
- bne _0819509E
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- ldr r4, [sp, 0x28]
- ldr r2, [sp, 0x3C]
- adds r1, r4, r2
- ldr r3, =0x00000d64
- adds r0, r3
- adds r0, r1
- strh r5, [r0]
- ldr r2, [sp, 0x2C]
- add r2, sp
- adds r2, 0x8
- ldr r3, =gUnknown_0203BC8C
- ldr r1, [r3]
- lsls r0, r5, 4
- adds r0, r1
- ldrh r0, [r0]
- str r0, [r2]
- ldr r6, [sp, 0x24]
- cmp r6, 0x2
- ble _08195092
- ldr r4, =gSaveBlock2Ptr
- ldr r2, [r4]
- ldr r5, [sp, 0x38]
- adds r2, r5
- ldr r0, =0x00000d25
- adds r2, r0
- ldrb r0, [r2]
- movs r4, 0x5
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- strb r0, [r2]
- ldr r5, =gSaveBlock2Ptr
- ldr r2, [r5]
- ldr r0, [sp, 0x38]
- adds r2, r0
- ldr r1, =0x00000d25
- adds r2, r1
- ldrb r0, [r2]
- subs r4, 0x14
- adds r1, r4, 0
- ands r0, r1
- strb r0, [r2]
- ldr r1, [r5]
- ldr r5, [sp, 0x38]
- adds r1, r5
- ldr r0, =0x00000d25
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x1F
- ands r0, r2
- strb r0, [r1]
- adds r5, 0x4
- str r5, [sp, 0x38]
- ldr r1, [sp, 0x3C]
- adds r1, 0x6
- str r1, [sp, 0x3C]
- movs r2, 0x1
- add r10, r2
- mov r4, r10
- cmp r4, 0xF
- bgt _08195178
- b _08194FCC
-_08195178:
- movs r5, 0
- mov r10, r5
- ldr r5, [sp, 0x18]
- movs r0, 0
- str r0, [sp, 0x34]
-_08195182:
- movs r7, 0
- strh r7, [r5]
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- mov r2, r10
- lsls r1, r2, 2
- adds r0, r1
- ldr r3, =0x00000d24
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- bl sub_8190168
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
- ldr r4, [sp, 0x34]
- mov r9, r4
-_081951AA:
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- mov r4, r9
- add r4, r10
- adds r4, r6
- lsls r4, 1
- ldr r2, =0x00000d64
- adds r0, r2
- adds r0, r4
- ldrh r1, [r0]
- ldr r3, =gUnknown_0203BC8C
- ldr r0, [r3]
- lsls r1, 4
- adds r1, r0
- ldrh r0, [r1]
- ldrb r3, [r1, 0xB]
- ldrb r1, [r1, 0xC]
- str r1, [sp]
- ldr r1, [sp, 0x1C]
- str r1, [sp, 0x4]
- movs r1, 0x32
- mov r2, r8
- bl sub_818F720
- ldr r2, [sp, 0x1C]
- ldr r1, [r2, 0x4]
- ldrh r0, [r5]
- adds r0, r1
- ldr r1, [r2, 0x8]
- adds r0, r1
- ldr r1, [r2, 0x10]
- adds r0, r1
- ldr r1, [r2, 0x14]
- adds r0, r1
- ldr r1, [r2, 0xC]
- adds r0, r1
- ldr r1, [r2]
- adds r0, r1
- strh r0, [r5]
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- ldr r1, =0x00000d64
- adds r0, r1
- adds r0, r4
- ldrh r0, [r0]
- ldr r2, =gUnknown_0203BC8C
- ldr r1, [r2]
- lsls r0, 4
- adds r0, r1
- ldrh r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r3, =gBaseStats
- adds r1, r3
- ldrb r0, [r1, 0x6]
- lsls r0, 2
- ldr r4, =gBitTable
- adds r0, r4
- ldr r0, [r0]
- orrs r7, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- orrs r7, r0
- adds r6, 0x1
- cmp r6, 0x2
- ble _081951AA
- movs r4, 0
- movs r1, 0x1
- movs r6, 0x1F
-_0819523A:
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08195244
- adds r4, 0x1
-_08195244:
- asrs r7, 1
- subs r6, 0x1
- cmp r6, 0
- bge _0819523A
- movs r1, 0x32
- adds r0, r4, 0
- muls r0, r1
- movs r1, 0x14
- bl __divsi3
- ldrh r1, [r5]
- adds r1, r0
- strh r1, [r5]
- adds r5, 0x2
- ldr r2, [sp, 0x34]
- adds r2, 0x2
- str r2, [sp, 0x34]
- movs r3, 0x1
- add r10, r3
- mov r4, r10
- cmp r4, 0xF
- ble _08195182
- movs r5, 0
- mov r10, r5
- ldr r7, [sp, 0x18]
-_08195276:
- mov r6, r10
- adds r6, 0x1
- cmp r6, 0xF
- bgt _081952F8
- mov r8, r7
- ldr r5, =0x00000d24
- lsls r0, r6, 1
- ldr r1, [sp, 0x18]
- adds r4, r0, r1
-_08195288:
- mov r2, r8
- ldrh r1, [r2]
- ldrh r0, [r4]
- cmp r1, r0
- bcs _081952C4
- mov r0, r10
- adds r1, r6, 0
- ldr r2, [sp, 0x18]
- bl sub_818F904
- b _081952F0
- .pool
-_081952C4:
- cmp r1, r0
- bne _081952F0
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- mov r3, r10
- lsls r0, r3, 2
- adds r0, r1, r0
- adds r0, r5
- ldrh r2, [r0]
- lsls r2, 22
- lsls r0, r6, 2
- adds r1, r0
- adds r1, r5
- ldrh r0, [r1]
- lsls r0, 22
- cmp r2, r0
- bls _081952F0
- mov r0, r10
- adds r1, r6, 0
- ldr r2, [sp, 0x18]
- bl sub_818F904
-_081952F0:
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0xF
- ble _08195288
-_081952F8:
- adds r7, 0x2
- movs r4, 0x1
- add r10, r4
- mov r5, r10
- cmp r5, 0xE
- ble _08195276
- ldr r0, [sp, 0x18]
- bl Free
- ldr r0, [sp, 0x1C]
- bl Free
- movs r0, 0
- mov r10, r0
-_08195314:
- mov r1, r10
- lsls r0, r1, 24
- lsrs r0, 24
- bl sub_8195438
- movs r2, 0x1
- add r10, r2
- mov r3, r10
- cmp r3, 0x3
- ble _08195314
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r4, =0x00000ca9
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- ldr r5, [sp, 0x14]
- orrs r0, r5
- strb r0, [r1]
-_0819533E:
- add sp, 0x40
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8194F58
-
- thumb_func_start sub_8195358
-sub_8195358: @ 8195358
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000d24
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- cmp r0, r3
- beq _0819538E
- adds r5, r4, 0
- adds r4, r1, 0
-_08195376:
- adds r2, 0x1
- cmp r2, 0xF
- bgt _0819538E
- ldr r0, [r5]
- lsls r1, r2, 2
- adds r0, r1
- adds r0, r4
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- cmp r0, r3
- bne _08195376
-_0819538E:
- adds r0, r2, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8195358
-
- thumb_func_start sub_81953A0
-sub_81953A0: @ 81953A0
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000d24
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- cmp r0, r3
- beq _081953D6
- adds r5, r4, 0
- adds r4, r1, 0
-_081953BE:
- adds r2, 0x1
- cmp r2, 0xF
- bgt _081953D6
- ldr r0, [r5]
- lsls r1, r2, 2
- adds r0, r1
- adds r0, r4
- ldrh r0, [r0]
- lsls r0, 22
- lsrs r0, 22
- cmp r0, r3
- bne _081953BE
-_081953D6:
- adds r0, r2, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81953A0
-
- thumb_func_start sub_81953E8
-sub_81953E8: @ 81953E8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_0860D1A0
- ldr r0, =gUnknown_0860D1C0
- adds r0, r4, r0
- ldrb r0, [r0]
- lsrs r0, 1
- lsls r0, 2
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- bl sub_8192F08
- mov r0, sp
- ldrb r0, [r0]
- cmp r4, r0
- beq _0819542C
- mov r0, sp
- ldrb r0, [r0]
- b _08195430
- .pool
-_0819542C:
- mov r0, sp
- ldrb r0, [r0, 0x1]
-_08195430:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81953E8
-
- thumb_func_start sub_8195438
-sub_8195438: @ 8195438
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x40
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r1, 0
- str r1, [sp, 0x10]
- movs r5, 0
- movs r1, 0x3
- ldr r0, [sp]
- ands r0, r1
- lsls r0, 3
- str r0, [sp, 0x14]
-_0819545E:
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- lsls r4, r5, 2
- adds r1, r0, r4
- ldr r3, =0x00000d25
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 29
- adds r2, r5, 0x1
- str r2, [sp, 0x24]
- cmp r0, 0
- bge _08195478
- b _08195876
-_08195478:
- subs r3, 0x1
- adds r0, r1, r3
- ldrh r0, [r0]
- lsls r1, r0, 22
- ldr r0, =0xffc00000
- cmp r1, r0
- bne _08195488
- b _08195876
-_08195488:
- str r5, [sp, 0x4]
- lsrs r1, 22
- ldr r0, [sp]
- bl sub_81901A0
- str r0, [sp, 0x8]
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- adds r0, r3, r4
- ldr r1, =0x00000d24
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 22
- ldr r1, =0xff800000
- cmp r0, r1
- bne _08195504
- ldr r2, [sp, 0x8]
- cmp r2, 0xFF
- beq _08195504
- lsls r2, 2
- adds r1, r3, r2
- ldr r3, =0x00000d25
- adds r1, r3
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r1, r2
- ldr r2, =0x00000d25
- adds r1, r2
- ldrb r0, [r1]
- subs r3, 0x1D
- ands r0, r3
- ldr r2, [sp, 0x14]
- orrs r0, r2
- strb r0, [r1]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- ldr r2, [sp]
- bl sub_8193ED0
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- ldr r5, [sp, 0x8]
- lsls r2, r5, 1
- movs r3, 0xEC
- lsls r3, 4
- adds r1, r3
- adds r1, r2
- b _08195874
- .pool
-_08195504:
- ldr r4, =gSaveBlock2Ptr
- ldr r3, [r4]
- ldr r0, [sp, 0x8]
- lsls r2, r0, 2
- adds r0, r3, r2
- ldr r1, =0x00000d24
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 22
- ldr r1, =0xff800000
- str r2, [sp, 0x30]
- cmp r0, r1
- bne _0819557C
- ldr r2, [sp, 0x4]
- cmp r2, 0xFF
- beq _0819557C
- lsls r2, 2
- adds r1, r3, r2
- ldr r3, =0x00000d25
- adds r1, r3
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- ldr r1, [r4]
- adds r1, r2
- ldr r0, =0x00000d25
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x19
- negs r2, r2
- ands r0, r2
- ldr r3, [sp, 0x14]
- orrs r0, r3
- strb r0, [r1]
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x4]
- ldr r2, [sp]
- bl sub_8193ED0
- ldr r1, [r4]
- ldr r3, [sp, 0x4]
- lsls r2, r3, 1
- movs r3, 0xEC
- lsls r3, 4
- adds r1, r3
- adds r1, r2
- strh r0, [r1]
- adds r5, 0x1
- str r5, [sp, 0x24]
- b _08195876
- .pool
-_0819557C:
- adds r5, 0x1
- str r5, [sp, 0x24]
- ldr r5, [sp, 0x8]
- cmp r5, 0xFF
- bne _08195588
- b _08195876
-_08195588:
- movs r0, 0
- mov r10, r0
- lsls r1, r5, 1
- str r1, [sp, 0x2C]
- ldr r2, [sp, 0x4]
- lsls r2, 1
- str r2, [sp, 0x28]
- ldr r3, [sp, 0x4]
- adds r0, r2, r3
- lsls r0, 1
- mov r9, r0
- adds r0, r1, r5
- lsls r0, 1
- str r0, [sp, 0x18]
-_081955A4:
- movs r5, 0
- mov r0, r9
- str r0, [sp, 0x38]
-_081955AA:
- movs r6, 0
- lsls r7, r5, 1
- ldr r4, [sp, 0x18]
-_081955B0:
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- ldr r3, =0x00000d64
- adds r1, r3
- ldr r2, [sp, 0x38]
- adds r0, r1, r2
- ldrh r0, [r0]
- ldr r3, =gUnknown_0203BC8C
- mov r8, r3
- ldr r2, [r3]
- lsls r0, 4
- adds r0, r2
- adds r0, 0x2
- adds r0, r7
- ldrh r0, [r0]
- adds r1, r4
- ldrh r1, [r1]
- lsls r1, 4
- adds r1, r2
- ldrh r1, [r1]
- movs r2, 0x2
- bl sub_818FFC0
- ldr r1, [sp, 0xC]
- adds r1, r0
- str r1, [sp, 0xC]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x2
- ble _081955B0
- adds r5, 0x1
- cmp r5, 0x3
- ble _081955AA
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r3, =0x00000d64
- adds r0, r3
- add r0, r9
- ldrh r0, [r0]
- mov r5, r8
- ldr r1, [r5]
- lsls r0, 4
- adds r0, r1
- ldrh r2, [r0]
- ldr r0, =gBaseStats
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r1, 0x1]
- adds r0, r2
- ldrb r2, [r1, 0x2]
- adds r0, r2
- ldrb r2, [r1, 0x3]
- adds r0, r2
- ldrb r3, [r1, 0x4]
- adds r0, r3
- ldrb r1, [r1, 0x5]
- adds r0, r1
- movs r1, 0xA
- bl __divsi3
- ldr r5, [sp, 0xC]
- adds r5, r0
- str r5, [sp, 0xC]
- movs r0, 0x2
- add r9, r0
- movs r1, 0x1
- add r10, r1
- mov r2, r10
- cmp r2, 0x2
- ble _081955A4
- bl Random
- movs r1, 0x1F
- ands r1, r0
- adds r5, r1
- ldr r3, [sp, 0x4]
- adds r5, r3
- str r5, [sp, 0xC]
- movs r5, 0
- mov r10, r5
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x8]
- adds r0, r1, r2
- lsls r0, 1
- str r0, [sp, 0x1C]
- ldr r5, [sp, 0x28]
- adds r0, r5, r3
- lsls r0, 1
- str r0, [sp, 0x20]
-_08195668:
- movs r5, 0
- mov r0, r10
- lsls r3, r0, 1
- movs r1, 0x1
- add r10, r1
- ldr r2, [sp, 0x1C]
- adds r2, r3
- mov r8, r2
-_08195678:
- movs r6, 0
- lsls r7, r5, 1
- adds r5, 0x1
- str r5, [sp, 0x3C]
- ldr r4, [sp, 0x20]
-_08195682:
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- ldr r0, =0x00000d64
- adds r1, r0
- mov r2, r8
- adds r0, r1, r2
- ldrh r0, [r0]
- ldr r5, =gUnknown_0203BC8C
- mov r9, r5
- ldr r2, [r5]
- lsls r0, 4
- adds r0, r2
- adds r0, 0x2
- adds r0, r7
- ldrh r0, [r0]
- adds r1, r4
- ldrh r1, [r1]
- lsls r1, 4
- adds r1, r2
- ldrh r1, [r1]
- movs r2, 0x2
- str r3, [sp, 0x34]
- bl sub_818FFC0
- ldr r1, [sp, 0x10]
- adds r1, r0
- str r1, [sp, 0x10]
- adds r4, 0x2
- adds r6, 0x1
- ldr r3, [sp, 0x34]
- cmp r6, 0x2
- ble _08195682
- ldr r5, [sp, 0x3C]
- cmp r5, 0x3
- ble _08195678
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r5, [sp, 0x1C]
- adds r1, r3, r5
- ldr r2, =0x00000d64
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- mov r3, r9
- ldr r1, [r3]
- lsls r0, 4
- adds r0, r1
- ldrh r2, [r0]
- ldr r0, =gBaseStats
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r1, 0x1]
- adds r0, r2
- ldrb r5, [r1, 0x2]
- adds r0, r5
- ldrb r2, [r1, 0x3]
- adds r0, r2
- ldrb r2, [r1, 0x4]
- adds r0, r2
- ldrb r1, [r1, 0x5]
- adds r0, r1
- movs r1, 0xA
- bl __divsi3
- ldr r3, [sp, 0x10]
- adds r3, r0
- str r3, [sp, 0x10]
- mov r5, r10
- cmp r5, 0x2
- ble _08195668
- bl Random
- movs r1, 0x1F
- ands r1, r0
- ldr r0, [sp, 0x10]
- adds r0, r1
- ldr r1, [sp, 0x8]
- adds r0, r1
- str r0, [sp, 0x10]
- ldr r2, [sp, 0xC]
- cmp r2, r0
- ble _08195784
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- ldr r5, [sp, 0x30]
- adds r1, r5
- ldr r0, =0x00000d25
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r1, [r3]
- adds r1, r5
- ldr r3, =0x00000d25
- adds r1, r3
- ldrb r0, [r1]
- movs r5, 0x19
- negs r5, r5
- ands r0, r5
- ldr r2, [sp, 0x14]
- orrs r0, r2
- strb r0, [r1]
- ldr r0, [sp, 0x4]
- ldr r1, [sp, 0x8]
- ldr r2, [sp]
- bl sub_8193ED0
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- movs r5, 0xEC
- lsls r5, 4
- adds r1, r5
- ldr r2, [sp, 0x2C]
- adds r1, r2
- b _08195874
- .pool
-_08195784:
- ldr r3, [sp, 0xC]
- ldr r5, [sp, 0x10]
- cmp r3, r5
- bge _081957DC
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r3, [sp, 0x4]
- lsls r2, r3, 2
- adds r1, r2
- ldr r5, =0x00000d25
- adds r1, r5
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- adds r1, r2
- ldr r0, =0x00000d25
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x19
- negs r2, r2
- ands r0, r2
- ldr r3, [sp, 0x14]
- orrs r0, r3
- strb r0, [r1]
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x4]
- ldr r2, [sp]
- bl sub_8193ED0
- ldr r1, [r5]
- movs r5, 0xEC
- lsls r5, 4
- adds r1, r5
- ldr r2, [sp, 0x28]
- adds r1, r2
- b _08195874
- .pool
-_081957DC:
- ldr r3, [sp, 0x4]
- ldr r5, [sp, 0x8]
- cmp r3, r5
- ble _08195830
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, [sp, 0x30]
- adds r1, r2
- ldr r3, =0x00000d25
- adds r1, r3
- ldrb r0, [r1]
- movs r5, 0x4
- orrs r0, r5
- strb r0, [r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r1, r2
- adds r1, r3
- ldrb r0, [r1]
- movs r2, 0x19
- negs r2, r2
- ands r0, r2
- ldr r3, [sp, 0x14]
- orrs r0, r3
- strb r0, [r1]
- ldr r0, [sp, 0x4]
- ldr r1, [sp, 0x8]
- ldr r2, [sp]
- bl sub_8193ED0
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- movs r2, 0xEC
- lsls r2, 4
- adds r1, r2
- ldr r3, [sp, 0x2C]
- b _08195872
- .pool
-_08195830:
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- ldr r0, [sp, 0x4]
- lsls r2, r0, 2
- adds r1, r2
- ldr r3, =0x00000d25
- adds r1, r3
- ldrb r0, [r1]
- movs r5, 0x4
- orrs r0, r5
- strb r0, [r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r1, r2
- adds r1, r3
- ldrb r0, [r1]
- movs r2, 0x19
- negs r2, r2
- ands r0, r2
- ldr r3, [sp, 0x14]
- orrs r0, r3
- strb r0, [r1]
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x4]
- ldr r2, [sp]
- bl sub_8193ED0
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- movs r2, 0xEC
- lsls r2, 4
- adds r1, r2
- ldr r3, [sp, 0x28]
-_08195872:
- adds r1, r3
-_08195874:
- strh r0, [r1]
-_08195876:
- ldr r5, [sp, 0x24]
- cmp r5, 0xF
- bgt _0819587E
- b _0819545E
-_0819587E:
- add sp, 0x40
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195438
-
- thumb_func_start sub_8195898
-sub_8195898: @ 8195898
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
- bl sub_8165C40
- ldr r0, =0x000003fe
- cmp r5, r0
- bne _081958B8
- adds r0, r6, 0
- bl sub_8195938
- b _08195902
- .pool
-_081958B8:
- ldr r0, =0x000003ff
- cmp r5, r0
- bne _081958DC
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
-_081958C2:
- adds r0, r6, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x6
- ble _081958C2
- b _081958FC
- .pool
-_081958DC:
- ldr r0, =0x0000012b
- cmp r5, r0
- bhi _081958FC
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r5
- adds r0, r1
- adds r2, r0, 0x4
-_081958EE:
- adds r0, r6, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x6
- ble _081958EE
-_081958FC:
- adds r1, r6, r4
- movs r0, 0xFF
- strb r0, [r1]
-_08195902:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195898
-
- thumb_func_start sub_8195910
-sub_8195910: @ 8195910
- ldr r0, =gTrainers
- ldr r1, =0x00007df3
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_8195910
-
- thumb_func_start sub_8195924
-sub_8195924: @ 8195924
- ldr r0, =gTrainers
- ldr r1, =0x00007df1
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_8195924
-
- thumb_func_start sub_8195938
-sub_8195938: @ 8195938
- push {r4,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r4, =(gTrainers + 806 * 0x28 + 0x4) @ TRAINER_TUCKER name
-_08195940:
- adds r0, r3, r2
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x6
- ble _08195940
- adds r1, r3, r2
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195938
-
- thumb_func_start sub_8195960
-sub_8195960: @ 8195960
- push {lr}
- ldr r1, =gUnknown_0860DE50
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195960
-
- thumb_func_start sub_8195980
-sub_8195980: @ 8195980
- push {r4-r7,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, [r4]
- ldr r2, =0x00000ca8
- adds r0, r2
- movs r6, 0
- strb r6, [r0]
- ldr r1, [r4]
- adds r2, 0xA
- adds r0, r1, r2
- strh r6, [r0]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r4, [r4]
- ldr r0, =0x00000cdc
- adds r3, r4, r0
- ldr r2, =gUnknown_0860DE98
- lsls r1, r5, 2
- lsls r0, r7, 3
- adds r1, r0
- adds r1, r2
- ldr r0, [r3]
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _081959F2
- lsls r0, r5, 1
- lsls r1, r7, 2
- adds r0, r1
- ldr r2, =0x00000dc8
- adds r1, r4, r2
- adds r1, r0
- strh r6, [r1]
-_081959F2:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- ldr r0, =gTrainerBattleOpponent_A
- strh r6, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195980
-
- thumb_func_start sub_8195A38
-sub_8195A38: @ 8195A38
- push {r4-r7,lr}
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r7, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _08195A90
- cmp r0, 0x1
- bgt _08195A74
- cmp r0, 0
- beq _08195A7A
- b _08195AD0
- .pool
-_08195A74:
- cmp r0, 0x2
- beq _08195AB0
- b _08195AD0
-_08195A7A:
- ldr r0, =gSpecialVar_Result
- ldr r1, [r5]
- ldr r2, =0x00000dc6
- adds r1, r2
- ldrh r1, [r1]
- strh r1, [r0]
- b _08195AD0
- .pool
-_08195A90:
- ldr r3, =gSpecialVar_Result
- ldr r0, [r5]
- lsls r1, r7, 1
- lsls r2, r6, 2
- adds r1, r2
- ldr r2, =0x00000dc8
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3]
- b _08195AD0
- .pool
-_08195AB0:
- ldr r4, =gSpecialVar_Result
- ldr r2, [r5]
- ldr r0, =0x00000cdc
- adds r2, r0
- ldr r3, =gUnknown_0860DE98
- lsls r0, r7, 2
- lsls r1, r6, 3
- adds r0, r1
- adds r0, r3
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- strh r0, [r4]
-_08195AD0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195A38
-
- thumb_func_start sub_8195AE4
-sub_8195AE4: @ 8195AE4
- push {r4-r6,lr}
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _08195B3C
- cmp r0, 0x1
- bgt _08195B20
- cmp r0, 0
- beq _08195B26
- b _08195BA0
- .pool
-_08195B20:
- cmp r0, 0x2
- beq _08195B5C
- b _08195BA0
-_08195B26:
- ldr r0, [r6]
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- ldr r2, =0x00000dc6
- adds r0, r2
- strh r1, [r0]
- b _08195BA0
- .pool
-_08195B3C:
- ldr r2, [r6]
- lsls r0, r5, 1
- lsls r1, r4, 2
- adds r0, r1
- ldr r1, =0x00000dc8
- adds r2, r1
- adds r2, r0
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- strh r0, [r2]
- b _08195BA0
- .pool
-_08195B5C:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _08195B88
- ldr r2, [r6]
- ldr r0, =0x00000cdc
- adds r2, r0
- ldr r3, =gUnknown_0860DE98
- lsls r1, r5, 2
- lsls r0, r4, 3
- adds r1, r0
- adds r1, r3
- ldr r0, [r2]
- ldr r1, [r1]
- orrs r0, r1
- b _08195B9E
- .pool
-_08195B88:
- ldr r2, [r6]
- ldr r1, =0x00000cdc
- adds r2, r1
- ldr r3, =gUnknown_0860DEA8
- lsls r1, r5, 2
- lsls r0, r4, 3
- adds r1, r0
- adds r1, r3
- ldr r0, [r2]
- ldr r1, [r1]
- ands r0, r1
-_08195B9E:
- str r0, [r2]
-_08195BA0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195AE4
-
- thumb_func_start sub_8195BB0
-sub_8195BB0: @ 8195BB0
- push {r4,lr}
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- ldr r3, =0x00000ca9
- adds r1, r2, r3
- ldrb r1, [r1]
- lsls r1, 30
- lsrs r1, 29
- lsrs r0, 14
- adds r1, r0
- ldr r0, =0x00000dc8
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- cmp r0, 0x31
- bhi _08195C00
- ldr r4, =gSpecialVar_Result
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- strh r0, [r4]
- b _08195C16
- .pool
-_08195C00:
- cmp r0, 0x62
- bhi _08195C10
- ldr r1, =gSpecialVar_Result
- movs r0, 0x3
- b _08195C14
- .pool
-_08195C10:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x4
-_08195C14:
- strh r0, [r1]
-_08195C16:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195BB0
-
- thumb_func_start sub_8195C20
-sub_8195C20: @ 8195C20
- push {r4,lr}
- ldr r4, =gTrainerBattleOpponent_A
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xFF
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsrs r1, 6
- strh r1, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_8162614
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195C20
-
- thumb_func_start sub_8195C50
-sub_8195C50: @ 8195C50
- push {lr}
- ldr r3, =gTrainerBattleOpponent_A
- ldrh r1, [r3]
- ldr r0, =0x0000012b
- cmp r1, r0
- bhi _08195C6C
- ldr r2, =gUnknown_0203BC88
- movs r0, 0x34
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl ConvertBattleFrontierTrainerSpeechToString
-_08195C6C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195C50
thumb_func_start sub_8195C7C
sub_8195C7C: @ 8195C7C
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s
index 7e72aaf76..1a2233a97 100644
--- a/asm/battle_frontier_2.s
+++ b/asm/battle_frontier_2.s
@@ -1867,7 +1867,7 @@ sub_819B484: @ 819B484
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x18]
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
str r0, [r1]
ldrb r1, [r4]
@@ -1948,7 +1948,7 @@ _0819B572:
ldr r0, [r2]
adds r0, r4
adds r0, 0x8
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r2, [r1]
lsls r5, 4
adds r2, r5, r2
@@ -1973,7 +1973,7 @@ _0819B5B8:
ldr r0, [r3]
adds r0, r4
adds r0, 0x8
- ldr r5, =gUnknown_0203BC8C
+ ldr r5, =gFacilityTrainerMons
ldr r1, [r5]
adds r1, r7, r1
lsls r2, r6, 1
@@ -2045,7 +2045,7 @@ sub_819B63C: @ 819B63C
add r0, sp, 0xC
movs r1, 0
strb r1, [r0]
- ldr r2, =gUnknown_0203BC8C
+ ldr r2, =gFacilityTrainerMons
ldr r0, =gSlateportBattleTentMons
str r0, [r2]
ldr r0, =gSaveBlock2Ptr
@@ -2089,7 +2089,7 @@ _0819B678:
adds r4, 0xC
adds r0, r4
adds r0, 0x8
- ldr r3, =gUnknown_0203BC8C
+ ldr r3, =gFacilityTrainerMons
ldr r2, [r3]
mov r7, r8
lsls r5, r7, 4
@@ -2114,7 +2114,7 @@ _0819B6D4:
ldr r0, [r1]
adds r0, r4
adds r0, 0x8
- ldr r3, =gUnknown_0203BC8C
+ ldr r3, =gFacilityTrainerMons
ldr r2, [r3]
mov r3, r8
lsls r1, r3, 4
@@ -2145,7 +2145,7 @@ _0819B6D4:
ldr r0, [r2]
adds r0, r4
adds r0, 0x8
- ldr r3, =gUnknown_0203BC8C
+ ldr r3, =gFacilityTrainerMons
ldr r1, [r3]
adds r1, r5, r1
ldrb r2, [r1, 0xA]
@@ -2935,7 +2935,7 @@ sub_819BD70: @ 819BD70
adds r0, r5, 0
mov r2, r8
movs r3, 0x1
- bl sub_818D7D8
+ bl CreateMonPicSprite_HandleDeoxys
ldr r1, [r6]
movs r2, 0xA6
lsls r2, 2
@@ -3053,7 +3053,7 @@ sub_819BE34: @ 819BE34
adds r0, r5, 0
mov r2, r9
movs r3, 0x1
- bl sub_818D7D8
+ bl CreateMonPicSprite_HandleDeoxys
ldr r1, [r6]
movs r2, 0xA6
lsls r2, 2
@@ -3166,7 +3166,7 @@ _0819BF48:
adds r0, r5, 0
adds r2, r6, 0
movs r3, 0x1
- bl sub_818D7D8
+ bl CreateMonPicSprite_HandleDeoxys
mov r2, r9
ldr r1, [r2]
add r1, r8
@@ -3846,19 +3846,19 @@ sub_819C568: @ 819C568
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
- bl sub_818D820
+ bl FreeAndDestroyMonPicSprite
ldr r0, [r4]
movs r1, 0xA6
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
- bl sub_818D820
+ bl FreeAndDestroyMonPicSprite
ldr r0, [r4]
movs r1, 0xA7
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
- bl sub_818D820
+ bl FreeAndDestroyMonPicSprite
ldr r0, =sub_819C2D4
movs r1, 0x1
bl CreateTask
@@ -3936,7 +3936,7 @@ sub_819C5D0: @ 819C5D0
sub_819C634: @ 819C634
push {r4-r7,lr}
lsls r0, 16
- ldr r2, =gUnknown_0203BC8C
+ ldr r2, =gFacilityTrainerMons
ldr r1, [r2]
lsrs r0, 12
adds r0, r1
@@ -6709,7 +6709,7 @@ _0819DDA8:
bl ResetSpriteData
bl ResetTasks
bl FreeAllSpritePalettes
- bl dp13_810BB8C
+ bl ResetAllPicSprites
ldr r0, =gFrontierFactorySelectMenu_Gfx
ldr r5, =gUnknown_0203CE40
ldr r1, [r5]
@@ -9315,7 +9315,7 @@ sub_819F304: @ 819F304
adds r0, r5, 0
mov r1, r9
movs r3, 0x1
- bl sub_818D7D8
+ bl CreateMonPicSprite_HandleDeoxys
ldr r1, [r6]
adds r1, 0x2C
strb r0, [r1]
@@ -9370,7 +9370,7 @@ sub_819F3F8: @ 819F3F8
lsrs r5, 24
lsls r0, r4, 24
lsrs r0, 24
- bl sub_818D820
+ bl FreeAndDestroyMonPicSprite
ldr r0, =sub_819F7B4
movs r1, 0x1
bl CreateTask
@@ -9403,7 +9403,7 @@ sub_819F444: @ 819F444
adds r6, r1, 0
lsls r0, r4, 24
lsrs r0, 24
- bl sub_818D820
+ bl FreeAndDestroyMonPicSprite
ldr r5, =gSprites
lsls r4, 16
lsrs r1, r4, 24
@@ -9996,7 +9996,7 @@ _0819F908:
adds r0, r4, 0
adds r2, r5, 0
movs r3, 0x1
- bl sub_818D7D8
+ bl CreateMonPicSprite_HandleDeoxys
ldr r2, =gUnknown_03001284
ldr r1, [r2]
adds r1, 0x2C
@@ -14195,7 +14195,7 @@ sub_81A1B1C: @ 81A1B1C
thumb_func_start sub_81A1B28
sub_81A1B28: @ 81A1B28
- ldr r1, =gUnknown_0203BC88
+ ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
bx lr
@@ -17391,7 +17391,7 @@ _081A370C:
ldr r0, =0x0000012b
cmp r3, r0
bhi _081A3738
- ldr r2, =gUnknown_0203BC88
+ ldr r2, =gFacilityTrainers
movs r0, 0x34
adds r1, r3, 0
muls r1, r0
@@ -17443,7 +17443,7 @@ _081A3794:
ldr r0, =0x0000012b
cmp r3, r0
bhi _081A37B8
- ldr r2, =gUnknown_0203BC88
+ ldr r2, =gFacilityTrainers
movs r0, 0x34
adds r1, r3, 0
muls r1, r0
@@ -17511,7 +17511,7 @@ _081A3844:
ldr r0, =0x0000012b
cmp r3, r0
bhi _081A3868
- ldr r2, =gUnknown_0203BC88
+ ldr r2, =gFacilityTrainers
movs r0, 0x34
adds r1, r3, 0
muls r1, r0
@@ -20046,10 +20046,10 @@ sub_81A4E04: @ 81A4E04
cmp r0, 0x1
bne _081A4E44
ldr r0, =0x000003fe
- bl sub_81953A0
+ bl TrainerIdToDomeTournamentId
lsls r0, 16
lsrs r0, 16
- bl sub_818FC78
+ bl GetTrainerMonCountInBits
adds r4, r0, 0
b _081A4E46
.pool
@@ -20059,7 +20059,7 @@ _081A4E46:
bl ZeroEnemyPartyMons
movs r1, 0
str r1, [sp, 0x18]
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x1C]
@@ -22329,7 +22329,7 @@ sub_81A61B0: @ 81A61B0
ldrh r0, [r1]
movs r1, 0x7
bl __udivsi3
- ldr r2, =gUnknown_0203BC88
+ ldr r2, =gFacilityTrainers
ldr r1, =gBattleFrontierTrainers
str r1, [r2]
ldr r5, =0x00000cb2
@@ -22413,7 +22413,7 @@ _081A627A:
lsls r0, 16
lsrs r0, 16
mov r9, r0
- ldr r4, =gUnknown_0203BC8C
+ ldr r4, =gFacilityTrainerMons
ldr r2, [r4]
lsls r1, r0, 4
adds r0, r1, r2
@@ -22458,7 +22458,7 @@ _081A62D0:
cmp r0, r5
beq _081A6302
adds r6, r4, 0
- ldr r3, =gUnknown_0203BC8C
+ ldr r3, =gFacilityTrainerMons
mov r12, r3
mov r5, r8
ldr r3, [sp, 0x14]
@@ -22493,7 +22493,7 @@ _081A631C:
ldrh r1, [r3]
cmp r1, 0
beq _081A6336
- ldr r6, =gUnknown_0203BC8C
+ ldr r6, =gFacilityTrainerMons
ldr r0, [r6]
ldr r6, [sp, 0x24]
adds r0, r6, r0
@@ -22512,7 +22512,7 @@ _081A633E:
cmp r2, r4
bne _081A636E
lsls r4, r7, 1
- ldr r0, =gUnknown_0203BC8C
+ ldr r0, =gFacilityTrainerMons
ldr r1, [r0]
add r1, r8
ldrh r0, [r1]
@@ -22573,12 +22573,12 @@ sub_81A63CC: @ 81A63CC
ands r0, r1
cmp r0, 0x2
beq _081A63FC
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
b _081A6400
.pool
_081A63FC:
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gSlateportBattleTentMons
_081A6400:
str r0, [r1]
@@ -22637,7 +22637,7 @@ _081A6408:
adds r1, r2
strb r0, [r1]
ldrh r1, [r6]
- ldr r0, =gUnknown_0203BC8C
+ ldr r0, =gFacilityTrainerMons
ldr r0, [r0]
lsls r1, 4
adds r1, r0
@@ -22679,7 +22679,7 @@ sub_81A64C4: @ 81A64C4
ands r0, r1
cmp r0, 0x2
bne _081A6500
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gSlateportBattleTentMons
str r0, [r1]
movs r2, 0x1E
@@ -22687,7 +22687,7 @@ sub_81A64C4: @ 81A64C4
b _081A6518
.pool
_081A6500:
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
str r0, [r1]
ldrb r1, [r2]
@@ -22712,7 +22712,7 @@ _081A6522:
mov r1, sp
adds r1, 0x12
str r1, [sp, 0x1C]
- ldr r2, =gUnknown_0203BC8C
+ ldr r2, =gFacilityTrainerMons
mov r9, r2
_081A6534:
ldr r4, =gSaveBlock2Ptr
@@ -22879,7 +22879,7 @@ _081A666C:
_081A667A:
movs r2, 0
mov r8, r2
- ldr r4, =gUnknown_0203BC8C
+ ldr r4, =gFacilityTrainerMons
mov r9, r4
_081A6682:
ldr r5, =gSaveBlock2Ptr
@@ -23050,7 +23050,7 @@ sub_81A67EC: @ 81A67EC
mov r5, r8
push {r5-r7}
sub sp, 0x4C
- ldr r1, =gUnknown_0203BC88
+ ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
mov r0, sp
@@ -23113,7 +23113,7 @@ _081A681A:
bne _081A6878
movs r2, 0x1
_081A6878:
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
str r0, [r1]
mov r1, r9
@@ -23166,7 +23166,7 @@ _081A68F2:
bl sub_81A6EF0
lsls r0, 16
lsrs r7, r0, 16
- ldr r0, =gUnknown_0203BC8C
+ ldr r0, =gFacilityTrainerMons
ldr r1, [r0]
lsls r2, r7, 4
adds r4, r2, r1
@@ -23226,7 +23226,7 @@ _081A6964:
ldrh r4, [r5]
cmp r4, 0
beq _081A6994
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
mov r2, r9
adds r1, r2, r0
@@ -23262,7 +23262,7 @@ _081A699C:
lsls r0, 4
adds r1, r0
strh r7, [r1]
- ldr r2, =gUnknown_0203BC8C
+ ldr r2, =gFacilityTrainerMons
ldr r1, [r2]
add r1, r9
ldrh r0, [r1]
@@ -23307,7 +23307,7 @@ sub_81A6A08: @ 81A6A08
mov r7, r8
push {r7}
sub sp, 0x18
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
str r0, [r1]
movs r4, 0
@@ -23326,7 +23326,7 @@ _081A6A1E:
movs r4, 0
ldr r0, =gUnknown_03006298
mov r8, r0
- ldr r0, =gUnknown_0203BC8C
+ ldr r0, =gFacilityTrainerMons
ldr r6, [r0]
ldr r1, =gBaseStats
mov r12, r1
@@ -23423,7 +23423,7 @@ sub_81A6AEC: @ 81A6AEC
push {r4-r7,lr}
sub sp, 0x8
movs r7, 0
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
str r0, [r1]
movs r4, 0
@@ -23445,7 +23445,7 @@ _081A6B0E:
ldrh r6, [r0]
movs r5, 0
_081A6B18:
- ldr r0, =gUnknown_0203BC8C
+ ldr r0, =gFacilityTrainerMons
ldr r1, [r0]
lsls r0, r6, 4
adds r0, r1
@@ -23590,12 +23590,12 @@ sub_81A6C1C: @ 81A6C1C
ands r0, r1
cmp r0, 0x2
beq _081A6C48
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
b _081A6C4C
.pool
_081A6C48:
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gSlateportBattleTentMons
_081A6C4C:
str r0, [r1]
@@ -23615,7 +23615,7 @@ _081A6C50:
lsls r1, 4
adds r2, r1
ldrh r2, [r2]
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r1, [r1]
lsls r2, 4
adds r2, r1
@@ -23702,7 +23702,7 @@ sub_81A6CD0: @ 81A6CD0
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x24]
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x20]
@@ -23727,7 +23727,7 @@ _081A6D4C:
bl sub_81A6EF0
lsls r0, 16
lsrs r5, r0, 16
- ldr r7, =gUnknown_0203BC8C
+ ldr r7, =gFacilityTrainerMons
ldr r1, [r7]
lsls r0, r5, 4
adds r0, r1
@@ -23775,7 +23775,7 @@ _081A6DA8:
cmp r4, r9
bge _081A6DDC
add r2, sp, 0xC
- ldr r7, =gUnknown_0203BC8C
+ ldr r7, =gFacilityTrainerMons
ldr r0, [r7]
lsls r1, r5, 4
adds r0, r1, r0
@@ -23784,7 +23784,7 @@ _081A6DA8:
ldrh r0, [r0]
cmp r2, r0
beq _081A6DDC
- ldr r6, =gUnknown_0203BC8C
+ ldr r6, =gFacilityTrainerMons
adds r3, r7, 0
add r2, sp, 0xC
_081A6DC8:
@@ -23805,7 +23805,7 @@ _081A6DDC:
cmp r4, r9
bge _081A6E0C
ldr r7, =gBattleFrontierHeldItems
- ldr r6, =gUnknown_0203BC8C
+ ldr r6, =gFacilityTrainerMons
add r2, sp, 0x14
lsls r3, r5, 4
_081A6DEE:
@@ -23833,7 +23833,7 @@ _081A6E0C:
mov r1, sp
adds r1, r2
adds r1, 0xC
- ldr r3, =gUnknown_0203BC8C
+ ldr r3, =gFacilityTrainerMons
ldr r4, [r3]
lsls r5, 4
mov r8, r5
@@ -23875,7 +23875,7 @@ _081A6E0C:
add r0, r9
mov r8, r0
_081A6E6E:
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
adds r0, r7, r0
lsls r1, r4, 1
@@ -23898,7 +23898,7 @@ _081A6E6E:
movs r1, 0x20
mov r2, r10
bl SetMonData
- ldr r2, =gUnknown_0203BC8C
+ ldr r2, =gFacilityTrainerMons
ldr r0, [r2]
adds r0, r7, r0
ldrb r2, [r0, 0xA]
@@ -26455,7 +26455,7 @@ _081A831A:
bne _081A82D2
ldr r5, =gTrainerBattleOpponent_A
strh r4, [r5]
- ldr r1, =gUnknown_0203BC88
+ ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
ldrh r0, [r5]
@@ -26500,7 +26500,7 @@ sub_81A8374: @ 81A8374
bl __udivsi3
lsls r0, 16
lsrs r5, r0, 16
- ldr r1, =gUnknown_0203BC88
+ ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
lsls r7, r5, 24
@@ -26667,7 +26667,7 @@ sub_81A84EC: @ 81A84EC
ldr r0, =0x0000012b
cmp r1, r0
bhi _081A8542
- ldr r2, =gUnknown_0203BC88
+ ldr r2, =gFacilityTrainers
movs r0, 0x34
muls r1, r0
ldr r0, [r2]
@@ -26684,7 +26684,7 @@ _081A8524:
ldr r0, =0x0000012b
cmp r1, r0
bhi _081A8542
- ldr r2, =gUnknown_0203BC88
+ ldr r2, =gFacilityTrainers
movs r0, 0x34
muls r1, r0
ldr r0, [r2]
@@ -28498,7 +28498,7 @@ _081A940A:
thumb_func_start sub_81A9414
sub_81A9414: @ 81A9414
- ldr r1, =gUnknown_0203BC88
+ ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
bx lr
@@ -28534,7 +28534,7 @@ sub_81A9424: @ 81A9424
lsrs r5, r0, 16
movs r6, 0
ldr r2, =gUnknown_08613C1C
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r5
@@ -28554,7 +28554,7 @@ _081A9488:
ldr r4, =gUnknown_08613C1C
lsls r3, r6, 1
adds r2, r3, r4
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r5
@@ -29517,7 +29517,7 @@ _081A9C56:
bl SetMonData
cmp r5, 0
beq _081A9CD4
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r5, r0, 24
ldr r1, [sp, 0x10]
@@ -29795,7 +29795,7 @@ sub_81A9EDC: @ 81A9EDC
push {lr}
lsls r0, 16
lsrs r0, 16
- ldr r2, =gUnknown_0203BC88
+ ldr r2, =gFacilityTrainers
movs r1, 0x34
muls r1, r0
ldr r0, [r2]
@@ -29812,7 +29812,7 @@ sub_81A9EFC: @ 81A9EFC
push {lr}
lsls r0, 16
lsrs r0, 16
- ldr r2, =gUnknown_0203BC88
+ ldr r2, =gFacilityTrainers
movs r1, 0x34
muls r1, r0
ldr r0, [r2]
@@ -29829,7 +29829,7 @@ sub_81A9F1C: @ 81A9F1C
push {lr}
lsls r0, 16
lsrs r0, 16
- ldr r2, =gUnknown_0203BC88
+ ldr r2, =gFacilityTrainers
movs r1, 0x34
muls r1, r0
ldr r0, [r2]
@@ -29848,7 +29848,7 @@ GetTrainerEncounterMusicIdInBattlePyramind: @ 81A9F3C
lsrs r0, 16
movs r4, 0
ldr r3, =gFacilityClassToTrainerClass
- ldr r1, =gUnknown_0203BC88
+ ldr r1, =gFacilityTrainers
ldr r2, [r1]
movs r1, 0x34
muls r0, r1
diff --git a/asm/battle_pyramid.s b/asm/battle_pyramid.s
deleted file mode 100644
index ea07fdd0a..000000000
--- a/asm/battle_pyramid.s
+++ /dev/null
@@ -1,3699 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_81C5238
-sub_81C5238: @ 81C5238
- push {r4,lr}
- sub sp, 0x4
- ldr r4, =gUnknown_0203CF2C
- ldr r0, [r4]
- ldr r1, =0x00000984
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bhi _081C52F0
- lsls r0, 2
- ldr r1, =_081C5264
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081C5264:
- .4byte _081C5278
- .4byte _081C5294
- .4byte _081C52B8
- .4byte _081C52C8
- .4byte _081C52D4
-_081C5278:
- bl reset_temp_tile_data_buffers
- ldr r1, =gBagScreen_Gfx
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _081C52D8
- .pool
-_081C5294:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C5308
- ldr r0, =gUnknown_08D9AE04
- ldr r4, =gUnknown_0203CF2C
- ldr r1, [r4]
- adds r1, 0x4
- bl LZDecompressWram
- ldr r1, [r4]
- b _081C52DC
- .pool
-_081C52B8:
- ldr r0, =gUnknown_08D9AF44
- movs r1, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- b _081C52D8
- .pool
-_081C52C8:
- ldr r0, =gUnknown_0861F3CC
- bl LoadCompressedObjectPic
- b _081C52D8
- .pool
-_081C52D4:
- bl sub_81C6E98
-_081C52D8:
- ldr r0, =gUnknown_0203CF2C
- ldr r1, [r0]
-_081C52DC:
- ldr r0, =0x00000984
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _081C5308
- .pool
-_081C52F0:
- bl LoadListMenuArrowsGfx
- ldr r0, [r4]
- ldr r1, =0x00000984
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- movs r0, 0x1
- b _081C530A
- .pool
-_081C5308:
- movs r0, 0
-_081C530A:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81C5238
-
- thumb_func_start sub_81C5314
-sub_81C5314: @ 81C5314
- push {r4-r7,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r1, =0x00000ca9
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 30
- lsrs r1, 30
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r3, =0x00000e2c
- adds r0, r3
- adds r7, r2, r0
- movs r6, 0
- ldr r1, =gUnknown_0203CF2C
- ldr r0, [r1]
- ldr r4, =0x00000821
- adds r0, r4
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r6, r0
- bge _081C5382
- adds r5, r1, 0
-_081C5344:
- lsls r1, r6, 1
- adds r4, r1, r6
- lsls r4, 3
- ldr r0, =0x0000087c
- adds r4, r0
- ldr r0, [r5]
- adds r0, r4
- adds r1, r7
- ldrh r1, [r1]
- bl sub_81C540C
- ldr r1, [r5]
- lsls r2, r6, 3
- ldr r3, =0x00000824
- adds r0, r1, r3
- adds r0, r2
- adds r4, r1, r4
- str r4, [r0]
- ldr r4, =0x00000828
- adds r0, r1, r4
- adds r0, r2
- str r6, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =0x00000821
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r6, r0
- blt _081C5344
-_081C5382:
- ldr r5, =gUnknown_0203CF2C
- lsls r4, r6, 1
- adds r4, r6
- lsls r4, 3
- ldr r1, =0x0000087c
- adds r4, r1
- ldr r0, [r5]
- adds r0, r4
- ldr r1, =gText_CloseBag
- bl StringCopy
- ldr r1, [r5]
- lsls r2, r6, 3
- ldr r3, =0x00000824
- adds r0, r1, r3
- adds r0, r2
- adds r4, r1, r4
- str r4, [r0]
- ldr r4, =0x00000828
- adds r1, r4
- adds r1, r2
- movs r0, 0x2
- negs r0, r0
- str r0, [r1]
- ldr r2, =gMultiuseListMenuTemplate
- adds r1, r2, 0
- ldr r0, =gUnknown_0861F2C0
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldr r1, [r5]
- ldr r6, =0x00000821
- adds r0, r1, r6
- ldrb r0, [r0]
- strh r0, [r2, 0xC]
- adds r3, r1, r3
- str r3, [r2]
- ldr r7, =0x00000822
- adds r1, r7
- ldrb r0, [r1]
- strh r0, [r2, 0xE]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5314
-
- thumb_func_start sub_81C540C
-sub_81C540C: @ 81C540C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r4, 0
- bl ItemId_GetPocket
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _081C5450
- ldr r0, =gStringVar1
- adds r1, r4, 0
- subs r1, 0x84
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r1, =gText_UnkF908Var1Clear7Var2
- adds r0, r5, 0
- bl StringExpandPlaceholders
- b _081C5458
- .pool
-_081C5450:
- adds r0, r4, 0
- adds r1, r5, 0
- bl CopyItemName
-_081C5458:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81C540C
-
- thumb_func_start sub_81C5460
-sub_81C5460: @ 81C5460
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _081C5476
- movs r0, 0x5
- bl PlaySE
- bl sub_81C6F20
-_081C5476:
- ldr r5, =gUnknown_0203CF2C
- ldr r1, [r5]
- ldr r2, =0x00000814
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081C5504
- adds r2, 0x1
- adds r0, r1, r2
- ldrb r1, [r0]
- movs r0, 0x1
- eors r0, r1
- bl sub_81C6FF8
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _081C54E0
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- lsls r3, r4, 1
- ldr r1, =0x00000ca9
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 30
- lsrs r1, 30
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r3, r0
- ldr r0, =0x00000e2c
- adds r2, r0
- adds r2, r3
- ldrh r0, [r2]
- ldr r1, [r5]
- ldr r2, =0x00000815
- adds r1, r2
- ldrb r1, [r1]
- bl sub_81C6F90
- b _081C54EE
- .pool
-_081C54E0:
- ldr r0, =0x0000ffff
- ldr r1, [r5]
- ldr r2, =0x00000815
- adds r1, r2
- ldrb r1, [r1]
- bl sub_81C6F90
-_081C54EE:
- ldr r0, =gUnknown_0203CF2C
- ldr r1, [r0]
- ldr r0, =0x00000815
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x1
- eors r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl sub_81C55D8
-_081C5504:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5460
-
- thumb_func_start sub_81C5518
-sub_81C5518: @ 81C5518
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _081C55B8
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r1, =0x00000814
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0xFF
- beq _081C5560
- lsls r0, r4, 24
- lsrs r0, 24
- cmp r1, r0
- bne _081C5558
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_81C5AB8
- b _081C5560
- .pool
-_081C5558:
- adds r0, r5, 0
- movs r1, 0xFF
- bl sub_81C5AB8
-_081C5560:
- ldr r0, =gStringVar1
- ldr r1, =gSaveBlock2Ptr
- ldr r3, [r1]
- ldr r2, =0x00000ca9
- adds r1, r3, r2
- ldrb r2, [r1]
- lsls r2, 30
- lsrs r2, 30
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 1
- adds r1, r4, r1
- ldr r2, =0x00000e54
- adds r3, r2
- adds r3, r1
- ldrb r1, [r3]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_xVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x7
- adds r1, r4, 0
- movs r2, 0x77
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r0, 0xFF
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- adds r0, r6, 0
- adds r1, r4, 0
- adds r3, r5, 0
- bl sub_81C6C94
-_081C55B8:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5518
-
- thumb_func_start sub_81C55D8
-sub_81C55D8: @ 81C55D8
- push {r4,lr}
- sub sp, 0x10
- adds r3, r0, 0
- movs r0, 0x2
- negs r0, r0
- cmp r3, r0
- beq _081C561C
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- lsls r3, 1
- ldr r1, =0x00000ca9
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 30
- lsrs r1, 30
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r3, r0
- ldr r0, =0x00000e2c
- adds r2, r0
- adds r2, r3
- ldrh r0, [r2]
- bl ItemId_GetDescription
- adds r4, r0, 0
- b _081C5638
- .pool
-_081C561C:
- ldr r0, =gStringVar1
- ldr r2, =gReturnToXStringsTable2
- ldr r1, =gUnknown_0203CF30
- ldrb r1, [r1, 0x4]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gText_ReturnToVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
-_081C5638:
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r1, 0
- str r1, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_81C6C3C
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C55D8
-
- thumb_func_start sub_81C5674
-sub_81C5674: @ 81C5674
- push {r4,lr}
- sub sp, 0x10
- ldr r4, =gUnknown_0203CF2C
- ldr r1, [r4]
- ldr r2, =0x00000816
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081C56B4
- adds r2, 0xB
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- subs r0, r1
- str r0, [sp]
- ldr r0, =0x00000b5e
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- ldr r0, =gUnknown_0203CF30+8
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0xAC
- movs r2, 0xC
- movs r3, 0x94
- bl AddScrollIndicatorArrowPairParameterized
- ldr r1, [r4]
- ldr r2, =0x00000816
- adds r1, r2
- strb r0, [r1]
-_081C56B4:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5674
-
- thumb_func_start sub_81C56CC
-sub_81C56CC: @ 81C56CC
- push {r4,lr}
- ldr r4, =gUnknown_0203CF2C
- ldr r0, [r4]
- ldr r2, =0x00000816
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _081C56EA
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- ldr r1, =0x00000816
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
-_081C56EA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C56CC
-
- thumb_func_start sub_81C56F8
-sub_81C56F8: @ 81C56F8
- push {r4,lr}
- ldr r0, =sub_81C5BC8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- ldr r0, =gMultiuseListMenuTemplate
- ldr r2, =gUnknown_0203CF30
- ldrh r1, [r2, 0x8]
- ldrh r2, [r2, 0x6]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C56F8
-
- thumb_func_start sub_81C5738
-sub_81C5738: @ 81C5738
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r6, [r2]
- ldr r3, =0x00000ca9
- adds r2, r6, r3
- ldrb r3, [r2]
- lsls r3, 30
- lsrs r2, r3, 30
- lsls r4, r2, 2
- adds r4, r2
- lsls r4, 2
- ldr r2, =0x00000e2c
- adds r4, r2
- adds r4, r6, r4
- lsrs r3, 30
- lsls r2, r3, 2
- adds r2, r3
- lsls r2, 1
- ldr r3, =0x00000e54
- adds r2, r3
- adds r6, r2
- lsls r5, r0, 1
- adds r5, r4
- ldrh r2, [r5]
- mov r8, r2
- lsls r2, r1, 1
- adds r2, r4
- ldrh r3, [r2]
- strh r3, [r5]
- mov r3, r8
- strh r3, [r2]
- adds r0, r6, r0
- ldrb r2, [r0]
- adds r6, r1
- ldrb r1, [r6]
- strb r1, [r0]
- strb r2, [r6]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5738
-
- thumb_func_start sub_81C57A8
-sub_81C57A8: @ 81C57A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r1, =0x00000ca9
- adds r0, r3, r1
- ldrb r1, [r0]
- lsls r1, 30
- lsrs r2, r1, 30
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- ldr r2, =0x00000e2c
- adds r0, r2
- adds r6, r3, r0
- lsrs r1, 30
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- ldr r1, =0x00000e54
- adds r0, r1
- adds r3, r0
- cmp r4, r5
- beq _081C5862
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- mov r12, r0
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r8, r0
- cmp r5, r4
- bls _081C5830
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r2, r4, 16
- cmp r4, r5
- bge _081C5854
-_081C5802:
- asrs r2, 16
- lsls r0, r2, 1
- adds r0, r6
- ldrh r1, [r0, 0x2]
- strh r1, [r0]
- adds r1, r3, r2
- ldrb r0, [r1, 0x1]
- strb r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- asrs r0, r2, 16
- cmp r0, r5
- blt _081C5802
- b _081C5854
- .pool
-_081C5830:
- lsls r2, r7, 16
- cmp r7, r5
- ble _081C5854
-_081C5836:
- asrs r2, 16
- lsls r1, r2, 1
- adds r1, r6
- subs r0, r1, 0x2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, r3, r2
- subs r0, r1, 0x1
- ldrb r0, [r0]
- strb r0, [r1]
- subs r2, 0x1
- lsls r2, 16
- asrs r0, r2, 16
- cmp r0, r5
- bgt _081C5836
-_081C5854:
- lsls r0, r5, 1
- adds r0, r6
- mov r2, r12
- strh r2, [r0]
- adds r0, r3, r5
- mov r1, r8
- strb r1, [r0]
-_081C5862:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81C57A8
-
- thumb_func_start sub_81C586C
-sub_81C586C: @ 81C586C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r1, =0x00000ca9
- adds r0, r3, r1
- ldrb r1, [r0]
- lsls r1, 30
- lsrs r2, r1, 30
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- ldr r2, =0x00000e2c
- adds r0, r2
- adds r0, r3
- mov r9, r0
- lsrs r1, 30
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- ldr r4, =0x00000e54
- adds r0, r4
- adds r3, r0
- mov r8, r3
- movs r5, 0
- movs r3, 0
-_081C58A4:
- lsls r0, r5, 1
- mov r1, r9
- adds r2, r0, r1
- ldrh r0, [r2]
- mov r4, r8
- adds r1, r4, r5
- cmp r0, 0
- beq _081C58BA
- ldrb r0, [r1]
- cmp r0, 0
- bne _081C58BE
-_081C58BA:
- strh r3, [r2]
- strb r3, [r1]
-_081C58BE:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _081C58A4
- movs r5, 0
-_081C58CA:
- adds r1, r5, 0x1
- lsls r0, r1, 24
- lsrs r4, r0, 24
- adds r7, r1, 0
- cmp r4, 0x9
- bhi _081C58FE
- lsls r0, r5, 1
- mov r1, r9
- adds r6, r0, r1
-_081C58DC:
- ldrh r0, [r6]
- cmp r0, 0
- beq _081C58EC
- mov r2, r8
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, 0
- bne _081C58F4
-_081C58EC:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81C5738
-_081C58F4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _081C58DC
-_081C58FE:
- lsls r0, r7, 24
- lsrs r5, r0, 24
- cmp r5, 0x8
- bls _081C58CA
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C586C
-
- thumb_func_start sub_81C5924
-sub_81C5924: @ 81C5924
- push {r4-r6,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r1, =0x00000ca9
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 30
- lsrs r1, 30
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, =0x00000e2c
- adds r0, r1
- adds r5, r2, r0
- bl sub_81C586C
- ldr r3, =gUnknown_0203CF2C
- ldr r0, [r3]
- ldr r2, =0x00000821
- adds r0, r2
- movs r1, 0
- strb r1, [r0]
- movs r4, 0
- adds r6, r3, 0
-_081C5954:
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- ldr r3, =gUnknown_0203CF2C
- cmp r0, 0
- beq _081C596A
- ldr r1, [r6]
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081C596A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x9
- bls _081C5954
- ldr r0, [r3]
- ldr r2, =0x00000821
- adds r0, r2
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, [r3]
- adds r2, r0, r2
- ldrb r2, [r2]
- cmp r2, 0x8
- bls _081C59AC
- ldr r2, =0x00000822
- adds r1, r0, r2
- movs r0, 0x8
- strb r0, [r1]
- b _081C59B2
- .pool
-_081C59AC:
- ldr r1, =0x00000822
- adds r0, r1
- strb r2, [r0]
-_081C59B2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5924
-
- thumb_func_start sub_81C59BC
-sub_81C59BC: @ 81C59BC
- push {r4,r5,lr}
- ldr r0, =gUnknown_0203CF30
- ldrh r1, [r0, 0x8]
- adds r3, r0, 0
- ldr r4, =gUnknown_0203CF2C
- cmp r1, 0
- beq _081C59E4
- ldrh r0, [r3, 0x8]
- ldr r1, [r4]
- ldr r5, =0x00000822
- adds r2, r1, r5
- ldrb r2, [r2]
- adds r0, r2
- subs r5, 0x1
- adds r1, r5
- ldrb r1, [r1]
- cmp r0, r1
- ble _081C59E4
- subs r0, r1, r2
- strh r0, [r3, 0x8]
-_081C59E4:
- adds r2, r3, 0
- ldrh r1, [r2, 0x8]
- ldrh r0, [r2, 0x6]
- adds r1, r0
- ldr r0, [r4]
- ldr r4, =0x00000821
- adds r0, r4
- ldrb r0, [r0]
- cmp r1, r0
- blt _081C5A18
- adds r1, r0, 0
- cmp r1, 0
- bne _081C5A14
- strh r1, [r2, 0x6]
- b _081C5A18
- .pool
-_081C5A14:
- subs r0, 0x1
- strh r0, [r3, 0x6]
-_081C5A18:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81C59BC
-
- thumb_func_start sub_81C5A20
-sub_81C5A20: @ 81C5A20
- push {r4-r7,lr}
- ldr r0, =gUnknown_0203CF30
- ldrh r1, [r0, 0x6]
- adds r5, r0, 0
- cmp r1, 0x4
- bls _081C5A80
- movs r4, 0
- ldrh r0, [r5, 0x6]
- subs r0, 0x4
- cmp r4, r0
- bgt _081C5A80
- ldrh r2, [r5, 0x8]
- ldr r6, =gUnknown_0203CF2C
- ldr r0, [r6]
- ldr r3, =0x00000822
- adds r1, r0, r3
- ldrb r1, [r1]
- adds r2, r1
- ldr r7, =0x00000821
- adds r0, r7
- ldrb r0, [r0]
- cmp r2, r0
- beq _081C5A80
- adds r3, r5, 0
-_081C5A50:
- ldrh r0, [r3, 0x6]
- subs r0, 0x1
- strh r0, [r3, 0x6]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r3, 0x6]
- subs r0, 0x4
- cmp r4, r0
- bgt _081C5A80
- ldrh r2, [r5, 0x8]
- ldr r1, [r6]
- ldr r7, =0x00000822
- adds r0, r1, r7
- ldrb r0, [r0]
- adds r2, r0
- ldr r0, =0x00000821
- adds r1, r0
- ldrb r1, [r1]
- cmp r2, r1
- bne _081C5A50
-_081C5A80:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5A20
-
- thumb_func_start sub_81C5A98
-sub_81C5A98: @ 81C5A98
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl ListMenuGetYCoordForPrintingArrowCursor
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_81C5AB8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81C5A98
-
- thumb_func_start sub_81C5AB8
-sub_81C5AB8: @ 81C5AB8
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- cmp r2, 0xFF
- bne _081C5AF4
- movs r0, 0x1
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x1
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- adds r3, r5, 0
- bl FillWindowPixelRect
- b _081C5B08
-_081C5AF4:
- ldr r1, =gText_SelectorArrow2
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r2, 0
- adds r3, r5, 0
- bl sub_81C6C3C
-_081C5B08:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5AB8
-
- thumb_func_start sub_81C5B14
-sub_81C5B14: @ 81C5B14
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81C5B4C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5B14
-
- thumb_func_start sub_81C5B4C
-sub_81C5B4C: @ 81C5B4C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r2, r0, r1
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081C5BBC
- ldrb r0, [r2]
- ldr r4, =gUnknown_0203CF30+8
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl DestroyListMenuTask
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0
- beq _081C5B94
- bl SetMainCallback2
- b _081C5B9E
- .pool
-_081C5B94:
- adds r0, r4, 0
- subs r0, 0x8
- ldr r0, [r0]
- bl SetMainCallback2
-_081C5B9E:
- bl sub_81C56CC
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl FreeAllWindowBuffers
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- bl Free
- adds r0, r5, 0
- bl DestroyTask
-_081C5BBC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5B4C
-
- thumb_func_start sub_81C5BC8
-sub_81C5BC8: @ 81C5BC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r7, r0, r1
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C5BEA
- b _081C5D16
-_081C5BEA:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081C5BF8
- b _081C5D16
-_081C5BF8:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _081C5C5C
- ldr r4, =gUnknown_0203CF30
- ldrb r0, [r4, 0x4]
- cmp r0, 0x2
- bne _081C5C12
- b _081C5D16
-_081C5C12:
- ldrb r0, [r7]
- adds r1, r4, 0
- adds r1, 0x8
- adds r2, r4, 0x6
- bl ListMenuGetScrollAndRow
- ldrh r1, [r4, 0x8]
- ldrh r0, [r4, 0x6]
- adds r1, r0
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r2, =0x00000821
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _081C5D16
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_81C67CC
- b _081C5D16
- .pool
-_081C5C5C:
- ldrb r0, [r7]
- bl ListMenuHandleInputGetItemId
- adds r6, r0, 0
- ldrb r0, [r7]
- ldr r1, =gUnknown_0203CF30+8
- mov r8, r1
- mov r2, r8
- subs r2, 0x2
- bl ListMenuGetScrollAndRow
- movs r0, 0x2
- negs r0, r0
- cmp r6, r0
- beq _081C5C88
- adds r0, 0x1
- cmp r6, r0
- bne _081C5CA0
- b _081C5D16
- .pool
-_081C5C88:
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gSpecialVar_ItemId
- strh r4, [r0]
- adds r0, r5, 0
- bl sub_81C5B14
- b _081C5D16
- .pool
-_081C5CA0:
- movs r0, 0x5
- bl PlaySE
- ldr r2, =gSpecialVar_ItemId
- mov r12, r2
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- lsls r3, r6, 1
- ldr r0, =0x00000ca9
- adds r4, r2, r0
- ldrb r1, [r4]
- lsls r1, 30
- lsrs r1, 30
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r3, r0
- ldr r1, =0x00000e2c
- adds r0, r2, r1
- adds r0, r3
- ldrh r0, [r0]
- mov r1, r12
- strh r0, [r1]
- strh r6, [r7, 0x2]
- ldrb r1, [r4]
- lsls r1, 30
- lsrs r1, 30
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, r6, r0
- ldr r1, =0x00000e54
- adds r2, r1
- adds r2, r0
- ldrb r0, [r2]
- strh r0, [r7, 0x4]
- mov r0, r8
- subs r0, 0x8
- ldrb r0, [r0, 0x4]
- cmp r0, 0x2
- bne _081C5D10
- adds r0, r5, 0
- bl sub_81C674C
- b _081C5D16
- .pool
-_081C5D10:
- adds r0, r5, 0
- bl sub_81C5D20
-_081C5D16:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81C5BC8
-
- thumb_func_start sub_81C5D20
-sub_81C5D20: @ 81C5D20
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- bl sub_81C56CC
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_81C5A98
- ldr r0, =gUnknown_0203CF30
- ldrb r4, [r0, 0x4]
- cmp r4, 0x1
- beq _081C5D74
- cmp r4, 0x3
- beq _081C5DC4
- ldr r0, =gUnknown_0203CF2C
- ldr r1, [r0]
- ldr r0, =0x00000818
- adds r2, r1, r0
- ldr r0, =gUnknown_0861F308
- str r0, [r2]
- movs r0, 0x82
- lsls r0, 4
- adds r1, r0
- movs r0, 0x4
- b _081C5DD8
- .pool
-_081C5D74:
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl ItemId_GetBattleUsage
- lsls r0, 24
- cmp r0, 0
- beq _081C5DA0
- ldr r0, =gUnknown_0203CF2C
- ldr r1, [r0]
- ldr r0, =0x00000818
- adds r2, r1, r0
- ldr r0, =gUnknown_0861F30E
- b _081C5DCE
- .pool
-_081C5DA0:
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r1, =0x00000818
- adds r2, r0, r1
- ldr r1, =gUnknown_0861F310
- str r1, [r2]
- movs r1, 0x82
- lsls r1, 4
- adds r0, r1
- strb r4, [r0]
- b _081C5DDA
- .pool
-_081C5DC4:
- ldr r0, =gUnknown_0203CF2C
- ldr r1, [r0]
- ldr r0, =0x00000818
- adds r2, r1, r0
- ldr r0, =gUnknown_0861F30C
-_081C5DCE:
- str r0, [r2]
- movs r0, 0x82
- lsls r0, 4
- adds r1, r0
- movs r0, 0x2
-_081C5DD8:
- strb r0, [r1]
-_081C5DDA:
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gText_Var1IsSelected
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r1, 0
- str r1, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_81C6C3C
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- movs r1, 0x82
- lsls r1, 4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081C5E3C
- movs r0, 0
- b _081C5E42
- .pool
-_081C5E3C:
- cmp r0, 0x2
- bne _081C5E50
- movs r0, 0x1
-_081C5E42:
- bl sub_81C6D24
- lsls r0, 24
- lsrs r0, 24
- bl sub_81C5EAC
- b _081C5E62
-_081C5E50:
- movs r0, 0x2
- bl sub_81C6D24
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- movs r2, 0x2
- bl sub_81C5F08
-_081C5E62:
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- movs r1, 0x82
- lsls r1, 4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _081C5E8C
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81C5FE4
- b _081C5E98
- .pool
-_081C5E8C:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81C5F68
-_081C5E98:
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5D20
-
- thumb_func_start sub_81C5EAC
-sub_81C5EAC: @ 81C5EAC
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- ldr r6, =gUnknown_0203CF2C
- ldr r1, [r6]
- movs r5, 0x82
- lsls r5, 4
- adds r0, r1, r5
- ldrb r0, [r0]
- str r0, [sp, 0x8]
- ldr r0, =gUnknown_0861F2D8
- str r0, [sp, 0xC]
- ldr r0, =0x00000818
- adds r1, r0
- ldr r0, [r1]
- str r0, [sp, 0x10]
- adds r0, r4, 0
- movs r1, 0x7
- movs r2, 0x8
- movs r3, 0x1
- bl AddItemMenuActionTextPrinters
- ldr r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5EAC
-
- thumb_func_start sub_81C5F08
-sub_81C5F08: @ 81C5F08
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x38
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- ldr r0, =gUnknown_0861F2D8
- str r0, [sp, 0xC]
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r1, =0x00000818
- adds r0, r1
- ldr r0, [r0]
- str r0, [sp, 0x10]
- adds r0, r4, 0
- movs r1, 0x7
- movs r2, 0x8
- movs r3, 0x1
- bl sub_8198DBC
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x38
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8199944
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5F08
-
- thumb_func_start sub_81C5F68
-sub_81C5F68: @ 81C5F68
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C5FD0
- bl Menu_ProcessInputNoWrapAround
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _081C5FD0
- adds r0, 0x1
- cmp r4, r0
- bne _081C5FA8
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0861F2D8
- ldr r1, [r0, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- b _081C5FD0
- .pool
-_081C5FA8:
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gUnknown_0861F2D8
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r2, =0x00000818
- adds r0, r2
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- cmp r1, 0
- beq _081C5FD0
- adds r0, r6, 0
- bl _call_via_r1
-_081C5FD0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5F68
-
- thumb_func_start sub_81C5FE4
-sub_81C5FE4: @ 81C5FE4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C5FF8
- b _081C6160
-_081C5FF8:
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081C6040
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0
- bgt _081C6016
- b _081C6160
-_081C6016:
- subs r0, 0x2
- lsls r0, 24
- asrs r0, 24
- bl sub_81C616C
- lsls r0, 24
- cmp r0, 0
- bne _081C6028
- b _081C6160
-_081C6028:
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- bl sub_8199134
- b _081C6160
- .pool
-_081C6040:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081C6084
- lsls r0, r4, 24
- asrs r1, r0, 24
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- movs r2, 0x82
- lsls r2, 4
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x2
- cmp r1, r0
- blt _081C6060
- b _081C6160
-_081C6060:
- adds r0, r1, 0x2
- lsls r0, 24
- asrs r0, 24
- bl sub_81C616C
- lsls r0, 24
- cmp r0, 0
- beq _081C6160
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0x1
- bl sub_8199134
- b _081C6160
- .pool
-_081C6084:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _081C6098
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C60C0
-_081C6098:
- lsls r0, r4, 24
- asrs r1, r0, 24
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081C6160
- subs r0, r1, 0x1
- lsls r0, 24
- asrs r0, 24
- bl sub_81C616C
- lsls r0, 24
- cmp r0, 0
- beq _081C6160
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _081C60FA
-_081C60C0:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081C60D6
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _081C6102
-_081C60D6:
- lsls r0, r4, 24
- asrs r1, r0, 24
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081C6160
- adds r0, r1, 0x1
- lsls r0, 24
- asrs r0, 24
- bl sub_81C616C
- lsls r0, 24
- cmp r0, 0
- beq _081C6160
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_081C60FA:
- movs r1, 0
- bl sub_8199134
- b _081C6160
-_081C6102:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081C6148
- movs r0, 0x5
- bl PlaySE
- ldr r2, =gUnknown_0861F2D8
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- lsls r1, r4, 24
- asrs r1, 24
- ldr r3, =0x00000818
- adds r0, r3
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 3
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- cmp r1, 0
- beq _081C6160
- adds r0, r6, 0
- bl _call_via_r1
- b _081C6160
- .pool
-_081C6148:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081C6160
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0861F2D8
- ldr r1, [r0, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
-_081C6160:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C5FE4
-
- thumb_func_start sub_81C616C
-sub_81C616C: @ 81C616C
- push {lr}
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- blt _081C61A0
- ldr r0, =gUnknown_0203CF2C
- ldr r2, [r0]
- movs r3, 0x82
- lsls r3, 4
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r1, r0
- bgt _081C61A0
- ldr r3, =0x00000818
- adds r0, r2, r3
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _081C61A0
- movs r0, 0x1
- b _081C61A2
- .pool
-_081C61A0:
- movs r0, 0
-_081C61A2:
- pop {r1}
- bx r1
- thumb_func_end sub_81C616C
-
- thumb_func_start sub_81C61A8
-sub_81C61A8: @ 81C61A8
- push {lr}
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- movs r1, 0x82
- lsls r1, 4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081C61C8
- movs r0, 0
- bl sub_81C6D6C
- b _081C61DA
- .pool
-_081C61C8:
- cmp r0, 0x2
- bne _081C61D4
- movs r0, 0x1
- bl sub_81C6D6C
- b _081C61DA
-_081C61D4:
- movs r0, 0x2
- bl sub_81C6D6C
-_081C61DA:
- pop {r0}
- bx r0
- thumb_func_end sub_81C61A8
-
- thumb_func_start sub_81C61E0
-sub_81C61E0: @ 81C61E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gSpecialVar_ItemId
- ldrh r0, [r4]
- bl ItemId_GetPocket
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- beq _081C620C
- cmp r0, 0x2
- beq _081C620C
- cmp r0, 0x3
- beq _081C620C
- ldrh r0, [r4]
- bl ItemIsMail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C6228
-_081C620C:
- bl sub_81C61A8
- ldr r1, =gText_DadsAdvice
- ldr r2, =sub_81C6714
- adds r0, r5, 0
- bl DisplayItemMessageInBattlePyramid
- b _081C6252
- .pool
-_081C6228:
- ldrh r0, [r4]
- bl ItemId_GetFieldFunc
- cmp r0, 0
- beq _081C6252
- bl sub_81C61A8
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldrh r0, [r4]
- bl ItemId_GetFieldFunc
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
-_081C6252:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81C61E0
-
- thumb_func_start sub_81C6258
-sub_81C6258: @ 81C6258
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- bl sub_81C61A8
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- bl sub_81C55D8
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- ldrb r0, [r4]
- movs r1, 0
- bl sub_81C5A98
- adds r0, r5, 0
- bl sub_81C629C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6258
-
- thumb_func_start sub_81C629C
-sub_81C629C: @ 81C629C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_81C5674
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81C5BC8
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C629C
-
- thumb_func_start sub_81C62C4
-sub_81C62C4: @ 81C62C4
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, =gTasks + 0x8
- adds r4, r6, r7
- bl sub_81C61A8
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _081C62F4
- adds r0, r5, 0
- bl sub_81C6350
- b _081C6334
- .pool
-_081C62F4:
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gText_TossHowManyVar1s
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r1, 0
- str r1, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_81C6C3C
- bl sub_81C6404
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, =sub_81C64B4
- str r1, [r0]
-_081C6334:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C62C4
-
- thumb_func_start sub_81C6350
-sub_81C6350: @ 81C6350
- push {r4,r5,lr}
- sub sp, 0x10
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, =gStringVar2
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_ConfirmTossItems
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r1, 0
- str r1, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_81C6C3C
- ldr r1, =gUnknown_0861F314
- adds r0, r5, 0
- bl sub_81C6DAC
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6350
-
- thumb_func_start sub_81C63D0
-sub_81C63D0: @ 81C63D0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- bl sub_81C55D8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_81C5A98
- adds r0, r5, 0
- bl sub_81C629C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C63D0
-
- thumb_func_start sub_81C6404
-sub_81C6404: @ 81C6404
- push {r4,lr}
- sub sp, 0xC
- ldr r0, =gStringVar1
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_xVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x3
- bl sub_81C6CEC
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x28
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- adds r2, r4, 0
- bl PrintTextOnWindow
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6404
-
- thumb_func_start sub_81C645C
-sub_81C645C: @ 81C645C
- push {r4,lr}
- sub sp, 0xC
- adds r1, r0, 0
- ldr r0, =gStringVar1
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_xVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x28
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- adds r2, r4, 0
- bl PrintTextOnWindow
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C645C
-
- thumb_func_start sub_81C64B4
-sub_81C64B4: @ 81C64B4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- adds r0, r4, 0
- adds r0, 0x10
- ldrh r1, [r4, 0x4]
- bl AdjustQuantityAccordingToDPadInput
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C64E8
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- bl sub_81C645C
- b _081C6544
- .pool
-_081C64E8:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081C651C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x3
- movs r1, 0
- bl sub_8198070
- movs r0, 0x3
- bl ClearWindowTilemap
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r5, 0
- bl sub_81C6350
- b _081C6544
- .pool
-_081C651C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081C6544
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x3
- movs r1, 0
- bl sub_8198070
- movs r0, 0x3
- bl ClearWindowTilemap
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r6, 0
- bl sub_81C63D0
-_081C6544:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81C64B4
-
- thumb_func_start sub_81C654C
-sub_81C654C: @ 81C654C
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, =gTasks + 0x8
- adds r6, r4, r5
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, =gStringVar2
- movs r2, 0x10
- ldrsh r1, [r6, r2]
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r6, =gStringVar4
- ldr r1, =gText_ThrewAwayVar2Var1s
- adds r0, r6, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r1, 0
- str r1, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- adds r1, r6, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_81C6C3C
- subs r5, 0x8
- adds r4, r5
- ldr r0, =sub_81C65CC
- str r0, [r4]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C654C
-
- thumb_func_start sub_81C65CC
-sub_81C65CC: @ 81C65CC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldr r6, =gUnknown_0203CF30+8
- subs r7, r6, 0x2
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081C662E
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldrh r1, [r4, 0x10]
- bl RemovePyramidBagItem
- ldrb r0, [r4]
- adds r1, r6, 0
- adds r2, r7, 0
- bl DestroyListMenuTask
- bl sub_81C5924
- bl sub_81C59BC
- bl sub_81C5314
- ldr r0, =gMultiuseListMenuTemplate
- ldrh r1, [r6]
- ldrh r2, [r7]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r5, 0
- bl sub_81C629C
-_081C662E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C65CC
-
- thumb_func_start sub_81C6648
-sub_81C6648: @ 81C6648
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- bl sub_81C61A8
- ldr r5, =gSpecialVar_ItemId
- ldrh r0, [r5]
- bl ItemIsMail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C667C
- ldr r1, =gText_CantWriteMail
- ldr r2, =sub_81C66EC
- adds r0, r4, 0
- bl DisplayItemMessageInBattlePyramid
- b _081C66A6
- .pool
-_081C667C:
- ldrh r0, [r5]
- bl ItemId_GetImportance
- lsls r0, 24
- cmp r0, 0
- bne _081C66A0
- ldr r0, =gUnknown_0203CF2C
- ldr r1, [r0]
- ldr r0, =sub_81B7F60
- str r0, [r1]
- adds r0, r4, 0
- bl sub_81C5B14
- b _081C66A6
- .pool
-_081C66A0:
- adds r0, r6, 0
- bl sub_81C66AC
-_081C66A6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81C6648
-
- thumb_func_start sub_81C66AC
-sub_81C66AC: @ 81C66AC
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r5, =gStringVar4
- ldr r1, =gText_Var1CantBeHeld
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_81C66EC
- adds r0, r4, 0
- adds r1, r5, 0
- bl DisplayItemMessageInBattlePyramid
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C66AC
-
- thumb_func_start sub_81C66EC
-sub_81C66EC: @ 81C66EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081C670A
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81C6714
-_081C670A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C66EC
-
- thumb_func_start sub_81C6714
-sub_81C6714: @ 81C6714
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- bl sub_81C6E1C
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- bl sub_81C55D8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_81C5A98
- adds r0, r5, 0
- bl sub_81C629C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6714
-
- thumb_func_start sub_81C674C
-sub_81C674C: @ 81C674C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r5, =gSpecialVar_ItemId
- ldrh r0, [r5]
- bl itemid_80BF6D8_mail_related
- lsls r0, 24
- cmp r0, 0
- bne _081C677C
- ldr r1, =gText_CantWriteMail
- ldr r2, =sub_81C66EC
- adds r0, r4, 0
- bl DisplayItemMessageInBattlePyramid
- b _081C6796
- .pool
-_081C677C:
- ldrh r0, [r5]
- bl ItemId_GetImportance
- lsls r0, 24
- cmp r0, 0
- bne _081C6790
- adds r0, r4, 0
- bl sub_81C5B14
- b _081C6796
-_081C6790:
- adds r0, r6, 0
- bl sub_81C66AC
-_081C6796:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81C674C
-
- thumb_func_start sub_81C679C
-sub_81C679C: @ 81C679C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gSpecialVar_ItemId
- ldrh r0, [r4]
- bl ItemId_GetBattleFunc
- cmp r0, 0
- beq _081C67C0
- bl sub_81C61A8
- ldrh r0, [r4]
- bl ItemId_GetBattleFunc
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
-_081C67C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C679C
-
- thumb_func_start sub_81C67CC
-sub_81C67CC: @ 81C67CC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- mov r9, r0
- adds r5, r4, r0
- ldr r0, =gUnknown_0203CF30
- ldrh r1, [r0, 0x6]
- ldrh r0, [r0, 0x8]
- adds r1, r0
- strh r1, [r5, 0x2]
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r2, =0x00000814
- adds r0, r2
- movs r2, 0
- mov r8, r2
- strb r1, [r0]
- ldrb r0, [r5]
- movs r1, 0x10
- movs r2, 0x1
- bl ListMenuSetUnkIndicatorsStructField
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- movs r0, 0x2
- ldrsh r2, [r5, r0]
- lsls r2, 1
- ldr r1, =0x00000ca9
- adds r0, r3, r1
- ldrb r1, [r0]
- lsls r1, 30
- lsrs r1, 30
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- ldr r0, =0x00000e2c
- adds r3, r0
- adds r3, r2
- ldrh r0, [r3]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r6, =gStringVar4
- ldr r1, =gText_MoveVar1Where
- adds r0, r6, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- mov r1, r8
- str r1, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- adds r1, r6, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_81C6C3C
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_81C5A98
- ldrb r0, [r5, 0x2]
- bl sub_81C704C
- movs r2, 0x8
- negs r2, r2
- add r9, r2
- add r4, r9
- ldr r0, =sub_81C68B0
- str r0, [r4]
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C67CC
-
- thumb_func_start sub_81C68B0
-sub_81C68B0: @ 81C68B0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C695C
- ldr r7, =gMain
- ldrh r1, [r7, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081C68F8
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- ldr r1, =gUnknown_0203CF30+8
- subs r2, r1, 0x2
- bl ListMenuGetScrollAndRow
- b _081C6940
- .pool
-_081C68F8:
- ldrb r0, [r4]
- bl ListMenuHandleInputGetItemId
- adds r6, r0, 0
- ldrb r0, [r4]
- ldr r4, =gUnknown_0203CF30+8
- subs r2, r4, 0x2
- adds r1, r4, 0
- bl ListMenuGetScrollAndRow
- movs r0, 0
- bl sub_81C7028
- subs r4, 0x8
- ldrb r0, [r4, 0x6]
- bl sub_81C704C
- movs r0, 0x2
- negs r0, r0
- cmp r6, r0
- beq _081C6930
- adds r0, 0x1
- cmp r6, r0
- bne _081C6950
- b _081C695C
- .pool
-_081C6930:
- movs r0, 0x5
- bl PlaySE
- ldrh r1, [r7, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081C6948
-_081C6940:
- adds r0, r5, 0
- bl sub_81C6964
- b _081C695C
-_081C6948:
- adds r0, r5, 0
- bl sub_81C6A14
- b _081C695C
-_081C6950:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_81C6964
-_081C695C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81C68B0
-
- thumb_func_start sub_81C6964
-sub_81C6964: @ 81C6964
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldr r7, =gUnknown_0203CF30+8
- subs r0, r7, 0x2
- mov r8, r0
- ldrh r0, [r0]
- ldrh r1, [r7]
- adds r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- movs r3, 0x2
- ldrsh r1, [r5, r3]
- cmp r1, r4
- beq _081C6996
- subs r0, r4, 0x1
- cmp r1, r0
- bne _081C69A8
-_081C6996:
- adds r0, r6, 0
- bl sub_81C6A14
- b _081C69FC
- .pool
-_081C69A8:
- ldrb r0, [r5, 0x2]
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_81C57A8
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r1, =0x00000814
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- movs r0, 0x1
- bl sub_81C7028
- ldrb r0, [r5]
- adds r1, r7, 0
- mov r2, r8
- bl DestroyListMenuTask
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- cmp r0, r4
- bge _081C69E0
- adds r1, r7, 0
- subs r1, 0x8
- ldrh r0, [r1, 0x6]
- subs r0, 0x1
- strh r0, [r1, 0x6]
-_081C69E0:
- bl sub_81C5314
- ldr r0, =gMultiuseListMenuTemplate
- ldrh r1, [r7]
- mov r3, r8
- ldrh r2, [r3]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- adds r0, r6, 0
- bl sub_81C629C
-_081C69FC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6964
-
- thumb_func_start sub_81C6A14
-sub_81C6A14: @ 81C6A14
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldr r5, =gUnknown_0203CF30+8
- subs r7, r5, 0x2
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r1, =0x00000814
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- movs r0, 0x1
- bl sub_81C7028
- ldrb r0, [r4]
- adds r1, r5, 0
- adds r2, r7, 0
- bl DestroyListMenuTask
- movs r0, 0x2
- ldrsh r2, [r4, r0]
- ldrh r0, [r5]
- ldrh r1, [r7]
- adds r0, r1
- cmp r2, r0
- bge _081C6A5E
- adds r1, r5, 0
- subs r1, 0x8
- ldrh r0, [r1, 0x6]
- subs r0, 0x1
- strh r0, [r1, 0x6]
-_081C6A5E:
- bl sub_81C5314
- ldr r0, =gMultiuseListMenuTemplate
- ldrh r1, [r5]
- ldrh r2, [r7]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- adds r0, r6, 0
- bl sub_81C629C
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6A14
-
- thumb_func_start sub_81C6A94
-sub_81C6A94: @ 81C6A94
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r0, =gPlayerParty
- mov r9, r0
- movs r0, 0x14
- bl Alloc
- adds r7, r0, 0
- movs r0, 0xA
- bl Alloc
- adds r5, r0, 0
- ldr r1, =gSaveBlock2Ptr
- mov r8, r1
- ldr r2, [r1]
- ldr r4, =0x00000ca9
- adds r0, r2, r4
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, =0x00000e2c
- adds r1, r0
- adds r0, r7, 0
- movs r2, 0x14
- bl memcpy
- mov r1, r8
- ldr r2, [r1]
- adds r0, r2, r4
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- adds r1, r2
- ldr r0, =0x00000e54
- adds r1, r0
- adds r0, r5, 0
- movs r2, 0xA
- bl memcpy
- movs r6, 0
-_081C6AF8:
- movs r0, 0x64
- muls r0, r6
- add r0, r9
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- strh r0, [r1]
- cmp r0, 0
- beq _081C6B88
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- cmp r0, 0
- bne _081C6B88
- mov r1, r8
- ldr r2, [r1]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r1, 30
- lsrs r1, 30
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x00000e2c
- adds r0, r1
- adds r1, r7, 0
- movs r2, 0x14
- bl memcpy
- mov r0, r8
- ldr r2, [r0]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r1, 30
- lsrs r1, 30
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, r2
- ldr r1, =0x00000e54
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0xA
- bl memcpy
- adds r0, r7, 0
- bl Free
- adds r0, r5, 0
- bl Free
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
- b _081C6BC6
- .pool
-_081C6B88:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _081C6AF8
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- movs r6, 0
- movs r4, 0x64
-_081C6B9C:
- adds r0, r6, 0
- muls r0, r4
- add r0, r9
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _081C6B9C
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- adds r0, r7, 0
- bl Free
- adds r0, r5, 0
- bl Free
-_081C6BC6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6A94
-
- thumb_func_start sub_81C6BD8
-sub_81C6BD8: @ 81C6BD8
- push {r4,lr}
- ldr r0, =gUnknown_0861F328
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xE0
- bl LoadUserWindowBorderGfx
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD0
- bl LoadMessageBoxGfx
- ldr r0, =gUnknown_0860F074
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- movs r4, 0
-_081C6C04:
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _081C6C04
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6BD8
-
- thumb_func_start sub_81C6C3C
-sub_81C6C3C: @ 81C6C3C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x14
- ldr r4, [sp, 0x28]
- ldr r6, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- mov r8, r5
- ldr r5, [sp, 0x34]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r6, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, =gUnknown_0861F31C
- adds r4, r5
- str r4, [sp, 0x8]
- mov r4, r8
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x1
- bl AddTextPrinterParameterized2
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6C3C
-
- thumb_func_start sub_81C6C94
-sub_81C6C94: @ 81C6C94
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x14
- ldr r4, [sp, 0x28]
- ldr r6, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- mov r8, r5
- ldr r5, [sp, 0x34]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r6, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, =gUnknown_0861F31C
- adds r4, r5
- str r4, [sp, 0x8]
- mov r4, r8
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x7
- bl AddTextPrinterParameterized2
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6C94
-
- thumb_func_start sub_81C6CEC
-sub_81C6CEC: @ 81C6CEC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- movs r2, 0x1
- movs r3, 0xE
- bl SetWindowBorderStyle
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- pop {r0}
- bx r0
- thumb_func_end sub_81C6CEC
-
- thumb_func_start sub_81C6D08
-sub_81C6D08: @ 81C6D08
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CF2C
- ldr r1, [r1]
- ldr r2, =0x0000080f
- adds r1, r2
- adds r1, r0
- ldrb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81C6D08
-
- thumb_func_start sub_81C6D24
-sub_81C6D24: @ 81C6D24
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gUnknown_0203CF2C
- ldr r3, =0x0000080f
- adds r1, r2, r3
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _081C6D58
- lsls r0, r2, 3
- ldr r1, =gUnknown_0861F350
- adds r0, r1
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x1
- movs r3, 0xE
- bl SetWindowBorderStyle
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
-_081C6D58:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81C6D24
-
- thumb_func_start sub_81C6D6C
-sub_81C6D6C: @ 81C6D6C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CF2C
- ldr r2, =0x0000080f
- adds r0, r2
- ldr r1, [r1]
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _081C6D9E
- movs r1, 0
- bl sub_8198070
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0xFF
- strb r0, [r4]
-_081C6D9E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6D6C
-
- thumb_func_start sub_81C6DAC
-sub_81C6DAC: @ 81C6DAC
- push {lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0861F370
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0xE
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- movs r2, 0x1
- movs r3, 0
- bl CreateYesNoMenuWithCallbacks
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6DAC
-
- thumb_func_start DisplayItemMessageInBattlePyramid
-@ void DisplayItemMessageInBattlePyramid(u8 taskId, u8 *str, void ( *callback)(u8 taskId))
-DisplayItemMessageInBattlePyramid: @ 81C6DD8
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x11
- bl FillWindowPixelBuffer
- bl GetPlayerTextSpeed
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xA
- movs r3, 0xD
- bl DisplayMessageAndContinueTask
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end DisplayItemMessageInBattlePyramid
-
- thumb_func_start sub_81C6E1C
-sub_81C6E1C: @ 81C6E1C
- push {lr}
- movs r0, 0x2
- movs r1, 0
- bl sub_8197DF8
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- pop {r0}
- bx r0
- thumb_func_end sub_81C6E1C
-
- thumb_func_start sub_81C6E38
-sub_81C6E38: @ 81C6E38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_0203CF2C
- ldr r2, =0x00000804
- adds r1, r4, r2
- ldr r0, [r0]
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _081C6E80
- ldr r0, =0x00001024
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- movs r0, 0xFF
- strb r0, [r5]
-_081C6E80:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6E38
-
- thumb_func_start sub_81C6E98
-sub_81C6E98: @ 81C6E98
- push {r4,lr}
- sub sp, 0x8
- movs r0, 0x40
- bl Alloc
- adds r4, r0, 0
- ldr r0, =gUnknown_08D9ADD0
- adds r1, r4, 0
- bl LZDecompressWram
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r4, r0
- str r0, [sp]
- ldr r1, =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- ldr r1, =0x00001024
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- adds r0, r4, 0
- bl Free
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6E98
-
- thumb_func_start sub_81C6EF4
-sub_81C6EF4: @ 81C6EF4
- push {r4,lr}
- ldr r0, =gUnknown_0203CF2C
- ldr r4, [r0]
- ldr r0, =0x00000804
- adds r4, r0
- ldr r0, =gUnknown_0861F3D4
- movs r1, 0x44
- movs r2, 0x38
- movs r3, 0
- bl CreateSprite
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6EF4
-
- thumb_func_start sub_81C6F20
-sub_81C6F20: @ 81C6F20
- push {r4,lr}
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r1, =0x00000804
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r4, r0, r1
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _081C6F50
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, =sub_81C6F68
- str r0, [r4, 0x1C]
-_081C6F50:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6F20
-
- thumb_func_start sub_81C6F68
-sub_81C6F68: @ 81C6F68
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _081C6F84
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r0, =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_081C6F84:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6F68
-
- thumb_func_start sub_81C6F90
-sub_81C6F90: @ 81C6F90
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, =gUnknown_0203CF2C
- ldr r2, =0x00000805
- adds r1, r4, r2
- ldr r0, [r0]
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0xFF
- bne _081C6FE0
- ldr r0, =0x00001025
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl AddItemIconSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _081C6FE0
- strb r2, [r5]
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x18
- strh r1, [r0, 0x24]
- movs r1, 0x58
- strh r1, [r0, 0x26]
-_081C6FE0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C6F90
-
- thumb_func_start sub_81C6FF8
-sub_81C6FF8: @ 81C6FF8
- push {lr}
- lsls r0, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 24
- bl sub_81C6E38
- pop {r0}
- bx r0
- thumb_func_end sub_81C6FF8
-
- thumb_func_start sub_81C700C
-sub_81C700C: @ 81C700C
- push {lr}
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r1, =0x00000807
- adds r0, r1
- movs r1, 0x8
- bl sub_8122344
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C700C
-
- thumb_func_start sub_81C7028
-sub_81C7028: @ 81C7028
- push {lr}
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r1, =0x00000807
- adds r0, r1
- movs r1, 0x8
- bl sub_81223FC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C7028
-
- thumb_func_start sub_81C704C
-sub_81C704C: @ 81C704C
- push {lr}
- adds r3, r0, 0
- lsls r3, 24
- ldr r0, =gUnknown_0203CF2C
- ldr r0, [r0]
- ldr r1, =0x00000807
- adds r0, r1
- lsrs r3, 4
- movs r1, 0x80
- lsls r1, 13
- adds r3, r1
- lsrs r3, 16
- movs r1, 0x88
- movs r2, 0x78
- bl sub_8122448
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C704C
-
- thumb_func_start sub_81C7078
-sub_81C7078: @ 81C7078
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl is_c1_link_related_active
- cmp r0, 0
- bne _081C7090
- ldr r0, =sub_81C7170
- b _081C7092
- .pool
-_081C7090:
- ldr r0, =sub_81C71E4
-_081C7092:
- lsls r1, r4, 24
- lsrs r1, 24
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0x1
- adds r2, r5, 0
- bl SetWordTaskArg
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, =gUnknown_0203CF3C
- ldrb r1, [r2]
- strh r1, [r0, 0xE]
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 8
- orrs r0, r4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81C7078
-
- thumb_func_start sub_81C70D8
-sub_81C70D8: @ 81C70D8
- push {lr}
- ldr r1, =0x0000ffff
- ands r1, r0
- lsrs r3, r0, 16
- ldr r2, =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _081C711C
- ldr r2, [r1]
- ldr r0, =sub_81C7170
- cmp r2, r0
- beq _081C70FE
- ldr r0, =sub_81C71E4
- cmp r2, r0
- bne _081C711C
-_081C70FE:
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, r3
- bne _081C711C
- movs r0, 0x1
- b _081C711E
- .pool
-_081C711C:
- movs r0, 0
-_081C711E:
- pop {r1}
- bx r1
- thumb_func_end sub_81C70D8
-
- thumb_func_start sub_81C7124
-sub_81C7124: @ 81C7124
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- ldr r4, =gTasks
-_081C712C:
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _081C7160
- ldr r1, [r4]
- ldr r0, =sub_81C7170
- cmp r1, r0
- beq _081C7140
- ldr r0, =sub_81C71E4
- cmp r1, r0
- bne _081C7160
-_081C7140:
- lsls r0, r5, 24
- lsrs r0, 24
- movs r1, 0x1
- bl GetWordTaskArg
- cmp r0, r6
- bne _081C7160
- movs r0, 0x1
- b _081C716A
- .pool
-_081C7160:
- adds r4, 0x28
- adds r5, 0x1
- cmp r5, 0xF
- ble _081C712C
- movs r0, 0
-_081C716A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81C7124
-
- thumb_func_start sub_81C7170
-sub_81C7170: @ 81C7170
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl GetWordTaskArg
- adds r6, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r7, 0
-_081C718C:
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl _call_via_r6
- cmp r0, 0x4
- bhi _081C71D6
- lsls r0, 2
- ldr r1, =_081C71AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081C71AC:
- .4byte _081C71C6
- .4byte _081C71C0
- .4byte _081C71DE
- .4byte _081C71DA
- .4byte _081C71CE
-_081C71C0:
- ldrh r0, [r4]
- adds r0, 0x1
- b _081C71D8
-_081C71C6:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _081C71DE
-_081C71CE:
- adds r0, r5, 0
- bl DestroyTask
- b _081C71DE
-_081C71D6:
- subs r0, 0x5
-_081C71D8:
- strh r0, [r4]
-_081C71DA:
- cmp r7, 0
- beq _081C718C
-_081C71DE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81C7170
-
- thumb_func_start sub_81C71E4
-sub_81C71E4: @ 81C71E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8087598
- cmp r0, 0
- bne _081C724A
- adds r0, r5, 0
- movs r1, 0x1
- bl GetWordTaskArg
- adds r2, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl _call_via_r2
- cmp r0, 0x4
- bhi _081C7246
- lsls r0, 2
- ldr r1, =_081C7224
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081C7224:
- .4byte _081C7238
- .4byte _081C7238
- .4byte _081C724A
- .4byte _081C724A
- .4byte _081C723E
-_081C7238:
- ldrh r0, [r4]
- adds r0, 0x1
- b _081C7248
-_081C723E:
- adds r0, r5, 0
- bl DestroyTask
- b _081C724A
-_081C7246:
- subs r0, 0x5
-_081C7248:
- strh r0, [r4]
-_081C724A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81C71E4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_tent.s b/asm/battle_tent.s
index c967390d0..8de98850f 100644
--- a/asm/battle_tent.s
+++ b/asm/battle_tent.s
@@ -6,194 +6,6 @@
.text
- thumb_func_start sub_81B9EC0
-sub_81B9EC0: @ 81B9EC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gSlateportBattleTentTrainers
- str r0, [r1]
- add r0, sp, 0xC
- mov r9, r0
- mov r1, sp
- adds r1, 0x18
- str r1, [sp, 0x2C]
- ldr r5, =gUnknown_0203BC8C
- ldr r4, =gSlateportBattleTentMons
- movs r2, 0
- adds r3, r1, 0
- mov r1, r9
- mov r0, sp
- movs r6, 0x5
- mov r8, r6
-_081B9EEC:
- strh r2, [r0]
- strh r2, [r1]
- strh r2, [r3]
- adds r3, 0x2
- adds r1, 0x2
- adds r0, 0x2
- movs r7, 0x1
- negs r7, r7
- add r8, r7
- mov r6, r8
- cmp r6, 0
- bge _081B9EEC
- str r4, [r5]
- movs r7, 0
- mov r10, r7
- movs r0, 0
- mov r8, r0
- ldr r1, [sp, 0x2C]
- str r1, [sp, 0x30]
- mov r2, sp
- str r2, [sp, 0x34]
- lsls r6, r0, 1
- str r6, [sp, 0x24]
- add r6, r9
- str r6, [sp, 0x28]
-_081B9F1E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x46
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- movs r2, 0
- mov r7, r8
- adds r6, r2, r7
- cmp r2, r6
- bge _081B9F7C
- ldr r1, [sp, 0x28]
- ldrh r0, [r1]
- cmp r0, r5
- beq _081B9F7C
- ldr r0, =gUnknown_0203BC8C
- ldr r1, [r0]
- lsls r0, r5, 4
- adds r4, r0, r1
- ldrh r7, [r4]
- mov r12, r7
- lsls r3, r2, 1
- ldr r1, [sp, 0x24]
- add r1, sp
- str r6, [sp, 0x38]
-_081B9F56:
- ldrh r0, [r1]
- cmp r0, r12
- bne _081B9F66
- mov r0, r10
- cmp r0, 0
- bne _081B9F7C
- ldrh r7, [r4]
- mov r10, r7
-_081B9F66:
- adds r3, 0x2
- adds r1, 0x2
- adds r2, 0x1
- ldr r0, [sp, 0x38]
- cmp r2, r0
- bge _081B9F7C
- mov r7, r9
- adds r0, r7, r3
- ldrh r0, [r0]
- cmp r0, r5
- bne _081B9F56
-_081B9F7C:
- cmp r2, r6
- bne _081BA01C
- movs r2, 0
- cmp r2, r6
- bge _081B9FD4
- ldr r0, =gBattleFrontierHeldItems
- mov r12, r0
- ldr r7, =gUnknown_0203BC8C
- ldr r1, [sp, 0x24]
- ldr r0, [sp, 0x2C]
- adds r4, r1, r0
-_081B9F92:
- ldrh r3, [r4]
- cmp r3, 0
- beq _081B9FCC
- ldr r1, [r7]
- lsls r0, r5, 4
- adds r1, r0, r1
- ldrb r0, [r1, 0xA]
- lsls r0, 1
- add r0, r12
- ldrh r0, [r0]
- cmp r3, r0
- bne _081B9FCC
- ldrh r0, [r1]
- cmp r0, r10
- bne _081B9FD4
- movs r1, 0
- mov r10, r1
- b _081B9FD4
- .pool
-_081B9FCC:
- adds r4, 0x2
- adds r2, 0x1
- cmp r2, r6
- blt _081B9F92
-_081B9FD4:
- cmp r2, r6
- bne _081BA01C
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- mov r2, r8
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r1, r0
- movs r6, 0xE7
- lsls r6, 4
- adds r1, r6
- strh r5, [r1]
- ldr r0, =gUnknown_0203BC8C
- ldr r0, [r0]
- lsls r1, r5, 4
- adds r1, r0
- ldrh r0, [r1]
- ldr r7, [sp, 0x34]
- strh r0, [r7]
- ldr r2, =gBattleFrontierHeldItems
- ldrb r0, [r1, 0xA]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- ldr r1, [sp, 0x30]
- strh r0, [r1]
- add r3, r9
- strh r5, [r3]
- adds r1, 0x2
- str r1, [sp, 0x30]
- adds r2, r7, 0
- adds r2, 0x2
- str r2, [sp, 0x34]
- movs r6, 0x1
- add r8, r6
-_081BA01C:
- mov r7, r8
- cmp r7, 0x6
- beq _081BA024
- b _081B9F1E
-_081BA024:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9EC0
thumb_func_start sub_81BA040
sub_81BA040: @ 81BA040
@@ -205,10 +17,10 @@ sub_81BA040: @ 81BA040
sub sp, 0x10
movs r0, 0
mov r10, r0
- ldr r1, =gUnknown_0203BC88
+ ldr r1, =gFacilityTrainers
ldr r0, =gSlateportBattleTentTrainers
str r0, [r1]
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gSlateportBattleTentMons
str r0, [r1]
ldr r7, =gSaveBlock2Ptr
@@ -261,7 +73,7 @@ _081BA0AA:
ldr r2, =gTrainerBattleOpponent_A
strh r3, [r2]
ldrh r3, [r2]
- ldr r4, =gUnknown_0203BC88
+ ldr r4, =gFacilityTrainers
ldr r1, [r4]
movs r0, 0x34
muls r0, r3
@@ -324,7 +136,7 @@ _081BA13E:
strh r0, [r7]
movs r2, 0
ldrh r0, [r7]
- ldr r4, =gUnknown_0203BC8C
+ ldr r4, =gFacilityTrainerMons
ldr r3, [r4]
lsls r0, 4
adds r0, r3
@@ -356,7 +168,7 @@ _081BA180:
cmp r0, r6
beq _081BA1B0
ldr r6, =gUnknown_03001298
- ldr r3, =gUnknown_0203BC8C
+ ldr r3, =gFacilityTrainerMons
mov r2, sp
_081BA198:
adds r2, 0x2
@@ -386,7 +198,7 @@ _081BA1C0:
beq _081BA1DE
ldr r1, =gUnknown_03001298
ldrh r0, [r1]
- ldr r6, =gUnknown_0203BC8C
+ ldr r6, =gFacilityTrainerMons
ldr r1, [r6]
lsls r0, 4
adds r0, r1
@@ -406,7 +218,7 @@ _081BA1E6:
bne _081BA220
lsls r2, r5, 1
ldrh r0, [r7]
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r4, [r1]
lsls r0, 4
adds r0, r4
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 7340ea1ce..f24069307 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -5,261 +5,8 @@
.text
- thumb_func_start sub_8161F74
-sub_8161F74: @ 8161F74
- push {lr}
- ldr r1, =gUnknown_085DF96C
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161F74
- thumb_func_start sub_8161F94
-sub_8161F94: @ 8161F94
- push {r4-r7,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, [r4]
- ldr r2, =0x00000ca8
- adds r0, r2
- movs r7, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r4]
- adds r2, 0xA
- adds r0, r1, r2
- strh r7, [r0]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl sub_81A3ACC
- ldr r4, [r4]
- ldr r0, =0x00000cdc
- adds r3, r4, r0
- ldr r2, =gUnknown_085DF9AC
- lsls r1, r5, 2
- lsls r0, r6, 3
- adds r1, r0
- adds r1, r2
- ldr r0, [r3]
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _0816200E
- lsls r0, r5, 1
- lsls r1, r6, 2
- adds r0, r1
- movs r2, 0xCE
- lsls r2, 4
- adds r1, r4, r2
- adds r1, r0
- strh r7, [r1]
-_0816200E:
- bl sub_8164ED8
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- ldr r0, =gTrainerBattleOpponent_A
- strh r7, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161F94
- thumb_func_start sub_8162054
-sub_8162054: @ 8162054
- push {r4-r6,lr}
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r4, =0x00000ca9
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r6, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _08162094
- cmp r0, 0x1
- ble _081620E8
- cmp r0, 0x2
- beq _081620A8
- cmp r0, 0x3
- beq _081620D8
- b _081620E8
- .pool
-_08162094:
- adds r0, r6, 0
- lsls r1, 24
- lsrs r1, 24
- bl sub_8164FCC
- ldr r1, =gSpecialVar_Result
- strh r0, [r1]
- b _081620E8
- .pool
-_081620A8:
- ldr r4, =gSpecialVar_Result
- ldr r2, [r5]
- ldr r0, =0x00000cdc
- adds r2, r0
- ldr r3, =gUnknown_085DF9AC
- lsls r0, r6, 2
- lsls r1, 3
- adds r0, r1
- adds r0, r3
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- strh r0, [r4]
- b _081620E8
- .pool
-_081620D8:
- ldr r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- ldr r2, =0x00000d07
- adds r1, r2
- strb r0, [r1]
-_081620E8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8162054
-
- thumb_func_start sub_81620F4
-sub_81620F4: @ 81620F4
- push {r4-r7,lr}
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- ldr r7, =0x00000ca9
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _08162134
- cmp r0, 0x1
- ble _081621B4
- cmp r0, 0x2
- beq _08162150
- cmp r0, 0x3
- beq _081621A4
- b _081621B4
- .pool
-_08162134:
- ldr r2, [r6]
- lsls r0, r5, 1
- lsls r1, r4, 2
- adds r0, r1
- movs r1, 0xCE
- lsls r1, 4
- adds r2, r1
- adds r2, r0
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- strh r0, [r2]
- b _081621B4
- .pool
-_08162150:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _08162180
- ldr r2, [r6]
- ldr r0, =0x00000cdc
- adds r2, r0
- ldr r3, =gUnknown_085DF9AC
- lsls r1, r5, 2
- lsls r0, r4, 3
- adds r1, r0
- adds r1, r3
- ldr r0, [r2]
- ldr r1, [r1]
- orrs r0, r1
- str r0, [r2]
- b _081621B4
- .pool
-_08162180:
- ldr r2, [r6]
- ldr r1, =0x00000cdc
- adds r2, r1
- ldr r3, =gUnknown_085DF9CC
- lsls r1, r5, 2
- lsls r0, r4, 3
- adds r1, r0
- adds r1, r3
- ldr r0, [r2]
- ldr r1, [r1]
- ands r0, r1
- str r0, [r2]
- b _081621B4
- .pool
-_081621A4:
- ldr r1, [r6]
- adds r0, r1, r7
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- ldr r2, =0x00000d07
- adds r1, r2
- strb r0, [r1]
-_081621B4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81620F4
thumb_func_start sub_81621C0
sub_81621C0: @ 81621C0
@@ -391,7 +138,7 @@ _081622B2:
adds r4, r1, r0
mov r0, r10
str r2, [sp, 0x38]
- bl BattleFrontierGetOpponentLvl
+ bl GetFrontierEnemyMonLevel
ldrb r1, [r4]
lsls r0, 24
lsrs r0, 24
@@ -551,7 +298,7 @@ _08162414:
bl __udivsi3
lsls r0, 16
lsrs r5, r0, 16
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
subs r4, 0x2
cmp r4, 0x1
bhi _08162488
@@ -784,7 +531,7 @@ sub_8162614: @ 8162614
adds r6, r4, 0
lsls r1, 24
lsrs r5, r1, 24
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r4, r0
@@ -806,7 +553,7 @@ _08162650:
ldr r0, =0x0000012b
cmp r4, r0
bhi _0816266C
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@@ -962,7 +709,7 @@ sub_81627A4: @ 81627A4
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r4, r0
@@ -977,7 +724,7 @@ _081627CC:
ldr r0, =0x0000012b
cmp r4, r0
bhi _081627E8
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@@ -1335,7 +1082,7 @@ GetFrontierTrainerFrontSpriteId: @ 8162AA0
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r4, r0
@@ -1363,7 +1110,7 @@ _08162AE4:
cmp r4, r0
bhi _08162B08
ldr r2, =gFacilityClassToPicIndex
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@@ -1462,7 +1209,7 @@ GetFrontierOpponentClass: @ 8162BD8
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r4, r0
@@ -1500,7 +1247,7 @@ _08162C38:
cmp r4, r0
bhi _08162C60
ldr r2, =gFacilityClassToTrainerClass
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@@ -1602,7 +1349,7 @@ sub_8162D34: @ 8162D34
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r4, r0
@@ -1617,7 +1364,7 @@ _08162D5C:
ldr r0, =0x0000012b
cmp r4, r0
bhi _08162D78
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@@ -1704,7 +1451,7 @@ GetFrontierTrainerName: @ 8162E20
lsls r1, 16
lsrs r5, r1, 16
movs r4, 0
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r5, r0
@@ -1751,7 +1498,7 @@ _08162E88:
ldr r0, =0x0000012b
cmp r5, r0
bhi _08162EB4
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r5
@@ -1854,7 +1601,7 @@ sub_8162F68: @ 8162F68
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r4, r0
@@ -1878,7 +1625,7 @@ _08162FA4:
ldr r0, =0x0000012b
cmp r4, r0
bhi _08162FC0
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@@ -2025,7 +1772,7 @@ sub_81630C4: @ 81630C4
add r4, sp, 0x14
movs r0, 0xFF
strb r0, [r4]
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x20]
@@ -2039,7 +1786,7 @@ sub_81630C4: @ 81630C4
str r0, [sp, 0x24]
ldr r0, =gTrainerBattleOpponent_A
ldrh r2, [r0]
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r2
@@ -2258,7 +2005,7 @@ _081632D2:
movs r1, 0xB
movs r2, 0
bl GetMonData
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r2, [r1]
lsls r1, r4, 4
adds r1, r2
@@ -2291,7 +2038,7 @@ _08163308:
movs r1, 0xC
movs r2, 0
bl GetMonData
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r2, [r1]
lsls r1, r4, 4
adds r1, r2
@@ -2338,7 +2085,7 @@ _08163368:
muls r0, r1
ldr r2, =gEnemyParty
adds r0, r2
- ldr r5, =gUnknown_0203BC8C
+ ldr r5, =gFacilityTrainerMons
ldr r2, [r5]
lsls r4, 4
adds r2, r4, r2
@@ -2405,7 +2152,7 @@ _081633EC:
movs r1, 0x20
add r2, sp, 0x14
bl SetMonData
- ldr r0, =gUnknown_0203BC8C
+ ldr r0, =gFacilityTrainerMons
ldr r0, [r0]
add r0, r9
ldrb r2, [r0, 0xA]
@@ -2545,16 +2292,16 @@ _081634D4:
.pool
thumb_func_end sub_8163444
- thumb_func_start sub_8163524
-sub_8163524: @ 8163524
+ thumb_func_start RandomizeFacilityTrainerMonId
+RandomizeFacilityTrainerMonId: @ 8163524
push {r4-r6,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r6, r0, 24
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r4
@@ -2598,7 +2345,7 @@ _08163580:
pop {r1}
bx r1
.pool
- thumb_func_end sub_8163524
+ thumb_func_end RandomizeFacilityTrainerMonId
thumb_func_start sub_8163590
sub_8163590: @ 8163590
@@ -2728,7 +2475,7 @@ _081636A4:
movs r0, 0x1F
_081636A6:
str r0, [sp, 0x18]
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x14]
@@ -2759,7 +2506,7 @@ _081636CE:
muls r6, r0
ldr r1, =gEnemyParty
adds r0, r6, r1
- ldr r3, =gUnknown_0203BC8C
+ ldr r3, =gFacilityTrainerMons
ldr r2, [r3]
mov r1, r9
lsls r4, r1, 4
@@ -2784,7 +2531,7 @@ _081636CE:
mov r10, r7
adds r7, r4, 0
_08163718:
- ldr r0, =gUnknown_0203BC8C
+ ldr r0, =gFacilityTrainerMons
ldr r1, [r0]
mov r2, r9
lsls r0, r2, 4
@@ -2813,7 +2560,7 @@ _08163718:
movs r1, 0x20
add r2, sp, 0xC
bl SetMonData
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
adds r0, r7, r0
ldrb r2, [r0, 0xA]
@@ -2881,7 +2628,7 @@ _081637D0:
muls r6, r7
ldr r1, =gEnemyParty
adds r0, r6, r1
- ldr r7, =gUnknown_0203BC8C
+ ldr r7, =gFacilityTrainerMons
ldr r2, [r7]
lsls r4, 4
adds r2, r4, r2
@@ -2905,7 +2652,7 @@ _081637D0:
mov r8, r4
mov r5, r8
_08163818:
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
adds r0, r5, r0
lsls r4, r7, 1
@@ -2916,7 +2663,7 @@ _08163818:
adds r0, r6, r2
adds r2, r7, 0
bl sub_81A7024
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
adds r0, r5, r0
adds r0, 0x2
@@ -2942,7 +2689,7 @@ _08163846:
movs r1, 0x20
add r2, sp, 0xC
bl SetMonData
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
add r0, r8
ldrb r2, [r0, 0xA]
@@ -3029,7 +2776,7 @@ _0816390A:
thumb_func_start sub_8163914
sub_8163914: @ 8163914
push {lr}
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
ldr r0, =gSpecialVar_0x8005
ldrh r0, [r0]
cmp r0, 0
@@ -3054,7 +2801,7 @@ _08163950:
ldr r0, =0x0000012b
cmp r3, r0
bhi _08163974
- ldr r2, =gUnknown_0203BC88
+ ldr r2, =gFacilityTrainers
movs r0, 0x34
adds r1, r3, 0
muls r1, r0
@@ -3979,7 +3726,7 @@ _081641E6:
lsls r0, r1, 24
lsrs r0, 24
str r2, [sp, 0x18]
- bl BattleFrontierGetOpponentLvl
+ bl GetFrontierEnemyMonLevel
ldrb r1, [r4]
lsls r0, 24
lsrs r0, 24
@@ -4091,7 +3838,7 @@ sub_81642A0: @ 81642A0
movs r2, 0
bl GetMonData
str r0, [sp, 0x20]
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
movs r7, 0
ldr r0, [sp, 0x18]
lsls r0, 24
@@ -4116,7 +3863,7 @@ _0816431A:
ldrh r0, [r1]
cmp r0, r8
beq _08164368
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r2, [r0]
movs r4, 0x34
mov r0, r8
@@ -4186,7 +3933,7 @@ _081643A8:
str r0, [sp, 0x28]
_081643C0:
mov r0, r8
- bl sub_8163524
+ bl RandomizeFacilityTrainerMonId
lsls r0, 16
lsrs r6, r0, 16
movs r0, 0x1
@@ -4200,7 +3947,7 @@ _081643C0:
ldr r1, [sp, 0x28]
adds r0, r1
ldrh r2, [r0]
- ldr r0, =gUnknown_0203BC8C
+ ldr r0, =gFacilityTrainerMons
ldr r0, [r0]
lsls r2, 4
adds r2, r0
@@ -4216,7 +3963,7 @@ _081643F4:
bge _08164430
ldr r2, =gSaveBlock2Ptr
ldr r0, [r2]
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r3, [r1]
lsls r1, r6, 4
adds r1, r3
@@ -4464,7 +4211,7 @@ _081645B8:
lsls r0, r1, 24
lsrs r0, 24
str r3, [sp, 0x48]
- bl BattleFrontierGetOpponentLvl
+ bl GetFrontierEnemyMonLevel
ldrb r1, [r4]
lsls r0, 24
lsrs r0, 24
@@ -4556,7 +4303,7 @@ sub_81646BC: @ 81646BC
movs r0, 0
mov r9, r0
mov r10, r0
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
movs r0, 0xFA
lsls r0, 1
cmp r5, r0
@@ -4564,7 +4311,7 @@ sub_81646BC: @ 81646BC
subs r0, 0xC9
cmp r5, r0
bhi _081646FC
- ldr r0, =gUnknown_0203BC8C
+ ldr r0, =gFacilityTrainerMons
ldr r1, [r0]
lsls r0, r4, 4
adds r0, r1
@@ -4705,7 +4452,7 @@ sub_8164828: @ 8164828
mov r5, r8
push {r5-r7}
sub sp, 0x8
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
bl sub_81A39C4
lsls r0, 16
lsrs r0, 16
@@ -6073,7 +5820,7 @@ sub_8165404: @ 8165404
sub sp, 0x70
lsls r0, 16
lsrs r7, r0, 16
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
ldr r0, =0x00000c03
cmp r7, r0
beq _08165420
@@ -6228,7 +5975,7 @@ _08165564:
bls _0816556C
b _081656E8
_0816556C:
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x50]
@@ -6272,7 +6019,7 @@ _081655A6:
mov r9, r0
mov r0, r8
add r0, r9
- ldr r6, =gUnknown_0203BC8C
+ ldr r6, =gFacilityTrainerMons
ldr r4, [r6]
lsls r5, r1, 4
adds r4, r5, r4
@@ -6339,7 +6086,7 @@ _08165634:
movs r1, 0x20
ldr r2, [sp, 0x5C]
bl SetMonData
- ldr r0, =gUnknown_0203BC8C
+ ldr r0, =gFacilityTrainerMons
ldr r1, [r0]
ldr r2, [sp, 0x54]
lsls r0, r2, 4
@@ -6354,7 +6101,7 @@ _08165634:
movs r0, 0
str r0, [sp, 0x44]
movs r2, 0
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r7
@@ -7083,8 +6830,8 @@ _08165C2A:
.pool
thumb_func_end sub_8165B88
- thumb_func_start sub_8165C40
-sub_8165C40: @ 8165C40
+ thumb_func_start GetFacilityEnemyMonLevel
+GetFacilityEnemyMonLevel: @ 8165C40
push {lr}
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
@@ -7095,29 +6842,29 @@ sub_8165C40: @ 8165C40
ands r0, r1
cmp r0, 0x2
beq _08165C84
- ldr r1, =gUnknown_0203BC88
+ ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
str r0, [r1]
ldrb r0, [r2]
lsls r0, 30
lsrs r0, 30
- bl BattleFrontierGetOpponentLvl
+ bl GetFrontierEnemyMonLevel
b _08165C88
.pool
_08165C84:
- bl sub_8165D78
+ bl GetTentEnemyMonLevel
_08165C88:
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
- thumb_func_end sub_8165C40
+ thumb_func_end GetFacilityEnemyMonLevel
- thumb_func_start BattleFrontierGetOpponentLvl
-BattleFrontierGetOpponentLvl: @ 8165C90
+ thumb_func_start GetFrontierEnemyMonLevel
+GetFrontierEnemyMonLevel: @ 8165C90
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -7138,7 +6885,7 @@ _08165CA2:
_08165CB0:
pop {r1}
bx r1
- thumb_func_end BattleFrontierGetOpponentLvl
+ thumb_func_end GetFrontierEnemyMonLevel
thumb_func_start sub_8165CB4
sub_8165CB4: @ 8165CB4
@@ -7246,8 +6993,8 @@ _08165D72:
bx r1
thumb_func_end sub_8165D40
- thumb_func_start sub_8165D78
-sub_8165D78: @ 8165D78
+ thumb_func_start GetTentEnemyMonLevel
+GetTentEnemyMonLevel: @ 8165D78
push {lr}
ldr r0, =0x000040cf
bl VarGet
@@ -7255,38 +7002,38 @@ sub_8165D78: @ 8165D78
lsrs r0, 16
cmp r0, 0x4
bne _08165DA8
- ldr r1, =gUnknown_0203BC88
+ ldr r1, =gFacilityTrainers
ldr r0, =gSlateportBattleTentTrainers
str r0, [r1]
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gSlateportBattleTentMons
b _08165DF2
.pool
_08165DA8:
cmp r0, 0x2
bne _08165DC8
- ldr r1, =gUnknown_0203BC88
+ ldr r1, =gFacilityTrainers
ldr r0, =gVerdanturfBattleTentTrainers
str r0, [r1]
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gVerdanturfBattleTentMons
b _08165DF2
.pool
_08165DC8:
cmp r0, 0x3
bne _08165DE8
- ldr r1, =gUnknown_0203BC88
+ ldr r1, =gFacilityTrainers
ldr r0, =gFallarborBattleTentTrainers
str r0, [r1]
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gFallarborBattleTentMons
b _08165DF2
.pool
_08165DE8:
- ldr r1, =gUnknown_0203BC88
+ ldr r1, =gFacilityTrainers
ldr r0, =gBattleFrontierTrainers
str r0, [r1]
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r0, =gBattleFrontierMons
_08165DF2:
str r0, [r1]
@@ -7300,7 +7047,7 @@ _08165E02:
pop {r1}
bx r1
.pool
- thumb_func_end sub_8165D78
+ thumb_func_end GetTentEnemyMonLevel
thumb_func_start sub_8165E18
sub_8165E18: @ 8165E18
@@ -7384,13 +7131,13 @@ sub_8165EA4: @ 8165EA4
lsls r2, 24
lsrs r2, 24
str r2, [sp, 0x1C]
- bl sub_8165D78
+ bl GetTentEnemyMonLevel
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x20]
ldr r0, =gTrainerBattleOpponent_A
ldrh r2, [r0]
- ldr r0, =gUnknown_0203BC88
+ ldr r0, =gFacilityTrainers
ldr r1, [r0]
movs r0, 0x34
muls r0, r2
@@ -7456,7 +7203,7 @@ _08165F44:
movs r1, 0xB
movs r2, 0
bl GetMonData
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r2, [r1]
lsls r1, r4, 4
adds r1, r2
@@ -7489,7 +7236,7 @@ _08165F7A:
movs r1, 0xC
movs r2, 0
bl GetMonData
- ldr r1, =gUnknown_0203BC8C
+ ldr r1, =gFacilityTrainerMons
ldr r2, [r1]
lsls r1, r4, 4
adds r1, r2
@@ -7537,7 +7284,7 @@ _08165FDA:
muls r0, r6
ldr r1, =gEnemyParty
adds r0, r1
- ldr r5, =gUnknown_0203BC8C
+ ldr r5, =gFacilityTrainerMons
ldr r2, [r5]
lsls r4, 4
adds r2, r4, r2
@@ -7603,7 +7350,7 @@ _0816605E:
movs r1, 0x20
add r2, sp, 0x14
bl SetMonData
- ldr r0, =gUnknown_0203BC8C
+ ldr r0, =gFacilityTrainerMons
ldr r0, [r0]
add r0, r9
ldrb r2, [r0, 0xA]
@@ -7756,7 +7503,7 @@ sub_8166188: @ 8166188
ands r0, r1
cmp r0, 0
beq _081661E8
- bl sub_8165C40
+ bl GetFacilityEnemyMonLevel
lsls r0, 24
movs r5, 0
ldr r7, =gBaseStats
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index 276267043..768311639 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -2706,7 +2706,7 @@ _0811C044:
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r1, =gEasyChatWindow_Tilemap
movs r0, 0x3
movs r2, 0
@@ -2732,7 +2732,7 @@ _0811C090:
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
+ bl DecompressAndLoadBgGfxUsingHeap
movs r0, 0x1
bl CopyBgTilemapBufferToVram
b _0811C124
diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc
index c03d78df7..34d529cc7 100644
--- a/asm/macros/battle_script.inc
+++ b/asm/macros/battle_script.inc
@@ -45,14 +45,14 @@
.byte 0xa
.endm
- .macro healthbarupdate bank
+ .macro healthbarupdate battler
.byte 0xb
- .byte \bank
+ .byte \battler
.endm
- .macro datahpupdate bank
+ .macro datahpupdate battler
.byte 0xc
- .byte \bank
+ .byte \battler
.endm
.macro critmessage
@@ -104,38 +104,38 @@
.byte 0x17
.endm
- .macro clearstatusfromeffect bank
+ .macro clearstatusfromeffect battler
.byte 0x18
- .byte \bank
+ .byte \battler
.endm
- .macro tryfaintmon bank, param1, param2
+ .macro tryfaintmon battler, param1, param2
.byte 0x19
- .byte \bank
+ .byte \battler
.byte \param1
.4byte \param2
.endm
- .macro dofaintanimation bank
+ .macro dofaintanimation battler
.byte 0x1a
- .byte \bank
+ .byte \battler
.endm
- .macro cleareffectsonfaint bank
+ .macro cleareffectsonfaint battler
.byte 0x1b
- .byte \bank
+ .byte \battler
.endm
- .macro jumpifstatus bank, status1, param2
+ .macro jumpifstatus battler, status1, param2
.byte 0x1c
- .byte \bank
+ .byte \battler
.4byte \status1
.4byte \param2
.endm
- .macro jumpifstatus2 bank, status2, param2
+ .macro jumpifstatus2 battler, status2, param2
.byte 0x1d
- .byte \bank
+ .byte \battler
.4byte \status2
.4byte \param2
.endm
@@ -147,40 +147,40 @@
.4byte \param2
.endm
- .macro jumpifsideaffecting bank, sidestatus, param2
+ .macro jumpifsideaffecting battler, sidestatus, param2
.byte 0x1f
- .byte \bank
+ .byte \battler
.2byte \sidestatus
.4byte \param2
.endm
- .macro jumpifstat bank, ifflag, stat, param3, param4
+ .macro jumpifstat battler, ifflag, stat, param3, param4
.byte 0x20
- .byte \bank
+ .byte \battler
.byte \ifflag
.byte \stat
.byte \param3
.4byte \param4
.endm
- .macro jumpifstatus3condition bank, status3, param2, param3
+ .macro jumpifstatus3condition battler, status3, param2, param3
.byte 0x21
- .byte \bank
+ .byte \battler
.4byte \status3
.byte \param2
.4byte \param3
.endm
- .macro jumpiftype bank, type, param2
+ .macro jumpiftype battler, type, param2
.byte 0x22
- .byte \bank
+ .byte \battler
.byte \type
.4byte \param2
.endm
- .macro getexp bank
+ .macro getexp battler
.byte 0x23
- .byte \bank
+ .byte \battler
.endm
.macro atk24 param0
@@ -325,9 +325,9 @@
.byte 0x3a
.endm
- .macro healthbar_update bank
+ .macro healthbar_update battler
.byte 0x3b
- .byte \bank
+ .byte \battler
.endm
.macro return
@@ -356,9 +356,9 @@
.4byte \param0
.endm
- .macro jumpiftype2 bank, type, param2
+ .macro jumpiftype2 battler, type, param2
.byte 0x42
- .byte \bank
+ .byte \battler
.byte \type
.4byte \param2
.endm
@@ -373,16 +373,16 @@
.byte 0x44
.endm
- .macro playanimation bank, param1, param2
+ .macro playanimation battler, param1, param2
.byte 0x45
- .byte \bank
+ .byte \battler
.byte \param1
.4byte \param2
.endm
- .macro playanimation2 bank, param1, param2
+ .macro playanimation2 battler, param1, param2
.byte 0x46
- .byte \bank
+ .byte \battler
.4byte \param1
.4byte \param2
.endm
@@ -391,9 +391,9 @@
.byte 0x47
.endm
- .macro playstatchangeanimation bank, param1, param2
+ .macro playstatchangeanimation battler, param1, param2
.byte 0x48
- .byte \bank
+ .byte \battler
.byte \param1
.byte \param2
.endm
@@ -412,25 +412,25 @@
.byte 0x4b
.endm
- .macro getswitchedmondata bank
+ .macro getswitchedmondata battler
.byte 0x4c
- .byte \bank
+ .byte \battler
.endm
- .macro switchindataupdate bank
+ .macro switchindataupdate battler
.byte 0x4d
- .byte \bank
+ .byte \battler
.endm
- .macro switchinanim bank, dontclearsubstitutebit
+ .macro switchinanim battler, dontclearsubstitutebit
.byte 0x4e
- .byte \bank
+ .byte \battler
.byte \dontclearsubstitutebit
.endm
- .macro jumpifcantswitch bank, param1
+ .macro jumpifcantswitch battler, param1
.byte 0x4f
- .byte \bank
+ .byte \battler
.4byte \param1
.endm
@@ -440,20 +440,20 @@
.4byte \param1
.endm
- .macro switchhandleorder bank, param1
+ .macro switchhandleorder battler, param1
.byte 0x51
- .byte \bank
+ .byte \battler
.byte \param1
.endm
- .macro switchineffects bank
+ .macro switchineffects battler
.byte 0x52
- .byte \bank
+ .byte \battler
.endm
- .macro trainerslidein bank
+ .macro trainerslidein battler
.byte 0x53
- .byte \bank
+ .byte \battler
.endm
.macro playse param0
@@ -466,18 +466,18 @@
.2byte \param0
.endm
- .macro playfaintcry bank
+ .macro playfaintcry battler
.byte 0x56
- .byte \bank
+ .byte \battler
.endm
.macro atk57
.byte 0x57
.endm
- .macro returntoball bank
+ .macro returntoball battler
.byte 0x58
- .byte \bank
+ .byte \battler
.endm
.macro handlelearnnewmove param0, param1, param2
@@ -497,18 +497,18 @@
.4byte \param0
.endm
- .macro hitanimation bank
+ .macro hitanimation battler
.byte 0x5c
- .byte \bank
+ .byte \battler
.endm
.macro getmoneyreward
.byte 0x5d
.endm
- .macro atk5E bank
+ .macro atk5E battler
.byte 0x5e
- .byte \bank
+ .byte \battler
.endm
.macro swapattackerwithtarget
@@ -520,14 +520,14 @@
.byte \param0
.endm
- .macro drawpartystatussummary bank
+ .macro drawpartystatussummary battler
.byte 0x61
- .byte \bank
+ .byte \battler
.endm
- .macro hidepartystatussummary bank
+ .macro hidepartystatussummary battler
.byte 0x62
- .byte \bank
+ .byte \battler
.endm
.macro jumptorandomattack param0
@@ -535,20 +535,20 @@
.byte \param0
.endm
- .macro statusanimation bank
+ .macro statusanimation battler
.byte 0x64
- .byte \bank
+ .byte \battler
.endm
- .macro status2animation bank, status2
+ .macro status2animation battler, status2
.byte 0x65
- .byte \bank
+ .byte \battler
.4byte \status2
.endm
- .macro chosenstatusanimation bank, param1, param2
+ .macro chosenstatusanimation battler, param1, param2
.byte 0x66
- .byte \bank
+ .byte \battler
.byte \param1
.4byte \param2
.endm
@@ -565,9 +565,9 @@
.byte 0x69
.endm
- .macro removeitem bank
+ .macro removeitem battler
.byte 0x6a
- .byte \bank
+ .byte \battler
.endm
.macro atknameinbuff1
@@ -586,14 +586,14 @@
.byte 0x6e
.endm
- .macro makevisible bank
+ .macro makevisible battler
.byte 0x6f
- .byte \bank
+ .byte \battler
.endm
- .macro recordlastability bank
+ .macro recordlastability battler
.byte 0x70
- .byte \bank
+ .byte \battler
.endm
.macro buffermovetolearn
@@ -605,23 +605,23 @@
.4byte \param0
.endm
- .macro hpthresholds bank
+ .macro hpthresholds battler
.byte 0x73
- .byte \bank
+ .byte \battler
.endm
- .macro hpthresholds2 bank
+ .macro hpthresholds2 battler
.byte 0x74
- .byte \bank
+ .byte \battler
.endm
.macro useitemonopponent
.byte 0x75
.endm
- .macro various bank, param1
+ .macro various battler, param1
.byte 0x76
- .byte \bank
+ .byte \battler
.byte \param1
.endm
@@ -642,10 +642,10 @@
.4byte \param0
.endm
- .macro tryhealhalfhealth param0, bank
+ .macro tryhealhalfhealth param0, battler
.byte 0x7b
.4byte \param0
- .byte \bank
+ .byte \battler
.endm
.macro trymirrormove
@@ -773,9 +773,9 @@
.4byte \param0
.endm
- .macro updatestatusicon bank
+ .macro updatestatusicon battler
.byte 0x98
- .byte \bank
+ .byte \battler
.endm
.macro setmist
@@ -1112,14 +1112,14 @@
.4byte \param0
.endm
- .macro switchoutabilities bank
+ .macro switchoutabilities battler
.byte 0xe2
- .byte \bank
+ .byte \battler
.endm
- .macro jumpifhasnohp bank, param1
+ .macro jumpifhasnohp battler, param1
.byte 0xe3
- .byte \bank
+ .byte \battler
.4byte \param1
.endm
@@ -1215,112 +1215,112 @@
.endm
@ various command changed to more readable macros
- .macro cancelmultiturnmoves bank
- various \bank, VARIOUS_CANCEL_MULTI_TURN_MOVES
+ .macro cancelmultiturnmoves battler
+ various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES
.endm
- .macro setmagiccoattarget bank
- various \bank, VARIOUS_SET_MAGIC_COAT_TARGET
+ .macro setmagiccoattarget battler
+ various \battler, VARIOUS_SET_MAGIC_COAT_TARGET
.endm
- .macro getifcantrunfrombattle bank
- various \bank, VARIOUS_IS_RUNNING_IMPOSSIBLE
+ .macro getifcantrunfrombattle battler
+ various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE
.endm
- .macro getmovetarget bank
- various \bank, VARIOUS_GET_MOVE_TARGET
+ .macro getmovetarget battler
+ various \battler, VARIOUS_GET_MOVE_TARGET
.endm
- .macro various4 bank
- various \bank, 4
+ .macro various4 battler
+ various \battler, 4
.endm
- .macro resetintrimidatetracebits bank
- various \bank, VARIOUS_RESET_INTIMIDATE_TRACE_BITS
+ .macro resetintrimidatetracebits battler
+ various \battler, VARIOUS_RESET_INTIMIDATE_TRACE_BITS
.endm
- .macro updatechoicemoveonlvlup bank
- various \bank, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP
+ .macro updatechoicemoveonlvlup battler
+ various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP
.endm
- .macro various7 bank
- various \bank, 7
+ .macro various7 battler
+ various \battler, 7
.endm
- .macro various8 bank
- various \bank, 8
+ .macro various8 battler
+ various \battler, 8
.endm
- .macro various9 bank
- various \bank, 9
+ .macro various9 battler
+ various \battler, 9
.endm
- .macro various10 bank
- various \bank, 10
+ .macro various10 battler
+ various \battler, 10
.endm
- .macro various11 bank
- various \bank, 11
+ .macro various11 battler
+ various \battler, 11
.endm
- .macro various12 bank
- various \bank, 12
+ .macro various12 battler
+ various \battler, 12
.endm
- .macro forfeityesnobox bank
- various \bank, VARIOUS_EMIT_YESNOBOX
+ .macro forfeityesnobox battler
+ various \battler, VARIOUS_EMIT_YESNOBOX
.endm
- .macro various14 bank
- various \bank, 14
+ .macro various14 battler
+ various \battler, 14
.endm
- .macro various15 bank
- various \bank, 15
+ .macro various15 battler
+ various \battler, 15
.endm
- .macro various16 bank
- various \bank, 16
+ .macro various16 battler
+ various \battler, 16
.endm
- .macro various17 bank
- various \bank, 17
+ .macro various17 battler
+ various \battler, 17
.endm
- .macro waitcry bank
- various \bank, VARIOUS_WAIT_CRY
+ .macro waitcry battler
+ various \battler, VARIOUS_WAIT_CRY
.endm
- .macro returnopponentmon1toball bank
- various \bank, VARIOUS_RETURN_OPPONENT_MON1
+ .macro returnopponentmon1toball battler
+ various \battler, VARIOUS_RETURN_OPPONENT_MON1
.endm
- .macro returnopponentmon2toball bank
- various \bank, VARIOUS_RETURN_OPPONENT_MON2
+ .macro returnopponentmon2toball battler
+ various \battler, VARIOUS_RETURN_OPPONENT_MON2
.endm
- .macro various21 bank
- various \bank, 21
+ .macro volumedown
+ various BS_ATTACKER, VARIOUS_VOLUME_DOWN
.endm
- .macro various22 bank
- various \bank, 22
+ .macro volumeup
+ various BS_ATTACKER, VARIOUS_VOLUME_UP
.endm
- .macro various23 bank
- various \bank, 23
+ .macro various23 battler
+ various \battler, 23
.endm
- .macro various24 bank
- various \bank, 24
+ .macro various24 battler
+ various \battler, 24
.endm
- .macro setoutcomeonteleport bank
- various \bank, VARIOUS_SET_TELEPORT_OUTCOME
+ .macro setoutcomeonteleport battler
+ various \battler, VARIOUS_SET_TELEPORT_OUTCOME
.endm
- .macro playtrainerdefeatbgm bank
- various \bank, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC
+ .macro playtrainerdefeatbgm battler
+ various \battler, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC
.endm
@ helpful macros
@@ -1332,12 +1332,12 @@
setbyte cEFFECT_CHOOSER \effect
.endm
- .macro chosenstatus1animation bank, status
- chosenstatusanimation \bank 0x0 \status
+ .macro chosenstatus1animation battler, status
+ chosenstatusanimation \battler 0x0 \status
.endm
- .macro chosenstatus2animation bank, status
- chosenstatusanimation \bank 0x1 \status
+ .macro chosenstatus2animation battler, status
+ chosenstatusanimation \battler 0x1 \status
.endm
.macro sethword dst, value
@@ -1380,12 +1380,12 @@
jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, \move, \jumpptr
.endm
- .macro jumpifstatus3 bank, status, jumpptr
- jumpifstatus3condition \bank, \status, 0x0, \jumpptr
+ .macro jumpifstatus3 battler, status, jumpptr
+ jumpifstatus3condition \battler, \status, 0x0, \jumpptr
.endm
- .macro jumpifnostatus3 bank, status, jumpptr
- jumpifstatus3condition \bank, \status, 0x1, \jumpptr
+ .macro jumpifnostatus3 battler, status, jumpptr
+ jumpifstatus3condition \battler, \status, 0x1, \jumpptr
.endm
.macro jumpifmovehadnoeffect jumpptr
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 92c4905a4..2d1faadab 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -11626,7 +11626,7 @@ c2_815ABFC: @ 81B6254
bl GoToBagMenu
b _081B6276
_081B626C:
- ldr r0, =gUnknown_0203CF30
+ ldr r0, =gPyramidBagCursorData
ldr r1, [r0]
movs r0, 0x4
bl sub_81C4F98
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 8fb4f2dec..481a85d8d 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -3805,7 +3805,7 @@ sub_80C9FEC: @ 80C9FEC
movs r0, 0x3
movs r2, 0
movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r0, =gUnknown_08572174
ldr r1, =0x0600f800
bl LZ77UnCompVram
@@ -3844,7 +3844,7 @@ sub_80CA044: @ 80CA044
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r0, =gUnknown_085722A0
ldr r5, =gUnknown_02039D08
ldr r1, [r5]
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 250eca0f2..b8165ec80 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -4,6 +4,239 @@
.syntax unified
.text
+
+
+
+ thumb_func_start sub_81C7078
+sub_81C7078: @ 81C7078
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl is_c1_link_related_active
+ cmp r0, 0
+ bne _081C7090
+ ldr r0, =sub_81C7170
+ b _081C7092
+ .pool
+_081C7090:
+ ldr r0, =sub_81C71E4
+_081C7092:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl SetWordTaskArg
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, =gUnknown_0203CF3C
+ ldrb r1, [r2]
+ strh r1, [r0, 0xE]
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 8
+ orrs r0, r4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C7078
+
+ thumb_func_start sub_81C70D8
+sub_81C70D8: @ 81C70D8
+ push {lr}
+ ldr r1, =0x0000ffff
+ ands r1, r0
+ lsrs r3, r0, 16
+ ldr r2, =gTasks
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _081C711C
+ ldr r2, [r1]
+ ldr r0, =sub_81C7170
+ cmp r2, r0
+ beq _081C70FE
+ ldr r0, =sub_81C71E4
+ cmp r2, r0
+ bne _081C711C
+_081C70FE:
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ cmp r0, r3
+ bne _081C711C
+ movs r0, 0x1
+ b _081C711E
+ .pool
+_081C711C:
+ movs r0, 0
+_081C711E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C70D8
+
+ thumb_func_start sub_81C7124
+sub_81C7124: @ 81C7124
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ ldr r4, =gTasks
+_081C712C:
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _081C7160
+ ldr r1, [r4]
+ ldr r0, =sub_81C7170
+ cmp r1, r0
+ beq _081C7140
+ ldr r0, =sub_81C71E4
+ cmp r1, r0
+ bne _081C7160
+_081C7140:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl GetWordTaskArg
+ cmp r0, r6
+ bne _081C7160
+ movs r0, 0x1
+ b _081C716A
+ .pool
+_081C7160:
+ adds r4, 0x28
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _081C712C
+ movs r0, 0
+_081C716A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C7124
+
+ thumb_func_start sub_81C7170
+sub_81C7170: @ 81C7170
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl GetWordTaskArg
+ adds r6, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ movs r7, 0
+_081C718C:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl _call_via_r6
+ cmp r0, 0x4
+ bhi _081C71D6
+ lsls r0, 2
+ ldr r1, =_081C71AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C71AC:
+ .4byte _081C71C6
+ .4byte _081C71C0
+ .4byte _081C71DE
+ .4byte _081C71DA
+ .4byte _081C71CE
+_081C71C0:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _081C71D8
+_081C71C6:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _081C71DE
+_081C71CE:
+ adds r0, r5, 0
+ bl DestroyTask
+ b _081C71DE
+_081C71D6:
+ subs r0, 0x5
+_081C71D8:
+ strh r0, [r4]
+_081C71DA:
+ cmp r7, 0
+ beq _081C718C
+_081C71DE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7170
+
+ thumb_func_start sub_81C71E4
+sub_81C71E4: @ 81C71E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8087598
+ cmp r0, 0
+ bne _081C724A
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl GetWordTaskArg
+ adds r2, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl _call_via_r2
+ cmp r0, 0x4
+ bhi _081C7246
+ lsls r0, 2
+ ldr r1, =_081C7224
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C7224:
+ .4byte _081C7238
+ .4byte _081C7238
+ .4byte _081C724A
+ .4byte _081C724A
+ .4byte _081C723E
+_081C7238:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _081C7248
+_081C723E:
+ adds r0, r5, 0
+ bl DestroyTask
+ b _081C724A
+_081C7246:
+ subs r0, 0x5
+_081C7248:
+ strh r0, [r4]
+_081C724A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C71E4
thumb_func_start CB2_PokeNav
CB2_PokeNav: @ 81C7250
@@ -20169,7 +20402,7 @@ sub_81D1148: @ 81D1148
add r2, sp, 0x8
mov r0, sp
bl sub_81D0760
- bl dp13_810BB8C
+ bl ResetAllPicSprites
movs r0, 0x28
movs r1, 0x68
bl sub_81D1184
@@ -20187,7 +20420,7 @@ sub_81D1148: @ 81D1148
sub_81D1178: @ 81D1178
push {lr}
ldrh r0, [r0, 0x10]
- bl sub_818D820
+ bl FreeAndDestroyMonPicSprite
pop {r0}
bx r0
thumb_func_end sub_81D1178
@@ -20213,7 +20446,7 @@ sub_81D1184: @ 81D1184
ldr r3, =0x0000ffff
str r3, [sp, 0xC]
movs r3, 0x1
- bl sub_818D7D8
+ bl CreateMonPicSprite_HandleDeoxys
lsls r0, 16
lsrs r0, 16
ldr r1, =gSprites
@@ -20256,7 +20489,7 @@ sub_81D11FC: @ 81D11FC
push {r4,r5,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x10]
- bl sub_818D820
+ bl FreeAndDestroyMonPicSprite
movs r5, 0x20
negs r5, r5
adds r0, r5, 0
diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s
index 306e2892d..01f29e0a5 100644
--- a/asm/rom_8011DC0.s
+++ b/asm/rom_8011DC0.s
@@ -7909,7 +7909,7 @@ bgid_upload_textbox_1: @ 8019938
lsls r2, 1
movs r3, 0
str r3, [sp]
- bl copy_decompressed_tile_data_to_vram_autofree
+ bl DecompressAndLoadBgGfxUsingHeap
add sp, 0x4
pop {r0}
bx r0
@@ -9386,7 +9386,7 @@ sub_801A43C: @ 801A43C
movs r0, 0x1
movs r2, 0
movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r1, =gWirelessInfoScreenTilemap
movs r0, 0x1
movs r2, 0
diff --git a/asm/rom_header.inc b/asm/rom_header.inc
index 1cef6393c..6730efae2 100644
--- a/asm/rom_header.inc
+++ b/asm/rom_header.inc
@@ -1,38 +1,19 @@
.global RomHeaderNintendoLogo
RomHeaderNintendoLogo:
- .byte 0x24,0xff,0xae,0x51,0x69,0x9a,0xa2,0x21
- .byte 0x3d,0x84,0x82,0x0a,0x84,0xe4,0x09,0xad
- .byte 0x11,0x24,0x8b,0x98,0xc0,0x81,0x7f,0x21
- .byte 0xa3,0x52,0xbe,0x19,0x93,0x09,0xce,0x20
- .byte 0x10,0x46,0x4a,0x4a,0xf8,0x27,0x31,0xec
- .byte 0x58,0xc7,0xe8,0x33,0x82,0xe3,0xce,0xbf
- .byte 0x85,0xf4,0xdf,0x94,0xce,0x4b,0x09,0xc1
- .byte 0x94,0x56,0x8a,0xc0,0x13,0x72,0xa7,0xfc
- .byte 0x9f,0x84,0x4d,0x73,0xa3,0xca,0x9a,0x61
- .byte 0x58,0x97,0xa3,0x27,0xfc,0x03,0x98,0x76
- .byte 0x23,0x1d,0xc7,0x61,0x03,0x04,0xae,0x56
- .byte 0xbf,0x38,0x84,0x00,0x40,0xa7,0x0e,0xfd
- .byte 0xff,0x52,0xfe,0x03,0x6f,0x95,0x30,0xf1
- .byte 0x97,0xfb,0xc0,0x85,0x60,0xd6,0x80,0x25
- .byte 0xa9,0x63,0xbe,0x03,0x01,0x4e,0x38,0xe2
- .byte 0xf9,0xa2,0x34,0xff,0xbb,0x3e,0x03,0x44
- .byte 0x78,0x00,0x90,0xcb,0x88,0x11,0x3a,0x94
- .byte 0x65,0xc0,0x7c,0x63,0x87,0xf0,0x3c,0xaf
- .byte 0xd6,0x25,0xe4,0x8b,0x38,0x0a,0xac,0x72
- .byte 0x21,0xd4,0xf8,0x07
+ .space 156
RomHeaderGameTitle:
- .ascii "POKEMON EMER"
+ .space 12
.global RomHeaderGameCode
RomHeaderGameCode:
- .ascii "BPEE"
+ .space 4
RomHeaderMakerCode:
- .ascii "01"
+ .space 2
RomHeaderMagic:
- .byte 0x96
+ .byte 0
RomHeaderMainUnitCode:
.byte 0
@@ -41,18 +22,14 @@ RomHeaderDeviceType:
.byte 0
RomHeaderReserved1:
- .rept 7
- .byte 0
- .endr
+ .space 7
.global RomHeaderSoftwareVersion
RomHeaderSoftwareVersion:
.byte 0
RomHeaderChecksum:
- .byte 0x72
+ .byte 0
RomHeaderReserved2:
- .rept 2
- .byte 0
- .endr
+ .space 2
diff --git a/asm/trade.s b/asm/trade.s
index 958bb77ea..224995de5 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -7609,7 +7609,7 @@ sub_807B170: @ 807B170
mov r1, r10
movs r2, 0
movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
+ bl DecompressAndLoadBgGfxUsingHeap
ldr r0, =gBattleTextboxTilemap
mov r8, r0
ldr r4, =gDecompressionBuffer
@@ -7633,7 +7633,7 @@ sub_807B170: @ 807B170
mov r1, r10
movs r2, 0
movs r3, 0
- bl copy_decompressed_tile_data_to_vram_autofree
+ bl DecompressAndLoadBgGfxUsingHeap
mov r0, r8
adds r1, r4, 0
bl LZDecompressWram
diff --git a/build_tools.sh b/build_tools.sh
index 824ed025b..ad8adf132 100755
--- a/build_tools.sh
+++ b/build_tools.sh
@@ -6,3 +6,4 @@ make -C tools/bin2c CXX=${1:-g++}
make -C tools/rsfont CXX=${1:-g++}
make -C tools/aif2pcm CXX=${1:-g++}
make -C tools/ramscrgen CXX=${1:-g++}
+make -C tools/gbafix CXX=${1:-g++}
diff --git a/data/battle_frontier_1.s b/data/battle_frontier_1.s
index e2eb99505..4074c360c 100644
--- a/data/battle_frontier_1.s
+++ b/data/battle_frontier_1.s
@@ -5,1442 +5,6 @@
.section .rodata
-gUnknown_0860B358:: @ 860B358
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00
- .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01
-
-gUnknown_0860C988:: @ 860C988
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00
-
-gUnknown_0860CBF1:: @ 860CBF1
- .byte 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x07, 0x01, 0x08, 0x10, 0x00, 0x02, 0x09, 0x10, 0x00, 0x02, 0x09, 0x10, 0x00, 0x02, 0x09, 0x10
- .byte 0x00, 0x02, 0x09, 0x10, 0x00, 0x02, 0x09, 0x10, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x01, 0x03, 0x0a, 0x11, 0x02, 0x04, 0x0b, 0x11
- .byte 0x02, 0x04, 0x0b, 0x11, 0x02, 0x04, 0x0b, 0x11, 0x02, 0x04, 0x0b, 0x11, 0x02, 0x04, 0x0b, 0x11, 0x03, 0x05, 0x0c, 0x12, 0x03, 0x05, 0x0c, 0x12, 0x03, 0x05, 0x0c, 0x12, 0x03, 0x05, 0x0c, 0x12
- .byte 0x03, 0x05, 0x0c, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x04, 0x06, 0x0d, 0x12, 0x05, 0x07, 0x0e, 0x13, 0x05, 0x07, 0x0e, 0x13
- .byte 0x05, 0x07, 0x0e, 0x13, 0x05, 0x07, 0x0e, 0x13, 0x05, 0x07, 0x0e, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13, 0x06, 0x00, 0x0f, 0x13
- .byte 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x1f, 0x09, 0x14, 0x1f, 0x08, 0x0a, 0x14, 0x01, 0x08, 0x0a, 0x14, 0x01, 0x08, 0x0a, 0x14, 0x01
- .byte 0x08, 0x0a, 0x14, 0x01, 0x08, 0x0a, 0x14, 0x01, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x09, 0x0b, 0x15, 0x02, 0x0a, 0x0c, 0x15, 0x03
- .byte 0x0a, 0x0c, 0x15, 0x03, 0x0a, 0x0c, 0x15, 0x03, 0x0a, 0x0c, 0x15, 0x03, 0x0a, 0x0c, 0x15, 0x03, 0x0b, 0x0d, 0x16, 0x04, 0x0b, 0x0d, 0x16, 0x04, 0x0b, 0x0d, 0x16, 0x04, 0x0b, 0x0d, 0x16, 0x04
- .byte 0x0b, 0x0d, 0x16, 0x04, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0c, 0x0e, 0x16, 0x05, 0x0d, 0x0f, 0x17, 0x06, 0x0d, 0x0f, 0x17, 0x06
- .byte 0x0d, 0x0f, 0x17, 0x06, 0x0d, 0x0f, 0x17, 0x06, 0x0d, 0x0f, 0x17, 0x06, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07, 0x0e, 0x1f, 0x17, 0x07
- .byte 0x13, 0x11, 0x00, 0x14, 0x13, 0x11, 0x00, 0x18, 0x13, 0x11, 0x00, 0x18, 0x13, 0x11, 0x00, 0x18, 0x13, 0x11, 0x00, 0x18, 0x10, 0x12, 0x02, 0x15, 0x10, 0x12, 0x02, 0x18, 0x10, 0x12, 0x02, 0x18
- .byte 0x10, 0x12, 0x02, 0x18, 0x10, 0x12, 0x02, 0x18, 0x11, 0x13, 0x04, 0x16, 0x11, 0x13, 0x04, 0x19, 0x11, 0x13, 0x04, 0x19, 0x11, 0x13, 0x04, 0x19, 0x11, 0x13, 0x04, 0x19, 0x12, 0x10, 0x06, 0x17
- .byte 0x12, 0x10, 0x06, 0x19, 0x12, 0x10, 0x06, 0x19, 0x12, 0x10, 0x06, 0x19, 0x12, 0x10, 0x06, 0x19, 0x17, 0x15, 0x10, 0x08, 0x17, 0x15, 0x1a, 0x08, 0x17, 0x15, 0x1a, 0x08, 0x17, 0x15, 0x1a, 0x08
- .byte 0x17, 0x15, 0x1a, 0x08, 0x14, 0x16, 0x11, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x14, 0x16, 0x1a, 0x0a, 0x15, 0x17, 0x12, 0x0c, 0x15, 0x17, 0x1b, 0x0c
- .byte 0x15, 0x17, 0x1b, 0x0c, 0x15, 0x17, 0x1b, 0x0c, 0x15, 0x17, 0x1b, 0x0c, 0x16, 0x14, 0x13, 0x0e, 0x16, 0x14, 0x1b, 0x0e, 0x16, 0x14, 0x1b, 0x0e, 0x16, 0x14, 0x1b, 0x0e, 0x16, 0x14, 0x1b, 0x0e
- .byte 0xff, 0xff, 0xff, 0xff, 0x19, 0x19, 0x10, 0x1a, 0x19, 0x19, 0x10, 0x1c, 0x19, 0x19, 0x10, 0x1c, 0x19, 0x19, 0x10, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x18, 0x18, 0x12, 0x1b, 0x18, 0x18, 0x12, 0x1c
- .byte 0x18, 0x18, 0x12, 0x1c, 0x18, 0x18, 0x12, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1b, 0x1b, 0x18, 0x14, 0x1b, 0x1b, 0x1d, 0x14, 0x1b, 0x1b, 0x1d, 0x14, 0x1b, 0x1b, 0x1d, 0x14, 0xff, 0xff, 0xff, 0xff
- .byte 0x1a, 0x1a, 0x19, 0x16, 0x1a, 0x1a, 0x1d, 0x16, 0x1a, 0x1a, 0x1d, 0x16, 0x1a, 0x1a, 0x1d, 0x16, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0x1d, 0xff, 0xff, 0x18, 0x1e
- .byte 0xff, 0xff, 0x18, 0x1e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1a, 0xff, 0xff, 0x1e, 0x1a, 0xff, 0xff, 0x1e, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
- .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1d, 0xff, 0xff, 0x1c, 0x1d, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00, 0x0f, 0x08, 0x08, 0x00
- .byte 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_0860CE74:: @ 860CE74
- .4byte 0x000001c0, 0x000011d5, 0x000021ea, 0x000021fb
-
- .align 2
-gUnknown_0860CE84:: @ 860CE84
- .4byte 0x00000740, 0x00000785, 0x000017ca, 0x0000107b
-
- .align 2
-gUnknown_0860CE94:: @ 860CE94
- window_template 0x00, 0x00, 0x03, 0x08, 0x10, 0x0f, 0x0010
- window_template 0x00, 0x16, 0x03, 0x08, 0x10, 0x0f, 0x0090
- window_template 0x00, 0x08, 0x01, 0x0e, 0x02, 0x0f, 0x0110
- null_window_template
-
- .align 2
-gUnknown_0860CEB4:: @ 860CEB4
- window_template 0x00, 0x02, 0x02, 0x1a, 0x02, 0x0f, 0x0001
- window_template 0x00, 0x10, 0x05, 0x08, 0x02, 0x0f, 0x0035
- window_template 0x00, 0x13, 0x07, 0x09, 0x03, 0x0f, 0x0045
- window_template 0x00, 0x10, 0x0a, 0x08, 0x02, 0x0f, 0x0060
- window_template 0x00, 0x02, 0x0c, 0x1a, 0x07, 0x0f, 0x0070
- window_template 0x00, 0x05, 0x02, 0x17, 0x02, 0x0f, 0x0126
- window_template 0x00, 0x02, 0x05, 0x08, 0x02, 0x0f, 0x0154
- window_template 0x00, 0x14, 0x05, 0x08, 0x02, 0x0f, 0x0164
- window_template 0x00, 0x02, 0x10, 0x1a, 0x02, 0x0f, 0x0174
- window_template 0x01, 0x02, 0x02, 0x1a, 0x02, 0x0f, 0x0001
- window_template 0x01, 0x10, 0x05, 0x08, 0x02, 0x0f, 0x0035
- window_template 0x01, 0x13, 0x07, 0x09, 0x03, 0x0f, 0x0045
- window_template 0x01, 0x10, 0x0a, 0x08, 0x02, 0x0f, 0x0060
- window_template 0x01, 0x02, 0x0c, 0x1a, 0x07, 0x0f, 0x0070
- window_template 0x01, 0x05, 0x02, 0x17, 0x02, 0x0f, 0x0126
- window_template 0x01, 0x02, 0x05, 0x08, 0x02, 0x0f, 0x0154
- window_template 0x01, 0x14, 0x05, 0x08, 0x02, 0x0f, 0x0164
- window_template 0x01, 0x02, 0x10, 0x1a, 0x02, 0x0f, 0x0174
-
- .align 2
-gUnknown_0860CF44:: @ 860CF44
- .4byte 0x0400000e, 0xa2600001, 0x00000001
-
- .align 2
-gUnknown_0860CF50:: @ 860CF50
- obj_tiles gBattleFrontierGfx_DomeOptions, 0x0600, 0x0000
- null_obj_tiles
-
- .align 2
-gUnknown_0860CF60:: @ 860CF60
- obj_pal gUnknown_08D85444, 0x0000
- null_obj_pal
-
- .align 2
-gUnknown_0860CF70:: @ 860CF70
- .byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_0860CF78:: @ 860CF78
- .byte 0x00, 0x40, 0x00, 0x80, 0x00, 0x10, 0x00, 0x00
-
- .align 2
-gUnknown_0860CF80:: @ 860CF80
- .byte 0x00, 0x40, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00
-
- .align 2
-gUnknown_0860CF88:: @ 860CF88
- .byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00
-
- .align 2
-gUnknown_0860CF90:: @ 860CF90
- .2byte 0x0014, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_0860CF98:: @ 860CF98
- .2byte 0x0018, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_0860CFA0:: @ 860CFA0
- .4byte gUnknown_0860CF90
- .4byte gUnknown_0860CF98
-
- .align 2
-gUnknown_0860CFA8:: @ 860CFA8
- spr_template 0x0000, 0xffff, gUnknown_0860CF70, gUnknown_0860CFA0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_0860CFC0:: @ 860CFC0
- .2byte 0x0008, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_0860CFC8:: @ 860CFC8
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_0860CFD0:: @ 860CFD0
- .4byte gUnknown_0860CFC0
- .4byte gUnknown_0860CFC8
-
- .align 2
-gUnknown_0860CFD8:: @ 860CFD8
- spr_template 0x0000, 0xffff, gUnknown_0860CF78, gUnknown_0860CFD0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_0860CFF0:: @ 860CFF0
- .2byte 0x0028, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_0860CFF8:: @ 860CFF8
- .2byte 0x0020, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_0860D000:: @ 860D000
- .4byte gUnknown_0860CFF0
- .4byte gUnknown_0860CFF8
-
- .align 2
-gUnknown_0860D008:: @ 860D008
- spr_template 0x0000, 0xffff, gUnknown_0860CF78, gUnknown_0860D000, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_0860D020:: @ 860D020
- .2byte 0x0012, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_0860D028:: @ 860D028
- .2byte 0x0012, 0x0081, 0xffff, 0x0000
-
- .align 2
-gUnknown_0860D030:: @ 860D030
- .2byte 0x0010, 0x0041, 0xffff, 0x0000
-
- .align 2
-gUnknown_0860D038:: @ 860D038
- .2byte 0x0010, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_0860D040:: @ 860D040
- .4byte gUnknown_0860D020
- .4byte gUnknown_0860D028
-
- .align 2
-gUnknown_0860D048:: @ 860D048
- .4byte gUnknown_0860D030
- .4byte gUnknown_0860D038
-
- .align 2
-gUnknown_0860D050:: @ 860D050
- spr_template 0x0000, 0xffff, gUnknown_0860CF88, gUnknown_0860D048, NULL, gDummySpriteAffineAnimTable, sub_8190B40
-
- .align 2
-gUnknown_0860D068:: @ 860D068
- spr_template 0x0000, 0xffff, gUnknown_0860CF80, gUnknown_0860D040, NULL, gDummySpriteAffineAnimTable, sub_8190C6C
-
- .align 2
-gUnknown_0860D080:: @ 860D080
- .byte 0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01
-
- .align 2
-gUnknown_0860D090:: @ 860D090
- .4byte sub_818E9CC
- .4byte sub_818EA84
- .4byte sub_818ED28
- .4byte sub_818F9B0
- .4byte sub_818F9E0
- .4byte sub_818FA20
- .4byte sub_81903B8
- .4byte sub_81938A4
- .4byte sub_81938E0
- .4byte sub_8190298
- .4byte sub_81902E4
- .4byte sub_8193D40
- .4byte sub_8193D7C
- .4byte sub_81902F8
- .4byte sub_819033C
- .4byte sub_8194D48
- .4byte sub_8194D68
- .4byte sub_8194E44
- .4byte sub_8194EB4
- .4byte sub_8194EC0
- .4byte sub_8194EF8
- .4byte sub_8194F58
- .4byte sub_818F02C
-
- .align 2
-gUnknown_0860D0EC:: @ 860D0EC
- .4byte 0x00000004, 0x00000008, 0x00100000, 0x00200000
-
- .align 2
-gUnknown_0860D0FC:: @ 860D0FC
- .4byte 0xfffffffb, 0xfffffff7, 0xffefffff, 0xffdfffff
-
- .align 2
-gUnknown_0860D10C:: @ 860D10C
- .byte 0x08, 0x00, 0x04, 0x08, 0x09, 0x0c, 0x08, 0x00, 0x0a, 0x08, 0x0c, 0x00, 0x0b, 0x04, 0x00, 0x08, 0x0c, 0x00, 0x04, 0x08, 0x0d, 0x0c, 0x08, 0x00, 0x0e, 0x08, 0x0c, 0x00, 0x0f, 0x04, 0x00, 0x08
- .byte 0x00, 0x00, 0x04, 0x08, 0x01, 0x0c, 0x08, 0x00, 0x02, 0x08, 0x0c, 0x00, 0x03, 0x04, 0x00, 0x08, 0x04, 0x00, 0x04, 0x08, 0x05, 0x0c, 0x08, 0x00, 0x06, 0x08, 0x0c, 0x00, 0x07, 0x04, 0x00, 0x08
-
- .align 2
-gUnknown_0860D14C:: @ 860D14C
- .byte 0x00, 0x08, 0x04, 0x0c, 0x07, 0x0f, 0x03, 0x0b, 0x02, 0x0a, 0x06, 0x0e, 0x05, 0x0d, 0x01, 0x09
-
- .align 2
-gUnknown_0860D15C:: @ 860D15C
- .byte 0x00, 0x08, 0x0c, 0x0e, 0x00, 0x08, 0x0c, 0x0e, 0x01, 0x08, 0x0c, 0x0e, 0x01, 0x08, 0x0c, 0x0e, 0x02, 0x09, 0x0c, 0x0e, 0x02, 0x09, 0x0c, 0x0e, 0x03, 0x09, 0x0c, 0x0e, 0x03, 0x09, 0x0c, 0x0e
- .byte 0x04, 0x0a, 0x0d, 0x0e, 0x04, 0x0a, 0x0d, 0x0e, 0x05, 0x0a, 0x0d, 0x0e, 0x05, 0x0a, 0x0d, 0x0e, 0x06, 0x0b, 0x0d, 0x0e, 0x06, 0x0b, 0x0d, 0x0e, 0x07, 0x0b, 0x0d, 0x0e, 0x07, 0x0b, 0x0d, 0x0e
-
- .align 2
-gUnknown_0860D19C:: @ 860D19C
- .byte 0x17, 0x1b, 0x1d, 0x1e
-
- .align 2
-gUnknown_0860D1A0:: @ 860D1A0
- .byte 0x10, 0x18, 0x1c, 0x1e, 0x11, 0x18, 0x1c, 0x1e, 0x12, 0x19, 0x1c, 0x1e, 0x13, 0x19, 0x1c, 0x1e, 0x14, 0x1a, 0x1d, 0x1e, 0x15, 0x1a, 0x1d, 0x1e, 0x16, 0x1b, 0x1d, 0x1e, 0x17, 0x1b, 0x1d, 0x1e
-
- .align 2
-gUnknown_0860D1C0:: @ 860D1C0
- .byte 0x00, 0x0f, 0x08, 0x07, 0x03, 0x0c, 0x0b, 0x04, 0x01, 0x0e, 0x09, 0x06, 0x02, 0x0d, 0x0a, 0x05
-
- .align 2
-gBattleDomePotentialPointers:: @ 860D1D0
- .4byte gBattleDomeOpponentPotential1
- .4byte gBattleDomeOpponentPotential2
- .4byte gBattleDomeOpponentPotential3
- .4byte gBattleDomeOpponentPotential4
- .4byte gBattleDomeOpponentPotential5
- .4byte gBattleDomeOpponentPotential6
- .4byte gBattleDomeOpponentPotential7
- .4byte gBattleDomeOpponentPotential8
- .4byte gBattleDomeOpponentPotential9
- .4byte gBattleDomeOpponentPotential10
- .4byte gBattleDomeOpponentPotential11
- .4byte gBattleDomeOpponentPotential12
- .4byte gBattleDomeOpponentPotential13
- .4byte gBattleDomeOpponentPotential14
- .4byte gBattleDomeOpponentPotential15
- .4byte gBattleDomeOpponentPotential16
- .4byte gBattleDomeOpponentPotential17
-
- .align 2
-gBattleDomeOpponentStylePointers:: @ 860D214
- .4byte gBattleDomeOpponentStyle1
- .4byte gBattleDomeOpponentStyle2
- .4byte gBattleDomeOpponentStyle3
- .4byte gBattleDomeOpponentStyle4
- .4byte gBattleDomeOpponentStyle5
- .4byte gBattleDomeOpponentStyle6
- .4byte gBattleDomeOpponentStyle7
- .4byte gBattleDomeOpponentStyle8
- .4byte gBattleDomeOpponentStyle9
- .4byte gBattleDomeOpponentStyle10
- .4byte gBattleDomeOpponentStyle11
- .4byte gBattleDomeOpponentStyle12
- .4byte gBattleDomeOpponentStyle13
- .4byte gBattleDomeOpponentStyle14
- .4byte gBattleDomeOpponentStyle15
- .4byte gBattleDomeOpponentStyle16
- .4byte gBattleDomeOpponentStyle17
- .4byte gBattleDomeOpponentStyle18
- .4byte gBattleDomeOpponentStyle19
- .4byte gBattleDomeOpponentStyle20
- .4byte gBattleDomeOpponentStyle21
- .4byte gBattleDomeOpponentStyle22
- .4byte gBattleDomeOpponentStyle23
- .4byte gBattleDomeOpponentStyle24
- .4byte gBattleDomeOpponentStyle25
- .4byte gBattleDomeOpponentStyle26
- .4byte gBattleDomeOpponentStyle27
- .4byte gBattleDomeOpponentStyle28
- .4byte gBattleDomeOpponentStyleUnused1
- .4byte gBattleDomeOpponentStyleUnused2
- .4byte gBattleDomeOpponentStyleUnused3
- .4byte gBattleDomeOpponentStyleUnused4
-
- .align 2
-gBattleDomeOpponentStatsPointers:: @ 860D294
- .4byte gBattleDomeOpponentStats1
- .4byte gBattleDomeOpponentStats2
- .4byte gBattleDomeOpponentStats3
- .4byte gBattleDomeOpponentStats4
- .4byte gBattleDomeOpponentStats5
- .4byte gBattleDomeOpponentStats6
- .4byte gBattleDomeOpponentStats7
- .4byte gBattleDomeOpponentStats8
- .4byte gBattleDomeOpponentStats9
- .4byte gBattleDomeOpponentStats10
- .4byte gBattleDomeOpponentStats11
- .4byte gBattleDomeOpponentStats12
- .4byte gBattleDomeOpponentStats13
- .4byte gBattleDomeOpponentStats14
- .4byte gBattleDomeOpponentStats15
- .4byte gBattleDomeOpponentStats16
- .4byte gBattleDomeOpponentStats17
- .4byte gBattleDomeOpponentStats18
- .4byte gBattleDomeOpponentStats19
- .4byte gBattleDomeOpponentStats20
- .4byte gBattleDomeOpponentStats21
- .4byte gBattleDomeOpponentStats22
- .4byte gBattleDomeOpponentStats23
- .4byte gBattleDomeOpponentStats24
- .4byte gBattleDomeOpponentStats25
- .4byte gBattleDomeOpponentStats26
- .4byte gBattleDomeOpponentStats27
- .4byte gBattleDomeOpponentStats28
- .4byte gBattleDomeOpponentStats29
- .4byte gBattleDomeOpponentStats30
- .4byte gBattleDomeOpponentStats31
- .4byte gBattleDomeOpponentStats32
- .4byte gBattleDomeOpponentStats33
- .4byte gBattleDomeOpponentStats34
- .4byte gBattleDomeOpponentStats35
- .4byte gBattleDomeOpponentStats36
- .4byte gBattleDomeOpponentStats37
- .4byte gBattleDomeOpponentStats38
- .4byte gBattleDomeOpponentStats39
- .4byte gBattleDomeOpponentStats40
- .4byte gBattleDomeOpponentStats41
- .4byte gBattleDomeOpponentStats42
- .4byte gBattleDomeOpponentStats43
-
-gUnknown_0860D340:: @ 860D340
- .byte 0x68, 0x88, 0x68
-
-gUnknown_0860D343:: @ 860D343
- .byte 0x26, 0x3e, 0x4e
-
-gUnknown_0860D346:: @ 860D346
- .byte 0x00, 0x04, 0x00
-
-gUnknown_0860D349:: @ 860D349
- .byte 0x00, 0x05, 0x09, 0x0c, 0x0e, 0x00, 0x00
-
- .align 2
-gBattleDomeMatchNumberPointers:: @ 860D350
- .4byte gBattleDomeMatchNumber1
- .4byte gBattleDomeMatchNumber2
- .4byte gBattleDomeMatchNumber3
- .4byte gBattleDomeMatchNumber4
- .4byte gBattleDomeMatchNumber5
- .4byte gBattleDomeMatchNumber6
- .4byte gBattleDomeMatchNumber7
- .4byte gBattleDomeMatchNumber8
- .4byte gBattleDomeMatchNumber9
- .4byte gBattleDomeMatchNumber10
- .4byte gBattleDomeMatchNumber11
- .4byte gBattleDomeMatchNumber12
- .4byte gBattleDomeMatchNumber13
- .4byte gBattleDomeMatchNumber14
- .4byte gBattleDomeMatchNumber15
-
- .align 2
-gBattleDomeWinStringsPointers:: @ 860D38C
- .4byte gBattleDomeWinStrings1
- .4byte gBattleDomeWinStrings2
- .4byte gBattleDomeWinStrings3
- .4byte gBattleDomeWinStrings4
- .4byte gBattleDomeWinStrings5
- .4byte gBattleDomeWinStrings6
- .4byte gBattleDomeWinStrings7
-
-gUnknown_0860D3A8:: @ 860D3A8
- .byte 0x60, 0x60, 0x60
-
-gUnknown_0860D3AB:: @ 860D3AB
- .byte 0x38, 0x50, 0x68
-
-gUnknown_0860D3AE:: @ 860D3AE
- .byte 0x90, 0x90, 0x90
-
-gUnknown_0860D3B1:: @ 860D3B1
- .byte 0x38, 0x50, 0x68
-
-gUnknown_0860D3B4:: @ 860D3B4
- .byte 0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01
-
-gUnknown_0860D3C4:: @ 860D3C4
- .byte 0x00, 0x02
-
-gUnknown_0860D3C6:: @ 860D3C6
- .byte 0x00, 0x02, 0x02, 0x00, 0x04, 0x02, 0x00, 0x06, 0x02, 0x00, 0x08, 0x02, 0x00, 0x0a, 0x02, 0x00, 0x0c, 0x02, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x04, 0x01, 0x04, 0x04, 0x01, 0x08, 0x04, 0x01, 0x0c
- .byte 0x04, 0x01, 0x00, 0x08, 0x02, 0x08, 0x08, 0x02, 0x00, 0x10, 0x03
-
-gUnknown_0860D3F1:: @ 860D3F1
- .byte 0x00
-
-gUnknown_0860D3F2:: @ 860D3F2
- .byte 0x00, 0x01, 0x70, 0x01, 0x00, 0x00, 0x70, 0x00, 0x30, 0x01, 0x40, 0x01, 0x30, 0x00, 0x40, 0x00, 0x10, 0x01, 0x60, 0x01, 0x10, 0x00, 0x60, 0x00, 0x20, 0x01, 0x50, 0x01, 0x20, 0x00, 0x50
-
-gUnknown_0860D411:: @ 860D411 struct - byte 1 and 2 loaded seperately, 2 added to move 1 addr across
- .byte 0x44, 0x21, 0x44, 0x31, 0x44, 0x41, 0x44, 0x51, 0x44, 0x61, 0x44, 0x71, 0x44, 0x81, 0x44, 0x91, 0xac, 0x21, 0xac, 0x31, 0xac, 0x41, 0xac, 0x51, 0xac, 0x61, 0xac, 0x71, 0xac, 0x81, 0xac, 0x91
- .byte 0x57, 0x29, 0x57, 0x49, 0x57, 0x69, 0x57, 0x89, 0x99, 0x29, 0x99, 0x49, 0x99, 0x69, 0x99, 0x89, 0x5f, 0x39, 0x5f, 0x79, 0x91, 0x39, 0x91, 0x79, 0x67, 0x59, 0x89, 0x59, 0x78, 0x59, 0x00
-
- .align 2
-gUnknown_0860d450:: @ 860D450
- .4byte 0x60210409
- .4byte 0x6023040a
- .4byte 0x6047050a
- .4byte 0x6043050b
-
- .align 2
-gUnknown_0860d460:: @ 860D460
- .4byte 0x60210409
- .4byte 0x6023040a
- .4byte 0x6047050a
- .4byte 0x6023050b
- .4byte 0x6027060b
- .4byte 0x6047070b
- .4byte 0x6043070c
-
- .align 2
-gUnknown_0860d47c:: @ 860D47C
- .4byte 0x60210409
- .4byte 0x6023040a
- .4byte 0x6047050a
- .4byte 0x6023050b
- .4byte 0x6027060b
- .4byte 0x6047070b
- .4byte 0x6023070c
- .4byte 0x6027080c
- .4byte 0x6027090c
- .4byte 0x60270a0c
- .4byte 0x603b0b0c
-
- .align 2
-gUnknown_0860d4a8:: @ 860D4A8
- .4byte 0x60210409
- .4byte 0x6023040a
- .4byte 0x6047050a
- .4byte 0x6023050b
- .4byte 0x6027060b
- .4byte 0x6047070b
- .4byte 0x6023070c
- .4byte 0x6027080c
- .4byte 0x6027090c
- .4byte 0x60270a0c
- .4byte 0x603b0b0c
- .4byte 0x602c0b0d
- .4byte 0x602d0b0e
-
- .align 2
-gUnknown_0860d4dc:: @ 860D4DC
- .4byte 0x60210609
- .4byte 0x6021060a
- .4byte 0x6027050a
- .4byte 0x6043050b
-
- .align 2
-gUnknown_0860d4ec:: @ 860D4EC
- .4byte 0x60210609
- .4byte 0x6021060a
- .4byte 0x6027050a
- .4byte 0x6023050b
- .4byte 0x6027060b
- .4byte 0x6047070b
- .4byte 0x6043070c
-
- .align 2
-gUnknown_0860d508:: @ 860D508
- .4byte 0x60210609
- .4byte 0x6021060a
- .4byte 0x6027050a
- .4byte 0x6023050b
- .4byte 0x6027060b
- .4byte 0x6047070b
- .4byte 0x6023070c
- .4byte 0x6027080c
- .4byte 0x6027090c
- .4byte 0x60270a0c
- .4byte 0x603b0b0c
-
- .align 2
-gUnknown_0860d534:: @ 860D534
- .4byte 0x60210609
- .4byte 0x6021060a
- .4byte 0x6027050a
- .4byte 0x6023050b
- .4byte 0x6027060b
- .4byte 0x6047070b
- .4byte 0x6023070c
- .4byte 0x6027080c
- .4byte 0x6027090c
- .4byte 0x60270a0c
- .4byte 0x603b0b0c
- .4byte 0x602c0b0d
- .4byte 0x602d0b0e
-
- .align 2
-gUnknown_0860d568:: @ 860D568
- .4byte 0x60210809
- .4byte 0x6023080a
- .4byte 0x6047090a
- .4byte 0x6021090b
-
- .align 2
-gUnknown_0860d578:: @ 860D578
- .4byte 0x60210809
- .4byte 0x6023080a
- .4byte 0x6047090a
- .4byte 0x6021090b
- .4byte 0x6027080b
- .4byte 0x6027070b
- .4byte 0x6043070c
-
- .align 2
-gUnknown_0860d594:: @ 860D594
- .4byte 0x60210809
- .4byte 0x6023080a
- .4byte 0x6047090a
- .4byte 0x6021090b
- .4byte 0x6027080b
- .4byte 0x6027070b
- .4byte 0x6023070c
- .4byte 0x6027080c
- .4byte 0x6027090c
- .4byte 0x60270a0c
- .4byte 0x603b0b0c
-
- .align 2
-gUnknown_0860d5c0:: @ 860D5C0
- .4byte 0x60210809
- .4byte 0x6023080a
- .4byte 0x6047090a
- .4byte 0x6021090b
- .4byte 0x6027080b
- .4byte 0x6027070b
- .4byte 0x6023070c
- .4byte 0x6027080c
- .4byte 0x6027090c
- .4byte 0x60270a0c
- .4byte 0x603b0b0c
- .4byte 0x602c0b0d
- .4byte 0x602d0b0e
-
- .align 2
-gUnknown_0860d5f4:: @ 860D5F4
- .4byte 0x60210a09
- .4byte 0x60210a0a
- .4byte 0x6027090a
- .4byte 0x6021090b
-
- .align 2
-gUnknown_0860d604:: @ 860D604
- .4byte 0x60210a09
- .4byte 0x60210a0a
- .4byte 0x6027090a
- .4byte 0x6021090b
- .4byte 0x6027080b
- .4byte 0x6027070b
- .4byte 0x6043070c
-
- .align 2
-gUnknown_0860d620:: @ 860D620
- .4byte 0x60210a09
- .4byte 0x60210a0a
- .4byte 0x6027090a
- .4byte 0x6021090b
- .4byte 0x6027080b
- .4byte 0x6027070b
- .4byte 0x6023070c
- .4byte 0x6027080c
- .4byte 0x6027090c
- .4byte 0x60270a0c
- .4byte 0x603b0b0c
-
- .align 2
-gUnknown_0860d64c:: @ 860D64C
- .4byte 0x60210a09
- .4byte 0x60210a0a
- .4byte 0x6027090a
- .4byte 0x6021090b
- .4byte 0x6027080b
- .4byte 0x6027070b
- .4byte 0x6023070c
- .4byte 0x6027080c
- .4byte 0x6027090c
- .4byte 0x60270a0c
- .4byte 0x603b0b0c
- .4byte 0x602c0b0d
- .4byte 0x602d0b0e
-
- .align 2
-gUnknown_0860d680:: @ 860D680
- .4byte 0x60210c09
- .4byte 0x60230c0a
- .4byte 0x60470d0a
- .4byte 0x60430d0b
-
- .align 2
-gUnknown_0860d690:: @ 860D690
- .4byte 0x60210c09
- .4byte 0x60230c0a
- .4byte 0x60470d0a
- .4byte 0x60230d0b
- .4byte 0x60270e0b
- .4byte 0x60470f0b
- .4byte 0x60210f0c
-
- .align 2
-gUnknown_0860d6ac:: @ 860D6AC
- .4byte 0x60210c09
- .4byte 0x60230c0a
- .4byte 0x60470d0a
- .4byte 0x60230d0b
- .4byte 0x60270e0b
- .4byte 0x60470f0b
- .4byte 0x60210f0c
- .4byte 0x60330e0c
- .4byte 0x60320d0c
- .4byte 0x60310c0c
- .4byte 0x60300b0c
-
- .align 2
-gUnknown_0860d6d8:: @ 860D6D8
- .4byte 0x60210c09
- .4byte 0x60230c0a
- .4byte 0x60470d0a
- .4byte 0x60230d0b
- .4byte 0x60270e0b
- .4byte 0x60470f0b
- .4byte 0x60210f0c
- .4byte 0x60330e0c
- .4byte 0x60320d0c
- .4byte 0x60310c0c
- .4byte 0x60300b0c
- .4byte 0x602c0b0d
- .4byte 0x602d0b0e
-
- .align 2
-gUnknown_0860d70c:: @ 860D70C
- .4byte 0x60210e09
- .4byte 0x60210e0a
- .4byte 0x60270d0a
- .4byte 0x60430d0b
-
- .align 2
-gUnknown_0860d71c:: @ 860D71C
- .4byte 0x60210e09
- .4byte 0x60210e0a
- .4byte 0x60270d0a
- .4byte 0x60230d0b
- .4byte 0x60270e0b
- .4byte 0x60470f0b
- .4byte 0x60210f0c
-
- .align 2
-gUnknown_0860d738:: @ 860D738
- .4byte 0x60210e09
- .4byte 0x60210e0a
- .4byte 0x60270d0a
- .4byte 0x60230d0b
- .4byte 0x60270e0b
- .4byte 0x60470f0b
- .4byte 0x60210f0c
- .4byte 0x60330e0c
- .4byte 0x60320d0c
- .4byte 0x60310c0c
- .4byte 0x60300b0c
-
- .align 2
-gUnknown_0860d764:: @ 860D764
- .4byte 0x60210e09
- .4byte 0x60210e0a
- .4byte 0x60270d0a
- .4byte 0x60230d0b
- .4byte 0x60270e0b
- .4byte 0x60470f0b
- .4byte 0x60210f0c
- .4byte 0x60330e0c
- .4byte 0x60320d0c
- .4byte 0x60310c0c
- .4byte 0x60300b0c
- .4byte 0x602c0b0d
- .4byte 0x602d0b0e
-
- .align 2
-gUnknown_0860d798:: @ 860D798
- .4byte 0x60211009
- .4byte 0x6023100a
- .4byte 0x6047110a
- .4byte 0x6021110b
-
- .align 2
-gUnknown_0860d7a8:: @ 860D7A8
- .4byte 0x60211009
- .4byte 0x6023100a
- .4byte 0x6047110a
- .4byte 0x6021110b
- .4byte 0x6027100b
- .4byte 0x60270f0b
- .4byte 0x60210f0c
-
- .align 2
-gUnknown_0860d7c4:: @ 860D7C4
- .4byte 0x60211009
- .4byte 0x6023100a
- .4byte 0x6047110a
- .4byte 0x6021110b
- .4byte 0x6027100b
- .4byte 0x60270f0b
- .4byte 0x60210f0c
- .4byte 0x60330e0c
- .4byte 0x60320d0c
- .4byte 0x60310c0c
- .4byte 0x60300b0c
-
- .align 2
-gUnknown_0860d7f0:: @ 860D7F0
- .4byte 0x60211009
- .4byte 0x6023100a
- .4byte 0x6047110a
- .4byte 0x6021110b
- .4byte 0x6027100b
- .4byte 0x60270f0b
- .4byte 0x60210f0c
- .4byte 0x60330e0c
- .4byte 0x60320d0c
- .4byte 0x60310c0c
- .4byte 0x60300b0c
- .4byte 0x602c0b0d
- .4byte 0x602d0b0e
-
- .align 2
-gUnknown_0860d824:: @ 860D824
- .4byte 0x602b1209
- .4byte 0x602b120a
- .4byte 0x6027110a
- .4byte 0x6021110b
-
- .align 2
-gUnknown_0860d834:: @ 860D834
- .4byte 0x602b1209
- .4byte 0x602b120a
- .4byte 0x6027110a
- .4byte 0x6021110b
- .4byte 0x6027100b
- .4byte 0x60270f0b
- .4byte 0x60210f0c
-
- .align 2
-gUnknown_0860d850:: @ 860D850
- .4byte 0x602b1209
- .4byte 0x602b120a
- .4byte 0x6027110a
- .4byte 0x6021110b
- .4byte 0x6027100b
- .4byte 0x60270f0b
- .4byte 0x60210f0c
- .4byte 0x60330e0c
- .4byte 0x60320d0c
- .4byte 0x60310c0c
- .4byte 0x60300b0c
-
- .align 2
-gUnknown_0860d87c:: @ 860D87C
- .4byte 0x602b1209
- .4byte 0x602b120a
- .4byte 0x6027110a
- .4byte 0x6021110b
- .4byte 0x6027100b
- .4byte 0x60270f0b
- .4byte 0x60210f0c
- .4byte 0x60330e0c
- .4byte 0x60320d0c
- .4byte 0x60310c0c
- .4byte 0x60300b0c
- .4byte 0x602c0b0d
- .4byte 0x602d0b0e
-
- .align 2
-gUnknown_0860d8b0:: @ 860D8B0
- .4byte 0x60210414
- .4byte 0x60250413
- .4byte 0x60490513
- .4byte 0x60450512
-
- .align 2
-gUnknown_0860d8c0:: @ 860D8C0
- .4byte 0x60210414
- .4byte 0x60250413
- .4byte 0x60490513
- .4byte 0x60250512
- .4byte 0x60290612
- .4byte 0x60490712
- .4byte 0x60450711
-
- .align 2
-gUnknown_0860d8dc:: @ 860D8DC
- .4byte 0x60210414
- .4byte 0x60250413
- .4byte 0x60490513
- .4byte 0x60250512
- .4byte 0x60290612
- .4byte 0x60490712
- .4byte 0x60250711
- .4byte 0x60290811
- .4byte 0x60290911
- .4byte 0x60290a11
- .4byte 0x603c0b11
-
- .align 2
-gUnknown_0860d908:: @ 860D908
- .4byte 0x60210414
- .4byte 0x60250413
- .4byte 0x60490513
- .4byte 0x60250512
- .4byte 0x60290612
- .4byte 0x60490712
- .4byte 0x60250711
- .4byte 0x60290811
- .4byte 0x60290911
- .4byte 0x60290a11
- .4byte 0x603c0b11
- .4byte 0x602f0b10
- .4byte 0x602e0b0f
-
- .align 2
-gUnknown_0860d93c:: @ 860D93C
- .4byte 0x60210614
- .4byte 0x60210613
- .4byte 0x60290513
- .4byte 0x60450512
-
- .align 2
-gUnknown_0860d94c:: @ 860D94C
- .4byte 0x60210614
- .4byte 0x60210613
- .4byte 0x60290513
- .4byte 0x60250512
- .4byte 0x60290612
- .4byte 0x60490712
- .4byte 0x60450711
-
- .align 2
-gUnknown_0860d968:: @ 860D968
- .4byte 0x60210614
- .4byte 0x60210613
- .4byte 0x60290513
- .4byte 0x60250512
- .4byte 0x60290612
- .4byte 0x60490712
- .4byte 0x60250711
- .4byte 0x60290811
- .4byte 0x60290911
- .4byte 0x60290a11
- .4byte 0x603c0b11
-
- .align 2
-gUnknown_0860d994:: @ 860D994
- .4byte 0x60210614
- .4byte 0x60210613
- .4byte 0x60290513
- .4byte 0x60250512
- .4byte 0x60290612
- .4byte 0x60490712
- .4byte 0x60250711
- .4byte 0x60290811
- .4byte 0x60290911
- .4byte 0x60290a11
- .4byte 0x603c0b11
- .4byte 0x602f0b10
- .4byte 0x602e0b0f
-
- .align 2
-gUnknown_0860d9c8:: @ 860D9C8
- .4byte 0x60210814
- .4byte 0x60250813
- .4byte 0x60490913
- .4byte 0x60210912
-
- .align 2
-gUnknown_0860d9d8:: @ 860D9D8
- .4byte 0x60210814
- .4byte 0x60250813
- .4byte 0x60490913
- .4byte 0x60210912
- .4byte 0x60290812
- .4byte 0x60290712
- .4byte 0x60450711
-
- .align 2
-gUnknown_0860d9f4:: @ 860D9F4
- .4byte 0x60210814
- .4byte 0x60250813
- .4byte 0x60490913
- .4byte 0x60210912
- .4byte 0x60290812
- .4byte 0x60290712
- .4byte 0x60250711
- .4byte 0x60290811
- .4byte 0x60290911
- .4byte 0x60290a11
- .4byte 0x603c0b11
-
- .align 2
-gUnknown_0860da20:: @ 860DA20
- .4byte 0x60210814
- .4byte 0x60250813
- .4byte 0x60490913
- .4byte 0x60210912
- .4byte 0x60290812
- .4byte 0x60290712
- .4byte 0x60250711
- .4byte 0x60290811
- .4byte 0x60290911
- .4byte 0x60290a11
- .4byte 0x603c0b11
- .4byte 0x602f0b10
- .4byte 0x602e0b0f
-
- .align 2
-gUnknown_0860da54:: @ 860DA54
- .4byte 0x60210a14
- .4byte 0x60210a13
- .4byte 0x60290913
- .4byte 0x60210912
-
- .align 2
-gUnknown_0860da64:: @ 860DA64
- .4byte 0x60210a14
- .4byte 0x60210a13
- .4byte 0x60290913
- .4byte 0x60210912
- .4byte 0x60290812
- .4byte 0x60290712
- .4byte 0x60450711
-
- .align 2
-gUnknown_0860da80:: @ 860DA80
- .4byte 0x60210a14
- .4byte 0x60210a13
- .4byte 0x60290913
- .4byte 0x60210912
- .4byte 0x60290812
- .4byte 0x60290712
- .4byte 0x60250711
- .4byte 0x60290811
- .4byte 0x60290911
- .4byte 0x60290a11
- .4byte 0x603c0b11
-
- .align 2
-gUnknown_0860daac:: @ 860DAAC
- .4byte 0x60210a14
- .4byte 0x60210a13
- .4byte 0x60290913
- .4byte 0x60210912
- .4byte 0x60290812
- .4byte 0x60290712
- .4byte 0x60250711
- .4byte 0x60290811
- .4byte 0x60290911
- .4byte 0x60290a11
- .4byte 0x603c0b11
- .4byte 0x602f0b10
- .4byte 0x602e0b0f
-
- .align 2
-gUnknown_0860dae0:: @ 860DAE0
- .4byte 0x60210c14
- .4byte 0x60250c13
- .4byte 0x60490d13
- .4byte 0x60450d12
-
- .align 2
-gUnknown_0860daf0:: @ 860DAF0
- .4byte 0x60210c14
- .4byte 0x60250c13
- .4byte 0x60490d13
- .4byte 0x60250d12
- .4byte 0x60290e12
- .4byte 0x60490f12
- .4byte 0x60210f11
-
- .align 2
-gUnknown_0860db0c:: @ 860DB0C
- .4byte 0x60210c14
- .4byte 0x60250c13
- .4byte 0x60490d13
- .4byte 0x60250d12
- .4byte 0x60290e12
- .4byte 0x60490f12
- .4byte 0x60210f11
- .4byte 0x60380e11
- .4byte 0x60370d11
- .4byte 0x60360c11
- .4byte 0x60350b11
-
- .align 2
-gUnknown_0860db38:: @ 860DB38
- .4byte 0x60210c14
- .4byte 0x60250c13
- .4byte 0x60490d13
- .4byte 0x60250d12
- .4byte 0x60290e12
- .4byte 0x60490f12
- .4byte 0x60210f11
- .4byte 0x60380e11
- .4byte 0x60370d11
- .4byte 0x60360c11
- .4byte 0x60350b11
- .4byte 0x602f0b10
- .4byte 0x602e0b0f
-
- .align 2
-gUnknown_0860db6c:: @ 860DB6C
- .4byte 0x60210e14
- .4byte 0x60210e13
- .4byte 0x60290d13
- .4byte 0x60450d12
-
- .align 2
-gUnknown_0860db7c:: @ 860DB7C
- .4byte 0x60210e14
- .4byte 0x60210e13
- .4byte 0x60290d13
- .4byte 0x60250d12
- .4byte 0x60290e12
- .4byte 0x60490f12
- .4byte 0x60210f11
-
- .align 2
-gUnknown_0860db98:: @ 860DB98
- .4byte 0x60210e14
- .4byte 0x60210e13
- .4byte 0x60290d13
- .4byte 0x60250d12
- .4byte 0x60290e12
- .4byte 0x60490f12
- .4byte 0x60210f11
- .4byte 0x60380e11
- .4byte 0x60370d11
- .4byte 0x60360c11
- .4byte 0x60350b11
-
- .align 2
-gUnknown_0860dbc4:: @ 860DBC4
- .4byte 0x60210e14
- .4byte 0x60210e13
- .4byte 0x60290d13
- .4byte 0x60250d12
- .4byte 0x60290e12
- .4byte 0x60490f12
- .4byte 0x60210f11
- .4byte 0x60380e11
- .4byte 0x60370d11
- .4byte 0x60360c11
- .4byte 0x60350b11
- .4byte 0x602f0b10
- .4byte 0x602e0b0f
-
- .align 2
-gUnknown_0860dbf8:: @ 860DBF8
- .4byte 0x60211014
- .4byte 0x60251013
- .4byte 0x60491113
- .4byte 0x60211112
-
- .align 2
-gUnknown_0860dc08:: @ 860DC08
- .4byte 0x60211014
- .4byte 0x60251013
- .4byte 0x60491113
- .4byte 0x60211112
- .4byte 0x60291012
- .4byte 0x60290f12
- .4byte 0x60210f11
-
- .align 2
-gUnknown_0860dc24:: @ 860DC24
- .4byte 0x60211014
- .4byte 0x60251013
- .4byte 0x60491113
- .4byte 0x60211112
- .4byte 0x60291012
- .4byte 0x60290f12
- .4byte 0x60210f11
- .4byte 0x60380e11
- .4byte 0x60370d11
- .4byte 0x60360c11
- .4byte 0x60350b11
-
- .align 2
-gUnknown_0860dc50:: @ 860DC50
- .4byte 0x60211014
- .4byte 0x60251013
- .4byte 0x60491113
- .4byte 0x60211112
- .4byte 0x60291012
- .4byte 0x60290f12
- .4byte 0x60210f11
- .4byte 0x60380e11
- .4byte 0x60370d11
- .4byte 0x60360c11
- .4byte 0x60350b11
- .4byte 0x602f0b10
- .4byte 0x602e0b0f
-
- .align 2
-gUnknown_0860dc84:: @ 860DC84
- .4byte 0x602b1214
- .4byte 0x602b1213
- .4byte 0x60291113
- .4byte 0x60211112
-
- .align 2
-gUnknown_0860dc94:: @ 860DC94
- .4byte 0x602b1214
- .4byte 0x602b1213
- .4byte 0x60291113
- .4byte 0x60211112
- .4byte 0x60291012
- .4byte 0x60290f12
- .4byte 0x60210f11
-
- .align 2
-gUnknown_0860dcb0:: @ 860DCB0
- .4byte 0x602b1214
- .4byte 0x602b1213
- .4byte 0x60291113
- .4byte 0x60211112
- .4byte 0x60291012
- .4byte 0x60290f12
- .4byte 0x60210f11
- .4byte 0x60380e11
- .4byte 0x60370d11
- .4byte 0x60360c11
- .4byte 0x60350b11
-
- .align 2
-gUnknown_0860dcdc:: @ 860DCDC
- .4byte 0x602b1214
- .4byte 0x602b1213
- .4byte 0x60291113
- .4byte 0x60211112
- .4byte 0x60291012
- .4byte 0x60290f12
- .4byte 0x60210f11
- .4byte 0x60380e11
- .4byte 0x60370d11
- .4byte 0x60360c11
- .4byte 0x60350b11
- .4byte 0x602f0b10
- .4byte 0x602e0b0f
-
- .align 2
-gUnknown_0860DD10:: @ 860DD10
- .4byte gUnknown_0860d450
- .4byte gUnknown_0860d460
- .4byte gUnknown_0860d47c
- .4byte gUnknown_0860d4a8
- .4byte gUnknown_0860dc84
- .4byte gUnknown_0860dc94
- .4byte gUnknown_0860dcb0
- .4byte gUnknown_0860dcdc
- .4byte gUnknown_0860d8b0
- .4byte gUnknown_0860d8c0
- .4byte gUnknown_0860d8dc
- .4byte gUnknown_0860d908
- .4byte gUnknown_0860d824
- .4byte gUnknown_0860d834
- .4byte gUnknown_0860d850
- .4byte gUnknown_0860d87c
- .4byte gUnknown_0860d5f4
- .4byte gUnknown_0860d604
- .4byte gUnknown_0860d620
- .4byte gUnknown_0860d64c
- .4byte gUnknown_0860dae0
- .4byte gUnknown_0860daf0
- .4byte gUnknown_0860db0c
- .4byte gUnknown_0860db38
- .4byte gUnknown_0860da54
- .4byte gUnknown_0860da64
- .4byte gUnknown_0860da80
- .4byte gUnknown_0860daac
- .4byte gUnknown_0860d680
- .4byte gUnknown_0860d690
- .4byte gUnknown_0860d6ac
- .4byte gUnknown_0860d6d8
- .4byte gUnknown_0860d4dc
- .4byte gUnknown_0860d4ec
- .4byte gUnknown_0860d508
- .4byte gUnknown_0860d534
- .4byte gUnknown_0860dbf8
- .4byte gUnknown_0860dc08
- .4byte gUnknown_0860dc24
- .4byte gUnknown_0860dc50
- .4byte gUnknown_0860d93c
- .4byte gUnknown_0860d94c
- .4byte gUnknown_0860d968
- .4byte gUnknown_0860d994
- .4byte gUnknown_0860d798
- .4byte gUnknown_0860d7a8
- .4byte gUnknown_0860d7c4
- .4byte gUnknown_0860d7f0
- .4byte gUnknown_0860d568
- .4byte gUnknown_0860d578
- .4byte gUnknown_0860d594
- .4byte gUnknown_0860d5c0
- .4byte gUnknown_0860db6c
- .4byte gUnknown_0860db7c
- .4byte gUnknown_0860db98
- .4byte gUnknown_0860dbc4
- .4byte gUnknown_0860d9c8
- .4byte gUnknown_0860d9d8
- .4byte gUnknown_0860d9f4
- .4byte gUnknown_0860da20
- .4byte gUnknown_0860d70c
- .4byte gUnknown_0860d71c
- .4byte gUnknown_0860d738
- .4byte gUnknown_0860d764
-
-gUnknown_0860DE10:: @ 860DE10
- .byte 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d
- .byte 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d, 0x04, 0x07, 0x0b, 0x0d
-
.align 2
gUnknown_0860DE50:: @ 860DE50
.4byte sub_8195980
diff --git a/data/battle_pyramid.s b/data/battle_pyramid.s
deleted file mode 100644
index 7327fb1f8..000000000
--- a/data/battle_pyramid.s
+++ /dev/null
@@ -1,94 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_0861F2B4:: @ 861F2B4
- .4byte 0x000011f0, 0x000001e1, 0x000021de
-
- .align 2
-gUnknown_0861F2C0:: @ 861F2C0
- .4byte 0x00000000, sub_81C5460, sub_81C5518, 0x00000000, 0x00080000, 0x07003021
-
- .align 2
-gUnknown_0861F2D8:: @ 861F2D8
- .4byte gMenuText_Use, sub_81C61E0
- .4byte gMenuText_Toss, sub_81C62C4
- .4byte gMenuText_Give, sub_81C6648
- .4byte gText_Cancel2, sub_81C6258
- .4byte gMenuText_Use, sub_81C679C
- .4byte gText_EmptyString2, NULL
-
-gUnknown_0861F308:: @ 861F308
- .byte 0x00, 0x02, 0x01, 0x03
-
-gUnknown_0861F30C:: @ 861F30C
- .byte 0x01, 0x03
-
-gUnknown_0861F30E:: @ 861F30E
- .byte 0x04, 0x03
-
-gUnknown_0861F310:: @ 861F310
- .byte 0x03, 0x00, 0x00, 0x00
-
-gUnknown_0861F314:: @ 861F314
- .4byte sub_81C654C
- .4byte sub_81C63D0
-
-gUnknown_0861F31C:: @ 861F31C
- .byte 0x00, 0x02, 0x03, 0x00, 0x03, 0x01, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_0861F328:: @ 861F328
- window_template 0x00, 0x0e, 0x02, 0x0f, 0x10, 0x0f, 0x001e
- window_template 0x00, 0x00, 0x0d, 0x0e, 0x06, 0x0f, 0x010e
- window_template 0x01, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x0162
- window_template 0x01, 0x18, 0x11, 0x05, 0x02, 0x0f, 0x01ce
- null_window_template
-
- .align 2
-gUnknown_0861F350:: @ 861F350
- window_template 0x01, 0x16, 0x11, 0x07, 0x02, 0x0f, 0x01d8
- window_template 0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01d8
- window_template 0x01, 0x0f, 0x0f, 0x0e, 0x04, 0x0f, 0x01d8
- window_template 0x01, 0x0f, 0x0d, 0x0e, 0x06, 0x0f, 0x01d8
-
- .align 2
-gUnknown_0861F370:: @ 861F370
- window_template 0x01, 0x18, 0x0f, 0x05, 0x04, 0x0f, 0x01d8
-
- .align 2
-gOamData_861F378:: @ 861F378
- .2byte 0x0100, 0xc000, 0x0400, 0x0000
-
- .align 2
-gSpriteAnim_861F380:: @ 861F380
- .2byte 0x0000, 0x0004, 0xffff, 0x0000
-
- .align 2
-gSpriteAnimTable_861F388:: @ 861F388
- .4byte gSpriteAnim_861F380
-
- .align 2
-gSpriteAffineAnim_861F38C:: @ 861F38C
- .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gSpriteAffineAnim_861F39C:: @ 861F39C
- .2byte 0x0000, 0x0000, 0x02fe, 0x0000, 0x0000, 0x0000, 0x0402, 0x0000, 0x0000, 0x0000, 0x04fe, 0x0000, 0x0000, 0x0000, 0x0202, 0x0000
- .2byte 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gSpriteAffineAnimTable_861F3C4:: @ 861F3C4
- .4byte gSpriteAffineAnim_861F38C
- .4byte gSpriteAffineAnim_861F39C
-
- .align 2
-gUnknown_0861F3CC:: @ 861F3CC
- obj_tiles gBattleFrontierGfx_PyramidBag, 0x0800, 0x1024
-
- .align 2
-gUnknown_0861F3D4:: @ 861F3D4
- spr_template 0x1024, 0x1024, gOamData_861F378, gSpriteAnimTable_861F388, NULL, gSpriteAffineAnimTable_861F3C4, SpriteCallbackDummy
-
diff --git a/data/battle_pyramid_bag.s b/data/battle_pyramid_bag.s
new file mode 100644
index 000000000..de459075f
--- /dev/null
+++ b/data/battle_pyramid_bag.s
@@ -0,0 +1,40 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+
+ .align 2
+gOamData_861F378:: @ 861F378
+ .2byte 0x0100, 0xc000, 0x0400, 0x0000
+
+ .align 2
+gSpriteAnim_861F380:: @ 861F380
+ .2byte 0x0000, 0x0004, 0xffff, 0x0000
+
+ .align 2
+gSpriteAnimTable_861F388:: @ 861F388
+ .4byte gSpriteAnim_861F380
+
+ .align 2
+gSpriteAffineAnim_861F38C:: @ 861F38C
+ .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
+
+ .align 2
+gSpriteAffineAnim_861F39C:: @ 861F39C
+ .2byte 0x0000, 0x0000, 0x02fe, 0x0000, 0x0000, 0x0000, 0x0402, 0x0000, 0x0000, 0x0000, 0x04fe, 0x0000, 0x0000, 0x0000, 0x0202, 0x0000
+ .2byte 0x7fff, 0x0000, 0x0000, 0x0000
+
+ .align 2
+gSpriteAffineAnimTable_861F3C4:: @ 861F3C4
+ .4byte gSpriteAffineAnim_861F38C
+ .4byte gSpriteAffineAnim_861F39C
+
+ .align 2
+gUnknown_0861F3CC:: @ 861F3CC
+ obj_tiles gBattleFrontierGfx_PyramidBag, 0x0800, 0x1024
+
+ .align 2
+gUnknown_0861F3D4:: @ 861F3D4
+ spr_template 0x1024, 0x1024, gOamData_861F378, gSpriteAnimTable_861F388, NULL, gSpriteAffineAnimTable_861F3C4, SpriteCallbackDummy
+
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index 959258ea0..2125fc47e 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -4481,18 +4481,18 @@ BattleScript_82DB89D::
setbyte gBattleCommunication + 1, 0x0
end2
-BattleScript_82DB8BE::
+BattleScript_ArenaTurnBeginning::
waitcry BS_ATTACKER
- various21 BS_ATTACKER
- playse 0x109
+ volumedown
+ playse SE_HANTEI1
pause 0x8
- playse 0x109
+ playse SE_HANTEI1
various14 BS_ATTACKER
various16 8
various17 8
pause 0x40
various15 BS_ATTACKER
- various22 BS_ATTACKER
+ volumeup
end2
BattleScript_82DB8E0::
@@ -4509,7 +4509,7 @@ BattleScript_82DB8F3::
waitstate
makevisible BS_OPPONENT1
waitstate
- various21 BS_ATTACKER
+ volumedown
playse 0x109
pause 0x8
playse 0x109
diff --git a/data/data2b.s b/data/data2b.s
index 8d20be90f..db378d1a5 100644
--- a/data/data2b.s
+++ b/data/data2b.s
@@ -217,3715 +217,3 @@ gUnknown_082FF6C0:: @ 82FF6C0
.4byte gUnknown_082FF664
.4byte gUnknown_082FF5D8
.4byte gUnknown_082FF684
-
- .align 2
-gUnknown_082FF6EC:: @ 82FF6EC
- .2byte 0x0000, 0x0000, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF6F4:: @ 82FF6F4
- .2byte 0x0001, 0x0000, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF6FC:: @ 82FF6FC
- .2byte 0x0002, 0x0000, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF704:: @ 82FF704
- .2byte 0x0003, 0x0000, 0xffff, 0x0000
-
- .align 2
-gPlayerMonSpriteAnimsTable:: @ 82FF70C
- .4byte gUnknown_082FF6EC
- .4byte gUnknown_082FF6F4
- .4byte gUnknown_082FF6FC
- .4byte gUnknown_082FF704
-
- .align 2
-gUnknown_082FF71C:: @ 82FF71C
- .2byte 0x0000, 0x0001, 0x0001, 0x0019, 0x0000, 0x0007, 0x0001, 0x0007
- .2byte 0x0000, 0x0007, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF734:: @ 82FF734
- .2byte 0x0000, 0x0001, 0x0002, 0x0008, 0x0000, 0x0008, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF744:: @ 82FF744
- .2byte 0x0000, 0x000a, 0x0002, 0x000a, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF750:: @ 82FF750
- .2byte 0x0000, 0x000a, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF758:: @ 82FF758
- .2byte 0x0000, 0x0001, 0x0001, 0x0005, 0x0000, 0x0005, 0x0001, 0x0005
- .2byte 0x0000, 0x0005, 0x0001, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF774:: @ 82FF774
- .2byte 0x0000, 0x0001, 0x0002, 0x000c, 0x0000, 0x000e, 0x0002, 0x000c
- .2byte 0x0000, 0x000e, 0x0002, 0x000c, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF790:: @ 82FF790
- .2byte 0x0000, 0x000e, 0x0002, 0x000c, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF79C:: @ 82FF79C
- .2byte 0x0000, 0x000a, 0x0001, 0x000a, 0x0000, 0x000a, 0x0001, 0x000a, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF7B0:: @ 82FF7B0
- .2byte 0x0000, 0x000a, 0x0002, 0x000a, 0x0000, 0x000a, 0x0002, 0x000a, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF7C4:: @ 82FF7C4
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF7CC:: @ 82FF7CC
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF7D4:: @ 82FF7D4
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF7DC:: @ 82FF7DC
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF7E4:: @ 82FF7E4
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF7EC:: @ 82FF7EC
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF7F4:: @ 82FF7F4
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF7FC:: @ 82FF7FC
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF804:: @ 82FF804
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF80C:: @ 82FF80C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF814:: @ 82FF814
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF81C:: @ 82FF81C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF824:: @ 82FF824
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF82C:: @ 82FF82C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF834:: @ 82FF834
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF83C:: @ 82FF83C
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF844:: @ 82FF844
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF84C:: @ 82FF84C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF854:: @ 82FF854
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF85C:: @ 82FF85C
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF864:: @ 82FF864
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF86C:: @ 82FF86C
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF874:: @ 82FF874
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF87C:: @ 82FF87C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF884:: @ 82FF884
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF88C:: @ 82FF88C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF894:: @ 82FF894
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF89C:: @ 82FF89C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF8A4:: @ 82FF8A4
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF8AC:: @ 82FF8AC
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF8B4:: @ 82FF8B4
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF8BC:: @ 82FF8BC
- .2byte 0x0000, 0x000f, 0x0008, 0x000f, 0x0002, 0x0016, 0x0008, 0x0005
- .2byte 0x0003, 0x0008, 0x0004, 0x0005, 0x0006, 0x0005, 0x0004, 0x0005
- .2byte 0x0006, 0x0005, 0x0004, 0x0005, 0x0006, 0x0005, 0x0004, 0x0005
- .2byte 0x0006, 0x0005, 0x0005, 0x0005, 0x0007, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF8FC:: @ 82FF8FC
- .2byte 0x0000, 0x000a, 0x0008, 0x000f, 0x0002, 0x000f, 0x0008, 0x000f
- .2byte 0x0009, 0x000f, 0x0000, 0x000a, 0x0009, 0x000a, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF91C:: @ 82FF91C
- .2byte 0x0000, 0x000a, 0x0009, 0x000a, 0x0000, 0x000a, 0x000a, 0x0014, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF930:: @ 82FF930
- .2byte 0x0000, 0x000f, 0x000b, 0x000f, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF93C:: @ 82FF93C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF944:: @ 82FF944
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF94C:: @ 82FF94C
- .2byte 0x0000, 0x000a, 0x0001, 0x0007, 0x0002, 0x0007, 0x0003, 0x0004
- .2byte 0x0004, 0x0004, 0x0003, 0x0004, 0x0004, 0x0004, 0x0003, 0x0004
- .2byte 0x0004, 0x0004, 0x0003, 0x0004, 0x0001, 0x0006, 0x0005, 0x0002
- .2byte 0x0000, 0x0002, 0x0005, 0x0002, 0x0000, 0x0002, 0x0005, 0x0002
- .2byte 0x0006, 0x0002, 0x0005, 0x0002, 0x0006, 0x0002, 0x0006, 0x000a
- .2byte 0x0005, 0x0004, 0x0000, 0x000a, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FF9A8:: @ 82FF9A8
- .2byte 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c, 0x0000, 0x000c
- .2byte 0x0007, 0x000c, 0x0008, 0x000c, 0x0000, 0x000c, 0x0007, 0x000c
- .2byte 0x0008, 0x000c, 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c
- .2byte 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c, 0x0009, 0x0003
- .2byte 0x0000, 0x0003, 0x0009, 0x0003, 0x0000, 0x0003, 0x0007, 0x000c
- .2byte 0x0008, 0x000c, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFA00:: @ 82FFA00
- .2byte 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c, 0x0000, 0x000c
- .2byte 0x0007, 0x000c, 0x0008, 0x000c, 0x0000, 0x000c, 0x0007, 0x000c
- .2byte 0x0008, 0x000c, 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c
- .2byte 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c, 0x0009, 0x0003
- .2byte 0x0000, 0x0003, 0x0009, 0x0003, 0x0000, 0x0003, 0x0007, 0x000c
- .2byte 0x0008, 0x000c, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFA58:: @ 82FFA58
- .2byte 0x0000, 0x0012, 0x000a, 0x0012, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFA64:: @ 82FFA64
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFA6C:: @ 82FFA6C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFA74:: @ 82FFA74
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFA7C:: @ 82FFA7C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFA84:: @ 82FFA84
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFA8C:: @ 82FFA8C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFA94:: @ 82FFA94
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFA9C:: @ 82FFA9C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFAA4:: @ 82FFAA4
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFAAC:: @ 82FFAAC
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFAB4:: @ 82FFAB4
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFABC:: @ 82FFABC
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFAC4:: @ 82FFAC4
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFACC:: @ 82FFACC
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFAD4:: @ 82FFAD4
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFADC:: @ 82FFADC
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFAE4:: @ 82FFAE4
- .2byte 0x0000, 0x003f, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFAEC:: @ 82FFAEC
- .2byte 0x0000, 0x003f, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFAF4:: @ 82FFAF4
- .2byte 0x0000, 0x003f, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFAFC:: @ 82FFAFC
- .2byte 0x0000, 0x003f, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFB04:: @ 82FFB04
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFB0C:: @ 82FFB0C
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFB14:: @ 82FFB14
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFB1C:: @ 82FFB1C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFB24:: @ 82FFB24
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFB2C:: @ 82FFB2C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFB34:: @ 82FFB34
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFB3C:: @ 82FFB3C
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFB44:: @ 82FFB44
- .2byte 0x0000, 0x0001, 0x0001, 0x0012, 0x0000, 0x0012, 0x0001, 0x0012
- .2byte 0x0000, 0x0012, 0x0001, 0x0012, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFB60:: @ 82FFB60
- .2byte 0x0000, 0x0001, 0x0002, 0x0012, 0x0000, 0x0012, 0x0002, 0x0012
- .2byte 0x0000, 0x0012, 0x0002, 0x0012, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFB7C:: @ 82FFB7C
- .2byte 0x0000, 0x0005, 0x0002, 0x0005, 0x0003, 0x0006, 0x0001, 0x0005
- .2byte 0x0000, 0x0005, 0x0002, 0x0005, 0x0003, 0x0005, 0x0001, 0x0005
- .2byte 0x0000, 0x0005, 0x0001, 0x0007, 0x0000, 0x0004, 0x0004, 0x0004
- .2byte 0x0000, 0x0004, 0x0004, 0x0004, 0x0000, 0x0014, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFBBC:: @ 82FFBBC
- .2byte 0x0000, 0x0006, 0x0001, 0x0006, 0x0002, 0x0006, 0x0003, 0x0006
- .2byte 0x0001, 0x0006, 0x0000, 0x0006, 0x0001, 0x0006, 0x0000, 0x001e
- .2byte 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFBE0:: @ 82FFBE0
- .2byte 0x0000, 0x000c, 0x0005, 0x000c, 0x0000, 0x000c, 0x0006, 0x000c, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFBF4:: @ 82FFBF4
- .2byte 0x0007, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFBFC:: @ 82FFBFC
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC04:: @ 82FFC04
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC0C:: @ 82FFC0C
- .2byte 0x0000, 0x003f, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC14:: @ 82FFC14
- .2byte 0x0000, 0x003f, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC1C:: @ 82FFC1C
- .2byte 0x0000, 0x003f, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC24:: @ 82FFC24
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC2C:: @ 82FFC2C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC34:: @ 82FFC34
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC3C:: @ 82FFC3C
- .2byte 0x0000, 0x0001, 0x0001, 0x000a, 0x0000, 0x000a, 0x0001, 0x000a
- .2byte 0x0000, 0x000a, 0x0001, 0x000a, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC58:: @ 82FFC58
- .2byte 0x0000, 0x0001, 0x0002, 0x0008, 0x0000, 0x000c, 0x0002, 0x0008
- .2byte 0x0000, 0x000c, 0x0002, 0x0008, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC74:: @ 82FFC74
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC7C:: @ 82FFC7C
- .2byte 0x0000, 0x000a, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC84:: @ 82FFC84
- .2byte 0x0001, 0x0009, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC8C:: @ 82FFC8C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC94:: @ 82FFC94
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFC9C:: @ 82FFC9C
- .2byte 0x0000, 0x000a, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFCA4:: @ 82FFCA4
- .2byte 0x0001, 0x000a, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFCAC:: @ 82FFCAC
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFCB4:: @ 82FFCB4
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFCBC:: @ 82FFCBC
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFCC4:: @ 82FFCC4
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFCCC:: @ 82FFCCC
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFCD4:: @ 82FFCD4
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFCDC:: @ 82FFCDC
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFCE4:: @ 82FFCE4
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFCEC:: @ 82FFCEC
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFCF4:: @ 82FFCF4
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFCFC:: @ 82FFCFC
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD04:: @ 82FFD04
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD0C:: @ 82FFD0C
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD14:: @ 82FFD14
- .2byte 0x0000, 0x0005, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD1C:: @ 82FFD1C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD24:: @ 82FFD24
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD2C:: @ 82FFD2C
- .2byte 0x0002, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD34:: @ 82FFD34
- .2byte 0x0003, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD3C:: @ 82FFD3C
- .2byte 0x0000, 0x003f, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD44:: @ 82FFD44
- .2byte 0x0000, 0x003f, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD4C:: @ 82FFD4C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD54:: @ 82FFD54
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD5C:: @ 82FFD5C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD64:: @ 82FFD64
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD6C:: @ 82FFD6C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD74:: @ 82FFD74
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD7C:: @ 82FFD7C
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD84:: @ 82FFD84
- .2byte 0x0001, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFD8C:: @ 82FFD8C
- .2byte 0x0000, 0x0014, 0x0001, 0x001e, 0x0000, 0x0014, 0x0001, 0x001e, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFDA0:: @ 82FFDA0
- .2byte 0x0000, 0x0014, 0x0002, 0x0014, 0x0000, 0x0014, 0x0002, 0x0014, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFDB4:: @ 82FFDB4
- .2byte 0x0000, 0x000a, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFDBC:: @ 82FFDBC
- .2byte 0x0000, 0x000a, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFDC4:: @ 82FFDC4
- .2byte 0x0000, 0x0001, 0xffff, 0x0000
-
- .align 2
-gUnknown_082FFDCC:: @ 82FFDCC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFDD0:: @ 82FFDD0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFDD4:: @ 82FFDD4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFDD8:: @ 82FFDD8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFDDC:: @ 82FFDDC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFDE0:: @ 82FFDE0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFDE4:: @ 82FFDE4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFDE8:: @ 82FFDE8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFDEC:: @ 82FFDEC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFDF0:: @ 82FFDF0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFDF4:: @ 82FFDF4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFDF8:: @ 82FFDF8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFDFC:: @ 82FFDFC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE00:: @ 82FFE00
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE04:: @ 82FFE04
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE08:: @ 82FFE08
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE0C:: @ 82FFE0C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE10:: @ 82FFE10
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE14:: @ 82FFE14
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE18:: @ 82FFE18
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE1C:: @ 82FFE1C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE20:: @ 82FFE20
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE24:: @ 82FFE24
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE28:: @ 82FFE28
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE2C:: @ 82FFE2C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE30:: @ 82FFE30
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE34:: @ 82FFE34
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE38:: @ 82FFE38
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE3C:: @ 82FFE3C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE40:: @ 82FFE40
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE44:: @ 82FFE44
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE48:: @ 82FFE48
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE4C:: @ 82FFE4C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE50:: @ 82FFE50
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE54:: @ 82FFE54
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE58:: @ 82FFE58
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE5C:: @ 82FFE5C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE60:: @ 82FFE60
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE64:: @ 82FFE64
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE68:: @ 82FFE68
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE6C:: @ 82FFE6C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE70:: @ 82FFE70
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE74:: @ 82FFE74
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE78:: @ 82FFE78
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE7C:: @ 82FFE7C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE80:: @ 82FFE80
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE84:: @ 82FFE84
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE88:: @ 82FFE88
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE8C:: @ 82FFE8C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE90:: @ 82FFE90
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE94:: @ 82FFE94
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE98:: @ 82FFE98
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFE9C:: @ 82FFE9C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEA0:: @ 82FFEA0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEA4:: @ 82FFEA4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEA8:: @ 82FFEA8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEAC:: @ 82FFEAC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEB0:: @ 82FFEB0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEB4:: @ 82FFEB4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEB8:: @ 82FFEB8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEBC:: @ 82FFEBC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEC0:: @ 82FFEC0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEC4:: @ 82FFEC4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEC8:: @ 82FFEC8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFECC:: @ 82FFECC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFED0:: @ 82FFED0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFED4:: @ 82FFED4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFED8:: @ 82FFED8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEDC:: @ 82FFEDC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEE0:: @ 82FFEE0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEE4:: @ 82FFEE4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEE8:: @ 82FFEE8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEEC:: @ 82FFEEC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEF0:: @ 82FFEF0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEF4:: @ 82FFEF4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEF8:: @ 82FFEF8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFEFC:: @ 82FFEFC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF00:: @ 82FFF00
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF04:: @ 82FFF04
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF08:: @ 82FFF08
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF0C:: @ 82FFF0C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF10:: @ 82FFF10
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF14:: @ 82FFF14
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF18:: @ 82FFF18
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF1C:: @ 82FFF1C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF20:: @ 82FFF20
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF24:: @ 82FFF24
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF28:: @ 82FFF28
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF2C:: @ 82FFF2C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF30:: @ 82FFF30
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF34:: @ 82FFF34
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF38:: @ 82FFF38
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF3C:: @ 82FFF3C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF40:: @ 82FFF40
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF44:: @ 82FFF44
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF48:: @ 82FFF48
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF4C:: @ 82FFF4C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF50:: @ 82FFF50
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF54:: @ 82FFF54
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF58:: @ 82FFF58
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF5C:: @ 82FFF5C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF60:: @ 82FFF60
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF64:: @ 82FFF64
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF68:: @ 82FFF68
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF6C:: @ 82FFF6C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF70:: @ 82FFF70
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF74:: @ 82FFF74
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF78:: @ 82FFF78
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF7C:: @ 82FFF7C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF80:: @ 82FFF80
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF84:: @ 82FFF84
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF88:: @ 82FFF88
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF8C:: @ 82FFF8C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF90:: @ 82FFF90
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF94:: @ 82FFF94
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF98:: @ 82FFF98
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFF9C:: @ 82FFF9C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFA0:: @ 82FFFA0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFA4:: @ 82FFFA4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFA8:: @ 82FFFA8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFAC:: @ 82FFFAC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFB0:: @ 82FFFB0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFB4:: @ 82FFFB4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFB8:: @ 82FFFB8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFBC:: @ 82FFFBC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFC0:: @ 82FFFC0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFC4:: @ 82FFFC4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFC8:: @ 82FFFC8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFCC:: @ 82FFFCC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFD0:: @ 82FFFD0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFD4:: @ 82FFFD4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFD8:: @ 82FFFD8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFDC:: @ 82FFFDC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFE0:: @ 82FFFE0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFE4:: @ 82FFFE4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFE8:: @ 82FFFE8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFEC:: @ 82FFFEC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFF0:: @ 82FFFF0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFF4:: @ 82FFFF4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFF8:: @ 82FFFF8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_082FFFFC:: @ 82FFFFC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300000:: @ 8300000
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300004:: @ 8300004
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300008:: @ 8300008
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830000C:: @ 830000C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300010:: @ 8300010
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300014:: @ 8300014
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300018:: @ 8300018
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830001C:: @ 830001C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300020:: @ 8300020
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300024:: @ 8300024
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300028:: @ 8300028
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830002C:: @ 830002C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300030:: @ 8300030
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300034:: @ 8300034
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300038:: @ 8300038
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830003C:: @ 830003C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300040:: @ 8300040
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300044:: @ 8300044
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300048:: @ 8300048
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830004C:: @ 830004C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300050:: @ 8300050
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300054:: @ 8300054
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300058:: @ 8300058
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830005C:: @ 830005C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300060:: @ 8300060
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300064:: @ 8300064
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300068:: @ 8300068
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830006C:: @ 830006C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300070:: @ 8300070
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300074:: @ 8300074
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300078:: @ 8300078
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830007C:: @ 830007C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300080:: @ 8300080
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300084:: @ 8300084
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300088:: @ 8300088
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830008C:: @ 830008C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300090:: @ 8300090
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300094:: @ 8300094
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300098:: @ 8300098
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830009C:: @ 830009C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000A0:: @ 83000A0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000A4:: @ 83000A4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000A8:: @ 83000A8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000AC:: @ 83000AC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000B0:: @ 83000B0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000B4:: @ 83000B4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000B8:: @ 83000B8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000BC:: @ 83000BC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000C0:: @ 83000C0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000C4:: @ 83000C4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000C8:: @ 83000C8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000CC:: @ 83000CC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000D0:: @ 83000D0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000D4:: @ 83000D4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000D8:: @ 83000D8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000DC:: @ 83000DC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000E0:: @ 83000E0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000E4:: @ 83000E4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000E8:: @ 83000E8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000EC:: @ 83000EC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000F0:: @ 83000F0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000F4:: @ 83000F4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000F8:: @ 83000F8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083000FC:: @ 83000FC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300100:: @ 8300100
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300104:: @ 8300104
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300108:: @ 8300108
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830010C:: @ 830010C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300110:: @ 8300110
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300114:: @ 8300114
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300118:: @ 8300118
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830011C:: @ 830011C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300120:: @ 8300120
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300124:: @ 8300124
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300128:: @ 8300128
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830012C:: @ 830012C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300130:: @ 8300130
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300134:: @ 8300134
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300138:: @ 8300138
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830013C:: @ 830013C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300140:: @ 8300140
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300144:: @ 8300144
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300148:: @ 8300148
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830014C:: @ 830014C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300150:: @ 8300150
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300154:: @ 8300154
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300158:: @ 8300158
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830015C:: @ 830015C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300160:: @ 8300160
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300164:: @ 8300164
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300168:: @ 8300168
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830016C:: @ 830016C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300170:: @ 8300170
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300174:: @ 8300174
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300178:: @ 8300178
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830017C:: @ 830017C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300180:: @ 8300180
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300184:: @ 8300184
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300188:: @ 8300188
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830018C:: @ 830018C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300190:: @ 8300190
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300194:: @ 8300194
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300198:: @ 8300198
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830019C:: @ 830019C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001A0:: @ 83001A0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001A4:: @ 83001A4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001A8:: @ 83001A8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001AC:: @ 83001AC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001B0:: @ 83001B0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001B4:: @ 83001B4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001B8:: @ 83001B8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001BC:: @ 83001BC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001C0:: @ 83001C0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001C4:: @ 83001C4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001C8:: @ 83001C8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001CC:: @ 83001CC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001D0: @ 83001D0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001D4:: @ 83001D4
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF71C
- .4byte gUnknown_082FF734
- .4byte gUnknown_082FF744
- .4byte gUnknown_082FF750
-
- .align 2
-gUnknown_083001E8:: @ 83001E8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083001EC:: @ 83001EC
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF758
- .4byte gUnknown_082FF774
- .4byte gUnknown_082FF790
-
- .align 2
-gUnknown_083001FC:: @ 83001FC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300200:: @ 8300200
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF79C
- .4byte gUnknown_082FF7B0
-
- .align 2
-gUnknown_0830020C:: @ 830020C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF7C4
-
- .align 2
-gUnknown_08300214:: @ 8300214
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF7CC
-
- .align 2
-gUnknown_0830021C:: @ 830021C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF7D4
-
- .align 2
-gUnknown_08300224:: @ 8300224
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF7DC
- .4byte gUnknown_082FF7E4
-
- .align 2
-gUnknown_08300230:: @ 8300230
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF7EC
- .4byte gUnknown_082FF7F4
-
- .align 2
-gUnknown_0830023C:: @ 830023C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF7FC
- .4byte gUnknown_082FF804
-
- .align 2
-gUnknown_08300248:: @ 8300248
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF80C
- .4byte gUnknown_082FF814
-
- .align 2
-gUnknown_08300254:: @ 8300254
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF81C
- .4byte gUnknown_082FF824
-
- .align 2
-gUnknown_08300260:: @ 8300260
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300264:: @ 8300264
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF82C
-
- .align 2
-gUnknown_0830026C:: @ 830026C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF834
- .4byte gUnknown_082FF83C
-
- .align 2
-gUnknown_08300278:: @ 8300278
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF844
-
- .align 2
-gUnknown_08300280:: @ 8300280
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF84C
-
- .align 2
-gUnknown_08300288:: @ 8300288
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF854
- .4byte gUnknown_082FF85C
-
- .align 2
-gUnknown_08300294:: @ 8300294
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300298:: @ 8300298
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830029C:: @ 830029C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083002A0:: @ 83002A0
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF864
-
- .align 2
-gUnknown_083002A8:: @ 83002A8
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF86C
-
- .align 2
-gUnknown_083002B0:: @ 83002B0
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF874
-
- .align 2
-gUnknown_083002B8:: @ 83002B8
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF87C
-
- .align 2
-gUnknown_083002C0:: @ 83002C0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083002C4:: @ 83002C4
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF884
-
- .align 2
-gUnknown_083002CC:: @ 83002CC
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF88C
- .4byte gUnknown_082FF894
-
- .align 2
-gUnknown_083002D8:: @ 83002D8
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF89C
- .4byte gUnknown_082FF8A4
-
- .align 2
-gUnknown_083002E4:: @ 83002E4
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF8AC
- .4byte gUnknown_082FF8B4
-
- .align 2
-gUnknown_083002F0:: @ 83002F0
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF8BC
- .4byte gUnknown_082FF8FC
- .4byte gUnknown_082FF91C
- .4byte gUnknown_082FF930
-
- .align 2
-gUnknown_08300304:: @ 8300304
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300308:: @ 8300308
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF93C
-
- .align 2
-gUnknown_08300310:: @ 8300310
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF944
-
- .align 2
-gUnknown_08300318:: @ 8300318
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FF94C
- .4byte gUnknown_082FF9A8
- .4byte gUnknown_082FFA00
- .4byte gUnknown_082FFA58
-
- .align 2
-gUnknown_0830032C:: @ 830032C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFA64
-
- .align 2
-gUnknown_08300334:: @ 8300334
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFA6C
-
- .align 2
-gUnknown_0830033C:: @ 830033C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFA74
-
- .align 2
-gUnknown_08300344:: @ 8300344
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300348:: @ 8300348
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFA7C
- .4byte gUnknown_082FFA84
-
- .align 2
-gUnknown_08300354:: @ 8300354
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300358:: @ 8300358
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830035C:: @ 830035C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFA8C
- .4byte gUnknown_082FFA94
-
- .align 2
-gUnknown_08300368:: @ 8300368
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830036C:: @ 830036C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300370:: @ 8300370
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFA9C
- .4byte gUnknown_082FFAA4
-
- .align 2
-gUnknown_0830037C:: @ 830037C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFAAC
- .4byte gUnknown_082FFAB4
-
- .align 2
-gUnknown_08300388:: @ 8300388
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFABC
- .4byte gUnknown_082FFAC4
-
- .align 2
-gUnknown_08300394:: @ 8300394
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFACC
- .4byte gUnknown_082FFAD4
-
- .align 2
-gUnknown_083003A0:: @ 83003A0
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFADC
-
- .align 2
-gUnknown_083003A8:: @ 83003A8
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFAE4
-
- .align 2
-gUnknown_083003B0:: @ 83003B0
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFAEC
-
- .align 2
-gUnknown_083003B8:: @ 83003B8
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFAF4
-
- .align 2
-gUnknown_083003C0:: @ 83003C0
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFAFC
-
- .align 2
-gUnknown_083003C8:: @ 83003C8
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFB04
- .4byte gUnknown_082FFB0C
-
- .align 2
-gUnknown_083003D4:: @ 83003D4
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFB14
-
- .align 2
-gUnknown_083003DC:: @ 83003DC
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFB1C
- .4byte gUnknown_082FFB24
-
- .align 2
-gUnknown_083003E8:: @ 83003E8
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFB2C
-
- .align 2
-gUnknown_083003F0:: @ 83003F0
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFB34
-
- .align 2
-gUnknown_083003F8:: @ 83003F8
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFB3C
-
- .align 2
-gUnknown_08300400:: @ 8300400
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFB44
- .4byte gUnknown_082FFB60
-
- .align 2
-gUnknown_0830040C:: @ 830040C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300410:: @ 8300410
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300414:: @ 8300414
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300418:: @ 8300418
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830041C:: @ 830041C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300420:: @ 8300420
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300424:: @ 8300424
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFB7C
- .4byte gUnknown_082FFBBC
- .4byte gUnknown_082FFBE0
- .4byte gUnknown_082FFBF4
-
- .align 2
-gUnknown_08300438:: @ 8300438
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFBFC
- .4byte gUnknown_082FFC04
-
- .align 2
-gUnknown_08300444:: @ 8300444
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFC0C
-
- .align 2
-gUnknown_0830044C:: @ 830044C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFC14
-
- .align 2
-gUnknown_08300454:: @ 8300454
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFC1C
-
- .align 2
-gUnknown_0830045C:: @ 830045C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFC24
-
- .align 2
-gUnknown_08300464:: @ 8300464
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFC2C
-
- .align 2
-gUnknown_0830046C:: @ 830046C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFC34
-
- .align 2
-gUnknown_08300474:: @ 8300474
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFC3C
- .4byte gUnknown_082FFC58
-
- .align 2
-gUnknown_08300480:: @ 8300480
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFC74
-
- .align 2
-gUnknown_08300488:: @ 8300488
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFC7C
- .4byte gUnknown_082FFC84
-
- .align 2
-gUnknown_08300494:: @ 8300494
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFC8C
- .4byte gUnknown_082FFC94
-
- .align 2
-gUnknown_083004A0:: @ 83004A0
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFC9C
- .4byte gUnknown_082FFCA4
-
- .align 2
-gUnknown_083004AC:: @ 83004AC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083004B0:: @ 83004B0
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFCAC
-
- .align 2
-gUnknown_083004B8:: @ 83004B8
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFCB4
-
- .align 2
-gUnknown_083004C0:: @ 83004C0
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFCBC
-
- .align 2
-gUnknown_083004C8:: @ 83004C8
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFCC4
-
- .align 2
-gUnknown_083004D0:: @ 83004D0
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFCCC
-
- .align 2
-gUnknown_083004D8:: @ 83004D8
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFCD4
-
- .align 2
-gUnknown_083004E0:: @ 83004E0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083004E4:: @ 83004E4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083004E8:: @ 83004E8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083004EC:: @ 83004EC
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFCDC
-
- .align 2
-gUnknown_083004F4:: @ 83004F4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083004F8:: @ 83004F8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083004FC:: @ 83004FC
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFCE4
-
- .align 2
-gUnknown_08300504:: @ 8300504
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFCEC
- .4byte gUnknown_082FFCF4
-
- .align 2
-gUnknown_08300510:: @ 8300510
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFCFC
-
- .align 2
-gUnknown_08300518:: @ 8300518
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830051C:: @ 830051C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300520:: @ 8300520
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300524:: @ 8300524
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFD04
-
- .align 2
-gUnknown_0830052C:: @ 830052C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFD0C
-
- .align 2
-gUnknown_08300534:: @ 8300534
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFD14
-
- .align 2
-gUnknown_0830053C:: @ 830053C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFD1C
- .4byte gUnknown_082FFD24
- .4byte gUnknown_082FFD2C
- .4byte gUnknown_082FFD34
-
- .align 2
-gUnknown_08300550:: @ 8300550
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFD3C
-
- .align 2
-gUnknown_08300558:: @ 8300558
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFD44
-
- .align 2
-gUnknown_08300560:: @ 8300560
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300564:: @ 8300564
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300568:: @ 8300568
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830056C:: @ 830056C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300570:: @ 8300570
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300574:: @ 8300574
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300578:: @ 8300578
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830057C:: @ 830057C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFD4C
- .4byte gUnknown_082FFD54
-
- .align 2
-gUnknown_08300588:: @ 8300588
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830058C:: @ 830058C
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFD5C
- .4byte gUnknown_082FFD64
-
- .align 2
-gUnknown_08300598:: @ 8300598
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830059C:: @ 830059C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083005A0:: @ 83005A0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083005A4:: @ 83005A4
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFD6C
-
- .align 2
-gUnknown_083005AC:: @ 83005AC
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFD74
-
- .align 2
-gUnknown_083005B4:: @ 83005B4
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFD7C
- .4byte gUnknown_082FFD84
-
- .align 2
-gUnknown_083005C0:: @ 83005C0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083005C4:: @ 83005C4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083005C8:: @ 83005C8
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFD8C
- .4byte gUnknown_082FFDA0
-
- .align 2
-gUnknown_083005D4:: @ 83005D4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083005D8:: @ 83005D8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083005DC:: @ 83005DC
- .4byte gAnimCmd_General_Frame0
- .4byte gUnknown_082FFDC4
-
- .align 2
-gUnknown_083005E4:: @ 83005E4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083005E8:: @ 83005E8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083005EC:: @ 83005EC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083005F0:: @ 83005F0
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083005F4:: @ 83005F4
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083005F8:: @ 83005F8
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_083005FC:: @ 83005FC
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300600:: @ 8300600
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300604:: @ 8300604
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300608:: @ 8300608
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830060C:: @ 830060C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300610:: @ 8300610
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300614:: @ 8300614
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300618:: @ 8300618
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830061C:: @ 830061C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300620:: @ 8300620
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300624:: @ 8300624
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300628:: @ 8300628
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830062C:: @ 830062C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300630:: @ 8300630
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300634:: @ 8300634
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300638:: @ 8300638
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830063C:: @ 830063C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300640:: @ 8300640
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300644:: @ 8300644
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300648:: @ 8300648
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_0830064C:: @ 830064C
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300650:: @ 8300650
- .4byte gAnimCmd_General_Frame0
-
- .align 2
-gUnknown_08300654:: @ 8300654
- .4byte gAnimCmd_General_Frame0
-
- .4byte gUnknown_082FFDCC
- .4byte gUnknown_082FFDD0
- .4byte gUnknown_082FFDD4
- .4byte gUnknown_082FFDD8
- .4byte gUnknown_082FFDDC
- .4byte gUnknown_082FFDE0
- .4byte gUnknown_082FFDE4
- .4byte gUnknown_082FFDE8
- .4byte gUnknown_082FFDEC
- .4byte gUnknown_082FFDF0
- .4byte gUnknown_082FFDF4
- .4byte gUnknown_082FFDF8
- .4byte gUnknown_082FFDFC
- .4byte gUnknown_082FFE00
- .4byte gUnknown_082FFE04
- .4byte gUnknown_082FFE08
- .4byte gUnknown_082FFE0C
- .4byte gUnknown_082FFE10
- .4byte gUnknown_082FFE14
- .4byte gUnknown_082FFE18
- .4byte gUnknown_082FFE1C
- .4byte gUnknown_082FFE20
- .4byte gUnknown_082FFE24
- .4byte gUnknown_082FFE28
- .4byte gUnknown_082FFE2C
- .4byte gUnknown_082FFE30
- .4byte gUnknown_082FFE34
- .4byte gUnknown_082FFE38
- .4byte gUnknown_082FFE3C
- .4byte gUnknown_082FFE40
- .4byte gUnknown_082FFE44
- .4byte gUnknown_082FFE48
- .4byte gUnknown_082FFE4C
- .4byte gUnknown_082FFE50
- .4byte gUnknown_082FFE54
- .4byte gUnknown_082FFE58
- .4byte gUnknown_082FFE5C
- .4byte gUnknown_082FFE60
- .4byte gUnknown_082FFE64
- .4byte gUnknown_082FFE68
- .4byte gUnknown_082FFE6C
- .4byte gUnknown_082FFE70
- .4byte gUnknown_082FFE74
- .4byte gUnknown_082FFE78
- .4byte gUnknown_082FFE7C
- .4byte gUnknown_082FFE80
- .4byte gUnknown_082FFE84
- .4byte gUnknown_082FFE88
- .4byte gUnknown_082FFE8C
- .4byte gUnknown_082FFE90
- .4byte gUnknown_082FFE94
- .4byte gUnknown_082FFE98
- .4byte gUnknown_082FFE9C
- .4byte gUnknown_082FFEA0
- .4byte gUnknown_082FFEA4
- .4byte gUnknown_082FFEA8
- .4byte gUnknown_082FFEAC
- .4byte gUnknown_082FFEB0
- .4byte gUnknown_082FFEB4
- .4byte gUnknown_082FFEB8
- .4byte gUnknown_082FFEBC
- .4byte gUnknown_082FFEC0
- .4byte gUnknown_082FFEC4
- .4byte gUnknown_082FFEC8
- .4byte gUnknown_082FFECC
- .4byte gUnknown_082FFED0
- .4byte gUnknown_082FFED4
- .4byte gUnknown_082FFED8
- .4byte gUnknown_082FFEDC
- .4byte gUnknown_082FFEE0
- .4byte gUnknown_082FFEE4
- .4byte gUnknown_082FFEE8
- .4byte gUnknown_082FFEEC
- .4byte gUnknown_082FFEF0
- .4byte gUnknown_082FFEF4
- .4byte gUnknown_082FFEF8
- .4byte gUnknown_082FFEFC
- .4byte gUnknown_082FFF00
- .4byte gUnknown_082FFF04
- .4byte gUnknown_082FFF08
- .4byte gUnknown_082FFF0C
- .4byte gUnknown_082FFF10
- .4byte gUnknown_082FFF14
- .4byte gUnknown_082FFF18
- .4byte gUnknown_082FFF1C
- .4byte gUnknown_082FFF20
- .4byte gUnknown_082FFF24
- .4byte gUnknown_082FFF28
- .4byte gUnknown_082FFF2C
- .4byte gUnknown_082FFF30
- .4byte gUnknown_082FFF34
- .4byte gUnknown_082FFF38
- .4byte gUnknown_082FFF3C
- .4byte gUnknown_082FFF40
- .4byte gUnknown_082FFF44
- .4byte gUnknown_082FFF48
- .4byte gUnknown_082FFF4C
- .4byte gUnknown_082FFF50
- .4byte gUnknown_082FFF54
- .4byte gUnknown_082FFF58
- .4byte gUnknown_082FFF5C
- .4byte gUnknown_082FFF60
- .4byte gUnknown_082FFF64
- .4byte gUnknown_082FFF68
- .4byte gUnknown_082FFF6C
- .4byte gUnknown_082FFF70
- .4byte gUnknown_082FFF74
- .4byte gUnknown_082FFF78
- .4byte gUnknown_082FFF7C
- .4byte gUnknown_082FFF80
- .4byte gUnknown_082FFF84
- .4byte gUnknown_082FFF88
- .4byte gUnknown_082FFF8C
- .4byte gUnknown_082FFF90
- .4byte gUnknown_082FFF94
- .4byte gUnknown_082FFF98
- .4byte gUnknown_082FFF9C
- .4byte gUnknown_082FFFA0
- .4byte gUnknown_082FFFA4
- .4byte gUnknown_082FFFA8
- .4byte gUnknown_082FFFAC
- .4byte gUnknown_082FFFB0
- .4byte gUnknown_082FFFB4
- .4byte gUnknown_082FFFB8
- .4byte gUnknown_082FFFBC
- .4byte gUnknown_082FFFC0
- .4byte gUnknown_082FFFC4
- .4byte gUnknown_082FFFC8
- .4byte gUnknown_082FFFCC
- .4byte gUnknown_082FFFD0
- .4byte gUnknown_082FFFD4
- .4byte gUnknown_082FFFD8
- .4byte gUnknown_082FFFDC
- .4byte gUnknown_082FFFE0
- .4byte gUnknown_082FFFE4
- .4byte gUnknown_082FFFE8
- .4byte gUnknown_082FFFEC
- .4byte gUnknown_082FFFF0
- .4byte gUnknown_082FFFF4
- .4byte gUnknown_082FFFF8
- .4byte gUnknown_082FFFFC
- .4byte gUnknown_08300000
- .4byte gUnknown_08300004
- .4byte gUnknown_08300008
- .4byte gUnknown_0830000C
- .4byte gUnknown_08300010
- .4byte gUnknown_08300014
- .4byte gUnknown_08300018
- .4byte gUnknown_0830001C
- .4byte gUnknown_08300020
- .4byte gUnknown_08300024
- .4byte gUnknown_08300028
- .4byte gUnknown_0830002C
- .4byte gUnknown_08300030
- .4byte gUnknown_08300034
- .4byte gUnknown_08300038
- .4byte gUnknown_0830003C
- .4byte gUnknown_08300040
- .4byte gUnknown_08300044
- .4byte gUnknown_08300048
- .4byte gUnknown_0830004C
- .4byte gUnknown_08300050
- .4byte gUnknown_08300054
- .4byte gUnknown_08300058
- .4byte gUnknown_0830005C
- .4byte gUnknown_08300060
- .4byte gUnknown_08300064
- .4byte gUnknown_08300068
- .4byte gUnknown_0830006C
- .4byte gUnknown_08300070
- .4byte gUnknown_08300074
- .4byte gUnknown_08300078
- .4byte gUnknown_0830007C
- .4byte gUnknown_08300080
- .4byte gUnknown_08300084
- .4byte gUnknown_08300088
- .4byte gUnknown_0830008C
- .4byte gUnknown_08300090
- .4byte gUnknown_08300094
- .4byte gUnknown_08300098
- .4byte gUnknown_0830009C
- .4byte gUnknown_083000A0
- .4byte gUnknown_083000A4
- .4byte gUnknown_083000A8
- .4byte gUnknown_083000AC
- .4byte gUnknown_083000B0
- .4byte gUnknown_083000B4
- .4byte gUnknown_083000B8
- .4byte gUnknown_083000BC
- .4byte gUnknown_083000C0
- .4byte gUnknown_083000C4
- .4byte gUnknown_083000C8
- .4byte gUnknown_083000CC
- .4byte gUnknown_083000D0
- .4byte gUnknown_083000D4
- .4byte gUnknown_083000D8
- .4byte gUnknown_083000DC
- .4byte gUnknown_083000E0
- .4byte gUnknown_083000E4
- .4byte gUnknown_083000E8
- .4byte gUnknown_083000EC
- .4byte gUnknown_083000F0
- .4byte gUnknown_083000F4
- .4byte gUnknown_083000F8
- .4byte gUnknown_083000FC
- .4byte gUnknown_08300100
- .4byte gUnknown_08300104
- .4byte gUnknown_08300108
- .4byte gUnknown_0830010C
- .4byte gUnknown_08300110
- .4byte gUnknown_08300114
- .4byte gUnknown_08300118
- .4byte gUnknown_0830011C
- .4byte gUnknown_08300120
- .4byte gUnknown_08300124
- .4byte gUnknown_08300128
- .4byte gUnknown_0830012C
- .4byte gUnknown_08300130
- .4byte gUnknown_08300134
- .4byte gUnknown_08300138
- .4byte gUnknown_0830013C
- .4byte gUnknown_08300140
- .4byte gUnknown_08300144
- .4byte gUnknown_08300148
- .4byte gUnknown_0830014C
- .4byte gUnknown_08300150
- .4byte gUnknown_08300154
- .4byte gUnknown_08300158
- .4byte gUnknown_0830015C
- .4byte gUnknown_08300160
- .4byte gUnknown_08300164
- .4byte gUnknown_08300168
- .4byte gUnknown_0830016C
- .4byte gUnknown_08300170
- .4byte gUnknown_08300174
- .4byte gUnknown_08300178
- .4byte gUnknown_0830017C
- .4byte gUnknown_08300180
- .4byte gUnknown_08300184
- .4byte gUnknown_08300188
- .4byte gUnknown_0830018C
- .4byte gUnknown_08300190
- .4byte gUnknown_08300194
- .4byte gUnknown_08300198
- .4byte gUnknown_0830019C
- .4byte gUnknown_083001A0
- .4byte gUnknown_083001A4
- .4byte gUnknown_083001A8
- .4byte gUnknown_083001AC
- .4byte gUnknown_083001B0
- .4byte gUnknown_083001B4
- .4byte gUnknown_083001B8
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001BC
- .4byte gUnknown_083001C0
- .4byte gUnknown_083001C4
- .4byte gUnknown_083001C8
- .4byte gUnknown_083001CC
- .4byte gUnknown_083001D0
- .4byte gUnknown_083001D4
- .4byte gUnknown_083001E8
- .4byte gUnknown_083001EC
- .4byte gUnknown_083001FC
- .4byte gUnknown_08300200
- .4byte gUnknown_0830020C
- .4byte gUnknown_08300214
- .4byte gUnknown_0830021C
- .4byte gUnknown_08300224
- .4byte gUnknown_08300230
- .4byte gUnknown_0830023C
- .4byte gUnknown_08300248
- .4byte gUnknown_08300254
- .4byte gUnknown_08300260
- .4byte gUnknown_08300264
- .4byte gUnknown_0830026C
- .4byte gUnknown_08300278
- .4byte gUnknown_08300280
- .4byte gUnknown_08300288
- .4byte gUnknown_08300294
- .4byte gUnknown_08300298
- .4byte gUnknown_0830029C
- .4byte gUnknown_083002A0
- .4byte gUnknown_083002A8
- .4byte gUnknown_083002B0
- .4byte gUnknown_083002B8
- .4byte gUnknown_083002C0
- .4byte gUnknown_083002C4
- .4byte gUnknown_083002CC
- .4byte gUnknown_083002D8
- .4byte gUnknown_083002E4
- .4byte gUnknown_083002F0
- .4byte gUnknown_08300304
- .4byte gUnknown_08300308
- .4byte gUnknown_08300310
- .4byte gUnknown_08300318
- .4byte gUnknown_0830032C
- .4byte gUnknown_08300334
- .4byte gUnknown_0830033C
- .4byte gUnknown_08300344
- .4byte gUnknown_08300348
- .4byte gUnknown_08300354
- .4byte gUnknown_08300358
- .4byte gUnknown_0830035C
- .4byte gUnknown_08300368
- .4byte gUnknown_0830036C
- .4byte gUnknown_08300370
- .4byte gUnknown_0830037C
- .4byte gUnknown_08300388
- .4byte gUnknown_08300394
- .4byte gUnknown_083003A0
- .4byte gUnknown_083003A8
- .4byte gUnknown_083003B0
- .4byte gUnknown_083003B8
- .4byte gUnknown_083003C0
- .4byte gUnknown_083003C8
- .4byte gUnknown_083003D4
- .4byte gUnknown_083003DC
- .4byte gUnknown_083003E8
- .4byte gUnknown_083003F0
- .4byte gUnknown_083003F8
- .4byte gUnknown_08300400
- .4byte gUnknown_0830040C
- .4byte gUnknown_08300410
- .4byte gUnknown_08300414
- .4byte gUnknown_08300418
- .4byte gUnknown_0830041C
- .4byte gUnknown_08300420
- .4byte gUnknown_08300424
- .4byte gUnknown_08300438
- .4byte gUnknown_08300444
- .4byte gUnknown_0830044C
- .4byte gUnknown_08300454
- .4byte gUnknown_0830045C
- .4byte gUnknown_08300464
- .4byte gUnknown_0830046C
- .4byte gUnknown_08300474
- .4byte gUnknown_08300480
- .4byte gUnknown_08300488
- .4byte gUnknown_08300494
- .4byte gUnknown_083004A0
- .4byte gUnknown_083004AC
- .4byte gUnknown_083004B0
- .4byte gUnknown_083004B8
- .4byte gUnknown_083004C0
- .4byte gUnknown_083004C8
- .4byte gUnknown_083004D0
- .4byte gUnknown_083004D8
- .4byte gUnknown_083004E0
- .4byte gUnknown_083004E4
- .4byte gUnknown_083004E8
- .4byte gUnknown_083004EC
- .4byte gUnknown_083004F4
- .4byte gUnknown_083004F8
- .4byte gUnknown_083004FC
- .4byte gUnknown_08300504
- .4byte gUnknown_08300510
- .4byte gUnknown_08300518
- .4byte gUnknown_0830051C
- .4byte gUnknown_08300520
- .4byte gUnknown_08300524
- .4byte gUnknown_0830052C
- .4byte gUnknown_08300534
- .4byte gUnknown_0830053C
- .4byte gUnknown_08300550
- .4byte gUnknown_08300558
- .4byte gUnknown_08300560
- .4byte gUnknown_08300564
- .4byte gUnknown_08300568
- .4byte gUnknown_0830056C
- .4byte gUnknown_08300570
- .4byte gUnknown_08300574
- .4byte gUnknown_08300578
- .4byte gUnknown_0830057C
- .4byte gUnknown_08300588
- .4byte gUnknown_0830058C
- .4byte gUnknown_08300598
- .4byte gUnknown_0830059C
- .4byte gUnknown_083005A0
- .4byte gUnknown_083005A4
- .4byte gUnknown_083005AC
- .4byte gUnknown_083005B4
- .4byte gUnknown_083005C0
- .4byte gUnknown_083005C4
- .4byte gUnknown_083005C8
- .4byte gUnknown_083005D4
- .4byte gUnknown_083005D8
- .4byte gUnknown_083005DC
- .4byte gUnknown_083005E4
- .4byte gUnknown_083005E8
- .4byte gUnknown_083005EC
- .4byte gUnknown_083005EC
- .4byte gUnknown_083005F0
- .4byte gUnknown_083005F4
- .4byte gUnknown_083005F8
- .4byte gUnknown_083005FC
- .4byte gUnknown_08300600
- .4byte gUnknown_08300604
- .4byte gUnknown_08300608
- .4byte gUnknown_0830060C
- .4byte gUnknown_08300610
- .4byte gUnknown_08300614
- .4byte gUnknown_08300618
- .4byte gUnknown_0830061C
- .4byte gUnknown_08300620
- .4byte gUnknown_08300624
- .4byte gUnknown_08300628
- .4byte gUnknown_0830062C
- .4byte gUnknown_08300630
- .4byte gUnknown_08300634
- .4byte gUnknown_08300638
- .4byte gUnknown_0830063C
- .4byte gUnknown_08300640
- .4byte gUnknown_08300644
- .4byte gUnknown_08300648
- .4byte gUnknown_0830064C
- .4byte gUnknown_08300650
- .4byte gUnknown_08300654
-
- .align 2
-gMonFrontPicCoords:: @ 8300D38
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x45, 0x0e, 0x00, 0x00
- .byte 0x56, 0x0a, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x55, 0x0c, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x45, 0x10, 0x00, 0x00
- .byte 0x54, 0x14, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x54, 0x12, 0x00, 0x00
- .byte 0x45, 0x0e, 0x00, 0x00
- .byte 0x86, 0x09, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x67, 0x0b, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x44, 0x10, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x45, 0x0f, 0x00, 0x00
- .byte 0x78, 0x00, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x67, 0x09, 0x00, 0x00
- .byte 0x67, 0x04, 0x00, 0x00
- .byte 0x55, 0x0e, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x45, 0x0f, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x78, 0x03, 0x00, 0x00
- .byte 0x55, 0x0c, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x78, 0x02, 0x00, 0x00
- .byte 0x55, 0x10, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x45, 0x10, 0x00, 0x00
- .byte 0x67, 0x08, 0x00, 0x00
- .byte 0x67, 0x06, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x45, 0x0f, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x55, 0x0f, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x54, 0x12, 0x00, 0x00
- .byte 0x75, 0x0d, 0x00, 0x00
- .byte 0x55, 0x0c, 0x00, 0x00
- .byte 0x77, 0x07, 0x00, 0x00
- .byte 0x56, 0x09, 0x00, 0x00
- .byte 0x78, 0x02, 0x00, 0x00
- .byte 0x65, 0x0e, 0x00, 0x00
- .byte 0x77, 0x07, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x74, 0x13, 0x00, 0x00
- .byte 0x76, 0x0a, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x56, 0x0b, 0x00, 0x00
- .byte 0x67, 0x06, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x65, 0x0f, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x46, 0x09, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x54, 0x12, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x43, 0x15, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x57, 0x05, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x76, 0x0a, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x55, 0x10, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x78, 0x02, 0x00, 0x00
- .byte 0x77, 0x07, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x44, 0x13, 0x00, 0x00
- .byte 0x55, 0x0e, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x55, 0x0f, 0x00, 0x00
- .byte 0x76, 0x0b, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x67, 0x04, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x67, 0x07, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x45, 0x0f, 0x00, 0x00
- .byte 0x67, 0x07, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x78, 0x02, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x78, 0x00, 0x00, 0x00
- .byte 0x67, 0x06, 0x00, 0x00
- .byte 0x88, 0x08, 0x00, 0x00
- .byte 0x85, 0x0d, 0x00, 0x00
- .byte 0x54, 0x11, 0x00, 0x00
- .byte 0x56, 0x09, 0x00, 0x00
- .byte 0x67, 0x06, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x55, 0x0d, 0x00, 0x00
- .byte 0x45, 0x0f, 0x00, 0x00
- .byte 0x67, 0x07, 0x00, 0x00
- .byte 0x54, 0x11, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x75, 0x0e, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x55, 0x0d, 0x00, 0x00
- .byte 0x75, 0x0d, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x55, 0x0e, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x78, 0x00, 0x00, 0x00
- .byte 0x55, 0x0f, 0x00, 0x00
- .byte 0x67, 0x06, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x47, 0x04, 0x00, 0x00
- .byte 0x67, 0x07, 0x00, 0x00
- .byte 0x55, 0x0d, 0x00, 0x00
- .byte 0x58, 0x03, 0x00, 0x00
- .byte 0x56, 0x0c, 0x00, 0x00
- .byte 0x67, 0x04, 0x00, 0x00
- .byte 0x54, 0x13, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x75, 0x10, 0x00, 0x00
- .byte 0x87, 0x0b, 0x00, 0x00
- .byte 0x45, 0x0c, 0x00, 0x00
- .byte 0x44, 0x14, 0x00, 0x00
- .byte 0x44, 0x12, 0x00, 0x00
- .byte 0x34, 0x14, 0x00, 0x00
- .byte 0x46, 0x09, 0x00, 0x00
- .byte 0x44, 0x14, 0x00, 0x00
- .byte 0x47, 0x07, 0x00, 0x00
- .byte 0x55, 0x10, 0x00, 0x00
- .byte 0x56, 0x0a, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x45, 0x0e, 0x00, 0x00
- .byte 0x65, 0x0e, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x67, 0x06, 0x00, 0x00
- .byte 0x67, 0x06, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x55, 0x0f, 0x00, 0x00
- .byte 0x77, 0x07, 0x00, 0x00
- .byte 0x58, 0x03, 0x00, 0x00
- .byte 0x44, 0x10, 0x00, 0x00
- .byte 0x56, 0x08, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x54, 0x10, 0x00, 0x00
- .byte 0x77, 0x07, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x67, 0x08, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x58, 0x01, 0x00, 0x00
- .byte 0x55, 0x0c, 0x00, 0x00
- .byte 0x35, 0x0f, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x56, 0x0a, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x74, 0x11, 0x00, 0x00
- .byte 0x78, 0x03, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x55, 0x0d, 0x00, 0x00
- .byte 0x57, 0x06, 0x00, 0x00
- .byte 0x56, 0x0a, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x67, 0x05, 0x00, 0x00
- .byte 0x45, 0x0d, 0x00, 0x00
- .byte 0x78, 0x01, 0x00, 0x00
- .byte 0x45, 0x0d, 0x00, 0x00
- .byte 0x57, 0x0d, 0x00, 0x00
- .byte 0x43, 0x14, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x55, 0x0e, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x56, 0x08, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x56, 0x0b, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x78, 0x04, 0x00, 0x00
- .byte 0x54, 0x10, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x55, 0x0f, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x46, 0x09, 0x00, 0x00
- .byte 0x67, 0x05, 0x00, 0x00
- .byte 0x35, 0x0f, 0x00, 0x00
- .byte 0x76, 0x0a, 0x00, 0x00
- .byte 0x45, 0x0d, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x46, 0x09, 0x00, 0x00
- .byte 0x56, 0x09, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x55, 0x0e, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x56, 0x08, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x56, 0x0c, 0x00, 0x00
- .byte 0x67, 0x06, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x55, 0x0c, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x85, 0x0f, 0x00, 0x00
- .byte 0x78, 0x03, 0x00, 0x00
- .byte 0x45, 0x0e, 0x00, 0x00
- .byte 0x75, 0x11, 0x00, 0x00
- .byte 0x86, 0x09, 0x00, 0x00
- .byte 0x74, 0x10, 0x00, 0x00
- .byte 0x86, 0x0f, 0x00, 0x00
- .byte 0x65, 0x0e, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x46, 0x10, 0x00, 0x00
- .byte 0x56, 0x08, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x74, 0x12, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x64, 0x10, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x54, 0x10, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x68, 0x08, 0x00, 0x00
- .byte 0x84, 0x18, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x65, 0x0f, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x75, 0x0f, 0x00, 0x00
- .byte 0x87, 0x0a, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x67, 0x07, 0x00, 0x00
- .byte 0x55, 0x10, 0x00, 0x00
- .byte 0x78, 0x06, 0x00, 0x00
- .byte 0x56, 0x0c, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x46, 0x0b, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x46, 0x18, 0x00, 0x00
- .byte 0x66, 0x0c, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x46, 0x0d, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x67, 0x06, 0x00, 0x00
- .byte 0x78, 0x03, 0x00, 0x00
- .byte 0x54, 0x10, 0x00, 0x00
- .byte 0x86, 0x0c, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x64, 0x12, 0x00, 0x00
- .byte 0x67, 0x04, 0x00, 0x00
- .byte 0x65, 0x0f, 0x00, 0x00
- .byte 0x87, 0x09, 0x00, 0x00
- .byte 0x65, 0x10, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x74, 0x10, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x56, 0x0b, 0x00, 0x00
- .byte 0x76, 0x0a, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x55, 0x0f, 0x00, 0x00
- .byte 0x46, 0x09, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x56, 0x0e, 0x00, 0x00
- .byte 0x66, 0x0c, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x68, 0x01, 0x00, 0x00
- .byte 0x76, 0x11, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x55, 0x0c, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x74, 0x12, 0x00, 0x00
- .byte 0x78, 0x00, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x55, 0x12, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x55, 0x0e, 0x00, 0x00
- .byte 0x78, 0x03, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x55, 0x0e, 0x00, 0x00
- .byte 0x78, 0x03, 0x00, 0x00
- .byte 0x86, 0x0b, 0x00, 0x00
- .byte 0x68, 0x00, 0x00, 0x00
- .byte 0x56, 0x0e, 0x00, 0x00
- .byte 0x55, 0x0c, 0x00, 0x00
- .byte 0x77, 0x08, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x77, 0x0b, 0x00, 0x00
- .byte 0x43, 0x14, 0x00, 0x00
- .byte 0x75, 0x0d, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x34, 0x11, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x56, 0x08, 0x00, 0x00
- .byte 0x67, 0x07, 0x00, 0x00
- .byte 0x78, 0x00, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x35, 0x0f, 0x00, 0x00
- .byte 0x47, 0x06, 0x00, 0x00
- .byte 0x78, 0x01, 0x00, 0x00
- .byte 0x56, 0x0b, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x55, 0x0f, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x78, 0x04, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x66, 0x0d, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x37, 0x06, 0x00, 0x00
- .byte 0x33, 0x14, 0x00, 0x00
- .byte 0x34, 0x10, 0x00, 0x00
- .byte 0x44, 0x10, 0x00, 0x00
- .byte 0x44, 0x10, 0x00, 0x00
- .byte 0x44, 0x11, 0x00, 0x00
- .byte 0x44, 0x11, 0x00, 0x00
- .byte 0x35, 0x0e, 0x00, 0x00
- .byte 0x44, 0x10, 0x00, 0x00
- .byte 0x34, 0x10, 0x00, 0x00
- .byte 0x34, 0x11, 0x00, 0x00
- .byte 0x44, 0x11, 0x00, 0x00
- .byte 0x34, 0x13, 0x00, 0x00
- .byte 0x44, 0x13, 0x00, 0x00
- .byte 0x43, 0x14, 0x00, 0x00
- .byte 0x44, 0x10, 0x00, 0x00
- .byte 0x34, 0x13, 0x00, 0x00
- .byte 0x43, 0x15, 0x00, 0x00
- .byte 0x34, 0x13, 0x00, 0x00
- .byte 0x45, 0x0c, 0x00, 0x00
- .byte 0x34, 0x12, 0x00, 0x00
- .byte 0x44, 0x12, 0x00, 0x00
- .byte 0x44, 0x12, 0x00, 0x00
- .byte 0x44, 0x13, 0x00, 0x00
- .byte 0x33, 0x15, 0x00, 0x00
- .byte 0x34, 0x11, 0x00, 0x00
- .byte 0x34, 0x10, 0x00, 0x00
- .byte 0x35, 0x0f, 0x00, 0x00
- .byte 0x35, 0x0d, 0x00, 0x00
-
-@ 8301418
- .include "data/graphics/pokemon/still_front_pic_table.inc"
-
- .align 2
-gUnknown_083021D8:: @ 83021D8
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x64, 0x10, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x65, 0x0e, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x65, 0x0e, 0x00, 0x00
- .byte 0x76, 0x0a, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x55, 0x0f, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x56, 0x0b, 0x00, 0x00
- .byte 0x46, 0x0a, 0x00, 0x00
- .byte 0x86, 0x09, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x85, 0x0c, 0x00, 0x00
- .byte 0x78, 0x02, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x75, 0x0d, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x77, 0x07, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x86, 0x09, 0x00, 0x00
- .byte 0x55, 0x0c, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x56, 0x08, 0x00, 0x00
- .byte 0x86, 0x09, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x76, 0x0a, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x76, 0x0b, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x56, 0x0b, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x63, 0x14, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x54, 0x10, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x67, 0x07, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x76, 0x0b, 0x00, 0x00
- .byte 0x77, 0x07, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x74, 0x10, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x86, 0x0b, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x67, 0x05, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x67, 0x04, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x56, 0x0a, 0x00, 0x00
- .byte 0x86, 0x0b, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x75, 0x0c, 0x00, 0x00
- .byte 0x84, 0x10, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x85, 0x0e, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x43, 0x14, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x75, 0x0c, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x76, 0x0b, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x85, 0x0e, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x78, 0x00, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x55, 0x0e, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x65, 0x0e, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x85, 0x0c, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x86, 0x0b, 0x00, 0x00
- .byte 0x85, 0x0e, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x76, 0x0b, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x85, 0x0e, 0x00, 0x00
- .byte 0x85, 0x0d, 0x00, 0x00
- .byte 0x77, 0x07, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x85, 0x0d, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x78, 0x00, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x54, 0x11, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x67, 0x05, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x86, 0x0b, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x76, 0x0b, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x78, 0x00, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x78, 0x01, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x56, 0x0a, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x78, 0x00, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x67, 0x07, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x67, 0x05, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x68, 0x03, 0x00, 0x00
- .byte 0x76, 0x0b, 0x00, 0x00
- .byte 0x77, 0x07, 0x00, 0x00
- .byte 0x73, 0x15, 0x00, 0x00
- .byte 0x86, 0x0b, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x65, 0x0f, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x54, 0x10, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x54, 0x11, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x75, 0x0c, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x56, 0x0a, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x85, 0x0f, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x76, 0x0b, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x66, 0x09, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x36, 0x08, 0x00, 0x00
- .byte 0x75, 0x0c, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x65, 0x0f, 0x00, 0x00
- .byte 0x84, 0x10, 0x00, 0x00
- .byte 0x85, 0x0f, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x76, 0x0a, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x77, 0x07, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x56, 0x0b, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x63, 0x15, 0x00, 0x00
- .byte 0x75, 0x0d, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x75, 0x0d, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x67, 0x06, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x55, 0x0c, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x65, 0x0e, 0x00, 0x00
- .byte 0x85, 0x0d, 0x00, 0x00
- .byte 0x76, 0x0a, 0x00, 0x00
- .byte 0x78, 0x03, 0x00, 0x00
- .byte 0x76, 0x0a, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x56, 0x09, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x85, 0x0d, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x67, 0x05, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x67, 0x05, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x76, 0x09, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x76, 0x0b, 0x00, 0x00
- .byte 0x85, 0x0f, 0x00, 0x00
- .byte 0x76, 0x0b, 0x00, 0x00
- .byte 0x83, 0x15, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x73, 0x14, 0x00, 0x00
- .byte 0x83, 0x14, 0x00, 0x00
- .byte 0x75, 0x0f, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x86, 0x09, 0x00, 0x00
- .byte 0x76, 0x0a, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x83, 0x14, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x64, 0x11, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x85, 0x0d, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x85, 0x0e, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x86, 0x0b, 0x00, 0x00
- .byte 0x88, 0x00, 0x00, 0x00
- .byte 0x83, 0x15, 0x00, 0x00
- .byte 0x83, 0x16, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x85, 0x0c, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x46, 0x0a, 0x00, 0x00
- .byte 0x77, 0x07, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x67, 0x07, 0x00, 0x00
- .byte 0x68, 0x02, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x75, 0x0e, 0x00, 0x00
- .byte 0x74, 0x11, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x76, 0x0b, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x84, 0x10, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x86, 0x0b, 0x00, 0x00
- .byte 0x84, 0x13, 0x00, 0x00
- .byte 0x64, 0x12, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x85, 0x0f, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x76, 0x0a, 0x00, 0x00
- .byte 0x85, 0x0c, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x56, 0x0b, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x87, 0x04, 0x00, 0x00
- .byte 0x76, 0x0b, 0x00, 0x00
- .byte 0x68, 0x03, 0x00, 0x00
- .byte 0x86, 0x09, 0x00, 0x00
- .byte 0x87, 0x06, 0x00, 0x00
- .byte 0x77, 0x07, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x85, 0x0f, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x86, 0x08, 0x00, 0x00
- .byte 0x66, 0x0b, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x85, 0x0d, 0x00, 0x00
- .byte 0x86, 0x09, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x85, 0x0d, 0x00, 0x00
- .byte 0x68, 0x02, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x78, 0x03, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x65, 0x0c, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x88, 0x01, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x54, 0x11, 0x00, 0x00
- .byte 0x84, 0x11, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x45, 0x0d, 0x00, 0x00
- .byte 0x76, 0x08, 0x00, 0x00
- .byte 0x67, 0x06, 0x00, 0x00
- .byte 0x86, 0x09, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x83, 0x17, 0x00, 0x00
- .byte 0x77, 0x05, 0x00, 0x00
- .byte 0x45, 0x0d, 0x00, 0x00
- .byte 0x57, 0x06, 0x00, 0x00
- .byte 0x77, 0x04, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x85, 0x0d, 0x00, 0x00
- .byte 0x77, 0x06, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x84, 0x10, 0x00, 0x00
- .byte 0x83, 0x14, 0x00, 0x00
- .byte 0x86, 0x0a, 0x00, 0x00
- .byte 0x85, 0x0e, 0x00, 0x00
- .byte 0x85, 0x0e, 0x00, 0x00
- .byte 0x84, 0x13, 0x00, 0x00
- .byte 0x87, 0x07, 0x00, 0x00
- .byte 0x78, 0x00, 0x00, 0x00
- .byte 0x88, 0x02, 0x00, 0x00
- .byte 0x88, 0x03, 0x00, 0x00
- .byte 0x87, 0x05, 0x00, 0x00
- .byte 0x86, 0x09, 0x00, 0x00
- .byte 0x47, 0x07, 0x00, 0x00
- .byte 0x36, 0x0a, 0x00, 0x00
- .byte 0x56, 0x09, 0x00, 0x00
- .byte 0x67, 0x06, 0x00, 0x00
- .byte 0x56, 0x08, 0x00, 0x00
- .byte 0x56, 0x0a, 0x00, 0x00
- .byte 0x66, 0x0a, 0x00, 0x00
- .byte 0x57, 0x05, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x37, 0x07, 0x00, 0x00
- .byte 0x46, 0x09, 0x00, 0x00
- .byte 0x57, 0x07, 0x00, 0x00
- .byte 0x46, 0x0a, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x66, 0x08, 0x00, 0x00
- .byte 0x46, 0x0a, 0x00, 0x00
- .byte 0x55, 0x0f, 0x00, 0x00
- .byte 0x45, 0x0c, 0x00, 0x00
- .byte 0x57, 0x04, 0x00, 0x00
- .byte 0x45, 0x0d, 0x00, 0x00
- .byte 0x65, 0x0d, 0x00, 0x00
- .byte 0x56, 0x0b, 0x00, 0x00
- .byte 0x55, 0x0d, 0x00, 0x00
- .byte 0x55, 0x0f, 0x00, 0x00
- .byte 0x46, 0x0a, 0x00, 0x00
- .byte 0x46, 0x0a, 0x00, 0x00
- .byte 0x37, 0x06, 0x00, 0x00
- .byte 0x47, 0x06, 0x00, 0x00
diff --git a/data/graphics/pokemon/still_front_pic_table.inc b/data/graphics/pokemon/still_front_pic_table.inc
deleted file mode 100644
index 448729955..000000000
--- a/data/graphics/pokemon/still_front_pic_table.inc
+++ /dev/null
@@ -1,442 +0,0 @@
- .align 2
-gMonStillFrontPicTable:: @ 8301418
- obj_tiles gMonStillFrontPic_CircledQuestionMark, 0x800, 0
- obj_tiles gMonStillFrontPic_Bulbasaur, 0x800, 1
- obj_tiles gMonStillFrontPic_Ivysaur, 0x800, 2
- obj_tiles gMonStillFrontPic_Venusaur, 0x800, 3
- obj_tiles gMonStillFrontPic_Charmander, 0x800, 4
- obj_tiles gMonStillFrontPic_Charmeleon, 0x800, 5
- obj_tiles gMonStillFrontPic_Charizard, 0x800, 6
- obj_tiles gMonStillFrontPic_Squirtle, 0x800, 7
- obj_tiles gMonStillFrontPic_Wartortle, 0x800, 8
- obj_tiles gMonStillFrontPic_Blastoise, 0x800, 9
- obj_tiles gMonStillFrontPic_Caterpie, 0x800, 10
- obj_tiles gMonStillFrontPic_Metapod, 0x800, 11
- obj_tiles gMonStillFrontPic_Butterfree, 0x800, 12
- obj_tiles gMonStillFrontPic_Weedle, 0x800, 13
- obj_tiles gMonStillFrontPic_Kakuna, 0x800, 14
- obj_tiles gMonStillFrontPic_Beedrill, 0x800, 15
- obj_tiles gMonStillFrontPic_Pidgey, 0x800, 16
- obj_tiles gMonStillFrontPic_Pidgeotto, 0x800, 17
- obj_tiles gMonStillFrontPic_Pidgeot, 0x800, 18
- obj_tiles gMonStillFrontPic_Rattata, 0x800, 19
- obj_tiles gMonStillFrontPic_Raticate, 0x800, 20
- obj_tiles gMonStillFrontPic_Spearow, 0x800, 21
- obj_tiles gMonStillFrontPic_Fearow, 0x800, 22
- obj_tiles gMonStillFrontPic_Ekans, 0x800, 23
- obj_tiles gMonStillFrontPic_Arbok, 0x800, 24
- obj_tiles gMonStillFrontPic_Pikachu, 0x800, 25
- obj_tiles gMonStillFrontPic_Raichu, 0x800, 26
- obj_tiles gMonStillFrontPic_Sandshrew, 0x800, 27
- obj_tiles gMonStillFrontPic_Sandslash, 0x800, 28
- obj_tiles gMonStillFrontPic_NidoranF, 0x800, 29
- obj_tiles gMonStillFrontPic_Nidorina, 0x800, 30
- obj_tiles gMonStillFrontPic_Nidoqueen, 0x800, 31
- obj_tiles gMonStillFrontPic_NidoranM, 0x800, 32
- obj_tiles gMonStillFrontPic_Nidorino, 0x800, 33
- obj_tiles gMonStillFrontPic_Nidoking, 0x800, 34
- obj_tiles gMonStillFrontPic_Clefairy, 0x800, 35
- obj_tiles gMonStillFrontPic_Clefable, 0x800, 36
- obj_tiles gMonStillFrontPic_Vulpix, 0x800, 37
- obj_tiles gMonStillFrontPic_Ninetales, 0x800, 38
- obj_tiles gMonStillFrontPic_Jigglypuff, 0x800, 39
- obj_tiles gMonStillFrontPic_Wigglytuff, 0x800, 40
- obj_tiles gMonStillFrontPic_Zubat, 0x800, 41
- obj_tiles gMonStillFrontPic_Golbat, 0x800, 42
- obj_tiles gMonStillFrontPic_Oddish, 0x800, 43
- obj_tiles gMonStillFrontPic_Gloom, 0x800, 44
- obj_tiles gMonStillFrontPic_Vileplume, 0x800, 45
- obj_tiles gMonStillFrontPic_Paras, 0x800, 46
- obj_tiles gMonStillFrontPic_Parasect, 0x800, 47
- obj_tiles gMonStillFrontPic_Venonat, 0x800, 48
- obj_tiles gMonStillFrontPic_Venomoth, 0x800, 49
- obj_tiles gMonStillFrontPic_Diglett, 0x800, 50
- obj_tiles gMonStillFrontPic_Dugtrio, 0x800, 51
- obj_tiles gMonStillFrontPic_Meowth, 0x800, 52
- obj_tiles gMonStillFrontPic_Persian, 0x800, 53
- obj_tiles gMonStillFrontPic_Psyduck, 0x800, 54
- obj_tiles gMonStillFrontPic_Golduck, 0x800, 55
- obj_tiles gMonStillFrontPic_Mankey, 0x800, 56
- obj_tiles gMonStillFrontPic_Primeape, 0x800, 57
- obj_tiles gMonStillFrontPic_Growlithe, 0x800, 58
- obj_tiles gMonStillFrontPic_Arcanine, 0x800, 59
- obj_tiles gMonStillFrontPic_Poliwag, 0x800, 60
- obj_tiles gMonStillFrontPic_Poliwhirl, 0x800, 61
- obj_tiles gMonStillFrontPic_Poliwrath, 0x800, 62
- obj_tiles gMonStillFrontPic_Abra, 0x800, 63
- obj_tiles gMonStillFrontPic_Kadabra, 0x800, 64
- obj_tiles gMonStillFrontPic_Alakazam, 0x800, 65
- obj_tiles gMonStillFrontPic_Machop, 0x800, 66
- obj_tiles gMonStillFrontPic_Machoke, 0x800, 67
- obj_tiles gMonStillFrontPic_Machamp, 0x800, 68
- obj_tiles gMonStillFrontPic_Bellsprout, 0x800, 69
- obj_tiles gMonStillFrontPic_Weepinbell, 0x800, 70
- obj_tiles gMonStillFrontPic_Victreebel, 0x800, 71
- obj_tiles gMonStillFrontPic_Tentacool, 0x800, 72
- obj_tiles gMonStillFrontPic_Tentacruel, 0x800, 73
- obj_tiles gMonStillFrontPic_Geodude, 0x800, 74
- obj_tiles gMonStillFrontPic_Graveler, 0x800, 75
- obj_tiles gMonStillFrontPic_Golem, 0x800, 76
- obj_tiles gMonStillFrontPic_Ponyta, 0x800, 77
- obj_tiles gMonStillFrontPic_Rapidash, 0x800, 78
- obj_tiles gMonStillFrontPic_Slowpoke, 0x800, 79
- obj_tiles gMonStillFrontPic_Slowbro, 0x800, 80
- obj_tiles gMonStillFrontPic_Magnemite, 0x800, 81
- obj_tiles gMonStillFrontPic_Magneton, 0x800, 82
- obj_tiles gMonStillFrontPic_Farfetchd, 0x800, 83
- obj_tiles gMonStillFrontPic_Doduo, 0x800, 84
- obj_tiles gMonStillFrontPic_Dodrio, 0x800, 85
- obj_tiles gMonStillFrontPic_Seel, 0x800, 86
- obj_tiles gMonStillFrontPic_Dewgong, 0x800, 87
- obj_tiles gMonStillFrontPic_Grimer, 0x800, 88
- obj_tiles gMonStillFrontPic_Muk, 0x800, 89
- obj_tiles gMonStillFrontPic_Shellder, 0x800, 90
- obj_tiles gMonStillFrontPic_Cloyster, 0x800, 91
- obj_tiles gMonStillFrontPic_Gastly, 0x800, 92
- obj_tiles gMonStillFrontPic_Haunter, 0x800, 93
- obj_tiles gMonStillFrontPic_Gengar, 0x800, 94
- obj_tiles gMonStillFrontPic_Onix, 0x800, 95
- obj_tiles gMonStillFrontPic_Drowzee, 0x800, 96
- obj_tiles gMonStillFrontPic_Hypno, 0x800, 97
- obj_tiles gMonStillFrontPic_Krabby, 0x800, 98
- obj_tiles gMonStillFrontPic_Kingler, 0x800, 99
- obj_tiles gMonStillFrontPic_Voltorb, 0x800, 100
- obj_tiles gMonStillFrontPic_Electrode, 0x800, 101
- obj_tiles gMonStillFrontPic_Exeggcute, 0x800, 102
- obj_tiles gMonStillFrontPic_Exeggutor, 0x800, 103
- obj_tiles gMonStillFrontPic_Cubone, 0x800, 104
- obj_tiles gMonStillFrontPic_Marowak, 0x800, 105
- obj_tiles gMonStillFrontPic_Hitmonlee, 0x800, 106
- obj_tiles gMonStillFrontPic_Hitmonchan, 0x800, 107
- obj_tiles gMonStillFrontPic_Lickitung, 0x800, 108
- obj_tiles gMonStillFrontPic_Koffing, 0x800, 109
- obj_tiles gMonStillFrontPic_Weezing, 0x800, 110
- obj_tiles gMonStillFrontPic_Rhyhorn, 0x800, 111
- obj_tiles gMonStillFrontPic_Rhydon, 0x800, 112
- obj_tiles gMonStillFrontPic_Chansey, 0x800, 113
- obj_tiles gMonStillFrontPic_Tangela, 0x800, 114
- obj_tiles gMonStillFrontPic_Kangaskhan, 0x800, 115
- obj_tiles gMonStillFrontPic_Horsea, 0x800, 116
- obj_tiles gMonStillFrontPic_Seadra, 0x800, 117
- obj_tiles gMonStillFrontPic_Goldeen, 0x800, 118
- obj_tiles gMonStillFrontPic_Seaking, 0x800, 119
- obj_tiles gMonStillFrontPic_Staryu, 0x800, 120
- obj_tiles gMonStillFrontPic_Starmie, 0x800, 121
- obj_tiles gMonStillFrontPic_Mrmime, 0x800, 122
- obj_tiles gMonStillFrontPic_Scyther, 0x800, 123
- obj_tiles gMonStillFrontPic_Jynx, 0x800, 124
- obj_tiles gMonStillFrontPic_Electabuzz, 0x800, 125
- obj_tiles gMonStillFrontPic_Magmar, 0x800, 126
- obj_tiles gMonStillFrontPic_Pinsir, 0x800, 127
- obj_tiles gMonStillFrontPic_Tauros, 0x800, 128
- obj_tiles gMonStillFrontPic_Magikarp, 0x800, 129
- obj_tiles gMonStillFrontPic_Gyarados, 0x800, 130
- obj_tiles gMonStillFrontPic_Lapras, 0x800, 131
- obj_tiles gMonStillFrontPic_Ditto, 0x800, 132
- obj_tiles gMonStillFrontPic_Eevee, 0x800, 133
- obj_tiles gMonStillFrontPic_Vaporeon, 0x800, 134
- obj_tiles gMonStillFrontPic_Jolteon, 0x800, 135
- obj_tiles gMonStillFrontPic_Flareon, 0x800, 136
- obj_tiles gMonStillFrontPic_Porygon, 0x800, 137
- obj_tiles gMonStillFrontPic_Omanyte, 0x800, 138
- obj_tiles gMonStillFrontPic_Omastar, 0x800, 139
- obj_tiles gMonStillFrontPic_Kabuto, 0x800, 140
- obj_tiles gMonStillFrontPic_Kabutops, 0x800, 141
- obj_tiles gMonStillFrontPic_Aerodactyl, 0x800, 142
- obj_tiles gMonStillFrontPic_Snorlax, 0x800, 143
- obj_tiles gMonStillFrontPic_Articuno, 0x800, 144
- obj_tiles gMonStillFrontPic_Zapdos, 0x800, 145
- obj_tiles gMonStillFrontPic_Moltres, 0x800, 146
- obj_tiles gMonStillFrontPic_Dratini, 0x800, 147
- obj_tiles gMonStillFrontPic_Dragonair, 0x800, 148
- obj_tiles gMonStillFrontPic_Dragonite, 0x800, 149
- obj_tiles gMonStillFrontPic_Mewtwo, 0x800, 150
- obj_tiles gMonStillFrontPic_Mew, 0x800, 151
- obj_tiles gMonStillFrontPic_Chikorita, 0x800, 152
- obj_tiles gMonStillFrontPic_Bayleef, 0x800, 153
- obj_tiles gMonStillFrontPic_Meganium, 0x800, 154
- obj_tiles gMonStillFrontPic_Cyndaquil, 0x800, 155
- obj_tiles gMonStillFrontPic_Quilava, 0x800, 156
- obj_tiles gMonStillFrontPic_Typhlosion, 0x800, 157
- obj_tiles gMonStillFrontPic_Totodile, 0x800, 158
- obj_tiles gMonStillFrontPic_Croconaw, 0x800, 159
- obj_tiles gMonStillFrontPic_Feraligatr, 0x800, 160
- obj_tiles gMonStillFrontPic_Sentret, 0x800, 161
- obj_tiles gMonStillFrontPic_Furret, 0x800, 162
- obj_tiles gMonStillFrontPic_Hoothoot, 0x800, 163
- obj_tiles gMonStillFrontPic_Noctowl, 0x800, 164
- obj_tiles gMonStillFrontPic_Ledyba, 0x800, 165
- obj_tiles gMonStillFrontPic_Ledian, 0x800, 166
- obj_tiles gMonStillFrontPic_Spinarak, 0x800, 167
- obj_tiles gMonStillFrontPic_Ariados, 0x800, 168
- obj_tiles gMonStillFrontPic_Crobat, 0x800, 169
- obj_tiles gMonStillFrontPic_Chinchou, 0x800, 170
- obj_tiles gMonStillFrontPic_Lanturn, 0x800, 171
- obj_tiles gMonStillFrontPic_Pichu, 0x800, 172
- obj_tiles gMonStillFrontPic_Cleffa, 0x800, 173
- obj_tiles gMonStillFrontPic_Igglybuff, 0x800, 174
- obj_tiles gMonStillFrontPic_Togepi, 0x800, 175
- obj_tiles gMonStillFrontPic_Togetic, 0x800, 176
- obj_tiles gMonStillFrontPic_Natu, 0x800, 177
- obj_tiles gMonStillFrontPic_Xatu, 0x800, 178
- obj_tiles gMonStillFrontPic_Mareep, 0x800, 179
- obj_tiles gMonStillFrontPic_Flaaffy, 0x800, 180
- obj_tiles gMonStillFrontPic_Ampharos, 0x800, 181
- obj_tiles gMonStillFrontPic_Bellossom, 0x800, 182
- obj_tiles gMonStillFrontPic_Marill, 0x800, 183
- obj_tiles gMonStillFrontPic_Azumarill, 0x800, 184
- obj_tiles gMonStillFrontPic_Sudowoodo, 0x800, 185
- obj_tiles gMonStillFrontPic_Politoed, 0x800, 186
- obj_tiles gMonStillFrontPic_Hoppip, 0x800, 187
- obj_tiles gMonStillFrontPic_Skiploom, 0x800, 188
- obj_tiles gMonStillFrontPic_Jumpluff, 0x800, 189
- obj_tiles gMonStillFrontPic_Aipom, 0x800, 190
- obj_tiles gMonStillFrontPic_Sunkern, 0x800, 191
- obj_tiles gMonStillFrontPic_Sunflora, 0x800, 192
- obj_tiles gMonStillFrontPic_Yanma, 0x800, 193
- obj_tiles gMonStillFrontPic_Wooper, 0x800, 194
- obj_tiles gMonStillFrontPic_Quagsire, 0x800, 195
- obj_tiles gMonStillFrontPic_Espeon, 0x800, 196
- obj_tiles gMonStillFrontPic_Umbreon, 0x800, 197
- obj_tiles gMonStillFrontPic_Murkrow, 0x800, 198
- obj_tiles gMonStillFrontPic_Slowking, 0x800, 199
- obj_tiles gMonStillFrontPic_Misdreavus, 0x800, 200
- obj_tiles gMonStillFrontPic_UnownA, 0x800, 201
- obj_tiles gMonStillFrontPic_Wobbuffet, 0x800, 202
- obj_tiles gMonStillFrontPic_Girafarig, 0x800, 203
- obj_tiles gMonStillFrontPic_Pineco, 0x800, 204
- obj_tiles gMonStillFrontPic_Forretress, 0x800, 205
- obj_tiles gMonStillFrontPic_Dunsparce, 0x800, 206
- obj_tiles gMonStillFrontPic_Gligar, 0x800, 207
- obj_tiles gMonStillFrontPic_Steelix, 0x800, 208
- obj_tiles gMonStillFrontPic_Snubbull, 0x800, 209
- obj_tiles gMonStillFrontPic_Granbull, 0x800, 210
- obj_tiles gMonStillFrontPic_Qwilfish, 0x800, 211
- obj_tiles gMonStillFrontPic_Scizor, 0x800, 212
- obj_tiles gMonStillFrontPic_Shuckle, 0x800, 213
- obj_tiles gMonStillFrontPic_Heracross, 0x800, 214
- obj_tiles gMonStillFrontPic_Sneasel, 0x800, 215
- obj_tiles gMonStillFrontPic_Teddiursa, 0x800, 216
- obj_tiles gMonStillFrontPic_Ursaring, 0x800, 217
- obj_tiles gMonStillFrontPic_Slugma, 0x800, 218
- obj_tiles gMonStillFrontPic_Magcargo, 0x800, 219
- obj_tiles gMonStillFrontPic_Swinub, 0x800, 220
- obj_tiles gMonStillFrontPic_Piloswine, 0x800, 221
- obj_tiles gMonStillFrontPic_Corsola, 0x800, 222
- obj_tiles gMonStillFrontPic_Remoraid, 0x800, 223
- obj_tiles gMonStillFrontPic_Octillery, 0x800, 224
- obj_tiles gMonStillFrontPic_Delibird, 0x800, 225
- obj_tiles gMonStillFrontPic_Mantine, 0x800, 226
- obj_tiles gMonStillFrontPic_Skarmory, 0x800, 227
- obj_tiles gMonStillFrontPic_Houndour, 0x800, 228
- obj_tiles gMonStillFrontPic_Houndoom, 0x800, 229
- obj_tiles gMonStillFrontPic_Kingdra, 0x800, 230
- obj_tiles gMonStillFrontPic_Phanpy, 0x800, 231
- obj_tiles gMonStillFrontPic_Donphan, 0x800, 232
- obj_tiles gMonStillFrontPic_Porygon2, 0x800, 233
- obj_tiles gMonStillFrontPic_Stantler, 0x800, 234
- obj_tiles gMonStillFrontPic_Smeargle, 0x800, 235
- obj_tiles gMonStillFrontPic_Tyrogue, 0x800, 236
- obj_tiles gMonStillFrontPic_Hitmontop, 0x800, 237
- obj_tiles gMonStillFrontPic_Smoochum, 0x800, 238
- obj_tiles gMonStillFrontPic_Elekid, 0x800, 239
- obj_tiles gMonStillFrontPic_Magby, 0x800, 240
- obj_tiles gMonStillFrontPic_Miltank, 0x800, 241
- obj_tiles gMonStillFrontPic_Blissey, 0x800, 242
- obj_tiles gMonStillFrontPic_Raikou, 0x800, 243
- obj_tiles gMonStillFrontPic_Entei, 0x800, 244
- obj_tiles gMonStillFrontPic_Suicune, 0x800, 245
- obj_tiles gMonStillFrontPic_Larvitar, 0x800, 246
- obj_tiles gMonStillFrontPic_Pupitar, 0x800, 247
- obj_tiles gMonStillFrontPic_Tyranitar, 0x800, 248
- obj_tiles gMonStillFrontPic_Lugia, 0x800, 249
- obj_tiles gMonStillFrontPic_HoOh, 0x800, 250
- obj_tiles gMonStillFrontPic_Celebi, 0x800, 251
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 252
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 253
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 254
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 255
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 256
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 257
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 258
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 259
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 260
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 261
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 262
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 263
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 264
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 265
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 266
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 267
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 268
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 269
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 270
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 271
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 272
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 273
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 274
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 275
- obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 276
- obj_tiles gMonStillFrontPic_Treecko, 0x800, 277
- obj_tiles gMonStillFrontPic_Grovyle, 0x800, 278
- obj_tiles gMonStillFrontPic_Sceptile, 0x800, 279
- obj_tiles gMonStillFrontPic_Torchic, 0x800, 280
- obj_tiles gMonStillFrontPic_Combusken, 0x800, 281
- obj_tiles gMonStillFrontPic_Blaziken, 0x800, 282
- obj_tiles gMonStillFrontPic_Mudkip, 0x800, 283
- obj_tiles gMonStillFrontPic_Marshtomp, 0x800, 284
- obj_tiles gMonStillFrontPic_Swampert, 0x800, 285
- obj_tiles gMonStillFrontPic_Poochyena, 0x800, 286
- obj_tiles gMonStillFrontPic_Mightyena, 0x800, 287
- obj_tiles gMonStillFrontPic_Zigzagoon, 0x800, 288
- obj_tiles gMonStillFrontPic_Linoone, 0x800, 289
- obj_tiles gMonStillFrontPic_Wurmple, 0x800, 290
- obj_tiles gMonStillFrontPic_Silcoon, 0x800, 291
- obj_tiles gMonStillFrontPic_Beautifly, 0x800, 292
- obj_tiles gMonStillFrontPic_Cascoon, 0x800, 293
- obj_tiles gMonStillFrontPic_Dustox, 0x800, 294
- obj_tiles gMonStillFrontPic_Lotad, 0x800, 295
- obj_tiles gMonStillFrontPic_Lombre, 0x800, 296
- obj_tiles gMonStillFrontPic_Ludicolo, 0x800, 297
- obj_tiles gMonStillFrontPic_Seedot, 0x800, 298
- obj_tiles gMonStillFrontPic_Nuzleaf, 0x800, 299
- obj_tiles gMonStillFrontPic_Shiftry, 0x800, 300
- obj_tiles gMonStillFrontPic_Nincada, 0x800, 301
- obj_tiles gMonStillFrontPic_Ninjask, 0x800, 302
- obj_tiles gMonStillFrontPic_Shedinja, 0x800, 303
- obj_tiles gMonStillFrontPic_Taillow, 0x800, 304
- obj_tiles gMonStillFrontPic_Swellow, 0x800, 305
- obj_tiles gMonStillFrontPic_Shroomish, 0x800, 306
- obj_tiles gMonStillFrontPic_Breloom, 0x800, 307
- obj_tiles gMonStillFrontPic_Spinda, 0x800, 308
- obj_tiles gMonStillFrontPic_Wingull, 0x800, 309
- obj_tiles gMonStillFrontPic_Pelipper, 0x800, 310
- obj_tiles gMonStillFrontPic_Surskit, 0x800, 311
- obj_tiles gMonStillFrontPic_Masquerain, 0x800, 312
- obj_tiles gMonStillFrontPic_Wailmer, 0x800, 313
- obj_tiles gMonStillFrontPic_Wailord, 0x800, 314
- obj_tiles gMonStillFrontPic_Skitty, 0x800, 315
- obj_tiles gMonStillFrontPic_Delcatty, 0x800, 316
- obj_tiles gMonStillFrontPic_Kecleon, 0x800, 317
- obj_tiles gMonStillFrontPic_Baltoy, 0x800, 318
- obj_tiles gMonStillFrontPic_Claydol, 0x800, 319
- obj_tiles gMonStillFrontPic_Nosepass, 0x800, 320
- obj_tiles gMonStillFrontPic_Torkoal, 0x800, 321
- obj_tiles gMonStillFrontPic_Sableye, 0x800, 322
- obj_tiles gMonStillFrontPic_Barboach, 0x800, 323
- obj_tiles gMonStillFrontPic_Whiscash, 0x800, 324
- obj_tiles gMonStillFrontPic_Luvdisc, 0x800, 325
- obj_tiles gMonStillFrontPic_Corphish, 0x800, 326
- obj_tiles gMonStillFrontPic_Crawdaunt, 0x800, 327
- obj_tiles gMonStillFrontPic_Feebas, 0x800, 328
- obj_tiles gMonStillFrontPic_Milotic, 0x800, 329
- obj_tiles gMonStillFrontPic_Carvanha, 0x800, 330
- obj_tiles gMonStillFrontPic_Sharpedo, 0x800, 331
- obj_tiles gMonStillFrontPic_Trapinch, 0x800, 332
- obj_tiles gMonStillFrontPic_Vibrava, 0x800, 333
- obj_tiles gMonStillFrontPic_Flygon, 0x800, 334
- obj_tiles gMonStillFrontPic_Makuhita, 0x800, 335
- obj_tiles gMonStillFrontPic_Hariyama, 0x800, 336
- obj_tiles gMonStillFrontPic_Electrike, 0x800, 337
- obj_tiles gMonStillFrontPic_Manectric, 0x800, 338
- obj_tiles gMonStillFrontPic_Numel, 0x800, 339
- obj_tiles gMonStillFrontPic_Camerupt, 0x800, 340
- obj_tiles gMonStillFrontPic_Spheal, 0x800, 341
- obj_tiles gMonStillFrontPic_Sealeo, 0x800, 342
- obj_tiles gMonStillFrontPic_Walrein, 0x800, 343
- obj_tiles gMonStillFrontPic_Cacnea, 0x800, 344
- obj_tiles gMonStillFrontPic_Cacturne, 0x800, 345
- obj_tiles gMonStillFrontPic_Snorunt, 0x800, 346
- obj_tiles gMonStillFrontPic_Glalie, 0x800, 347
- obj_tiles gMonStillFrontPic_Lunatone, 0x800, 348
- obj_tiles gMonStillFrontPic_Solrock, 0x800, 349
- obj_tiles gMonStillFrontPic_Azurill, 0x800, 350
- obj_tiles gMonStillFrontPic_Spoink, 0x800, 351
- obj_tiles gMonStillFrontPic_Grumpig, 0x800, 352
- obj_tiles gMonStillFrontPic_Plusle, 0x800, 353
- obj_tiles gMonStillFrontPic_Minun, 0x800, 354
- obj_tiles gMonStillFrontPic_Mawile, 0x800, 355
- obj_tiles gMonStillFrontPic_Meditite, 0x800, 356
- obj_tiles gMonStillFrontPic_Medicham, 0x800, 357
- obj_tiles gMonStillFrontPic_Swablu, 0x800, 358
- obj_tiles gMonStillFrontPic_Altaria, 0x800, 359
- obj_tiles gMonStillFrontPic_Wynaut, 0x800, 360
- obj_tiles gMonStillFrontPic_Duskull, 0x800, 361
- obj_tiles gMonStillFrontPic_Dusclops, 0x800, 362
- obj_tiles gMonStillFrontPic_Roselia, 0x800, 363
- obj_tiles gMonStillFrontPic_Slakoth, 0x800, 364
- obj_tiles gMonStillFrontPic_Vigoroth, 0x800, 365
- obj_tiles gMonStillFrontPic_Slaking, 0x800, 366
- obj_tiles gMonStillFrontPic_Gulpin, 0x800, 367
- obj_tiles gMonStillFrontPic_Swalot, 0x800, 368
- obj_tiles gMonStillFrontPic_Tropius, 0x800, 369
- obj_tiles gMonStillFrontPic_Whismur, 0x800, 370
- obj_tiles gMonStillFrontPic_Loudred, 0x800, 371
- obj_tiles gMonStillFrontPic_Exploud, 0x800, 372
- obj_tiles gMonStillFrontPic_Clamperl, 0x800, 373
- obj_tiles gMonStillFrontPic_Huntail, 0x800, 374
- obj_tiles gMonStillFrontPic_Gorebyss, 0x800, 375
- obj_tiles gMonStillFrontPic_Absol, 0x800, 376
- obj_tiles gMonStillFrontPic_Shuppet, 0x800, 377
- obj_tiles gMonStillFrontPic_Banette, 0x800, 378
- obj_tiles gMonStillFrontPic_Seviper, 0x800, 379
- obj_tiles gMonStillFrontPic_Zangoose, 0x800, 380
- obj_tiles gMonStillFrontPic_Relicanth, 0x800, 381
- obj_tiles gMonStillFrontPic_Aron, 0x800, 382
- obj_tiles gMonStillFrontPic_Lairon, 0x800, 383
- obj_tiles gMonStillFrontPic_Aggron, 0x800, 384
- obj_tiles gMonStillFrontPic_Castform, 0x800, 385
- obj_tiles gMonStillFrontPic_Volbeat, 0x800, 386
- obj_tiles gMonStillFrontPic_Illumise, 0x800, 387
- obj_tiles gMonStillFrontPic_Lileep, 0x800, 388
- obj_tiles gMonStillFrontPic_Cradily, 0x800, 389
- obj_tiles gMonStillFrontPic_Anorith, 0x800, 390
- obj_tiles gMonStillFrontPic_Armaldo, 0x800, 391
- obj_tiles gMonStillFrontPic_Ralts, 0x800, 392
- obj_tiles gMonStillFrontPic_Kirlia, 0x800, 393
- obj_tiles gMonStillFrontPic_Gardevoir, 0x800, 394
- obj_tiles gMonStillFrontPic_Bagon, 0x800, 395
- obj_tiles gMonStillFrontPic_Shelgon, 0x800, 396
- obj_tiles gMonStillFrontPic_Salamence, 0x800, 397
- obj_tiles gMonStillFrontPic_Beldum, 0x800, 398
- obj_tiles gMonStillFrontPic_Metang, 0x800, 399
- obj_tiles gMonStillFrontPic_Metagross, 0x800, 400
- obj_tiles gMonStillFrontPic_Regirock, 0x800, 401
- obj_tiles gMonStillFrontPic_Regice, 0x800, 402
- obj_tiles gMonStillFrontPic_Registeel, 0x800, 403
- obj_tiles gMonStillFrontPic_Kyogre, 0x800, 404
- obj_tiles gMonStillFrontPic_Groudon, 0x800, 405
- obj_tiles gMonStillFrontPic_Rayquaza, 0x800, 406
- obj_tiles gMonStillFrontPic_Latias, 0x800, 407
- obj_tiles gMonStillFrontPic_Latios, 0x800, 408
- obj_tiles gMonStillFrontPic_Jirachi, 0x800, 409
- obj_tiles gMonStillFrontPic_Deoxys, 0x800, 410
- obj_tiles gMonStillFrontPic_Chimecho, 0x800, 411
- obj_tiles gMonStillFrontPic_Egg, 0x800, 412
- obj_tiles gMonStillFrontPic_UnownB, 0x800, 413
- obj_tiles gMonStillFrontPic_UnownC, 0x800, 414
- obj_tiles gMonStillFrontPic_UnownD, 0x800, 415
- obj_tiles gMonStillFrontPic_UnownE, 0x800, 416
- obj_tiles gMonStillFrontPic_UnownF, 0x800, 417
- obj_tiles gMonStillFrontPic_UnownG, 0x800, 418
- obj_tiles gMonStillFrontPic_UnownH, 0x800, 419
- obj_tiles gMonStillFrontPic_UnownI, 0x800, 420
- obj_tiles gMonStillFrontPic_UnownJ, 0x800, 421
- obj_tiles gMonStillFrontPic_UnownK, 0x800, 422
- obj_tiles gMonStillFrontPic_UnownL, 0x800, 423
- obj_tiles gMonStillFrontPic_UnownM, 0x800, 424
- obj_tiles gMonStillFrontPic_UnownN, 0x800, 425
- obj_tiles gMonStillFrontPic_UnownO, 0x800, 426
- obj_tiles gMonStillFrontPic_UnownP, 0x800, 427
- obj_tiles gMonStillFrontPic_UnownQ, 0x800, 428
- obj_tiles gMonStillFrontPic_UnownR, 0x800, 429
- obj_tiles gMonStillFrontPic_UnownS, 0x800, 430
- obj_tiles gMonStillFrontPic_UnownT, 0x800, 431
- obj_tiles gMonStillFrontPic_UnownU, 0x800, 432
- obj_tiles gMonStillFrontPic_UnownV, 0x800, 433
- obj_tiles gMonStillFrontPic_UnownW, 0x800, 434
- obj_tiles gMonStillFrontPic_UnownX, 0x800, 435
- obj_tiles gMonStillFrontPic_UnownY, 0x800, 436
- obj_tiles gMonStillFrontPic_UnownZ, 0x800, 437
- obj_tiles gMonStillFrontPic_UnownExclamationMark, 0x800, 438
- obj_tiles gMonStillFrontPic_UnownQuestionMark, 0x800, 439
diff --git a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc
index a376bfe22..9ef9a2812 100644
--- a/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleArenaLobby/scripts.inc
@@ -133,7 +133,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255DF4:: @ 8255DF4
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 3
- setvar VAR_0x40CE, 0
+ setvar VAR_FRONTIER_BATTLE_MODE, 0
special SavePlayerParty
msgbox BattleFrontier_BattleArenaLobby_Text_256166, 4
diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc
index e853afda0..3d5704dba 100644
--- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc
@@ -7,7 +7,7 @@ BattleFrontier_BattleDomeBattleRoom_MapScripts:: @ 824BC9C
BattleFrontier_BattleDomeBattleRoom_MapScript1_24BCB1: @ 824BCB1
setvar VAR_0x8004, 10
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
special sub_81A1780
@@ -72,7 +72,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD61:: @ 824BD61
BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82:: @ 824BD82
setvar VAR_0x8004, 4
- special sub_818E9AC
+ special CallBattleDomeFunction
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24C990, 4
closemessage
applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C77B
@@ -84,7 +84,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82:: @ 824BD82
msgbox 0x2021fc4, 4
closemessage
setvar VAR_0x8004, 5
- special sub_818E9AC
+ special CallBattleDomeFunction
call BattleFrontier_BattleDomeBattleRoom_EventScript_24C440
setvar VAR_TEMP_2, 0
switch VAR_RESULT
@@ -109,7 +109,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7:: @ 824BDF7
compare VAR_TEMP_2, 2
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F
setvar VAR_0x8004, 19
- special sub_818E9AC
+ special CallBattleDomeFunction
switch VAR_RESULT
case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0
@@ -117,7 +117,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F:: @ 824BE4F
applymovement 1, BattleFrontier_BattleDomeBattleRoom_Movement_2725B4
waitmovement 0
setvar VAR_0x8004, 4
- special sub_818E9AC
+ special CallBattleDomeFunction
compare VAR_TEMP_2, 0
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEB1
compare VAR_TEMP_2, 1
@@ -131,7 +131,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F:: @ 824BE4F
BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D:: @ 824BE8D
setvar VAR_0x8004, 12
setvar VAR_0x8005, 2
- special sub_818E9AC
+ special CallBattleDomeFunction
BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A:: @ 824BE9A
setvar VAR_0x8004, 2
@@ -173,10 +173,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0
call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E
delay 60
setvar VAR_0x8004, 3
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 12
setvar VAR_0x8005, 1
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
special sub_81A1780
@@ -227,17 +227,17 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BFCC:: @ 824BFCC
BattleFrontier_BattleDomeBattleRoom_EventScript_24BFD5:: @ 824BFD5
setvar VAR_0x8004, 1
setvar VAR_0x8005, 6
- special sub_818E9AC
+ special CallBattleDomeFunction
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C023
setvar VAR_0x8004, 1
setvar VAR_0x8005, 7
- special sub_818E9AC
+ special CallBattleDomeFunction
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C076
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
- special sub_818E9AC
+ special CallBattleDomeFunction
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C16A
goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C9
@@ -446,7 +446,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0F6, 4
setvar VAR_0x8004, 12
setvar VAR_0x8005, 1
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 12
special sub_81A1780
compare VAR_RESULT, 0
@@ -485,7 +485,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0F6, 4
setvar VAR_0x8004, 12
setvar VAR_0x8005, 1
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 12
special sub_81A1780
compare VAR_RESULT, 2
@@ -536,10 +536,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440
waitstate
setvar VAR_TEMP_9, 0
setvar VAR_0x8004, 17
- special sub_818E9AC
+ special CallBattleDomeFunction
special HealPlayerParty
setvar VAR_0x8004, 16
- special sub_818E9AC
+ special CallBattleDomeFunction
return
BattleFrontier_BattleDomeBattleRoom_MapScript2_24C481: @ 824C481
@@ -950,7 +950,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E:: @ 824C82E
BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5:: @ 824C8F5
BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5:: @ 824C8F5
- copyvar VAR_RESULT, VAR_0x40CE
+ copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24C90F
warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 255, 5, 11
diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc
index 1e50357bc..6a879df16 100644
--- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc
@@ -6,7 +6,7 @@ BattleFrontier_BattleDomeLobby_MapScripts:: @ 82497E2
BattleFrontier_BattleDomeLobby_MapScript1_2497F2: @ 82497F2
setvar VAR_0x8004, 21
- special sub_818E9AC
+ special CallBattleDomeFunction
end
BattleFrontier_BattleDomeLobby_MapScript2_2497FB: @ 82497FB
@@ -39,15 +39,15 @@ BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
@@ -85,15 +85,15 @@ BattleFrontier_BattleDomeLobby_EventScript_2498C9:: @ 82498C9
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 7
setvar VAR_0x8006, 1
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 1
- special sub_818E9AC
+ special CallBattleDomeFunction
special LoadPlayerParty
special HealPlayerParty
goto BattleFrontier_BattleDomeLobby_EventScript_249991
@@ -112,18 +112,18 @@ BattleFrontier_BattleDomeLobby_EventScript_249940:: @ 8249940
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
- special sub_818E9AC
+ special CallBattleDomeFunction
special LoadPlayerParty
special HealPlayerParty
BattleFrontier_BattleDomeLobby_EventScript_249991:: @ 8249991
setvar VAR_0x8004, 13
setvar VAR_0x8005, 0
- special sub_818E9AC
+ special CallBattleDomeFunction
playse SE_SAVE
waitse
call BattleFrontier_BattleDomeLobby_EventScript_23E8E0
@@ -154,7 +154,7 @@ BattleFrontier_BattleDomeLobby_EventScript_2499F9:: @ 82499F9
waitmessage
setvar VAR_0x8004, 13
setvar VAR_0x8005, 1
- special sub_818E9AC
+ special CallBattleDomeFunction
playse SE_SAVE
waitse
setvar VAR_0x8004, 2
@@ -168,7 +168,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249A35:: @ 8249A35
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 1
- setvar VAR_0x40CE, 0
+ setvar VAR_FRONTIER_BATTLE_MODE, 0
goto BattleFrontier_BattleDomeLobby_EventScript_249A59
end
@@ -176,21 +176,21 @@ BattleFrontier_BattleDomeLobby_EventScript_249A47:: @ 8249A47
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 1
- setvar VAR_0x40CE, 1
+ setvar VAR_FRONTIER_BATTLE_MODE, 1
goto BattleFrontier_BattleDomeLobby_EventScript_249A59
end
BattleFrontier_BattleDomeLobby_EventScript_249A59:: @ 8249A59
special SavePlayerParty
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CFD
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D06
BattleFrontier_BattleDomeLobby_EventScript_249A72:: @ 8249A72
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D0F
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D15
waitmessage
multichoice 17, 6, 23, 0
@@ -236,7 +236,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60
setvar VAR_0x8005, 4
special sub_81A1780
setvar VAR_0x8004, 0
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 2
setvar VAR_0x8005, 0
setvar VAR_0x8006, 1
@@ -253,7 +253,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleDomeLobby_EventScript_249C4A
setvar VAR_0x8004, 22
- special sub_818E9AC
+ special CallBattleDomeFunction
BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2
special SavePlayerParty
@@ -261,7 +261,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2
setvar VAR_0x8005, 3
special sub_81A1780
setvar VAR_0x8004, 15
- special sub_818E9AC
+ special CallBattleDomeFunction
msgbox BattleFrontier_BattleDomeLobby_Text_24A437, 4
closemessage
call BattleFrontier_BattleDomeLobby_EventScript_249C6E
@@ -272,9 +272,9 @@ BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2
end
BattleFrontier_BattleDomeLobby_EventScript_249BFA:: @ 8249BFA
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D1B
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D24
goto BattleFrontier_BattleDomeLobby_EventScript_249A72
@@ -309,26 +309,26 @@ BattleFrontier_BattleDomeLobby_EventScript_249C6C:: @ 8249C6C
end
BattleFrontier_BattleDomeLobby_EventScript_249C6E:: @ 8249C6E
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CDD
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CE5
applymovement 255, BattleFrontier_BattleDomeLobby_Movement_249D45
waitmovement 0
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D2D
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D33
waitdooranim
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CED
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249CF5
applymovement 255, BattleFrontier_BattleDomeLobby_Movement_249D4E
waitmovement 0
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D39
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249D3F
waitdooranim
return
@@ -433,7 +433,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D6B:: @ 8249D6B
BattleFrontier_BattleDomeLobby_EventScript_249D84:: @ 8249D84
setvar VAR_0x8004, 1
setvar VAR_0x8005, 9
- special sub_818E9AC
+ special CallBattleDomeFunction
compare VAR_RESULT, 0
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249DC9
compare VAR_RESULT, 1
@@ -444,7 +444,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D84:: @ 8249D84
call_if 1, BattleFrontier_BattleDomeLobby_EventScript_249DE4
fadescreen 1
setvar VAR_0x8004, 8
- special sub_818E9AC
+ special CallBattleDomeFunction
waitstate
end
@@ -466,7 +466,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249DE4:: @ 8249DE4
BattleFrontier_BattleDomeLobby_EventScript_249DED:: @ 8249DED
setvar VAR_0x8004, 20
- special sub_818E9AC
+ special CallBattleDomeFunction
msgbox BattleFrontier_BattleDomeLobby_Text_24AA76, 2
end
diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc
index 024162cee..e004eafac 100644
--- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc
@@ -87,7 +87,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B377:: @ 824B377
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3A9:: @ 824B3A9
setvar VAR_0x8004, 12
setvar VAR_0x8005, 9
- special sub_818E9AC
+ special CallBattleDomeFunction
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB
@@ -95,7 +95,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB
waitmessage
setvar VAR_0x8004, 13
setvar VAR_0x8005, 2
- special sub_818E9AC
+ special CallBattleDomeFunction
playse SE_SAVE
waitse
fadescreen 1
@@ -107,7 +107,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD:: @ 824B3DD
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9B5, 4
fadescreen 1
setvar VAR_0x8004, 6
- special sub_818E9AC
+ special CallBattleDomeFunction
waitstate
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
@@ -115,7 +115,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5:: @ 824B3F5
call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A
fadescreen 1
setvar VAR_0x8004, 7
- special sub_818E9AC
+ special CallBattleDomeFunction
waitstate
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
@@ -162,11 +162,11 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D
goto_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
setvar VAR_0x8004, 2
setvar VAR_0x8005, 8
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 18
- special sub_818E9AC
+ special CallBattleDomeFunction
setvar VAR_0x8004, 9
- special sub_818E9AC
+ special CallBattleDomeFunction
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B748, 4
closemessage
applymovement 1, BattleFrontier_BattleDomePreBattleRoom_Movement_24B64F
@@ -253,7 +253,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7
call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600
fadescreen 1
setvar VAR_0x8004, 11
- special sub_818E9AC
+ special CallBattleDomeFunction
waitstate
goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F
diff --git a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc
index 5b6a674fb..2968e2c0f 100644
--- a/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleFactoryBattleRoom/scripts.inc
@@ -291,7 +291,7 @@ BattleFrontier_BattleFactoryBattleRoom_Movement_25B18B: @ 825B18B
BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190:: @ 825B190
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B190:: @ 825B190
- copyvar VAR_RESULT, VAR_0x40CE
+ copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_25B1AA
warp MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY, 255, 4, 8
diff --git a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc
index ec2483390..7846da874 100644
--- a/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleFactoryLobby/scripts.inc
@@ -143,27 +143,27 @@ BattleFrontier_BattleFactoryLobby_EventScript_2585CB:: @ 82585CB
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 4
- setvar VAR_0x40CE, 0
+ setvar VAR_FRONTIER_BATTLE_MODE, 0
goto BattleFrontier_BattleFactoryLobby_EventScript_2585ED
end
BattleFrontier_BattleFactoryLobby_EventScript_2585DD:: @ 82585DD
setvar VAR_FRONTIER_FACILITY, 4
- setvar VAR_0x40CE, 1
+ setvar VAR_FRONTIER_BATTLE_MODE, 1
goto BattleFrontier_BattleFactoryLobby_EventScript_2585ED
end
BattleFrontier_BattleFactoryLobby_EventScript_2585ED:: @ 82585ED
special SavePlayerParty
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587B1
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587BA
BattleFrontier_BattleFactoryLobby_EventScript_258606:: @ 8258606
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587C3
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587C9
waitmessage
multichoice 17, 6, 23, 0
@@ -218,9 +218,9 @@ BattleFrontier_BattleFactoryLobby_EventScript_25871A:: @ 825871A
special SavePlayerParty
msgbox BattleFrontier_BattleFactoryLobby_Text_258CB1, 4
closemessage
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_25875C
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_258762
applymovement VAR_LAST_TALKED, BattleFrontier_BattleFactoryLobby_Movement_2587A7
applymovement 255, BattleFrontier_BattleFactoryLobby_Movement_2587AC
@@ -239,9 +239,9 @@ BattleFrontier_BattleFactoryLobby_EventScript_258762:: @ 8258762
return
BattleFrontier_BattleFactoryLobby_EventScript_258768:: @ 8258768
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587CF
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleFactoryLobby_EventScript_2587D8
goto BattleFrontier_BattleFactoryLobby_EventScript_258606
diff --git a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc
index 2ae154927..372b5da76 100644
--- a/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePalaceBattleRoom/scripts.inc
@@ -459,7 +459,7 @@ BattleFrontier_BattlePalaceBattleRoom_Movement_24FEB6: @ 824FEB6
step_end
BattleFrontier_BattlePalaceBattleRoom_EventScript_24FEBB:: @ 824FEBB
- copyvar VAR_RESULT, VAR_0x40CE
+ copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24FED5
warp MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY, 255, 5, 7
diff --git a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc
index 91c1abd0f..b86ffa2fb 100644
--- a/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePalaceLobby/scripts.inc
@@ -134,7 +134,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D944:: @ 824D944
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 2
- setvar VAR_0x40CE, 0
+ setvar VAR_FRONTIER_BATTLE_MODE, 0
goto BattleFrontier_BattlePalaceLobby_EventScript_24D968
end
@@ -142,7 +142,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D956:: @ 824D956
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 2
- setvar VAR_0x40CE, 1
+ setvar VAR_FRONTIER_BATTLE_MODE, 1
goto BattleFrontier_BattlePalaceLobby_EventScript_24D968
end
@@ -153,15 +153,15 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D968:: @ 824D968
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePalaceLobby_EventScript_24D817
special SavePlayerParty
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DB9E
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DBA7
BattleFrontier_BattlePalaceLobby_EventScript_24D999:: @ 824D999
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DBB0
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DBB6
waitmessage
multichoice 17, 6, 23, 0
@@ -242,7 +242,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DAF3:: @ 824DAF3
end
BattleFrontier_BattlePalaceLobby_EventScript_24DB20:: @ 824DB20
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
goto_eq BattleFrontier_BattlePalaceLobby_EventScript_24DB38
msgbox BattleFrontier_BattlePalaceLobby_Text_24DE17, 4
goto BattleFrontier_BattlePalaceLobby_EventScript_24D999
@@ -298,24 +298,24 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DBB6:: @ 824DBB6
return
BattleFrontier_BattlePalaceLobby_EventScript_24DBBC:: @ 824DBBC
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC23
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC29
applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_24DC47
applymovement 255, BattleFrontier_BattlePalaceLobby_Movement_24DC47
waitmovement 0
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC2F
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC35
waitdooranim
applymovement VAR_LAST_TALKED, BattleFrontier_BattlePalaceLobby_Movement_24DC49
applymovement 255, BattleFrontier_BattlePalaceLobby_Movement_24DC4C
waitmovement 0
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC3B
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattlePalaceLobby_EventScript_24DC41
waitdooranim
return
diff --git a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
index 5323c4a6b..0b356792f 100644
--- a/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePikeLobby/scripts.inc
@@ -126,7 +126,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B868:: @ 825B868
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 5
- setvar VAR_0x40CE, 0
+ setvar VAR_FRONTIER_BATTLE_MODE, 0
special SavePlayerParty
msgbox BattleFrontier_BattlePikeLobby_Text_25BB52, 4
diff --git a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc
index 07b9fee47..ccc7b1032 100644
--- a/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattlePyramidLobby/scripts.inc
@@ -130,7 +130,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2508B1:: @ 82508B1
lock
faceplayer
setvar VAR_FRONTIER_FACILITY, 6
- setvar VAR_0x40CE, 0
+ setvar VAR_FRONTIER_BATTLE_MODE, 0
special SavePlayerParty
msgbox BattleFrontier_BattlePyramidLobby_Text_250F31, 4
diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc
index f684e215d..d687f83dd 100644
--- a/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerBattleRoom/scripts.inc
@@ -366,7 +366,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_24210E:: @ 824210E
setvar VAR_0x8005, 0
special sub_8163AC4
waitstate
- copyvar VAR_0x8004, VAR_0x40CE
+ copyvar VAR_0x8004, VAR_FRONTIER_BATTLE_MODE
compare VAR_0x8004, 3
goto_eq BattleFrontier_BattleTowerBattleRoom_EventScript_24215A
setvar VAR_0x8004, 18
@@ -484,7 +484,7 @@ BattleFrontier_BattleTowerBattleRoom_Movement_2421B2: @ 82421B2
BattleFrontier_BattleTowerBattleRoom2_EventScript_2421B8:: @ 82421B8
BattleFrontier_BattleTowerBattleRoom_EventScript_2421B8:: @ 82421B8
- copyvar VAR_RESULT, VAR_0x40CE
+ copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleTowerBattleRoom_EventScript_2421E8
compare VAR_RESULT, 2
diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc
index d1b07451c..556d4499a 100644
--- a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc
@@ -5,9 +5,9 @@ BattleFrontier_BattleTowerBattleRoom2_MapScripts:: @ 8248EE8
.byte 0
BattleFrontier_BattleTowerBattleRoom2_MapScript1_248EF8: @ 8248EF8
- compare VAR_0x40CE, 2
+ compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F0F
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F2F
end
@@ -70,7 +70,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4:: @ 8248FB4
applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249528
applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_24952E
waitmovement 0
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249026
setvar VAR_0x8004, 7
setvar VAR_0x8005, 0
@@ -142,7 +142,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA:: @ 82490AA
applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249524
applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524
waitmovement 0
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249118
msgbox BattleFrontier_BattleTowerBattleRoom2_Text_242217, 4
goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249121
@@ -157,7 +157,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249121:: @ 8249121
setvar VAR_0x8004, 3
setvar VAR_0x8005, 2
special sub_81A1780
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249514
playfanfare MUS_ME_ASA
waitfanfare
@@ -168,7 +168,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249143:: @ 8249143
setvar VAR_0x8005, 2
special sub_81A1780
call BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249283
call BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8E0
compare VAR_RESULT, 1
@@ -256,7 +256,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2492DB:: @ 82492DB
end
BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD:: @ 82492FD
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_24937E
copyvar VAR_TEMP_F, VAR_RESULT
switch VAR_TEMP_F
diff --git a/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc b/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc
index 36cf93ada..d28fa105d 100644
--- a/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerCorridor2/scripts.inc
@@ -5,9 +5,9 @@ BattleFrontier_BattleTowerCorridor2_MapScripts:: @ 8248D4A
.byte 0
BattleFrontier_BattleTowerCorridor2_MapScript1_248D5A: @ 8248D5A
- compare VAR_0x40CE, 2
+ compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248D71
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248D91
end
@@ -87,13 +87,13 @@ BattleFrontier_BattleTowerCorridor2_EventScript_248DBC:: @ 8248DBC
end
BattleFrontier_BattleTowerCorridor2_EventScript_248E71:: @ 8248E71
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248E9E
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248E9E
- compare VAR_0x40CE, 2
+ compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248EA8
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerCorridor2_EventScript_248EB2
return
diff --git a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc
index 072d27137..968d45772 100644
--- a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc
@@ -24,13 +24,13 @@ BattleFrontier_BattleTowerElevator_EventScript_2419F0:: @ 82419F0
end
BattleFrontier_BattleTowerElevator_EventScript_241A28:: @ 8241A28
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerElevator_EventScript_241A55
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleTowerElevator_EventScript_241A55
- compare VAR_0x40CE, 2
+ compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerElevator_EventScript_241A5F
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerElevator_EventScript_241A72
return
diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
index 1cd2ff74a..2b07b7ea4 100644
--- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
@@ -119,7 +119,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E7E2:: @ 823E7E2
end
BattleFrontier_BattleTowerLobby_EventScript_23E7F2:: @ 823E7F2
- compare VAR_0x40CE, 2
+ compare VAR_FRONTIER_BATTLE_MODE, 2
goto_if 5, BattleFrontier_BattleTowerLobby_EventScript_23E81E
checkflag FLAG_0x152
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23E81E
@@ -214,7 +214,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E8E0:: @ 823E8E0
BattleFrontier_BattleTowerLobby_EventScript_23E8EE:: @ 823E8EE
lock
faceplayer
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23E930
message BattleFrontier_BattleTowerLobby_Text_23F737
waitmessage
@@ -254,7 +254,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E948:: @ 823E948
case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
BattleFrontier_BattleTowerLobby_EventScript_23E984:: @ 823E984
- setvar VAR_0x40CE, 0
+ setvar VAR_FRONTIER_BATTLE_MODE, 0
message BattleFrontier_BattleTowerLobby_Text_23FD3B
waitmessage
multichoice 17, 6, 24, 0
@@ -334,7 +334,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EAB1:: @ 823EAB1
case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
BattleFrontier_BattleTowerLobby_EventScript_23EAED:: @ 823EAED
- setvar VAR_0x40CE, 1
+ setvar VAR_FRONTIER_BATTLE_MODE, 1
message BattleFrontier_BattleTowerLobby_Text_23FD3B
waitmessage
multichoice 17, 6, 24, 0
@@ -415,7 +415,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EC1D:: @ 823EC1D
case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
BattleFrontier_BattleTowerLobby_EventScript_23EC59:: @ 823EC59
- setvar VAR_0x40CE, 2
+ setvar VAR_FRONTIER_BATTLE_MODE, 2
message BattleFrontier_BattleTowerLobby_Text_23FD3B
waitmessage
multichoice 17, 6, 24, 0
@@ -495,7 +495,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23ED86:: @ 823ED86
case 127, BattleFrontier_BattleTowerLobby_EventScript_23F0E6
BattleFrontier_BattleTowerLobby_EventScript_23EDC2:: @ 823EDC2
- setvar VAR_0x40CE, 3
+ setvar VAR_FRONTIER_BATTLE_MODE, 3
message BattleFrontier_BattleTowerLobby_Text_23FD3B
waitmessage
multichoice 17, 6, 24, 0
@@ -679,7 +679,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F02B:: @ 823F02B
case 1, BattleFrontier_BattleTowerLobby_EventScript_23F08B
BattleFrontier_BattleTowerLobby_EventScript_23F046:: @ 823F046
- switch VAR_0x40CE
+ switch VAR_FRONTIER_BATTLE_MODE
case 0, BattleFrontier_BattleTowerLobby_EventScript_23F06F
case 1, BattleFrontier_BattleTowerLobby_EventScript_23F07D
msgbox BattleFrontier_BattleTowerLobby_Text_24038B, 4
@@ -697,7 +697,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F07D:: @ 823F07D
end
BattleFrontier_BattleTowerLobby_EventScript_23F08B:: @ 823F08B
- switch VAR_0x40CE
+ switch VAR_FRONTIER_BATTLE_MODE
case 0, BattleFrontier_BattleTowerLobby_EventScript_23F0B4
case 1, BattleFrontier_BattleTowerLobby_EventScript_23F0C2
msgbox BattleFrontier_BattleTowerLobby_Text_24046B, 4
@@ -754,7 +754,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F108:: @ 823F108
BattleFrontier_BattleTowerLobby_EventScript_23F135:: @ 823F135
call BattleFrontier_BattleTowerLobby_EventScript_23F1A7
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F152
msgbox BattleFrontier_BattleTowerLobby_Text_23FE11, 4
goto BattleFrontier_BattleTowerLobby_EventScript_23F15B
@@ -807,13 +807,13 @@ BattleFrontier_BattleTowerLobby_Movement_23F1A0: @ 823F1A0
step_end
BattleFrontier_BattleTowerLobby_EventScript_23F1A7:: @ 823F1A7
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F1D4
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F1D9
- compare VAR_0x40CE, 2
+ compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F1DE
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F1E3
return
@@ -834,13 +834,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F1E3:: @ 823F1E3
return
BattleFrontier_BattleTowerLobby_EventScript_23F1E8:: @ 823F1E8
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F215
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F21B
- compare VAR_0x40CE, 2
+ compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F221
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F227
return
@@ -861,13 +861,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F227:: @ 823F227
return
BattleFrontier_BattleTowerLobby_EventScript_23F22D:: @ 823F22D
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F25A
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F260
- compare VAR_0x40CE, 2
+ compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F266
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F26C
return
@@ -888,13 +888,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F26C:: @ 823F26C
return
BattleFrontier_BattleTowerLobby_EventScript_23F272:: @ 823F272
- compare VAR_0x40CE, 0
+ compare VAR_FRONTIER_BATTLE_MODE, 0
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F29F
- compare VAR_0x40CE, 1
+ compare VAR_FRONTIER_BATTLE_MODE, 1
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F2A5
- compare VAR_0x40CE, 2
+ compare VAR_FRONTIER_BATTLE_MODE, 2
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F2AB
- compare VAR_0x40CE, 3
+ compare VAR_FRONTIER_BATTLE_MODE, 3
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F2B1
return
diff --git a/data/maps/BattleFrontier_ScottsHouse/scripts.inc b/data/maps/BattleFrontier_ScottsHouse/scripts.inc
index 5be72b9b5..da73da354 100644
--- a/data/maps/BattleFrontier_ScottsHouse/scripts.inc
+++ b/data/maps/BattleFrontier_ScottsHouse/scripts.inc
@@ -110,7 +110,7 @@ BattleFrontier_ScottsHouse_EventScript_263811:: @ 8263811
end
BattleFrontier_ScottsHouse_EventScript_26381B:: @ 826381B
- setvar VAR_0x40CE, 0
+ setvar VAR_FRONTIER_BATTLE_MODE, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
@@ -153,7 +153,7 @@ BattleFrontier_ScottsHouse_EventScript_2638AA:: @ 82638AA
end
BattleFrontier_ScottsHouse_EventScript_2638B4:: @ 82638B4
- setvar VAR_0x40CE, 0
+ setvar VAR_FRONTIER_BATTLE_MODE, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc
index 00efa5394..daf76cba2 100644
--- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc
+++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc
@@ -149,7 +149,7 @@ FallarborTown_BattleTentLobby_EventScript_200021:: @ 8200021
FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D
setvar VAR_FRONTIER_FACILITY, 3
- setvar VAR_0x40CE, 0
+ setvar VAR_FRONTIER_BATTLE_MODE, 0
setvar VAR_RESULT, 2
setvar VAR_0x8004, 15
special sub_81A1780
diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc
index fc66d7387..76b12e31e 100644
--- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc
+++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc
@@ -137,7 +137,7 @@ SlateportCity_BattleTentLobby_EventScript_2088CA:: @ 82088CA
SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906
setvar VAR_FRONTIER_FACILITY, 4
- setvar VAR_0x40CE, 0
+ setvar VAR_FRONTIER_BATTLE_MODE, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 2
diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc
index 26f0680a0..a4cfc20c2 100644
--- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc
+++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc
@@ -150,7 +150,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201893:: @ 8201893
VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF
setvar VAR_FRONTIER_FACILITY, 2
- setvar VAR_0x40CE, 0
+ setvar VAR_FRONTIER_BATTLE_MODE, 0
setvar VAR_RESULT, 2
setvar VAR_0x8004, 15
special sub_81A1780
diff --git a/data/specials.inc b/data/specials.inc
index 9cc3d41ea..5d31c425f 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -244,7 +244,7 @@ gSpecials:: @ 81DBA64
def_special GetLeadMonFriendshipScore
def_special sub_81A1780
def_special sub_8161F74
- def_special sub_818E9AC
+ def_special CallBattleDomeFunction
def_special sub_8195960
def_special sub_8165360
def_special sub_8163AC4
diff --git a/include/battle_dome.h b/include/battle_dome.h
new file mode 100644
index 000000000..d05b08689
--- /dev/null
+++ b/include/battle_dome.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_BATTLE_DOME_H
+#define GUARD_BATTLE_DOME_H
+
+extern u32 gUnknown_0203CD70;
+
+s32 GetTrainerMonCountInBits(u16 tournamentTrainerId);
+s32 TrainerIdToDomeTournamentId(u16 trainerId);
+
+#endif // GUARD_BATTLE_DOME_H
diff --git a/include/battle_dome_cards.h b/include/battle_dome_cards.h
deleted file mode 100644
index a0696d156..000000000
--- a/include/battle_dome_cards.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef GUARD_BATTLE_DOME_CARDS_H
-#define GUARD_BATTLE_DOME_CARDS_H
-
-bool16 dp13_810BB8C(void);
-u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
-u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
-u16 sub_818D820(u16 spriteId);
-u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
-u16 sub_818D8F0(u16 spriteId);
-u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
-u8 sub_818D97C(u8 a0, u8 a1);
-
-#endif //GUARD_BATTLE_DOME_CARDS_H
diff --git a/include/battle_frontier_1.h b/include/battle_frontier_1.h
deleted file mode 100644
index b9c633efc..000000000
--- a/include/battle_frontier_1.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef GUARD_BATTLE_FRONTIER_1_H
-#define GUARD_BATTLE_FRONTIER_1_H
-
-bool32 sub_8196094(void);
-void sub_8197080(u8 *);
-void sub_8196080(const u8 *str);
-
-#endif // GUARD_BATTLE_FRONTIER_1_H
diff --git a/include/battle_message.h b/include/battle_message.h
index 147bfa501..c68607246 100644
--- a/include/battle_message.h
+++ b/include/battle_message.h
@@ -224,6 +224,7 @@ extern const u8* const gStatNamesTable[];
extern const u8* const gPokeblockWasTooXStringTable[];
extern const u8* const gRefereeStringsTable[];
extern const u8* const gStatNamesTable2[];
+extern const u8 *const gRoundsStringTable[];
extern const u8 gText_PkmnIsEvolving[];
extern const u8 gText_CongratsPkmnEvolved[];
diff --git a/include/battle_pyramid_bag.h b/include/battle_pyramid_bag.h
new file mode 100644
index 000000000..5d5d8ccfa
--- /dev/null
+++ b/include/battle_pyramid_bag.h
@@ -0,0 +1,49 @@
+#ifndef GUARD_BATTLE_PYRAMID_BAG_H
+#define GUARD_BATTLE_PYRAMID_BAG_H
+
+#include "list_menu.h"
+
+struct PyramidBagResources
+{
+ void (*callback2)(void);
+ u8 tilemapBuffer[0x800];
+ u8 itemsSpriteIds[PYRAMID_BAG_ITEMS_COUNT + 1];
+ u8 windowIds[5];
+ u8 unk814;
+ u8 unk815;
+ u8 scrollArrowSpriteId;
+ const u8 *menuActionIds;
+ u8 filler81C[0x820 - 0x81C];
+ u8 menuActionsCount;
+ u8 listMenuCount;
+ u8 listMenuMaxShown;
+ struct ListMenuItem bagListItems[PYRAMID_BAG_ITEMS_COUNT + 1];
+ u8 itemStrings[PYRAMID_BAG_ITEMS_COUNT + 1][ITEM_NAME_LENGTH + 10];
+ s16 state;
+ u8 filler986[0x98C - 0x986];
+};
+
+struct PyramidBagCursorData
+{
+ void (*callback)(void);
+ u8 unk4;
+ u16 cursorPosition;
+ u16 scrollPosition;
+};
+
+extern struct PyramidBagResources *gPyramidBagResources;
+extern struct PyramidBagCursorData gPyramidBagCursorData;
+
+void CB2_PyramidBagMenuFromStartMenu(void);
+void sub_81C4F84(void);
+void sub_81C5924(void);
+void sub_81C59BC(void);
+void sub_81C4EFC(void);
+void sub_81C4F98(u8 a0, void (*callback)(void));
+void sub_81C6714(u8 taskId);
+void sub_81C6A94(void);
+void sub_81C4F24(void);
+void sub_81C5B14(u8 taskId);
+void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId));
+
+#endif // GUARD_BATTLE_PYRAMID_BAG_H
diff --git a/include/battle_scripts.h b/include/battle_scripts.h
index ffd999660..1197dfb6e 100644
--- a/include/battle_scripts.h
+++ b/include/battle_scripts.h
@@ -256,7 +256,7 @@ extern const u8 BattleScript_82DB87D[];
extern const u8 BattleScript_82DB881[];
extern const u8 BattleScript_82DB887[];
extern const u8 BattleScript_82DB89D[];
-extern const u8 BattleScript_82DB8BE[];
+extern const u8 BattleScript_ArenaTurnBeginning[];
extern const u8 BattleScript_82DB8E0[];
extern const u8 BattleScript_82DB8F3[];
extern const u8 BattleScript_82DB973[];
diff --git a/include/battle_tower.h b/include/battle_tower.h
index e1655f2c6..d7ff70006 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -24,7 +24,7 @@ union BattleTowerRecord
struct BattleFrontierTrainer
{
- u32 trainerClass;
+ u32 facilityClass;
u8 trainerName[8];
u16 speechBefore[6];
u16 speechWin[6];
@@ -32,7 +32,17 @@ struct BattleFrontierTrainer
u16 *btMonPool;
};
-extern struct BattleFrontierTrainer *gUnknown_0203BC88;
+struct FacilityMon
+{
+ u16 species;
+ u16 moves[4];
+ u8 itemTableId;
+ u8 evSpread;
+ u8 nature;
+};
+
+extern const struct BattleFrontierTrainer *gFacilityTrainers;
+extern const struct FacilityMon *gFacilityTrainerMons;
u16 sub_8164FCC(u8, u8);
void sub_81659DC(struct RSBattleTowerRecord *a0, struct RSBattleTowerRecord *a1);
@@ -40,7 +50,7 @@ bool32 sub_816587C(union BattleTowerRecord *, union BattleTowerRecord *);
void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *);
void sub_81628A0(union BattleTowerRecord *);
void sub_8162614(u16 trainerId, u8);
-void ConvertBattleFrontierTrainerSpeechToString(u16 *words);
+void ConvertBattleFrontierTrainerSpeechToString(const u16 *words);
void GetFrontierTrainerName(u8 *dest, u16 trainerIdx);
void GetEreaderTrainerName(u8 *dest);
diff --git a/include/bg.h b/include/bg.h
index ea84c1573..f2d4e7948 100644
--- a/include/bg.h
+++ b/include/bg.h
@@ -69,7 +69,7 @@ void* GetBgTilemapBuffer(u8 bg);
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg);
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height);
-void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
+void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h
index 4145805c4..fddcdc8fe 100644
--- a/include/constants/battle_frontier.h
+++ b/include/constants/battle_frontier.h
@@ -10,4 +10,14 @@
#define FRONTIER_FACILITY_PIKE 5
#define FRONTIER_FACILITY_PYRAMID 6
+// Battle Frontier lvl modes.
+#define FRONTIER_LVL_50 0
+#define FRONTIER_LVL_OPEN 1
+
+// Battle Frontier battle modes.
+#define FRONTIER_MODE_SINGLES 0
+#define FRONTIER_MODE_DOUBLES 1
+#define FRONTIER_MODE_MULTIS 2
+#define FRONTIER_MODE_LINK_MULTIS 3
+
#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_H
diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h
index 84ec9d512..bd9d8e67d 100644
--- a/include/constants/battle_script_commands.h
+++ b/include/constants/battle_script_commands.h
@@ -71,6 +71,8 @@
#define VARIOUS_WAIT_CRY 18
#define VARIOUS_RETURN_OPPONENT_MON1 19
#define VARIOUS_RETURN_OPPONENT_MON2 20
+#define VARIOUS_VOLUME_DOWN 21
+#define VARIOUS_VOLUME_UP 22
#define VARIOUS_SET_TELEPORT_OUTCOME 25
#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26
diff --git a/include/constants/trainers.h b/include/constants/trainers.h
index 57c7fd523..f79216d94 100644
--- a/include/constants/trainers.h
+++ b/include/constants/trainers.h
@@ -5,6 +5,7 @@
// Special Trainer Ids.
#define TRAINER_FRONTIER_BRAIN 1022
+#define TRAINER_PLAYER 1023
#define TRAINER_SECRET_BASE 1024
#define TRAINER_LINK_OPPONENT 2048
#define TRAINER_OPPONENT_C00 3072
@@ -173,10 +174,10 @@
#define FACILITY_CLASS_TWINS 0x39
#define FACILITY_CLASS_SAILOR 0x3a
#define FACILITY_CLASS_PKMN_TRAINER_1 0x3b
-#define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3c
+#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3c
#define FACILITY_CLASS_PKMN_TRAINER_3 0x3d
#define FACILITY_CLASS_PKMN_TRAINER_4 0x3e
-#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3f
+#define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3f
#define FACILITY_CLASS_PKMN_TRAINER_6 0x40
#define FACILITY_CLASS_PKMN_TRAINER_7 0x41
#define FACILITY_CLASS_PKMN_BREEDER_2 0x42
diff --git a/include/constants/vars.h b/include/constants/vars.h
index e2c59b4fb..9854ec5a2 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -222,7 +222,7 @@
#define VAR_0x40CB 0x40CB
#define VAR_0x40CC 0x40CC
#define VAR_0x40CD 0x40CD
-#define VAR_0x40CE 0x40CE
+#define VAR_FRONTIER_BATTLE_MODE 0x40CE
#define VAR_FRONTIER_FACILITY 0x40CF
#define VAR_0x40D0 0x40D0
#define VAR_0x40D1 0x40D1
diff --git a/include/data2.h b/include/data2.h
index 176365146..268dc9ac8 100644
--- a/include/data2.h
+++ b/include/data2.h
@@ -11,8 +11,8 @@ struct MonCoords
u8 y_offset;
};
-extern struct MonCoords gTrainerBackPicCoords[];
-extern struct MonCoords gTrainerFrontPicCoords[];
+extern const struct MonCoords gTrainerBackPicCoords[];
+extern const struct MonCoords gTrainerFrontPicCoords[];
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
extern const u8 gMoveNames[][MOVE_NAME_LENGTH + 1];
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index 01d8c311e..9327d6cb0 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -550,12 +550,14 @@
#define WININ_WIN0_BG1 (1 << 1)
#define WININ_WIN0_BG2 (1 << 2)
#define WININ_WIN0_BG3 (1 << 3)
+#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3)
#define WININ_WIN0_OBJ (1 << 4)
#define WININ_WIN0_CLR (1 << 5)
#define WININ_WIN1_BG0 (1 << 8)
#define WININ_WIN1_BG1 (1 << 9)
#define WININ_WIN1_BG2 (1 << 10)
#define WININ_WIN1_BG3 (1 << 11)
+#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3)
#define WININ_WIN1_OBJ (1 << 12)
#define WININ_WIN1_CLR (1 << 13)
diff --git a/include/global.h b/include/global.h
index 1a179d858..0fff11d09 100644
--- a/include/global.h
+++ b/include/global.h
@@ -27,6 +27,13 @@
#define ARRAY_COUNT(array) (size_t)(sizeof(array) / sizeof((array)[0]))
+#define SWAP(a, b, temp) \
+{ \
+ temp = a; \
+ a = b; \
+ b = temp; \
+}
+
// useful math macros
// Converts a number to Q8.8 fixed-point format
@@ -330,6 +337,29 @@ struct EmeraldBattleTowerRecord
/*0xE8*/ u32 checksum;
};
+struct FrontierMonData
+{
+ u16 moves[4];
+ u8 evs[6];
+ u8 nature;
+};
+
+struct Struct_field_E70
+{
+ u16 monId;
+ u8 unk2[9];
+};
+
+struct BattleDomeTrainer
+{
+ u16 trainerId:10;
+ u16 isEliminated:1;
+ u16 eliminatedAt:2;
+ u16 unk3:3;
+};
+
+#define DOME_TOURNAMENT_TRAINERS_COUNT 16
+
struct BattleFrontier
{
/*0x64C*/ struct EmeraldBattleTowerRecord battleTower;
@@ -345,16 +375,18 @@ struct BattleFrontier
/*0xC14*/ u16 ecwords_C14[6];
/*0xC20*/ u8 filler_C20[0x88];
/*0xCA8*/ u8 field_CA8;
- /*0xCA9*/ u8 chosenLvl:2; // 0x1, 0x2 -> 0x3
+ /*0xCA9*/ u8 lvlMode:2; // 0x1, 0x2 -> 0x3
/*0xCA9*/ u8 field_CA9_a:1; // 0x4
/*0xCA9*/ u8 field_CA9_b:1; // 0x8
/*0xCA9*/ u8 field_CA9_c:1; // 0x10
/*0xCA9*/ u8 field_CA9_d:1; // 0x20
/*0xCA9*/ u8 field_CA9_e:1; // 0x40
/*0xCA9*/ u8 field_CA9_f:1; // 0x80
- /*0xCAA*/ u16 field_CAA[4];
+ /*0xCAA*/ u16 field_CAA[3];
+ /*0xCB0*/ u16 field_CB0;
/*0xCB2*/ u16 field_CB2;
- /*0xCB4*/ u16 field_CB4[22];
+ /*0xCB4*/ u16 field_CB4[20];
+ /*0xCDC*/ u32 field_CDC;
/*0xCE0*/ u16 field_CE0[4][2];
/*0xCF0*/ u16 field_CF0[2];
/*0xCF4*/ u16 field_CF4[2];
@@ -362,21 +394,25 @@ struct BattleFrontier
/*0xCFC*/ u16 field_CFC[5];
/*0xD06*/ u8 field_D06;
/*0xD07*/ u8 field_D07;
- /*0xD08*/ u8 filler_D08;
+ /*0xD08*/ u8 field_D08_0:1;
+ /*0xD08*/ u8 field_D08_1:1;
+ /*0xD08*/ u8 field_D08_2:1;
+ /*0xD08*/ u8 field_D08_3:1;
+ /*0xD08*/ u8 field_D08_4:1;
+ /*0xD08*/ u8 field_D08_5:1;
+ /*0xD08*/ u8 field_D08_6:1;
+ /*0xD08*/ u8 field_D08_7:1;
/*0xD09*/ u8 filler_D09;
- /*0xD0A*/ u8 filler_D0A;
- /*0xD0B*/ u8 filler_D0B;
- /*0xD0C*/ u16 field_D0C[2];
- /*0xD10*/ u8 filler_D10;
- /*0xD11*/ u8 filler_D11;
- /*0xD12*/ u8 filler_D12;
- /*0xD13*/ u8 filler_D13;
- /*0xD14*/ u16 field_D14[2];
- /*0xD18*/ u8 field_D18[0xB0];
- /*0xDC8*/ u16 field_DC8[2];
- /*0xDCC*/ u8 filler_DCC[4];
- /*0xDD0*/ u16 field_DD0[2];
- /*0xDD4*/ u16 field_DD4[2];
+ /*0xD0A*/ u8 field_D0A;
+ /*0xD0B*/ u8 field_D0B;
+ /*0xD0C*/ u16 field_D0C[2][2];
+ /*0xD14*/ u16 field_D14[2][2];
+ /*0xD1C*/ u16 field_D1C[2][2];
+ /*0xD24*/ struct BattleDomeTrainer domeTrainers[DOME_TOURNAMENT_TRAINERS_COUNT];
+ /*0xD64*/ u16 domeMonId[DOME_TOURNAMENT_TRAINERS_COUNT][3];
+ /*0xD64*/ u16 field_DC4[2];
+ /*0xDC8*/ u16 field_DC8[2][2];
+ /*0xDD0*/ u16 field_DD0[2][2];
/*0xDD8*/ u16 field_DD8;
/*0xDDA*/ u16 field_DDA[2];
/*0xDDE*/ u16 field_DDE[2];
@@ -404,12 +440,22 @@ struct BattleFrontier
/*0xE6A*/ u16 field_E6A;
/*0xE6C*/ u16 field_E6C;
/*0xE6E*/ u16 field_E6E;
- /*0xE70*/ u8 field_E70[72];
+ /*0xE70*/ struct Struct_field_E70 field_E70[6];
/*0xEB8*/ u16 frontierBattlePoints;
- /*0xEBA*/ u8 field_EBA[39];
+ /*0xEBA*/ u8 field_EBA;
+ /*0xEBB*/ u8 field_EBB;
+ /*0xEBC*/ u8 field_EBC;
+ /*0xEBD*/ u8 field_EBD;
+ /*0xEBE*/ u8 field_EBE;
+ /*0xEBF*/ u8 field_EBF;
+ /*0xEC0*/ u16 field_EC0[16];
+ /*0xEE0*/ u8 field_EE0;
/*0xEE1*/ u8 field_EE1[2][PLAYER_NAME_LENGTH];
/*0xEF1*/ u8 field_EF1[2][4];
- /*0xEF9*/ u8 field_EF9[51];
+ /*0xEF9*/ u8 field_EF9;
+ /*0xEFA*/ u8 field_EFA;
+ /*0xEFB*/ u8 field_EFB;
+ /*0xEFC*/ struct FrontierMonData field_EFC[3];
};
struct SaveBlock2
diff --git a/include/graphics.h b/include/graphics.h
index 24a7b839a..4cbee1c34 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -37,138 +37,161 @@ extern const u8 gMonFrontPic_Bulbasaur[];
extern const u8 gMonPalette_Bulbasaur[];
extern const u8 gMonBackPic_Bulbasaur[];
extern const u8 gMonShinyPalette_Bulbasaur[];
+extern const u8 gMonStillFrontPic_Bulbasaur[];
extern const u8 gMonIcon_Bulbasaur[];
extern const u8 gMonFootprint_Bulbasaur[];
extern const u8 gMonFrontPic_Ivysaur[];
extern const u8 gMonPalette_Ivysaur[];
extern const u8 gMonBackPic_Ivysaur[];
extern const u8 gMonShinyPalette_Ivysaur[];
+extern const u8 gMonStillFrontPic_Ivysaur[];
extern const u8 gMonIcon_Ivysaur[];
extern const u8 gMonFootprint_Ivysaur[];
extern const u8 gMonFrontPic_Venusaur[];
extern const u8 gMonPalette_Venusaur[];
extern const u8 gMonBackPic_Venusaur[];
extern const u8 gMonShinyPalette_Venusaur[];
+extern const u8 gMonStillFrontPic_Venusaur[];
extern const u8 gMonIcon_Venusaur[];
extern const u8 gMonFootprint_Venusaur[];
extern const u8 gMonFrontPic_Charmander[];
extern const u8 gMonPalette_Charmander[];
extern const u8 gMonBackPic_Charmander[];
extern const u8 gMonShinyPalette_Charmander[];
+extern const u8 gMonStillFrontPic_Charmander[];
extern const u8 gMonIcon_Charmander[];
extern const u8 gMonFootprint_Charmander[];
extern const u8 gMonFrontPic_Charmeleon[];
extern const u8 gMonPalette_Charmeleon[];
extern const u8 gMonBackPic_Charmeleon[];
extern const u8 gMonShinyPalette_Charmeleon[];
+extern const u8 gMonStillFrontPic_Charmeleon[];
extern const u8 gMonIcon_Charmeleon[];
extern const u8 gMonFootprint_Charmeleon[];
extern const u8 gMonFrontPic_Charizard[];
extern const u8 gMonPalette_Charizard[];
extern const u8 gMonBackPic_Charizard[];
extern const u8 gMonShinyPalette_Charizard[];
+extern const u8 gMonStillFrontPic_Charizard[];
extern const u8 gMonIcon_Charizard[];
extern const u8 gMonFootprint_Charizard[];
extern const u8 gMonFrontPic_Squirtle[];
extern const u8 gMonPalette_Squirtle[];
extern const u8 gMonBackPic_Squirtle[];
extern const u8 gMonShinyPalette_Squirtle[];
+extern const u8 gMonStillFrontPic_Squirtle[];
extern const u8 gMonIcon_Squirtle[];
extern const u8 gMonFootprint_Squirtle[];
extern const u8 gMonFrontPic_Wartortle[];
extern const u8 gMonPalette_Wartortle[];
extern const u8 gMonBackPic_Wartortle[];
extern const u8 gMonShinyPalette_Wartortle[];
+extern const u8 gMonStillFrontPic_Wartortle[];
extern const u8 gMonIcon_Wartortle[];
extern const u8 gMonFootprint_Wartortle[];
extern const u8 gMonFrontPic_Blastoise[];
extern const u8 gMonPalette_Blastoise[];
extern const u8 gMonBackPic_Blastoise[];
extern const u8 gMonShinyPalette_Blastoise[];
+extern const u8 gMonStillFrontPic_Blastoise[];
extern const u8 gMonIcon_Blastoise[];
extern const u8 gMonFootprint_Blastoise[];
extern const u8 gMonFrontPic_Caterpie[];
extern const u8 gMonPalette_Caterpie[];
extern const u8 gMonBackPic_Caterpie[];
extern const u8 gMonShinyPalette_Caterpie[];
+extern const u8 gMonStillFrontPic_Caterpie[];
extern const u8 gMonIcon_Caterpie[];
extern const u8 gMonFootprint_Caterpie[];
extern const u8 gMonFrontPic_Metapod[];
extern const u8 gMonPalette_Metapod[];
extern const u8 gMonBackPic_Metapod[];
extern const u8 gMonShinyPalette_Metapod[];
+extern const u8 gMonStillFrontPic_Metapod[];
extern const u8 gMonIcon_Metapod[];
extern const u8 gMonFootprint_Metapod[];
extern const u8 gMonFrontPic_Butterfree[];
extern const u8 gMonPalette_Butterfree[];
extern const u8 gMonBackPic_Butterfree[];
extern const u8 gMonShinyPalette_Butterfree[];
+extern const u8 gMonStillFrontPic_Butterfree[];
extern const u8 gMonIcon_Butterfree[];
extern const u8 gMonFootprint_Butterfree[];
extern const u8 gMonFrontPic_Weedle[];
extern const u8 gMonPalette_Weedle[];
extern const u8 gMonBackPic_Weedle[];
extern const u8 gMonShinyPalette_Weedle[];
+extern const u8 gMonStillFrontPic_Weedle[];
extern const u8 gMonIcon_Weedle[];
extern const u8 gMonFootprint_Weedle[];
extern const u8 gMonFrontPic_Kakuna[];
extern const u8 gMonPalette_Kakuna[];
extern const u8 gMonBackPic_Kakuna[];
extern const u8 gMonShinyPalette_Kakuna[];
+extern const u8 gMonStillFrontPic_Kakuna[];
extern const u8 gMonIcon_Kakuna[];
extern const u8 gMonFootprint_Kakuna[];
extern const u8 gMonFrontPic_Beedrill[];
extern const u8 gMonPalette_Beedrill[];
extern const u8 gMonBackPic_Beedrill[];
extern const u8 gMonShinyPalette_Beedrill[];
+extern const u8 gMonStillFrontPic_Beedrill[];
extern const u8 gMonIcon_Beedrill[];
extern const u8 gMonFootprint_Beedrill[];
extern const u8 gMonFrontPic_Pidgey[];
extern const u8 gMonPalette_Pidgey[];
extern const u8 gMonBackPic_Pidgey[];
extern const u8 gMonShinyPalette_Pidgey[];
+extern const u8 gMonStillFrontPic_Pidgey[];
extern const u8 gMonIcon_Pidgey[];
extern const u8 gMonFootprint_Pidgey[];
extern const u8 gMonFrontPic_Pidgeotto[];
extern const u8 gMonPalette_Pidgeotto[];
extern const u8 gMonBackPic_Pidgeotto[];
extern const u8 gMonShinyPalette_Pidgeotto[];
+extern const u8 gMonStillFrontPic_Pidgeotto[];
extern const u8 gMonIcon_Pidgeotto[];
extern const u8 gMonFootprint_Pidgeotto[];
extern const u8 gMonFrontPic_Pidgeot[];
extern const u8 gMonPalette_Pidgeot[];
extern const u8 gMonBackPic_Pidgeot[];
extern const u8 gMonShinyPalette_Pidgeot[];
+extern const u8 gMonStillFrontPic_Pidgeot[];
extern const u8 gMonIcon_Pidgeot[];
extern const u8 gMonFootprint_Pidgeot[];
extern const u8 gMonFrontPic_Rattata[];
extern const u8 gMonPalette_Rattata[];
extern const u8 gMonBackPic_Rattata[];
extern const u8 gMonShinyPalette_Rattata[];
+extern const u8 gMonStillFrontPic_Rattata[];
extern const u8 gMonIcon_Rattata[];
extern const u8 gMonFootprint_Rattata[];
extern const u8 gMonFrontPic_Raticate[];
extern const u8 gMonPalette_Raticate[];
extern const u8 gMonBackPic_Raticate[];
extern const u8 gMonShinyPalette_Raticate[];
+extern const u8 gMonStillFrontPic_Raticate[];
extern const u8 gMonIcon_Raticate[];
extern const u8 gMonFootprint_Raticate[];
extern const u8 gMonFrontPic_Spearow[];
extern const u8 gMonPalette_Spearow[];
extern const u8 gMonBackPic_Spearow[];
extern const u8 gMonShinyPalette_Spearow[];
+extern const u8 gMonStillFrontPic_Spearow[];
extern const u8 gMonIcon_Spearow[];
extern const u8 gMonFootprint_Spearow[];
extern const u8 gMonFrontPic_Fearow[];
extern const u8 gMonPalette_Fearow[];
extern const u8 gMonBackPic_Fearow[];
extern const u8 gMonShinyPalette_Fearow[];
+extern const u8 gMonStillFrontPic_Fearow[];
extern const u8 gMonIcon_Fearow[];
extern const u8 gMonFootprint_Fearow[];
extern const u8 gMonFrontPic_Ekans[];
extern const u8 gMonPalette_Ekans[];
extern const u8 gMonBackPic_Ekans[];
extern const u8 gMonShinyPalette_Ekans[];
+extern const u8 gMonStillFrontPic_Ekans[];
extern const u8 gMonIcon_Ekans[];
extern const u8 gMonFootprint_Ekans[];
extern const u8 gMonFrontPic_Arbok[];
@@ -181,1362 +204,1591 @@ extern const u8 gMonFrontPic_Pikachu[];
extern const u8 gMonPalette_Pikachu[];
extern const u8 gMonBackPic_Pikachu[];
extern const u8 gMonShinyPalette_Pikachu[];
+extern const u8 gMonStillFrontPic_Arbok[];
extern const u8 gMonIcon_Pikachu[];
extern const u8 gMonFootprint_Pikachu[];
+extern const u8 gMonStillFrontPic_Pikachu[];
extern const u8 gMonFrontPic_Raichu[];
extern const u8 gMonPalette_Raichu[];
extern const u8 gMonBackPic_Raichu[];
extern const u8 gMonShinyPalette_Raichu[];
+extern const u8 gMonStillFrontPic_Raichu[];
extern const u8 gMonIcon_Raichu[];
extern const u8 gMonFootprint_Raichu[];
extern const u8 gMonFrontPic_Sandshrew[];
extern const u8 gMonPalette_Sandshrew[];
extern const u8 gMonBackPic_Sandshrew[];
extern const u8 gMonShinyPalette_Sandshrew[];
+extern const u8 gMonStillFrontPic_Sandshrew[];
extern const u8 gMonIcon_Sandshrew[];
extern const u8 gMonFootprint_Sandshrew[];
extern const u8 gMonFrontPic_Sandslash[];
extern const u8 gMonPalette_Sandslash[];
extern const u8 gMonBackPic_Sandslash[];
extern const u8 gMonShinyPalette_Sandslash[];
+extern const u8 gMonStillFrontPic_Sandslash[];
extern const u8 gMonIcon_Sandslash[];
extern const u8 gMonFootprint_Sandslash[];
extern const u8 gMonFrontPic_NidoranF[];
extern const u8 gMonPalette_NidoranF[];
extern const u8 gMonBackPic_NidoranF[];
extern const u8 gMonShinyPalette_NidoranF[];
+extern const u8 gMonStillFrontPic_NidoranF[];
extern const u8 gMonIcon_NidoranF[];
extern const u8 gMonFootprint_NidoranF[];
extern const u8 gMonFrontPic_Nidorina[];
extern const u8 gMonPalette_Nidorina[];
extern const u8 gMonBackPic_Nidorina[];
extern const u8 gMonShinyPalette_Nidorina[];
+extern const u8 gMonStillFrontPic_Nidorina[];
extern const u8 gMonIcon_Nidorina[];
extern const u8 gMonFootprint_Nidorina[];
extern const u8 gMonFrontPic_Nidoqueen[];
extern const u8 gMonPalette_Nidoqueen[];
extern const u8 gMonBackPic_Nidoqueen[];
extern const u8 gMonShinyPalette_Nidoqueen[];
+extern const u8 gMonStillFrontPic_Nidoqueen[];
extern const u8 gMonIcon_Nidoqueen[];
extern const u8 gMonFootprint_Nidoqueen[];
extern const u8 gMonFrontPic_NidoranM[];
extern const u8 gMonPalette_NidoranM[];
extern const u8 gMonBackPic_NidoranM[];
extern const u8 gMonShinyPalette_NidoranM[];
+extern const u8 gMonStillFrontPic_NidoranM[];
extern const u8 gMonIcon_NidoranM[];
extern const u8 gMonFootprint_NidoranM[];
extern const u8 gMonFrontPic_Nidorino[];
extern const u8 gMonPalette_Nidorino[];
extern const u8 gMonBackPic_Nidorino[];
extern const u8 gMonShinyPalette_Nidorino[];
+extern const u8 gMonStillFrontPic_Nidorino[];
extern const u8 gMonIcon_Nidorino[];
extern const u8 gMonFootprint_Nidorino[];
extern const u8 gMonFrontPic_Nidoking[];
extern const u8 gMonPalette_Nidoking[];
extern const u8 gMonBackPic_Nidoking[];
extern const u8 gMonShinyPalette_Nidoking[];
+extern const u8 gMonStillFrontPic_Nidoking[];
extern const u8 gMonIcon_Nidoking[];
extern const u8 gMonFootprint_Nidoking[];
extern const u8 gMonFrontPic_Clefairy[];
extern const u8 gMonPalette_Clefairy[];
extern const u8 gMonBackPic_Clefairy[];
extern const u8 gMonShinyPalette_Clefairy[];
+extern const u8 gMonStillFrontPic_Clefairy[];
extern const u8 gMonIcon_Clefairy[];
extern const u8 gMonFootprint_Clefairy[];
extern const u8 gMonFrontPic_Clefable[];
extern const u8 gMonPalette_Clefable[];
extern const u8 gMonBackPic_Clefable[];
extern const u8 gMonShinyPalette_Clefable[];
+extern const u8 gMonStillFrontPic_Clefable[];
extern const u8 gMonIcon_Clefable[];
extern const u8 gMonFootprint_Clefable[];
extern const u8 gMonFrontPic_Vulpix[];
extern const u8 gMonPalette_Vulpix[];
extern const u8 gMonBackPic_Vulpix[];
extern const u8 gMonShinyPalette_Vulpix[];
+extern const u8 gMonStillFrontPic_Vulpix[];
extern const u8 gMonIcon_Vulpix[];
extern const u8 gMonFootprint_Vulpix[];
extern const u8 gMonFrontPic_Ninetales[];
extern const u8 gMonPalette_Ninetales[];
extern const u8 gMonBackPic_Ninetales[];
extern const u8 gMonShinyPalette_Ninetales[];
+extern const u8 gMonStillFrontPic_Ninetales[];
extern const u8 gMonIcon_Ninetales[];
extern const u8 gMonFootprint_Ninetales[];
extern const u8 gMonFrontPic_Jigglypuff[];
extern const u8 gMonPalette_Jigglypuff[];
extern const u8 gMonBackPic_Jigglypuff[];
extern const u8 gMonShinyPalette_Jigglypuff[];
+extern const u8 gMonStillFrontPic_Jigglypuff[];
extern const u8 gMonIcon_Jigglypuff[];
extern const u8 gMonFootprint_Jigglypuff[];
extern const u8 gMonFrontPic_Wigglytuff[];
extern const u8 gMonPalette_Wigglytuff[];
extern const u8 gMonBackPic_Wigglytuff[];
extern const u8 gMonShinyPalette_Wigglytuff[];
+extern const u8 gMonStillFrontPic_Wigglytuff[];
extern const u8 gMonIcon_Wigglytuff[];
extern const u8 gMonFootprint_Wigglytuff[];
extern const u8 gMonFrontPic_Zubat[];
extern const u8 gMonPalette_Zubat[];
extern const u8 gMonBackPic_Zubat[];
extern const u8 gMonShinyPalette_Zubat[];
+extern const u8 gMonStillFrontPic_Zubat[];
extern const u8 gMonIcon_Zubat[];
extern const u8 gMonFootprint_Zubat[];
extern const u8 gMonFrontPic_Golbat[];
extern const u8 gMonPalette_Golbat[];
extern const u8 gMonBackPic_Golbat[];
extern const u8 gMonShinyPalette_Golbat[];
+extern const u8 gMonStillFrontPic_Golbat[];
extern const u8 gMonIcon_Golbat[];
extern const u8 gMonFootprint_Golbat[];
extern const u8 gMonFrontPic_Oddish[];
extern const u8 gMonPalette_Oddish[];
extern const u8 gMonBackPic_Oddish[];
extern const u8 gMonShinyPalette_Oddish[];
+extern const u8 gMonStillFrontPic_Oddish[];
extern const u8 gMonIcon_Oddish[];
extern const u8 gMonFootprint_Oddish[];
extern const u8 gMonFrontPic_Gloom[];
extern const u8 gMonPalette_Gloom[];
extern const u8 gMonBackPic_Gloom[];
extern const u8 gMonShinyPalette_Gloom[];
+extern const u8 gMonStillFrontPic_Gloom[];
extern const u8 gMonIcon_Gloom[];
extern const u8 gMonFootprint_Gloom[];
extern const u8 gMonFrontPic_Vileplume[];
extern const u8 gMonPalette_Vileplume[];
extern const u8 gMonBackPic_Vileplume[];
extern const u8 gMonShinyPalette_Vileplume[];
+extern const u8 gMonStillFrontPic_Vileplume[];
extern const u8 gMonIcon_Vileplume[];
extern const u8 gMonFootprint_Vileplume[];
extern const u8 gMonFrontPic_Paras[];
extern const u8 gMonPalette_Paras[];
extern const u8 gMonBackPic_Paras[];
extern const u8 gMonShinyPalette_Paras[];
+extern const u8 gMonStillFrontPic_Paras[];
extern const u8 gMonIcon_Paras[];
extern const u8 gMonFootprint_Paras[];
extern const u8 gMonFrontPic_Parasect[];
extern const u8 gMonPalette_Parasect[];
extern const u8 gMonBackPic_Parasect[];
extern const u8 gMonShinyPalette_Parasect[];
+extern const u8 gMonStillFrontPic_Parasect[];
extern const u8 gMonIcon_Parasect[];
extern const u8 gMonFootprint_Parasect[];
extern const u8 gMonFrontPic_Venonat[];
extern const u8 gMonPalette_Venonat[];
extern const u8 gMonBackPic_Venonat[];
extern const u8 gMonShinyPalette_Venonat[];
+extern const u8 gMonStillFrontPic_Venonat[];
extern const u8 gMonIcon_Venonat[];
extern const u8 gMonFootprint_Venonat[];
extern const u8 gMonFrontPic_Venomoth[];
extern const u8 gMonPalette_Venomoth[];
extern const u8 gMonBackPic_Venomoth[];
extern const u8 gMonShinyPalette_Venomoth[];
+extern const u8 gMonStillFrontPic_Venomoth[];
extern const u8 gMonIcon_Venomoth[];
extern const u8 gMonFootprint_Venomoth[];
extern const u8 gMonFrontPic_Diglett[];
extern const u8 gMonPalette_Diglett[];
extern const u8 gMonBackPic_Diglett[];
extern const u8 gMonShinyPalette_Diglett[];
+extern const u8 gMonStillFrontPic_Diglett[];
extern const u8 gMonIcon_Diglett[];
extern const u8 gMonFootprint_Diglett[];
extern const u8 gMonFrontPic_Dugtrio[];
extern const u8 gMonPalette_Dugtrio[];
extern const u8 gMonBackPic_Dugtrio[];
extern const u8 gMonShinyPalette_Dugtrio[];
+extern const u8 gMonStillFrontPic_Dugtrio[];
extern const u8 gMonIcon_Dugtrio[];
extern const u8 gMonFootprint_Dugtrio[];
extern const u8 gMonFrontPic_Meowth[];
extern const u8 gMonPalette_Meowth[];
extern const u8 gMonBackPic_Meowth[];
extern const u8 gMonShinyPalette_Meowth[];
+extern const u8 gMonStillFrontPic_Meowth[];
extern const u8 gMonIcon_Meowth[];
extern const u8 gMonFootprint_Meowth[];
extern const u8 gMonFrontPic_Persian[];
extern const u8 gMonPalette_Persian[];
extern const u8 gMonBackPic_Persian[];
extern const u8 gMonShinyPalette_Persian[];
+extern const u8 gMonStillFrontPic_Persian[];
extern const u8 gMonIcon_Persian[];
extern const u8 gMonFootprint_Persian[];
extern const u8 gMonFrontPic_Psyduck[];
extern const u8 gMonPalette_Psyduck[];
extern const u8 gMonBackPic_Psyduck[];
extern const u8 gMonShinyPalette_Psyduck[];
+extern const u8 gMonStillFrontPic_Psyduck[];
extern const u8 gMonIcon_Psyduck[];
extern const u8 gMonFootprint_Psyduck[];
extern const u8 gMonFrontPic_Golduck[];
extern const u8 gMonPalette_Golduck[];
extern const u8 gMonBackPic_Golduck[];
extern const u8 gMonShinyPalette_Golduck[];
+extern const u8 gMonStillFrontPic_Golduck[];
extern const u8 gMonIcon_Golduck[];
extern const u8 gMonFootprint_Golduck[];
extern const u8 gMonFrontPic_Mankey[];
extern const u8 gMonPalette_Mankey[];
extern const u8 gMonBackPic_Mankey[];
extern const u8 gMonShinyPalette_Mankey[];
+extern const u8 gMonStillFrontPic_Mankey[];
extern const u8 gMonIcon_Mankey[];
extern const u8 gMonFootprint_Mankey[];
extern const u8 gMonFrontPic_Primeape[];
extern const u8 gMonPalette_Primeape[];
extern const u8 gMonBackPic_Primeape[];
extern const u8 gMonShinyPalette_Primeape[];
+extern const u8 gMonStillFrontPic_Primeape[];
extern const u8 gMonIcon_Primeape[];
extern const u8 gMonFootprint_Primeape[];
extern const u8 gMonFrontPic_Growlithe[];
extern const u8 gMonPalette_Growlithe[];
extern const u8 gMonBackPic_Growlithe[];
extern const u8 gMonShinyPalette_Growlithe[];
+extern const u8 gMonStillFrontPic_Growlithe[];
extern const u8 gMonIcon_Growlithe[];
extern const u8 gMonFootprint_Growlithe[];
extern const u8 gMonFrontPic_Arcanine[];
extern const u8 gMonPalette_Arcanine[];
extern const u8 gMonBackPic_Arcanine[];
extern const u8 gMonShinyPalette_Arcanine[];
+extern const u8 gMonStillFrontPic_Arcanine[];
extern const u8 gMonIcon_Arcanine[];
extern const u8 gMonFootprint_Arcanine[];
extern const u8 gMonFrontPic_Poliwag[];
extern const u8 gMonPalette_Poliwag[];
extern const u8 gMonBackPic_Poliwag[];
extern const u8 gMonShinyPalette_Poliwag[];
+extern const u8 gMonStillFrontPic_Poliwag[];
extern const u8 gMonIcon_Poliwag[];
extern const u8 gMonFootprint_Poliwag[];
extern const u8 gMonFrontPic_Poliwhirl[];
extern const u8 gMonPalette_Poliwhirl[];
extern const u8 gMonBackPic_Poliwhirl[];
extern const u8 gMonShinyPalette_Poliwhirl[];
+extern const u8 gMonStillFrontPic_Poliwhirl[];
extern const u8 gMonIcon_Poliwhirl[];
extern const u8 gMonFootprint_Poliwhirl[];
extern const u8 gMonFrontPic_Poliwrath[];
extern const u8 gMonPalette_Poliwrath[];
extern const u8 gMonBackPic_Poliwrath[];
extern const u8 gMonShinyPalette_Poliwrath[];
+extern const u8 gMonStillFrontPic_Poliwrath[];
extern const u8 gMonIcon_Poliwrath[];
extern const u8 gMonFootprint_Poliwrath[];
extern const u8 gMonFrontPic_Abra[];
extern const u8 gMonPalette_Abra[];
extern const u8 gMonBackPic_Abra[];
extern const u8 gMonShinyPalette_Abra[];
+extern const u8 gMonStillFrontPic_Abra[];
extern const u8 gMonIcon_Abra[];
extern const u8 gMonFootprint_Abra[];
extern const u8 gMonFrontPic_Kadabra[];
extern const u8 gMonPalette_Kadabra[];
extern const u8 gMonBackPic_Kadabra[];
extern const u8 gMonShinyPalette_Kadabra[];
+extern const u8 gMonStillFrontPic_Kadabra[];
extern const u8 gMonIcon_Kadabra[];
extern const u8 gMonFootprint_Kadabra[];
extern const u8 gMonFrontPic_Alakazam[];
extern const u8 gMonPalette_Alakazam[];
extern const u8 gMonBackPic_Alakazam[];
extern const u8 gMonShinyPalette_Alakazam[];
+extern const u8 gMonStillFrontPic_Alakazam[];
extern const u8 gMonIcon_Alakazam[];
extern const u8 gMonFootprint_Alakazam[];
extern const u8 gMonFrontPic_Machop[];
extern const u8 gMonPalette_Machop[];
extern const u8 gMonBackPic_Machop[];
extern const u8 gMonShinyPalette_Machop[];
+extern const u8 gMonStillFrontPic_Machop[];
extern const u8 gMonIcon_Machop[];
extern const u8 gMonFootprint_Machop[];
extern const u8 gMonFrontPic_Machoke[];
extern const u8 gMonPalette_Machoke[];
extern const u8 gMonBackPic_Machoke[];
extern const u8 gMonShinyPalette_Machoke[];
+extern const u8 gMonStillFrontPic_Machoke[];
extern const u8 gMonIcon_Machoke[];
extern const u8 gMonFootprint_Machoke[];
extern const u8 gMonFrontPic_Machamp[];
extern const u8 gMonPalette_Machamp[];
extern const u8 gMonBackPic_Machamp[];
extern const u8 gMonShinyPalette_Machamp[];
+extern const u8 gMonStillFrontPic_Machamp[];
extern const u8 gMonIcon_Machamp[];
extern const u8 gMonFootprint_Machamp[];
extern const u8 gMonFrontPic_Bellsprout[];
extern const u8 gMonPalette_Bellsprout[];
extern const u8 gMonBackPic_Bellsprout[];
extern const u8 gMonShinyPalette_Bellsprout[];
+extern const u8 gMonStillFrontPic_Bellsprout[];
extern const u8 gMonIcon_Bellsprout[];
extern const u8 gMonFootprint_Bellsprout[];
extern const u8 gMonFrontPic_Weepinbell[];
extern const u8 gMonPalette_Weepinbell[];
extern const u8 gMonBackPic_Weepinbell[];
extern const u8 gMonShinyPalette_Weepinbell[];
+extern const u8 gMonStillFrontPic_Weepinbell[];
extern const u8 gMonIcon_Weepinbell[];
extern const u8 gMonFootprint_Weepinbell[];
extern const u8 gMonFrontPic_Victreebel[];
extern const u8 gMonPalette_Victreebel[];
extern const u8 gMonBackPic_Victreebel[];
extern const u8 gMonShinyPalette_Victreebel[];
+extern const u8 gMonStillFrontPic_Victreebel[];
extern const u8 gMonIcon_Victreebel[];
extern const u8 gMonFootprint_Victreebel[];
extern const u8 gMonFrontPic_Tentacool[];
extern const u8 gMonPalette_Tentacool[];
extern const u8 gMonBackPic_Tentacool[];
extern const u8 gMonShinyPalette_Tentacool[];
+extern const u8 gMonStillFrontPic_Tentacool[];
extern const u8 gMonIcon_Tentacool[];
extern const u8 gMonFootprint_Tentacool[];
extern const u8 gMonFrontPic_Tentacruel[];
extern const u8 gMonPalette_Tentacruel[];
extern const u8 gMonBackPic_Tentacruel[];
extern const u8 gMonShinyPalette_Tentacruel[];
+extern const u8 gMonStillFrontPic_Tentacruel[];
extern const u8 gMonIcon_Tentacruel[];
extern const u8 gMonFootprint_Tentacruel[];
extern const u8 gMonFrontPic_Geodude[];
extern const u8 gMonPalette_Geodude[];
extern const u8 gMonBackPic_Geodude[];
extern const u8 gMonShinyPalette_Geodude[];
+extern const u8 gMonStillFrontPic_Geodude[];
extern const u8 gMonIcon_Geodude[];
extern const u8 gMonFootprint_Geodude[];
extern const u8 gMonFrontPic_Graveler[];
extern const u8 gMonPalette_Graveler[];
extern const u8 gMonBackPic_Graveler[];
extern const u8 gMonShinyPalette_Graveler[];
+extern const u8 gMonStillFrontPic_Graveler[];
extern const u8 gMonIcon_Graveler[];
extern const u8 gMonFootprint_Graveler[];
extern const u8 gMonFrontPic_Golem[];
extern const u8 gMonPalette_Golem[];
extern const u8 gMonBackPic_Golem[];
extern const u8 gMonShinyPalette_Golem[];
+extern const u8 gMonStillFrontPic_Golem[];
extern const u8 gMonIcon_Golem[];
extern const u8 gMonFootprint_Golem[];
extern const u8 gMonFrontPic_Ponyta[];
extern const u8 gMonPalette_Ponyta[];
extern const u8 gMonBackPic_Ponyta[];
extern const u8 gMonShinyPalette_Ponyta[];
+extern const u8 gMonStillFrontPic_Ponyta[];
extern const u8 gMonIcon_Ponyta[];
extern const u8 gMonFootprint_Ponyta[];
extern const u8 gMonFrontPic_Rapidash[];
extern const u8 gMonPalette_Rapidash[];
extern const u8 gMonBackPic_Rapidash[];
extern const u8 gMonShinyPalette_Rapidash[];
+extern const u8 gMonStillFrontPic_Rapidash[];
extern const u8 gMonIcon_Rapidash[];
extern const u8 gMonFootprint_Rapidash[];
extern const u8 gMonFrontPic_Slowpoke[];
extern const u8 gMonPalette_Slowpoke[];
extern const u8 gMonBackPic_Slowpoke[];
extern const u8 gMonShinyPalette_Slowpoke[];
+extern const u8 gMonStillFrontPic_Slowpoke[];
extern const u8 gMonIcon_Slowpoke[];
extern const u8 gMonFootprint_Slowpoke[];
extern const u8 gMonFrontPic_Slowbro[];
extern const u8 gMonPalette_Slowbro[];
extern const u8 gMonBackPic_Slowbro[];
extern const u8 gMonShinyPalette_Slowbro[];
+extern const u8 gMonStillFrontPic_Slowbro[];
extern const u8 gMonIcon_Slowbro[];
extern const u8 gMonFootprint_Slowbro[];
extern const u8 gMonFrontPic_Magnemite[];
extern const u8 gMonPalette_Magnemite[];
extern const u8 gMonBackPic_Magnemite[];
extern const u8 gMonShinyPalette_Magnemite[];
+extern const u8 gMonStillFrontPic_Magnemite[];
extern const u8 gMonIcon_Magnemite[];
extern const u8 gMonFootprint_Magnemite[];
extern const u8 gMonFrontPic_Magneton[];
extern const u8 gMonPalette_Magneton[];
extern const u8 gMonBackPic_Magneton[];
extern const u8 gMonShinyPalette_Magneton[];
+extern const u8 gMonStillFrontPic_Magneton[];
extern const u8 gMonIcon_Magneton[];
extern const u8 gMonFootprint_Magneton[];
extern const u8 gMonFrontPic_Farfetchd[];
extern const u8 gMonPalette_Farfetchd[];
extern const u8 gMonBackPic_Farfetchd[];
extern const u8 gMonShinyPalette_Farfetchd[];
+extern const u8 gMonStillFrontPic_Farfetchd[];
extern const u8 gMonIcon_Farfetchd[];
extern const u8 gMonFootprint_Farfetchd[];
extern const u8 gMonFrontPic_Doduo[];
extern const u8 gMonPalette_Doduo[];
extern const u8 gMonBackPic_Doduo[];
extern const u8 gMonShinyPalette_Doduo[];
+extern const u8 gMonStillFrontPic_Doduo[];
extern const u8 gMonIcon_Doduo[];
extern const u8 gMonFootprint_Doduo[];
extern const u8 gMonFrontPic_Dodrio[];
extern const u8 gMonPalette_Dodrio[];
extern const u8 gMonBackPic_Dodrio[];
extern const u8 gMonShinyPalette_Dodrio[];
+extern const u8 gMonStillFrontPic_Dodrio[];
extern const u8 gMonIcon_Dodrio[];
extern const u8 gMonFootprint_Dodrio[];
extern const u8 gMonFrontPic_Seel[];
extern const u8 gMonPalette_Seel[];
extern const u8 gMonBackPic_Seel[];
extern const u8 gMonShinyPalette_Seel[];
+extern const u8 gMonStillFrontPic_Seel[];
extern const u8 gMonIcon_Seel[];
extern const u8 gMonFootprint_Seel[];
extern const u8 gMonFrontPic_Dewgong[];
extern const u8 gMonPalette_Dewgong[];
extern const u8 gMonBackPic_Dewgong[];
extern const u8 gMonShinyPalette_Dewgong[];
+extern const u8 gMonStillFrontPic_Dewgong[];
extern const u8 gMonIcon_Dewgong[];
extern const u8 gMonFootprint_Dewgong[];
extern const u8 gMonFrontPic_Grimer[];
extern const u8 gMonPalette_Grimer[];
extern const u8 gMonBackPic_Grimer[];
extern const u8 gMonShinyPalette_Grimer[];
+extern const u8 gMonStillFrontPic_Grimer[];
extern const u8 gMonIcon_Grimer[];
extern const u8 gMonFootprint_Grimer[];
+extern const u8 gMonStillFrontPic_Muk[];
extern const u8 gMonFrontPic_Muk[];
extern const u8 gMonPalette_Muk[];
extern const u8 gMonBackPic_Muk[];
extern const u8 gMonShinyPalette_Muk[];
+extern const u8 gMonStillFrontPic_Shellder[];
extern const u8 gMonIcon_Muk[];
extern const u8 gMonFootprint_Muk[];
extern const u8 gMonFrontPic_Shellder[];
extern const u8 gMonPalette_Shellder[];
extern const u8 gMonBackPic_Shellder[];
extern const u8 gMonShinyPalette_Shellder[];
+extern const u8 gMonStillFrontPic_Cloyster[];
extern const u8 gMonIcon_Shellder[];
extern const u8 gMonFootprint_Shellder[];
extern const u8 gMonFrontPic_Cloyster[];
extern const u8 gMonPalette_Cloyster[];
extern const u8 gMonBackPic_Cloyster[];
extern const u8 gMonShinyPalette_Cloyster[];
+extern const u8 gMonStillFrontPic_Gastly[];
extern const u8 gMonIcon_Cloyster[];
extern const u8 gMonFootprint_Cloyster[];
extern const u8 gMonFrontPic_Gastly[];
extern const u8 gMonPalette_Gastly[];
extern const u8 gMonBackPic_Gastly[];
extern const u8 gMonShinyPalette_Gastly[];
+extern const u8 gMonStillFrontPic_Haunter[];
extern const u8 gMonIcon_Gastly[];
extern const u8 gMonFootprint_Gastly[];
extern const u8 gMonFrontPic_Haunter[];
extern const u8 gMonPalette_Haunter[];
extern const u8 gMonBackPic_Haunter[];
extern const u8 gMonShinyPalette_Haunter[];
+extern const u8 gMonStillFrontPic_Haunter[];
extern const u8 gMonIcon_Haunter[];
extern const u8 gMonFootprint_Haunter[];
extern const u8 gMonFrontPic_Gengar[];
extern const u8 gMonPalette_Gengar[];
extern const u8 gMonBackPic_Gengar[];
extern const u8 gMonShinyPalette_Gengar[];
+extern const u8 gMonStillFrontPic_Gengar[];
extern const u8 gMonIcon_Gengar[];
extern const u8 gMonFootprint_Gengar[];
extern const u8 gMonFrontPic_Onix[];
extern const u8 gMonPalette_Onix[];
extern const u8 gMonBackPic_Onix[];
extern const u8 gMonShinyPalette_Onix[];
+extern const u8 gMonStillFrontPic_Onix[];
extern const u8 gMonIcon_Onix[];
extern const u8 gMonFootprint_Onix[];
extern const u8 gMonFrontPic_Drowzee[];
extern const u8 gMonPalette_Drowzee[];
extern const u8 gMonBackPic_Drowzee[];
extern const u8 gMonShinyPalette_Drowzee[];
+extern const u8 gMonStillFrontPic_Drowzee[];
extern const u8 gMonIcon_Drowzee[];
extern const u8 gMonFootprint_Drowzee[];
extern const u8 gMonFrontPic_Hypno[];
extern const u8 gMonPalette_Hypno[];
extern const u8 gMonBackPic_Hypno[];
extern const u8 gMonShinyPalette_Hypno[];
+extern const u8 gMonStillFrontPic_Hypno[];
extern const u8 gMonIcon_Hypno[];
extern const u8 gMonFootprint_Hypno[];
extern const u8 gMonFrontPic_Krabby[];
extern const u8 gMonPalette_Krabby[];
extern const u8 gMonBackPic_Krabby[];
extern const u8 gMonShinyPalette_Krabby[];
+extern const u8 gMonStillFrontPic_Krabby[];
extern const u8 gMonIcon_Krabby[];
extern const u8 gMonFootprint_Krabby[];
extern const u8 gMonFrontPic_Kingler[];
extern const u8 gMonPalette_Kingler[];
extern const u8 gMonBackPic_Kingler[];
extern const u8 gMonShinyPalette_Kingler[];
+extern const u8 gMonStillFrontPic_Kingler[];
extern const u8 gMonIcon_Kingler[];
extern const u8 gMonFootprint_Kingler[];
extern const u8 gMonFrontPic_Voltorb[];
extern const u8 gMonPalette_Voltorb[];
extern const u8 gMonBackPic_Voltorb[];
extern const u8 gMonShinyPalette_Voltorb[];
+extern const u8 gMonStillFrontPic_Voltorb[];
extern const u8 gMonIcon_Voltorb[];
extern const u8 gMonFootprint_Voltorb[];
extern const u8 gMonFrontPic_Electrode[];
extern const u8 gMonPalette_Electrode[];
extern const u8 gMonBackPic_Electrode[];
extern const u8 gMonShinyPalette_Electrode[];
+extern const u8 gMonStillFrontPic_Electrode[];
extern const u8 gMonIcon_Electrode[];
extern const u8 gMonFootprint_Electrode[];
extern const u8 gMonFrontPic_Exeggcute[];
extern const u8 gMonPalette_Exeggcute[];
extern const u8 gMonBackPic_Exeggcute[];
extern const u8 gMonShinyPalette_Exeggcute[];
+extern const u8 gMonStillFrontPic_Exeggcute[];
extern const u8 gMonIcon_Exeggcute[];
extern const u8 gMonFootprint_Exeggcute[];
extern const u8 gMonFrontPic_Exeggutor[];
extern const u8 gMonPalette_Exeggutor[];
extern const u8 gMonBackPic_Exeggutor[];
extern const u8 gMonShinyPalette_Exeggutor[];
+extern const u8 gMonStillFrontPic_Exeggutor[];
extern const u8 gMonIcon_Exeggutor[];
extern const u8 gMonFootprint_Exeggutor[];
extern const u8 gMonFrontPic_Cubone[];
extern const u8 gMonPalette_Cubone[];
extern const u8 gMonBackPic_Cubone[];
extern const u8 gMonShinyPalette_Cubone[];
+extern const u8 gMonStillFrontPic_Cubone[];
extern const u8 gMonIcon_Cubone[];
extern const u8 gMonFootprint_Cubone[];
extern const u8 gMonFrontPic_Marowak[];
extern const u8 gMonPalette_Marowak[];
extern const u8 gMonBackPic_Marowak[];
extern const u8 gMonShinyPalette_Marowak[];
+extern const u8 gMonStillFrontPic_Marowak[];
extern const u8 gMonIcon_Marowak[];
extern const u8 gMonFootprint_Marowak[];
extern const u8 gMonFrontPic_Hitmonlee[];
extern const u8 gMonPalette_Hitmonlee[];
extern const u8 gMonBackPic_Hitmonlee[];
extern const u8 gMonShinyPalette_Hitmonlee[];
+extern const u8 gMonStillFrontPic_Hitmonlee[];
extern const u8 gMonIcon_Hitmonlee[];
extern const u8 gMonFootprint_Hitmonlee[];
extern const u8 gMonFrontPic_Hitmonchan[];
extern const u8 gMonPalette_Hitmonchan[];
extern const u8 gMonBackPic_Hitmonchan[];
extern const u8 gMonShinyPalette_Hitmonchan[];
+extern const u8 gMonStillFrontPic_Hitmonchan[];
extern const u8 gMonIcon_Hitmonchan[];
extern const u8 gMonFootprint_Hitmonchan[];
extern const u8 gMonFrontPic_Lickitung[];
extern const u8 gMonPalette_Lickitung[];
extern const u8 gMonBackPic_Lickitung[];
extern const u8 gMonShinyPalette_Lickitung[];
+extern const u8 gMonStillFrontPic_Lickitung[];
extern const u8 gMonIcon_Lickitung[];
extern const u8 gMonFootprint_Lickitung[];
extern const u8 gMonFrontPic_Koffing[];
extern const u8 gMonPalette_Koffing[];
extern const u8 gMonBackPic_Koffing[];
extern const u8 gMonShinyPalette_Koffing[];
+extern const u8 gMonStillFrontPic_Koffing[];
extern const u8 gMonIcon_Koffing[];
extern const u8 gMonFootprint_Koffing[];
extern const u8 gMonFrontPic_Weezing[];
extern const u8 gMonPalette_Weezing[];
extern const u8 gMonBackPic_Weezing[];
extern const u8 gMonShinyPalette_Weezing[];
+extern const u8 gMonStillFrontPic_Weezing[];
extern const u8 gMonIcon_Weezing[];
extern const u8 gMonFootprint_Weezing[];
extern const u8 gMonFrontPic_Rhyhorn[];
extern const u8 gMonPalette_Rhyhorn[];
extern const u8 gMonBackPic_Rhyhorn[];
extern const u8 gMonShinyPalette_Rhyhorn[];
+extern const u8 gMonStillFrontPic_Rhyhorn[];
extern const u8 gMonIcon_Rhyhorn[];
extern const u8 gMonFootprint_Rhyhorn[];
extern const u8 gMonFrontPic_Rhydon[];
extern const u8 gMonPalette_Rhydon[];
extern const u8 gMonBackPic_Rhydon[];
extern const u8 gMonShinyPalette_Rhydon[];
+extern const u8 gMonStillFrontPic_Rhydon[];
extern const u8 gMonIcon_Rhydon[];
extern const u8 gMonFootprint_Rhydon[];
extern const u8 gMonFrontPic_Chansey[];
extern const u8 gMonPalette_Chansey[];
extern const u8 gMonBackPic_Chansey[];
extern const u8 gMonShinyPalette_Chansey[];
+extern const u8 gMonStillFrontPic_Chansey[];
extern const u8 gMonIcon_Chansey[];
extern const u8 gMonFootprint_Chansey[];
extern const u8 gMonFrontPic_Tangela[];
extern const u8 gMonPalette_Tangela[];
extern const u8 gMonBackPic_Tangela[];
extern const u8 gMonShinyPalette_Tangela[];
+extern const u8 gMonStillFrontPic_Tangela[];
extern const u8 gMonIcon_Tangela[];
extern const u8 gMonFootprint_Tangela[];
extern const u8 gMonFrontPic_Kangaskhan[];
extern const u8 gMonPalette_Kangaskhan[];
extern const u8 gMonBackPic_Kangaskhan[];
extern const u8 gMonShinyPalette_Kangaskhan[];
+extern const u8 gMonStillFrontPic_Kangaskhan[];
extern const u8 gMonIcon_Kangaskhan[];
extern const u8 gMonFootprint_Kangaskhan[];
extern const u8 gMonFrontPic_Horsea[];
extern const u8 gMonPalette_Horsea[];
extern const u8 gMonBackPic_Horsea[];
extern const u8 gMonShinyPalette_Horsea[];
+extern const u8 gMonStillFrontPic_Horsea[];
extern const u8 gMonIcon_Horsea[];
extern const u8 gMonFootprint_Horsea[];
extern const u8 gMonFrontPic_Seadra[];
extern const u8 gMonPalette_Seadra[];
extern const u8 gMonBackPic_Seadra[];
extern const u8 gMonShinyPalette_Seadra[];
+extern const u8 gMonStillFrontPic_Seadra[];
extern const u8 gMonIcon_Seadra[];
extern const u8 gMonFootprint_Seadra[];
extern const u8 gMonFrontPic_Goldeen[];
extern const u8 gMonPalette_Goldeen[];
extern const u8 gMonBackPic_Goldeen[];
extern const u8 gMonShinyPalette_Goldeen[];
+extern const u8 gMonStillFrontPic_Goldeen[];
extern const u8 gMonIcon_Goldeen[];
extern const u8 gMonFootprint_Goldeen[];
extern const u8 gMonFrontPic_Seaking[];
extern const u8 gMonPalette_Seaking[];
extern const u8 gMonBackPic_Seaking[];
extern const u8 gMonShinyPalette_Seaking[];
+extern const u8 gMonStillFrontPic_Seaking[];
extern const u8 gMonIcon_Seaking[];
extern const u8 gMonFootprint_Seaking[];
extern const u8 gMonFrontPic_Staryu[];
extern const u8 gMonPalette_Staryu[];
extern const u8 gMonBackPic_Staryu[];
extern const u8 gMonShinyPalette_Staryu[];
+extern const u8 gMonStillFrontPic_Staryu[];
extern const u8 gMonIcon_Staryu[];
extern const u8 gMonFootprint_Staryu[];
extern const u8 gMonFrontPic_Starmie[];
extern const u8 gMonPalette_Starmie[];
extern const u8 gMonBackPic_Starmie[];
extern const u8 gMonShinyPalette_Starmie[];
+extern const u8 gMonStillFrontPic_Starmie[];
extern const u8 gMonIcon_Starmie[];
extern const u8 gMonFootprint_Starmie[];
extern const u8 gMonFrontPic_Mrmime[];
extern const u8 gMonPalette_Mrmime[];
extern const u8 gMonBackPic_Mrmime[];
extern const u8 gMonShinyPalette_Mrmime[];
+extern const u8 gMonStillFrontPic_Mrmime[];
extern const u8 gMonIcon_Mrmime[];
extern const u8 gMonFootprint_Mrmime[];
extern const u8 gMonFrontPic_Scyther[];
extern const u8 gMonPalette_Scyther[];
extern const u8 gMonBackPic_Scyther[];
extern const u8 gMonShinyPalette_Scyther[];
+extern const u8 gMonStillFrontPic_Scyther[];
extern const u8 gMonIcon_Scyther[];
extern const u8 gMonFootprint_Scyther[];
extern const u8 gMonFrontPic_Jynx[];
extern const u8 gMonPalette_Jynx[];
extern const u8 gMonBackPic_Jynx[];
extern const u8 gMonShinyPalette_Jynx[];
+extern const u8 gMonStillFrontPic_Jynx[];
extern const u8 gMonIcon_Jynx[];
extern const u8 gMonFootprint_Jynx[];
extern const u8 gMonFrontPic_Electabuzz[];
extern const u8 gMonPalette_Electabuzz[];
extern const u8 gMonBackPic_Electabuzz[];
extern const u8 gMonShinyPalette_Electabuzz[];
+extern const u8 gMonStillFrontPic_Electabuzz[];
extern const u8 gMonIcon_Electabuzz[];
extern const u8 gMonFootprint_Electabuzz[];
extern const u8 gMonFrontPic_Magmar[];
extern const u8 gMonPalette_Magmar[];
extern const u8 gMonBackPic_Magmar[];
extern const u8 gMonShinyPalette_Magmar[];
+extern const u8 gMonStillFrontPic_Magmar[];
extern const u8 gMonIcon_Magmar[];
extern const u8 gMonFootprint_Magmar[];
extern const u8 gMonFrontPic_Pinsir[];
extern const u8 gMonPalette_Pinsir[];
extern const u8 gMonBackPic_Pinsir[];
extern const u8 gMonShinyPalette_Pinsir[];
+extern const u8 gMonStillFrontPic_Pinsir[];
extern const u8 gMonIcon_Pinsir[];
extern const u8 gMonFootprint_Pinsir[];
extern const u8 gMonFrontPic_Tauros[];
extern const u8 gMonPalette_Tauros[];
extern const u8 gMonBackPic_Tauros[];
extern const u8 gMonShinyPalette_Tauros[];
+extern const u8 gMonStillFrontPic_Tauros[];
extern const u8 gMonIcon_Tauros[];
extern const u8 gMonFootprint_Tauros[];
extern const u8 gMonFrontPic_Magikarp[];
extern const u8 gMonPalette_Magikarp[];
extern const u8 gMonBackPic_Magikarp[];
extern const u8 gMonShinyPalette_Magikarp[];
+extern const u8 gMonStillFrontPic_Magikarp[];
extern const u8 gMonIcon_Magikarp[];
extern const u8 gMonFootprint_Magikarp[];
extern const u8 gMonFrontPic_Gyarados[];
extern const u8 gMonPalette_Gyarados[];
extern const u8 gMonBackPic_Gyarados[];
extern const u8 gMonShinyPalette_Gyarados[];
+extern const u8 gMonStillFrontPic_Gyarados[];
extern const u8 gMonIcon_Gyarados[];
extern const u8 gMonFootprint_Gyarados[];
extern const u8 gMonFrontPic_Lapras[];
extern const u8 gMonPalette_Lapras[];
extern const u8 gMonBackPic_Lapras[];
extern const u8 gMonShinyPalette_Lapras[];
+extern const u8 gMonStillFrontPic_Lapras[];
extern const u8 gMonIcon_Lapras[];
extern const u8 gMonFootprint_Lapras[];
extern const u8 gMonFrontPic_Ditto[];
extern const u8 gMonPalette_Ditto[];
extern const u8 gMonBackPic_Ditto[];
extern const u8 gMonShinyPalette_Ditto[];
+extern const u8 gMonStillFrontPic_Ditto[];
extern const u8 gMonIcon_Ditto[];
extern const u8 gMonFootprint_Ditto[];
extern const u8 gMonFrontPic_Eevee[];
extern const u8 gMonPalette_Eevee[];
extern const u8 gMonBackPic_Eevee[];
extern const u8 gMonShinyPalette_Eevee[];
+extern const u8 gMonStillFrontPic_Eevee[];
extern const u8 gMonIcon_Eevee[];
extern const u8 gMonFootprint_Eevee[];
extern const u8 gMonFrontPic_Vaporeon[];
extern const u8 gMonPalette_Vaporeon[];
extern const u8 gMonBackPic_Vaporeon[];
extern const u8 gMonShinyPalette_Vaporeon[];
+extern const u8 gMonStillFrontPic_Vaporeon[];
extern const u8 gMonIcon_Vaporeon[];
extern const u8 gMonFootprint_Vaporeon[];
extern const u8 gMonFrontPic_Jolteon[];
extern const u8 gMonPalette_Jolteon[];
extern const u8 gMonBackPic_Jolteon[];
extern const u8 gMonShinyPalette_Jolteon[];
+extern const u8 gMonStillFrontPic_Jolteon[];
extern const u8 gMonIcon_Jolteon[];
extern const u8 gMonFootprint_Jolteon[];
extern const u8 gMonFrontPic_Flareon[];
extern const u8 gMonPalette_Flareon[];
extern const u8 gMonBackPic_Flareon[];
extern const u8 gMonShinyPalette_Flareon[];
+extern const u8 gMonStillFrontPic_Flareon[];
extern const u8 gMonIcon_Flareon[];
extern const u8 gMonFootprint_Flareon[];
extern const u8 gMonFrontPic_Porygon[];
extern const u8 gMonPalette_Porygon[];
extern const u8 gMonBackPic_Porygon[];
extern const u8 gMonShinyPalette_Porygon[];
+extern const u8 gMonStillFrontPic_Porygon[];
extern const u8 gMonIcon_Porygon[];
extern const u8 gMonFootprint_Porygon[];
extern const u8 gMonFrontPic_Omanyte[];
extern const u8 gMonPalette_Omanyte[];
extern const u8 gMonBackPic_Omanyte[];
extern const u8 gMonShinyPalette_Omanyte[];
+extern const u8 gMonStillFrontPic_Omanyte[];
extern const u8 gMonIcon_Omanyte[];
extern const u8 gMonFootprint_Omanyte[];
extern const u8 gMonFrontPic_Omastar[];
extern const u8 gMonPalette_Omastar[];
extern const u8 gMonBackPic_Omastar[];
extern const u8 gMonShinyPalette_Omastar[];
+extern const u8 gMonStillFrontPic_Omastar[];
extern const u8 gMonIcon_Omastar[];
extern const u8 gMonFootprint_Omastar[];
extern const u8 gMonFrontPic_Kabuto[];
extern const u8 gMonPalette_Kabuto[];
extern const u8 gMonBackPic_Kabuto[];
extern const u8 gMonShinyPalette_Kabuto[];
+extern const u8 gMonStillFrontPic_Kabuto[];
extern const u8 gMonIcon_Kabuto[];
extern const u8 gMonFootprint_Kabuto[];
extern const u8 gMonFrontPic_Kabutops[];
extern const u8 gMonPalette_Kabutops[];
extern const u8 gMonBackPic_Kabutops[];
extern const u8 gMonShinyPalette_Kabutops[];
+extern const u8 gMonStillFrontPic_Kabutops[];
extern const u8 gMonIcon_Kabutops[];
extern const u8 gMonFootprint_Kabutops[];
extern const u8 gMonFrontPic_Aerodactyl[];
extern const u8 gMonPalette_Aerodactyl[];
extern const u8 gMonBackPic_Aerodactyl[];
extern const u8 gMonShinyPalette_Aerodactyl[];
+extern const u8 gMonStillFrontPic_Aerodactyl[];
extern const u8 gMonIcon_Aerodactyl[];
extern const u8 gMonFootprint_Aerodactyl[];
extern const u8 gMonFrontPic_Snorlax[];
extern const u8 gMonPalette_Snorlax[];
extern const u8 gMonBackPic_Snorlax[];
extern const u8 gMonShinyPalette_Snorlax[];
+extern const u8 gMonStillFrontPic_Snorlax[];
extern const u8 gMonIcon_Snorlax[];
extern const u8 gMonFootprint_Snorlax[];
extern const u8 gMonFrontPic_Articuno[];
extern const u8 gMonPalette_Articuno[];
extern const u8 gMonBackPic_Articuno[];
extern const u8 gMonShinyPalette_Articuno[];
+extern const u8 gMonStillFrontPic_Articuno[];
extern const u8 gMonIcon_Articuno[];
extern const u8 gMonFootprint_Articuno[];
extern const u8 gMonFrontPic_Zapdos[];
extern const u8 gMonPalette_Zapdos[];
extern const u8 gMonBackPic_Zapdos[];
extern const u8 gMonShinyPalette_Zapdos[];
+extern const u8 gMonStillFrontPic_Zapdos[];
extern const u8 gMonIcon_Zapdos[];
extern const u8 gMonFootprint_Zapdos[];
extern const u8 gMonFrontPic_Moltres[];
extern const u8 gMonPalette_Moltres[];
extern const u8 gMonBackPic_Moltres[];
extern const u8 gMonShinyPalette_Moltres[];
+extern const u8 gMonStillFrontPic_Moltres[];
extern const u8 gMonIcon_Moltres[];
extern const u8 gMonFootprint_Moltres[];
extern const u8 gMonFrontPic_Dratini[];
extern const u8 gMonPalette_Dratini[];
extern const u8 gMonBackPic_Dratini[];
extern const u8 gMonShinyPalette_Dratini[];
+extern const u8 gMonStillFrontPic_Dratini[];
extern const u8 gMonIcon_Dratini[];
extern const u8 gMonFootprint_Dratini[];
extern const u8 gMonFrontPic_Dragonair[];
extern const u8 gMonPalette_Dragonair[];
extern const u8 gMonBackPic_Dragonair[];
extern const u8 gMonShinyPalette_Dragonair[];
+extern const u8 gMonStillFrontPic_Dragonair[];
extern const u8 gMonIcon_Dragonair[];
extern const u8 gMonFootprint_Dragonair[];
extern const u8 gMonFrontPic_Dragonite[];
extern const u8 gMonPalette_Dragonite[];
extern const u8 gMonBackPic_Dragonite[];
extern const u8 gMonShinyPalette_Dragonite[];
+extern const u8 gMonStillFrontPic_Dragonite[];
extern const u8 gMonIcon_Dragonite[];
extern const u8 gMonFootprint_Dragonite[];
extern const u8 gMonFrontPic_Mewtwo[];
extern const u8 gMonPalette_Mewtwo[];
extern const u8 gMonBackPic_Mewtwo[];
extern const u8 gMonShinyPalette_Mewtwo[];
+extern const u8 gMonStillFrontPic_Mewtwo[];
extern const u8 gMonIcon_Mewtwo[];
extern const u8 gMonFootprint_Mewtwo[];
extern const u8 gMonFrontPic_Mew[];
extern const u8 gMonPalette_Mew[];
extern const u8 gMonBackPic_Mew[];
extern const u8 gMonShinyPalette_Mew[];
+extern const u8 gMonStillFrontPic_Mew[];
extern const u8 gMonIcon_Mew[];
extern const u8 gMonFootprint_Mew[];
extern const u8 gMonFrontPic_Chikorita[];
extern const u8 gMonPalette_Chikorita[];
extern const u8 gMonBackPic_Chikorita[];
extern const u8 gMonShinyPalette_Chikorita[];
+extern const u8 gMonStillFrontPic_Chikorita[];
extern const u8 gMonIcon_Chikorita[];
extern const u8 gMonFootprint_Chikorita[];
extern const u8 gMonFrontPic_Bayleef[];
extern const u8 gMonPalette_Bayleef[];
extern const u8 gMonBackPic_Bayleef[];
extern const u8 gMonShinyPalette_Bayleef[];
+extern const u8 gMonStillFrontPic_Bayleef[];
extern const u8 gMonIcon_Bayleef[];
extern const u8 gMonFootprint_Bayleef[];
extern const u8 gMonFrontPic_Meganium[];
extern const u8 gMonPalette_Meganium[];
extern const u8 gMonBackPic_Meganium[];
extern const u8 gMonShinyPalette_Meganium[];
+extern const u8 gMonStillFrontPic_Meganium[];
extern const u8 gMonIcon_Meganium[];
extern const u8 gMonFootprint_Meganium[];
extern const u8 gMonFrontPic_Cyndaquil[];
extern const u8 gMonPalette_Cyndaquil[];
extern const u8 gMonBackPic_Cyndaquil[];
extern const u8 gMonShinyPalette_Cyndaquil[];
+extern const u8 gMonStillFrontPic_Cyndaquil[];
extern const u8 gMonIcon_Cyndaquil[];
extern const u8 gMonFootprint_Cyndaquil[];
extern const u8 gMonFrontPic_Quilava[];
extern const u8 gMonPalette_Quilava[];
extern const u8 gMonBackPic_Quilava[];
extern const u8 gMonShinyPalette_Quilava[];
+extern const u8 gMonStillFrontPic_Quilava[];
extern const u8 gMonIcon_Quilava[];
extern const u8 gMonFootprint_Quilava[];
extern const u8 gMonFrontPic_Typhlosion[];
extern const u8 gMonPalette_Typhlosion[];
extern const u8 gMonBackPic_Typhlosion[];
extern const u8 gMonShinyPalette_Typhlosion[];
+extern const u8 gMonStillFrontPic_Typhlosion[];
extern const u8 gMonIcon_Typhlosion[];
extern const u8 gMonFootprint_Typhlosion[];
extern const u8 gMonFrontPic_Totodile[];
extern const u8 gMonPalette_Totodile[];
extern const u8 gMonBackPic_Totodile[];
extern const u8 gMonShinyPalette_Totodile[];
+extern const u8 gMonStillFrontPic_Totodile[];
extern const u8 gMonIcon_Totodile[];
extern const u8 gMonFootprint_Totodile[];
extern const u8 gMonFrontPic_Croconaw[];
extern const u8 gMonPalette_Croconaw[];
extern const u8 gMonBackPic_Croconaw[];
extern const u8 gMonShinyPalette_Croconaw[];
+extern const u8 gMonStillFrontPic_Croconaw[];
extern const u8 gMonIcon_Croconaw[];
extern const u8 gMonFootprint_Croconaw[];
extern const u8 gMonFrontPic_Feraligatr[];
extern const u8 gMonPalette_Feraligatr[];
extern const u8 gMonBackPic_Feraligatr[];
extern const u8 gMonShinyPalette_Feraligatr[];
+extern const u8 gMonStillFrontPic_Feraligatr[];
extern const u8 gMonIcon_Feraligatr[];
extern const u8 gMonFootprint_Feraligatr[];
extern const u8 gMonFrontPic_Sentret[];
extern const u8 gMonPalette_Sentret[];
extern const u8 gMonBackPic_Sentret[];
extern const u8 gMonShinyPalette_Sentret[];
+extern const u8 gMonStillFrontPic_Sentret[];
extern const u8 gMonIcon_Sentret[];
extern const u8 gMonFootprint_Sentret[];
extern const u8 gMonFrontPic_Furret[];
extern const u8 gMonPalette_Furret[];
extern const u8 gMonBackPic_Furret[];
extern const u8 gMonShinyPalette_Furret[];
+extern const u8 gMonStillFrontPic_Furret[];
extern const u8 gMonIcon_Furret[];
extern const u8 gMonFootprint_Furret[];
extern const u8 gMonFrontPic_Hoothoot[];
extern const u8 gMonPalette_Hoothoot[];
extern const u8 gMonBackPic_Hoothoot[];
extern const u8 gMonShinyPalette_Hoothoot[];
+extern const u8 gMonStillFrontPic_Hoothoot[];
extern const u8 gMonIcon_Hoothoot[];
extern const u8 gMonFootprint_Hoothoot[];
extern const u8 gMonFrontPic_Noctowl[];
extern const u8 gMonPalette_Noctowl[];
extern const u8 gMonBackPic_Noctowl[];
extern const u8 gMonShinyPalette_Noctowl[];
+extern const u8 gMonStillFrontPic_Noctowl[];
extern const u8 gMonIcon_Noctowl[];
extern const u8 gMonFootprint_Noctowl[];
extern const u8 gMonFrontPic_Ledyba[];
extern const u8 gMonPalette_Ledyba[];
extern const u8 gMonBackPic_Ledyba[];
extern const u8 gMonShinyPalette_Ledyba[];
+extern const u8 gMonStillFrontPic_Ledyba[];
extern const u8 gMonIcon_Ledyba[];
extern const u8 gMonFootprint_Ledyba[];
extern const u8 gMonFrontPic_Ledian[];
extern const u8 gMonPalette_Ledian[];
extern const u8 gMonBackPic_Ledian[];
extern const u8 gMonShinyPalette_Ledian[];
+extern const u8 gMonStillFrontPic_Ledian[];
extern const u8 gMonIcon_Ledian[];
extern const u8 gMonFootprint_Ledian[];
extern const u8 gMonFrontPic_Spinarak[];
extern const u8 gMonPalette_Spinarak[];
extern const u8 gMonBackPic_Spinarak[];
extern const u8 gMonShinyPalette_Spinarak[];
+extern const u8 gMonStillFrontPic_Spinarak[];
extern const u8 gMonIcon_Spinarak[];
extern const u8 gMonFootprint_Spinarak[];
extern const u8 gMonFrontPic_Ariados[];
extern const u8 gMonPalette_Ariados[];
extern const u8 gMonBackPic_Ariados[];
extern const u8 gMonShinyPalette_Ariados[];
+extern const u8 gMonStillFrontPic_Ariados[];
extern const u8 gMonIcon_Ariados[];
extern const u8 gMonFootprint_Ariados[];
extern const u8 gMonFrontPic_Crobat[];
extern const u8 gMonPalette_Crobat[];
extern const u8 gMonBackPic_Crobat[];
extern const u8 gMonShinyPalette_Crobat[];
+extern const u8 gMonStillFrontPic_Crobat[];
extern const u8 gMonIcon_Crobat[];
extern const u8 gMonFootprint_Crobat[];
extern const u8 gMonFrontPic_Chinchou[];
extern const u8 gMonPalette_Chinchou[];
extern const u8 gMonBackPic_Chinchou[];
extern const u8 gMonShinyPalette_Chinchou[];
+extern const u8 gMonStillFrontPic_Chinchou[];
extern const u8 gMonIcon_Chinchou[];
extern const u8 gMonFootprint_Chinchou[];
extern const u8 gMonFrontPic_Lanturn[];
extern const u8 gMonPalette_Lanturn[];
extern const u8 gMonBackPic_Lanturn[];
extern const u8 gMonShinyPalette_Lanturn[];
+extern const u8 gMonStillFrontPic_Lanturn[];
extern const u8 gMonIcon_Lanturn[];
extern const u8 gMonFootprint_Lanturn[];
extern const u8 gMonFrontPic_Pichu[];
extern const u8 gMonPalette_Pichu[];
extern const u8 gMonBackPic_Pichu[];
extern const u8 gMonShinyPalette_Pichu[];
+extern const u8 gMonStillFrontPic_Pichu[];
extern const u8 gMonIcon_Pichu[];
extern const u8 gMonFootprint_Pichu[];
extern const u8 gMonFrontPic_Cleffa[];
extern const u8 gMonPalette_Cleffa[];
extern const u8 gMonBackPic_Cleffa[];
extern const u8 gMonShinyPalette_Cleffa[];
+extern const u8 gMonStillFrontPic_Cleffa[];
extern const u8 gMonIcon_Cleffa[];
extern const u8 gMonFootprint_Cleffa[];
extern const u8 gMonFrontPic_Igglybuff[];
extern const u8 gMonPalette_Igglybuff[];
extern const u8 gMonBackPic_Igglybuff[];
extern const u8 gMonShinyPalette_Igglybuff[];
+extern const u8 gMonStillFrontPic_Igglybuff[];
extern const u8 gMonIcon_Igglybuff[];
extern const u8 gMonFootprint_Igglybuff[];
extern const u8 gMonFrontPic_Togepi[];
extern const u8 gMonPalette_Togepi[];
extern const u8 gMonBackPic_Togepi[];
extern const u8 gMonShinyPalette_Togepi[];
+extern const u8 gMonStillFrontPic_Togepi[];
extern const u8 gMonIcon_Togepi[];
extern const u8 gMonFootprint_Togepi[];
extern const u8 gMonFrontPic_Togetic[];
extern const u8 gMonPalette_Togetic[];
extern const u8 gMonBackPic_Togetic[];
extern const u8 gMonShinyPalette_Togetic[];
+extern const u8 gMonStillFrontPic_Togetic[];
extern const u8 gMonIcon_Togetic[];
extern const u8 gMonFootprint_Togetic[];
extern const u8 gMonFrontPic_Natu[];
extern const u8 gMonPalette_Natu[];
extern const u8 gMonBackPic_Natu[];
extern const u8 gMonShinyPalette_Natu[];
+extern const u8 gMonStillFrontPic_Natu[];
extern const u8 gMonIcon_Natu[];
extern const u8 gMonFootprint_Natu[];
extern const u8 gMonFrontPic_Xatu[];
extern const u8 gMonPalette_Xatu[];
extern const u8 gMonBackPic_Xatu[];
extern const u8 gMonShinyPalette_Xatu[];
+extern const u8 gMonStillFrontPic_Xatu[];
extern const u8 gMonIcon_Xatu[];
extern const u8 gMonFootprint_Xatu[];
extern const u8 gMonFrontPic_Mareep[];
extern const u8 gMonPalette_Mareep[];
extern const u8 gMonBackPic_Mareep[];
extern const u8 gMonShinyPalette_Mareep[];
+extern const u8 gMonStillFrontPic_Mareep[];
extern const u8 gMonIcon_Mareep[];
extern const u8 gMonFootprint_Mareep[];
extern const u8 gMonFrontPic_Flaaffy[];
extern const u8 gMonPalette_Flaaffy[];
extern const u8 gMonBackPic_Flaaffy[];
extern const u8 gMonShinyPalette_Flaaffy[];
+extern const u8 gMonStillFrontPic_Flaaffy[];
extern const u8 gMonIcon_Flaaffy[];
extern const u8 gMonFootprint_Flaaffy[];
extern const u8 gMonFrontPic_Ampharos[];
extern const u8 gMonPalette_Ampharos[];
extern const u8 gMonBackPic_Ampharos[];
extern const u8 gMonShinyPalette_Ampharos[];
+extern const u8 gMonStillFrontPic_Ampharos[];
extern const u8 gMonIcon_Ampharos[];
extern const u8 gMonFootprint_Ampharos[];
extern const u8 gMonFrontPic_Bellossom[];
extern const u8 gMonPalette_Bellossom[];
extern const u8 gMonBackPic_Bellossom[];
extern const u8 gMonShinyPalette_Bellossom[];
+extern const u8 gMonStillFrontPic_Bellossom[];
extern const u8 gMonIcon_Bellossom[];
extern const u8 gMonFootprint_Bellossom[];
extern const u8 gMonFrontPic_Marill[];
extern const u8 gMonPalette_Marill[];
extern const u8 gMonBackPic_Marill[];
extern const u8 gMonShinyPalette_Marill[];
+extern const u8 gMonStillFrontPic_Marill[];
extern const u8 gMonIcon_Marill[];
extern const u8 gMonFootprint_Marill[];
extern const u8 gMonFrontPic_Azumarill[];
extern const u8 gMonPalette_Azumarill[];
extern const u8 gMonBackPic_Azumarill[];
extern const u8 gMonShinyPalette_Azumarill[];
+extern const u8 gMonStillFrontPic_Azumarill[];
extern const u8 gMonIcon_Azumarill[];
extern const u8 gMonFootprint_Azumarill[];
extern const u8 gMonFrontPic_Sudowoodo[];
extern const u8 gMonPalette_Sudowoodo[];
extern const u8 gMonBackPic_Sudowoodo[];
extern const u8 gMonShinyPalette_Sudowoodo[];
+extern const u8 gMonStillFrontPic_Sudowoodo[];
extern const u8 gMonIcon_Sudowoodo[];
extern const u8 gMonFootprint_Sudowoodo[];
extern const u8 gMonFrontPic_Politoed[];
extern const u8 gMonPalette_Politoed[];
extern const u8 gMonBackPic_Politoed[];
extern const u8 gMonShinyPalette_Politoed[];
+extern const u8 gMonStillFrontPic_Politoed[];
extern const u8 gMonIcon_Politoed[];
extern const u8 gMonFootprint_Politoed[];
extern const u8 gMonFrontPic_Hoppip[];
extern const u8 gMonPalette_Hoppip[];
extern const u8 gMonBackPic_Hoppip[];
extern const u8 gMonShinyPalette_Hoppip[];
+extern const u8 gMonStillFrontPic_Hoppip[];
extern const u8 gMonIcon_Hoppip[];
extern const u8 gMonFootprint_Hoppip[];
extern const u8 gMonFrontPic_Skiploom[];
extern const u8 gMonPalette_Skiploom[];
extern const u8 gMonBackPic_Skiploom[];
extern const u8 gMonShinyPalette_Skiploom[];
+extern const u8 gMonStillFrontPic_Skiploom[];
extern const u8 gMonIcon_Skiploom[];
extern const u8 gMonFootprint_Skiploom[];
extern const u8 gMonFrontPic_Jumpluff[];
extern const u8 gMonPalette_Jumpluff[];
extern const u8 gMonBackPic_Jumpluff[];
extern const u8 gMonShinyPalette_Jumpluff[];
+extern const u8 gMonStillFrontPic_Jumpluff[];
extern const u8 gMonIcon_Jumpluff[];
extern const u8 gMonFootprint_Jumpluff[];
extern const u8 gMonFrontPic_Aipom[];
extern const u8 gMonPalette_Aipom[];
extern const u8 gMonBackPic_Aipom[];
extern const u8 gMonShinyPalette_Aipom[];
+extern const u8 gMonStillFrontPic_Aipom[];
extern const u8 gMonIcon_Aipom[];
extern const u8 gMonFootprint_Aipom[];
extern const u8 gMonFrontPic_Sunkern[];
extern const u8 gMonPalette_Sunkern[];
extern const u8 gMonBackPic_Sunkern[];
extern const u8 gMonShinyPalette_Sunkern[];
+extern const u8 gMonStillFrontPic_Sunkern[];
extern const u8 gMonIcon_Sunkern[];
extern const u8 gMonFootprint_Sunkern[];
extern const u8 gMonFrontPic_Sunflora[];
extern const u8 gMonPalette_Sunflora[];
extern const u8 gMonBackPic_Sunflora[];
extern const u8 gMonShinyPalette_Sunflora[];
+extern const u8 gMonStillFrontPic_Sunflora[];
extern const u8 gMonIcon_Sunflora[];
extern const u8 gMonFootprint_Sunflora[];
extern const u8 gMonFrontPic_Yanma[];
extern const u8 gMonPalette_Yanma[];
extern const u8 gMonBackPic_Yanma[];
extern const u8 gMonShinyPalette_Yanma[];
+extern const u8 gMonStillFrontPic_Yanma[];
extern const u8 gMonIcon_Yanma[];
extern const u8 gMonFootprint_Yanma[];
extern const u8 gMonFrontPic_Wooper[];
extern const u8 gMonPalette_Wooper[];
extern const u8 gMonBackPic_Wooper[];
extern const u8 gMonShinyPalette_Wooper[];
+extern const u8 gMonStillFrontPic_Wooper[];
extern const u8 gMonIcon_Wooper[];
extern const u8 gMonFootprint_Wooper[];
extern const u8 gMonFrontPic_Quagsire[];
extern const u8 gMonPalette_Quagsire[];
extern const u8 gMonBackPic_Quagsire[];
extern const u8 gMonShinyPalette_Quagsire[];
+extern const u8 gMonStillFrontPic_Quagsire[];
extern const u8 gMonIcon_Quagsire[];
extern const u8 gMonFootprint_Quagsire[];
extern const u8 gMonFrontPic_Espeon[];
extern const u8 gMonPalette_Espeon[];
extern const u8 gMonBackPic_Espeon[];
extern const u8 gMonShinyPalette_Espeon[];
+extern const u8 gMonStillFrontPic_Espeon[];
extern const u8 gMonIcon_Espeon[];
extern const u8 gMonFootprint_Espeon[];
extern const u8 gMonFrontPic_Umbreon[];
extern const u8 gMonPalette_Umbreon[];
extern const u8 gMonBackPic_Umbreon[];
extern const u8 gMonShinyPalette_Umbreon[];
+extern const u8 gMonStillFrontPic_Umbreon[];
extern const u8 gMonIcon_Umbreon[];
extern const u8 gMonFootprint_Umbreon[];
extern const u8 gMonFrontPic_Murkrow[];
extern const u8 gMonPalette_Murkrow[];
extern const u8 gMonBackPic_Murkrow[];
extern const u8 gMonShinyPalette_Murkrow[];
+extern const u8 gMonStillFrontPic_Murkrow[];
extern const u8 gMonIcon_Murkrow[];
extern const u8 gMonFootprint_Murkrow[];
extern const u8 gMonFrontPic_Slowking[];
extern const u8 gMonPalette_Slowking[];
extern const u8 gMonBackPic_Slowking[];
extern const u8 gMonShinyPalette_Slowking[];
+extern const u8 gMonStillFrontPic_Slowking[];
extern const u8 gMonIcon_Slowking[];
extern const u8 gMonFootprint_Slowking[];
extern const u8 gMonFrontPic_Misdreavus[];
extern const u8 gMonPalette_Misdreavus[];
extern const u8 gMonBackPic_Misdreavus[];
extern const u8 gMonShinyPalette_Misdreavus[];
+extern const u8 gMonStillFrontPic_Misdreavus[];
extern const u8 gMonIcon_Misdreavus[];
extern const u8 gMonFootprint_Misdreavus[];
extern const u8 gMonFrontPic_UnownA[];
extern const u8 gMonPalette_Unown[];
extern const u8 gMonBackPic_UnownA[];
extern const u8 gMonShinyPalette_Unown[];
+extern const u8 gMonStillFrontPic_UnownA[];
extern const u8 gMonIcon_UnownA[];
extern const u8 gMonFootprint_Unown[];
extern const u8 gMonFrontPic_Wobbuffet[];
extern const u8 gMonPalette_Wobbuffet[];
extern const u8 gMonBackPic_Wobbuffet[];
extern const u8 gMonShinyPalette_Wobbuffet[];
+extern const u8 gMonStillFrontPic_Wobbuffet[];
extern const u8 gMonIcon_Wobbuffet[];
extern const u8 gMonFootprint_Wobbuffet[];
extern const u8 gMonFrontPic_Girafarig[];
extern const u8 gMonPalette_Girafarig[];
extern const u8 gMonBackPic_Girafarig[];
extern const u8 gMonShinyPalette_Girafarig[];
+extern const u8 gMonStillFrontPic_Girafarig[];
extern const u8 gMonIcon_Girafarig[];
extern const u8 gMonFootprint_Girafarig[];
extern const u8 gMonFrontPic_Pineco[];
extern const u8 gMonPalette_Pineco[];
extern const u8 gMonBackPic_Pineco[];
extern const u8 gMonShinyPalette_Pineco[];
+extern const u8 gMonStillFrontPic_Pineco[];
extern const u8 gMonIcon_Pineco[];
extern const u8 gMonFootprint_Pineco[];
extern const u8 gMonFrontPic_Forretress[];
extern const u8 gMonPalette_Forretress[];
extern const u8 gMonBackPic_Forretress[];
extern const u8 gMonShinyPalette_Forretress[];
+extern const u8 gMonStillFrontPic_Forretress[];
extern const u8 gMonIcon_Forretress[];
extern const u8 gMonFootprint_Forretress[];
extern const u8 gMonFrontPic_Dunsparce[];
extern const u8 gMonPalette_Dunsparce[];
extern const u8 gMonBackPic_Dunsparce[];
extern const u8 gMonShinyPalette_Dunsparce[];
+extern const u8 gMonStillFrontPic_Dunsparce[];
extern const u8 gMonIcon_Dunsparce[];
extern const u8 gMonFootprint_Dunsparce[];
extern const u8 gMonFrontPic_Gligar[];
extern const u8 gMonPalette_Gligar[];
extern const u8 gMonBackPic_Gligar[];
extern const u8 gMonShinyPalette_Gligar[];
+extern const u8 gMonStillFrontPic_Gligar[];
extern const u8 gMonIcon_Gligar[];
extern const u8 gMonFootprint_Gligar[];
extern const u8 gMonFrontPic_Steelix[];
extern const u8 gMonPalette_Steelix[];
extern const u8 gMonBackPic_Steelix[];
extern const u8 gMonShinyPalette_Steelix[];
+extern const u8 gMonStillFrontPic_Steelix[];
extern const u8 gMonIcon_Steelix[];
extern const u8 gMonFootprint_Steelix[];
extern const u8 gMonFrontPic_Snubbull[];
extern const u8 gMonPalette_Snubbull[];
extern const u8 gMonBackPic_Snubbull[];
extern const u8 gMonShinyPalette_Snubbull[];
+extern const u8 gMonStillFrontPic_Snubbull[];
extern const u8 gMonIcon_Snubbull[];
extern const u8 gMonFootprint_Snubbull[];
extern const u8 gMonFrontPic_Granbull[];
extern const u8 gMonPalette_Granbull[];
extern const u8 gMonBackPic_Granbull[];
extern const u8 gMonShinyPalette_Granbull[];
+extern const u8 gMonStillFrontPic_Granbull[];
extern const u8 gMonIcon_Granbull[];
extern const u8 gMonFootprint_Granbull[];
extern const u8 gMonFrontPic_Qwilfish[];
extern const u8 gMonPalette_Qwilfish[];
extern const u8 gMonBackPic_Qwilfish[];
extern const u8 gMonShinyPalette_Qwilfish[];
+extern const u8 gMonStillFrontPic_Qwilfish[];
extern const u8 gMonIcon_Qwilfish[];
extern const u8 gMonFootprint_Qwilfish[];
extern const u8 gMonFrontPic_Scizor[];
extern const u8 gMonPalette_Scizor[];
extern const u8 gMonBackPic_Scizor[];
extern const u8 gMonShinyPalette_Scizor[];
+extern const u8 gMonStillFrontPic_Scizor[];
extern const u8 gMonIcon_Scizor[];
extern const u8 gMonFootprint_Scizor[];
extern const u8 gMonFrontPic_Shuckle[];
extern const u8 gMonPalette_Shuckle[];
extern const u8 gMonBackPic_Shuckle[];
extern const u8 gMonShinyPalette_Shuckle[];
+extern const u8 gMonStillFrontPic_Shuckle[];
extern const u8 gMonIcon_Shuckle[];
extern const u8 gMonFootprint_Shuckle[];
extern const u8 gMonFrontPic_Heracross[];
extern const u8 gMonPalette_Heracross[];
extern const u8 gMonBackPic_Heracross[];
extern const u8 gMonShinyPalette_Heracross[];
+extern const u8 gMonStillFrontPic_Heracross[];
extern const u8 gMonIcon_Heracross[];
extern const u8 gMonFootprint_Heracross[];
extern const u8 gMonFrontPic_Sneasel[];
extern const u8 gMonPalette_Sneasel[];
extern const u8 gMonBackPic_Sneasel[];
extern const u8 gMonShinyPalette_Sneasel[];
+extern const u8 gMonStillFrontPic_Sneasel[];
extern const u8 gMonIcon_Sneasel[];
extern const u8 gMonFootprint_Sneasel[];
extern const u8 gMonFrontPic_Teddiursa[];
extern const u8 gMonPalette_Teddiursa[];
extern const u8 gMonBackPic_Teddiursa[];
extern const u8 gMonShinyPalette_Teddiursa[];
+extern const u8 gMonStillFrontPic_Teddiursa[];
extern const u8 gMonIcon_Teddiursa[];
extern const u8 gMonFootprint_Teddiursa[];
extern const u8 gMonFrontPic_Ursaring[];
extern const u8 gMonPalette_Ursaring[];
extern const u8 gMonBackPic_Ursaring[];
extern const u8 gMonShinyPalette_Ursaring[];
+extern const u8 gMonStillFrontPic_Ursaring[];
extern const u8 gMonIcon_Ursaring[];
extern const u8 gMonFootprint_Ursaring[];
extern const u8 gMonFrontPic_Slugma[];
extern const u8 gMonPalette_Slugma[];
extern const u8 gMonBackPic_Slugma[];
extern const u8 gMonShinyPalette_Slugma[];
+extern const u8 gMonStillFrontPic_Slugma[];
extern const u8 gMonIcon_Slugma[];
extern const u8 gMonFootprint_Slugma[];
extern const u8 gMonFrontPic_Magcargo[];
extern const u8 gMonPalette_Magcargo[];
extern const u8 gMonBackPic_Magcargo[];
extern const u8 gMonShinyPalette_Magcargo[];
+extern const u8 gMonStillFrontPic_Magcargo[];
extern const u8 gMonIcon_Magcargo[];
extern const u8 gMonFootprint_Magcargo[];
extern const u8 gMonFrontPic_Swinub[];
extern const u8 gMonPalette_Swinub[];
extern const u8 gMonBackPic_Swinub[];
extern const u8 gMonShinyPalette_Swinub[];
+extern const u8 gMonStillFrontPic_Swinub[];
extern const u8 gMonIcon_Swinub[];
extern const u8 gMonFootprint_Swinub[];
extern const u8 gMonFrontPic_Piloswine[];
extern const u8 gMonPalette_Piloswine[];
extern const u8 gMonBackPic_Piloswine[];
extern const u8 gMonShinyPalette_Piloswine[];
+extern const u8 gMonStillFrontPic_Piloswine[];
extern const u8 gMonIcon_Piloswine[];
extern const u8 gMonFootprint_Piloswine[];
extern const u8 gMonFrontPic_Corsola[];
extern const u8 gMonPalette_Corsola[];
extern const u8 gMonBackPic_Corsola[];
extern const u8 gMonShinyPalette_Corsola[];
+extern const u8 gMonStillFrontPic_Corsola[];
extern const u8 gMonIcon_Corsola[];
extern const u8 gMonFootprint_Corsola[];
extern const u8 gMonFrontPic_Remoraid[];
extern const u8 gMonPalette_Remoraid[];
extern const u8 gMonBackPic_Remoraid[];
extern const u8 gMonShinyPalette_Remoraid[];
+extern const u8 gMonStillFrontPic_Remoraid[];
extern const u8 gMonIcon_Remoraid[];
extern const u8 gMonFootprint_Remoraid[];
extern const u8 gMonFrontPic_Octillery[];
extern const u8 gMonPalette_Octillery[];
extern const u8 gMonBackPic_Octillery[];
extern const u8 gMonShinyPalette_Octillery[];
+extern const u8 gMonStillFrontPic_Octillery[];
extern const u8 gMonIcon_Octillery[];
extern const u8 gMonFootprint_Octillery[];
extern const u8 gMonFrontPic_Delibird[];
extern const u8 gMonPalette_Delibird[];
extern const u8 gMonBackPic_Delibird[];
extern const u8 gMonShinyPalette_Delibird[];
+extern const u8 gMonStillFrontPic_Delibird[];
extern const u8 gMonIcon_Delibird[];
extern const u8 gMonFootprint_Delibird[];
extern const u8 gMonFrontPic_Mantine[];
extern const u8 gMonPalette_Mantine[];
extern const u8 gMonBackPic_Mantine[];
extern const u8 gMonShinyPalette_Mantine[];
+extern const u8 gMonStillFrontPic_Mantine[];
extern const u8 gMonIcon_Mantine[];
extern const u8 gMonFootprint_Mantine[];
extern const u8 gMonFrontPic_Skarmory[];
extern const u8 gMonPalette_Skarmory[];
extern const u8 gMonBackPic_Skarmory[];
extern const u8 gMonShinyPalette_Skarmory[];
+extern const u8 gMonStillFrontPic_Skarmory[];
extern const u8 gMonIcon_Skarmory[];
extern const u8 gMonFootprint_Skarmory[];
extern const u8 gMonFrontPic_Houndour[];
extern const u8 gMonPalette_Houndour[];
extern const u8 gMonBackPic_Houndour[];
extern const u8 gMonShinyPalette_Houndour[];
+extern const u8 gMonStillFrontPic_Houndour[];
extern const u8 gMonIcon_Houndour[];
extern const u8 gMonFootprint_Houndour[];
extern const u8 gMonFrontPic_Houndoom[];
extern const u8 gMonPalette_Houndoom[];
extern const u8 gMonBackPic_Houndoom[];
extern const u8 gMonShinyPalette_Houndoom[];
+extern const u8 gMonStillFrontPic_Houndoom[];
extern const u8 gMonIcon_Houndoom[];
extern const u8 gMonFootprint_Houndoom[];
extern const u8 gMonFrontPic_Kingdra[];
extern const u8 gMonPalette_Kingdra[];
extern const u8 gMonBackPic_Kingdra[];
extern const u8 gMonShinyPalette_Kingdra[];
+extern const u8 gMonStillFrontPic_Kingdra[];
extern const u8 gMonIcon_Kingdra[];
extern const u8 gMonFootprint_Kingdra[];
extern const u8 gMonFrontPic_Phanpy[];
extern const u8 gMonPalette_Phanpy[];
extern const u8 gMonBackPic_Phanpy[];
extern const u8 gMonShinyPalette_Phanpy[];
+extern const u8 gMonStillFrontPic_Phanpy[];
extern const u8 gMonIcon_Phanpy[];
extern const u8 gMonFootprint_Phanpy[];
extern const u8 gMonFrontPic_Donphan[];
extern const u8 gMonPalette_Donphan[];
extern const u8 gMonBackPic_Donphan[];
extern const u8 gMonShinyPalette_Donphan[];
+extern const u8 gMonStillFrontPic_Donphan[];
extern const u8 gMonIcon_Donphan[];
extern const u8 gMonFootprint_Donphan[];
extern const u8 gMonFrontPic_Porygon2[];
extern const u8 gMonPalette_Porygon2[];
extern const u8 gMonBackPic_Porygon2[];
extern const u8 gMonShinyPalette_Porygon2[];
+extern const u8 gMonStillFrontPic_Porygon2[];
extern const u8 gMonIcon_Porygon2[];
extern const u8 gMonFootprint_Porygon2[];
extern const u8 gMonFrontPic_Stantler[];
extern const u8 gMonPalette_Stantler[];
extern const u8 gMonBackPic_Stantler[];
extern const u8 gMonShinyPalette_Stantler[];
+extern const u8 gMonStillFrontPic_Stantler[];
extern const u8 gMonIcon_Stantler[];
extern const u8 gMonFootprint_Stantler[];
extern const u8 gMonFrontPic_Smeargle[];
extern const u8 gMonPalette_Smeargle[];
extern const u8 gMonBackPic_Smeargle[];
extern const u8 gMonShinyPalette_Smeargle[];
+extern const u8 gMonStillFrontPic_Smeargle[];
extern const u8 gMonIcon_Smeargle[];
extern const u8 gMonFootprint_Smeargle[];
extern const u8 gMonFrontPic_Tyrogue[];
extern const u8 gMonPalette_Tyrogue[];
extern const u8 gMonBackPic_Tyrogue[];
extern const u8 gMonShinyPalette_Tyrogue[];
+extern const u8 gMonStillFrontPic_Tyrogue[];
extern const u8 gMonIcon_Tyrogue[];
extern const u8 gMonFootprint_Tyrogue[];
extern const u8 gMonFrontPic_Hitmontop[];
extern const u8 gMonPalette_Hitmontop[];
extern const u8 gMonBackPic_Hitmontop[];
extern const u8 gMonShinyPalette_Hitmontop[];
+extern const u8 gMonStillFrontPic_Hitmontop[];
extern const u8 gMonIcon_Hitmontop[];
extern const u8 gMonFootprint_Hitmontop[];
extern const u8 gMonFrontPic_Smoochum[];
extern const u8 gMonPalette_Smoochum[];
extern const u8 gMonBackPic_Smoochum[];
extern const u8 gMonShinyPalette_Smoochum[];
+extern const u8 gMonStillFrontPic_Smoochum[];
extern const u8 gMonIcon_Smoochum[];
extern const u8 gMonFootprint_Smoochum[];
extern const u8 gMonFrontPic_Elekid[];
extern const u8 gMonPalette_Elekid[];
extern const u8 gMonBackPic_Elekid[];
extern const u8 gMonShinyPalette_Elekid[];
+extern const u8 gMonStillFrontPic_Elekid[];
extern const u8 gMonIcon_Elekid[];
extern const u8 gMonFootprint_Elekid[];
extern const u8 gMonFrontPic_Magby[];
extern const u8 gMonPalette_Magby[];
extern const u8 gMonBackPic_Magby[];
extern const u8 gMonShinyPalette_Magby[];
+extern const u8 gMonStillFrontPic_Magby[];
extern const u8 gMonIcon_Magby[];
extern const u8 gMonFootprint_Magby[];
extern const u8 gMonFrontPic_Miltank[];
extern const u8 gMonPalette_Miltank[];
extern const u8 gMonBackPic_Miltank[];
extern const u8 gMonShinyPalette_Miltank[];
+extern const u8 gMonStillFrontPic_Miltank[];
extern const u8 gMonIcon_Miltank[];
extern const u8 gMonFootprint_Miltank[];
extern const u8 gMonFrontPic_Blissey[];
extern const u8 gMonPalette_Blissey[];
extern const u8 gMonBackPic_Blissey[];
extern const u8 gMonShinyPalette_Blissey[];
+extern const u8 gMonStillFrontPic_Blissey[];
extern const u8 gMonIcon_Blissey[];
extern const u8 gMonFootprint_Blissey[];
extern const u8 gMonFrontPic_Raikou[];
extern const u8 gMonPalette_Raikou[];
extern const u8 gMonBackPic_Raikou[];
extern const u8 gMonShinyPalette_Raikou[];
+extern const u8 gMonStillFrontPic_Raikou[];
extern const u8 gMonIcon_Raikou[];
extern const u8 gMonFootprint_Raikou[];
extern const u8 gMonFrontPic_Entei[];
extern const u8 gMonPalette_Entei[];
extern const u8 gMonBackPic_Entei[];
extern const u8 gMonShinyPalette_Entei[];
+extern const u8 gMonStillFrontPic_Entei[];
extern const u8 gMonIcon_Entei[];
extern const u8 gMonFootprint_Entei[];
extern const u8 gMonFrontPic_Suicune[];
extern const u8 gMonPalette_Suicune[];
extern const u8 gMonBackPic_Suicune[];
extern const u8 gMonShinyPalette_Suicune[];
+extern const u8 gMonStillFrontPic_Suicune[];
extern const u8 gMonIcon_Suicune[];
extern const u8 gMonFootprint_Suicune[];
extern const u8 gMonFrontPic_Larvitar[];
extern const u8 gMonPalette_Larvitar[];
extern const u8 gMonBackPic_Larvitar[];
extern const u8 gMonShinyPalette_Larvitar[];
+extern const u8 gMonStillFrontPic_Larvitar[];
extern const u8 gMonIcon_Larvitar[];
extern const u8 gMonFootprint_Larvitar[];
extern const u8 gMonFrontPic_Pupitar[];
extern const u8 gMonPalette_Pupitar[];
extern const u8 gMonBackPic_Pupitar[];
extern const u8 gMonShinyPalette_Pupitar[];
+extern const u8 gMonStillFrontPic_Pupitar[];
extern const u8 gMonIcon_Pupitar[];
extern const u8 gMonFootprint_Pupitar[];
extern const u8 gMonFrontPic_Tyranitar[];
extern const u8 gMonPalette_Tyranitar[];
extern const u8 gMonBackPic_Tyranitar[];
extern const u8 gMonShinyPalette_Tyranitar[];
+extern const u8 gMonStillFrontPic_Tyranitar[];
extern const u8 gMonIcon_Tyranitar[];
extern const u8 gMonFootprint_Tyranitar[];
extern const u8 gMonFrontPic_Lugia[];
extern const u8 gMonPalette_Lugia[];
extern const u8 gMonBackPic_Lugia[];
extern const u8 gMonShinyPalette_Lugia[];
+extern const u8 gMonStillFrontPic_Lugia[];
extern const u8 gMonIcon_Lugia[];
extern const u8 gMonFootprint_Lugia[];
extern const u8 gMonFrontPic_HoOh[];
extern const u8 gMonPalette_HoOh[];
extern const u8 gMonBackPic_HoOh[];
extern const u8 gMonShinyPalette_HoOh[];
+extern const u8 gMonStillFrontPic_HoOh[];
extern const u8 gMonIcon_HoOh[];
extern const u8 gMonFootprint_HoOh[];
extern const u8 gMonFrontPic_Celebi[];
extern const u8 gMonPalette_Celebi[];
extern const u8 gMonBackPic_Celebi[];
extern const u8 gMonShinyPalette_Celebi[];
+extern const u8 gMonStillFrontPic_Celebi[];
extern const u8 gMonIcon_Celebi[];
extern const u8 gMonFootprint_Celebi[];
extern const u8 gMonFrontPic_QuestionMark[];
@@ -1547,893 +1799,1058 @@ extern const u8 gMonFrontPic_Treecko[];
extern const u8 gMonPalette_Treecko[];
extern const u8 gMonBackPic_Treecko[];
extern const u8 gMonShinyPalette_Treecko[];
+extern const u8 gMonStillFrontPic_Treecko[];
extern const u8 gMonIcon_Treecko[];
extern const u8 gMonFootprint_Treecko[];
extern const u8 gMonFrontPic_Grovyle[];
extern const u8 gMonPalette_Grovyle[];
extern const u8 gMonBackPic_Grovyle[];
extern const u8 gMonShinyPalette_Grovyle[];
+extern const u8 gMonStillFrontPic_Grovyle[];
extern const u8 gMonIcon_Grovyle[];
extern const u8 gMonFootprint_Grovyle[];
extern const u8 gMonFrontPic_Sceptile[];
extern const u8 gMonPalette_Sceptile[];
extern const u8 gMonBackPic_Sceptile[];
extern const u8 gMonShinyPalette_Sceptile[];
+extern const u8 gMonStillFrontPic_Sceptile[];
extern const u8 gMonIcon_Sceptile[];
extern const u8 gMonFootprint_Sceptile[];
extern const u8 gMonFrontPic_Torchic[];
extern const u8 gMonPalette_Torchic[];
extern const u8 gMonBackPic_Torchic[];
extern const u8 gMonShinyPalette_Torchic[];
+extern const u8 gMonStillFrontPic_Torchic[];
extern const u8 gMonIcon_Torchic[];
extern const u8 gMonFootprint_Torchic[];
extern const u8 gMonFrontPic_Combusken[];
extern const u8 gMonPalette_Combusken[];
extern const u8 gMonBackPic_Combusken[];
extern const u8 gMonShinyPalette_Combusken[];
+extern const u8 gMonStillFrontPic_Combusken[];
extern const u8 gMonIcon_Combusken[];
extern const u8 gMonFootprint_Combusken[];
extern const u8 gMonFrontPic_Blaziken[];
extern const u8 gMonPalette_Blaziken[];
extern const u8 gMonBackPic_Blaziken[];
extern const u8 gMonShinyPalette_Blaziken[];
+extern const u8 gMonStillFrontPic_Blaziken[];
extern const u8 gMonIcon_Blaziken[];
extern const u8 gMonFootprint_Blaziken[];
extern const u8 gMonFrontPic_Mudkip[];
extern const u8 gMonPalette_Mudkip[];
extern const u8 gMonBackPic_Mudkip[];
extern const u8 gMonShinyPalette_Mudkip[];
+extern const u8 gMonStillFrontPic_Mudkip[];
extern const u8 gMonIcon_Mudkip[];
extern const u8 gMonFootprint_Mudkip[];
extern const u8 gMonFrontPic_Marshtomp[];
extern const u8 gMonPalette_Marshtomp[];
extern const u8 gMonBackPic_Marshtomp[];
extern const u8 gMonShinyPalette_Marshtomp[];
+extern const u8 gMonStillFrontPic_Marshtomp[];
extern const u8 gMonIcon_Marshtomp[];
extern const u8 gMonFootprint_Marshtomp[];
extern const u8 gMonFrontPic_Swampert[];
extern const u8 gMonPalette_Swampert[];
extern const u8 gMonBackPic_Swampert[];
extern const u8 gMonShinyPalette_Swampert[];
+extern const u8 gMonStillFrontPic_Swampert[];
extern const u8 gMonIcon_Swampert[];
extern const u8 gMonFootprint_Swampert[];
extern const u8 gMonFrontPic_Poochyena[];
extern const u8 gMonPalette_Poochyena[];
extern const u8 gMonBackPic_Poochyena[];
extern const u8 gMonShinyPalette_Poochyena[];
+extern const u8 gMonStillFrontPic_Poochyena[];
extern const u8 gMonIcon_Poochyena[];
extern const u8 gMonFootprint_Poochyena[];
extern const u8 gMonFrontPic_Mightyena[];
extern const u8 gMonPalette_Mightyena[];
extern const u8 gMonBackPic_Mightyena[];
extern const u8 gMonShinyPalette_Mightyena[];
+extern const u8 gMonStillFrontPic_Mightyena[];
extern const u8 gMonIcon_Mightyena[];
extern const u8 gMonFootprint_Mightyena[];
extern const u8 gMonFrontPic_Zigzagoon[];
extern const u8 gMonPalette_Zigzagoon[];
extern const u8 gMonBackPic_Zigzagoon[];
extern const u8 gMonShinyPalette_Zigzagoon[];
+extern const u8 gMonStillFrontPic_Zigzagoon[];
extern const u8 gMonIcon_Zigzagoon[];
extern const u8 gMonFootprint_Zigzagoon[];
extern const u8 gMonFrontPic_Linoone[];
extern const u8 gMonPalette_Linoone[];
extern const u8 gMonBackPic_Linoone[];
extern const u8 gMonShinyPalette_Linoone[];
+extern const u8 gMonStillFrontPic_Linoone[];
extern const u8 gMonIcon_Linoone[];
extern const u8 gMonFootprint_Linoone[];
extern const u8 gMonFrontPic_Wurmple[];
extern const u8 gMonPalette_Wurmple[];
extern const u8 gMonBackPic_Wurmple[];
extern const u8 gMonShinyPalette_Wurmple[];
+extern const u8 gMonStillFrontPic_Wurmple[];
extern const u8 gMonIcon_Wurmple[];
extern const u8 gMonFootprint_Wurmple[];
extern const u8 gMonFrontPic_Silcoon[];
extern const u8 gMonPalette_Silcoon[];
extern const u8 gMonBackPic_Silcoon[];
extern const u8 gMonShinyPalette_Silcoon[];
+extern const u8 gMonStillFrontPic_Silcoon[];
extern const u8 gMonIcon_Silcoon[];
extern const u8 gMonFootprint_Silcoon[];
extern const u8 gMonFrontPic_Beautifly[];
extern const u8 gMonPalette_Beautifly[];
extern const u8 gMonBackPic_Beautifly[];
extern const u8 gMonShinyPalette_Beautifly[];
+extern const u8 gMonStillFrontPic_Beautifly[];
extern const u8 gMonIcon_Beautifly[];
extern const u8 gMonFootprint_Beautifly[];
extern const u8 gMonFrontPic_Cascoon[];
extern const u8 gMonPalette_Cascoon[];
extern const u8 gMonBackPic_Cascoon[];
extern const u8 gMonShinyPalette_Cascoon[];
+extern const u8 gMonStillFrontPic_Cascoon[];
extern const u8 gMonIcon_Cascoon[];
extern const u8 gMonFootprint_Cascoon[];
extern const u8 gMonFrontPic_Dustox[];
extern const u8 gMonPalette_Dustox[];
extern const u8 gMonBackPic_Dustox[];
extern const u8 gMonShinyPalette_Dustox[];
+extern const u8 gMonStillFrontPic_Dustox[];
extern const u8 gMonIcon_Dustox[];
extern const u8 gMonFootprint_Dustox[];
extern const u8 gMonFrontPic_Lotad[];
extern const u8 gMonPalette_Lotad[];
extern const u8 gMonBackPic_Lotad[];
extern const u8 gMonShinyPalette_Lotad[];
+extern const u8 gMonStillFrontPic_Lotad[];
extern const u8 gMonIcon_Lotad[];
extern const u8 gMonFootprint_Lotad[];
extern const u8 gMonFrontPic_Lombre[];
extern const u8 gMonPalette_Lombre[];
extern const u8 gMonBackPic_Lombre[];
extern const u8 gMonShinyPalette_Lombre[];
+extern const u8 gMonStillFrontPic_Lombre[];
extern const u8 gMonIcon_Lombre[];
extern const u8 gMonFootprint_Lombre[];
extern const u8 gMonFrontPic_Ludicolo[];
extern const u8 gMonPalette_Ludicolo[];
extern const u8 gMonBackPic_Ludicolo[];
extern const u8 gMonShinyPalette_Ludicolo[];
+extern const u8 gMonStillFrontPic_Ludicolo[];
extern const u8 gMonIcon_Ludicolo[];
extern const u8 gMonFootprint_Ludicolo[];
extern const u8 gMonFrontPic_Seedot[];
extern const u8 gMonPalette_Seedot[];
extern const u8 gMonBackPic_Seedot[];
extern const u8 gMonShinyPalette_Seedot[];
+extern const u8 gMonStillFrontPic_Seedot[];
extern const u8 gMonIcon_Seedot[];
extern const u8 gMonFootprint_Seedot[];
extern const u8 gMonFrontPic_Nuzleaf[];
extern const u8 gMonPalette_Nuzleaf[];
extern const u8 gMonBackPic_Nuzleaf[];
extern const u8 gMonShinyPalette_Nuzleaf[];
+extern const u8 gMonStillFrontPic_Nuzleaf[];
extern const u8 gMonIcon_Nuzleaf[];
extern const u8 gMonFootprint_Nuzleaf[];
extern const u8 gMonFrontPic_Shiftry[];
extern const u8 gMonPalette_Shiftry[];
extern const u8 gMonBackPic_Shiftry[];
extern const u8 gMonShinyPalette_Shiftry[];
+extern const u8 gMonStillFrontPic_Shiftry[];
extern const u8 gMonIcon_Shiftry[];
extern const u8 gMonFootprint_Shiftry[];
extern const u8 gMonFrontPic_Nincada[];
extern const u8 gMonPalette_Nincada[];
extern const u8 gMonBackPic_Nincada[];
extern const u8 gMonShinyPalette_Nincada[];
+extern const u8 gMonStillFrontPic_Nincada[];
extern const u8 gMonIcon_Nincada[];
extern const u8 gMonFootprint_Nincada[];
extern const u8 gMonFrontPic_Ninjask[];
extern const u8 gMonPalette_Ninjask[];
extern const u8 gMonBackPic_Ninjask[];
extern const u8 gMonShinyPalette_Ninjask[];
+extern const u8 gMonStillFrontPic_Ninjask[];
extern const u8 gMonIcon_Ninjask[];
extern const u8 gMonFootprint_Ninjask[];
extern const u8 gMonFrontPic_Shedinja[];
extern const u8 gMonPalette_Shedinja[];
extern const u8 gMonBackPic_Shedinja[];
extern const u8 gMonShinyPalette_Shedinja[];
+extern const u8 gMonStillFrontPic_Shedinja[];
extern const u8 gMonIcon_Shedinja[];
extern const u8 gMonFootprint_Shedinja[];
extern const u8 gMonFrontPic_Taillow[];
extern const u8 gMonPalette_Taillow[];
extern const u8 gMonBackPic_Taillow[];
extern const u8 gMonShinyPalette_Taillow[];
+extern const u8 gMonStillFrontPic_Taillow[];
extern const u8 gMonIcon_Taillow[];
extern const u8 gMonFootprint_Taillow[];
extern const u8 gMonFrontPic_Swellow[];
extern const u8 gMonPalette_Swellow[];
extern const u8 gMonBackPic_Swellow[];
extern const u8 gMonShinyPalette_Swellow[];
+extern const u8 gMonStillFrontPic_Swellow[];
extern const u8 gMonIcon_Swellow[];
extern const u8 gMonFootprint_Swellow[];
extern const u8 gMonFrontPic_Shroomish[];
extern const u8 gMonPalette_Shroomish[];
extern const u8 gMonBackPic_Shroomish[];
extern const u8 gMonShinyPalette_Shroomish[];
+extern const u8 gMonStillFrontPic_Shroomish[];
extern const u8 gMonIcon_Shroomish[];
extern const u8 gMonFootprint_Shroomish[];
extern const u8 gMonFrontPic_Breloom[];
extern const u8 gMonPalette_Breloom[];
extern const u8 gMonBackPic_Breloom[];
extern const u8 gMonShinyPalette_Breloom[];
+extern const u8 gMonStillFrontPic_Breloom[];
extern const u8 gMonIcon_Breloom[];
extern const u8 gMonFootprint_Breloom[];
extern const u8 gMonFrontPic_Spinda[];
extern const u8 gMonPalette_Spinda[];
extern const u8 gMonBackPic_Spinda[];
extern const u8 gMonShinyPalette_Spinda[];
+extern const u8 gMonStillFrontPic_Spinda[];
extern const u8 gMonIcon_Spinda[];
extern const u8 gMonFootprint_Spinda[];
extern const u8 gMonFrontPic_Wingull[];
extern const u8 gMonPalette_Wingull[];
extern const u8 gMonBackPic_Wingull[];
extern const u8 gMonShinyPalette_Wingull[];
+extern const u8 gMonStillFrontPic_Wingull[];
extern const u8 gMonIcon_Wingull[];
extern const u8 gMonFootprint_Wingull[];
extern const u8 gMonFrontPic_Pelipper[];
extern const u8 gMonPalette_Pelipper[];
extern const u8 gMonBackPic_Pelipper[];
extern const u8 gMonShinyPalette_Pelipper[];
+extern const u8 gMonStillFrontPic_Pelipper[];
extern const u8 gMonIcon_Pelipper[];
extern const u8 gMonFootprint_Pelipper[];
extern const u8 gMonFrontPic_Surskit[];
extern const u8 gMonPalette_Surskit[];
extern const u8 gMonBackPic_Surskit[];
extern const u8 gMonShinyPalette_Surskit[];
+extern const u8 gMonStillFrontPic_Surskit[];
extern const u8 gMonIcon_Surskit[];
extern const u8 gMonFootprint_Surskit[];
extern const u8 gMonFrontPic_Masquerain[];
extern const u8 gMonPalette_Masquerain[];
extern const u8 gMonBackPic_Masquerain[];
extern const u8 gMonShinyPalette_Masquerain[];
+extern const u8 gMonStillFrontPic_Masquerain[];
extern const u8 gMonIcon_Masquerain[];
extern const u8 gMonFootprint_Masquerain[];
extern const u8 gMonFrontPic_Wailmer[];
extern const u8 gMonPalette_Wailmer[];
extern const u8 gMonBackPic_Wailmer[];
extern const u8 gMonShinyPalette_Wailmer[];
+extern const u8 gMonStillFrontPic_Wailmer[];
extern const u8 gMonIcon_Wailmer[];
extern const u8 gMonFootprint_Wailmer[];
extern const u8 gMonFrontPic_Wailord[];
extern const u8 gMonPalette_Wailord[];
extern const u8 gMonBackPic_Wailord[];
extern const u8 gMonShinyPalette_Wailord[];
+extern const u8 gMonStillFrontPic_Wailord[];
extern const u8 gMonIcon_Wailord[];
extern const u8 gMonFootprint_Wailord[];
extern const u8 gMonFrontPic_Skitty[];
extern const u8 gMonPalette_Skitty[];
extern const u8 gMonBackPic_Skitty[];
extern const u8 gMonShinyPalette_Skitty[];
+extern const u8 gMonStillFrontPic_Skitty[];
extern const u8 gMonIcon_Skitty[];
extern const u8 gMonFootprint_Skitty[];
extern const u8 gMonFrontPic_Delcatty[];
extern const u8 gMonPalette_Delcatty[];
extern const u8 gMonBackPic_Delcatty[];
extern const u8 gMonShinyPalette_Delcatty[];
+extern const u8 gMonStillFrontPic_Delcatty[];
extern const u8 gMonIcon_Delcatty[];
extern const u8 gMonFootprint_Delcatty[];
extern const u8 gMonFrontPic_Kecleon[];
extern const u8 gMonPalette_Kecleon[];
extern const u8 gMonBackPic_Kecleon[];
extern const u8 gMonShinyPalette_Kecleon[];
+extern const u8 gMonStillFrontPic_Kecleon[];
extern const u8 gMonIcon_Kecleon[];
extern const u8 gMonFootprint_Kecleon[];
extern const u8 gMonFrontPic_Baltoy[];
extern const u8 gMonPalette_Baltoy[];
extern const u8 gMonBackPic_Baltoy[];
extern const u8 gMonShinyPalette_Baltoy[];
+extern const u8 gMonStillFrontPic_Baltoy[];
extern const u8 gMonIcon_Baltoy[];
extern const u8 gMonFootprint_Baltoy[];
extern const u8 gMonFrontPic_Claydol[];
extern const u8 gMonPalette_Claydol[];
extern const u8 gMonBackPic_Claydol[];
extern const u8 gMonShinyPalette_Claydol[];
+extern const u8 gMonStillFrontPic_Claydol[];
extern const u8 gMonIcon_Claydol[];
extern const u8 gMonFootprint_Claydol[];
extern const u8 gMonFrontPic_Nosepass[];
extern const u8 gMonPalette_Nosepass[];
extern const u8 gMonBackPic_Nosepass[];
extern const u8 gMonShinyPalette_Nosepass[];
+extern const u8 gMonStillFrontPic_Nosepass[];
extern const u8 gMonIcon_Nosepass[];
extern const u8 gMonFootprint_Nosepass[];
extern const u8 gMonFrontPic_Torkoal[];
extern const u8 gMonPalette_Torkoal[];
extern const u8 gMonBackPic_Torkoal[];
extern const u8 gMonShinyPalette_Torkoal[];
+extern const u8 gMonStillFrontPic_Torkoal[];
extern const u8 gMonIcon_Torkoal[];
extern const u8 gMonFootprint_Torkoal[];
extern const u8 gMonFrontPic_Sableye[];
extern const u8 gMonPalette_Sableye[];
extern const u8 gMonBackPic_Sableye[];
extern const u8 gMonShinyPalette_Sableye[];
+extern const u8 gMonStillFrontPic_Sableye[];
extern const u8 gMonIcon_Sableye[];
extern const u8 gMonFootprint_Sableye[];
extern const u8 gMonFrontPic_Barboach[];
extern const u8 gMonPalette_Barboach[];
extern const u8 gMonBackPic_Barboach[];
extern const u8 gMonShinyPalette_Barboach[];
+extern const u8 gMonStillFrontPic_Barboach[];
extern const u8 gMonIcon_Barboach[];
extern const u8 gMonFootprint_Barboach[];
extern const u8 gMonFrontPic_Whiscash[];
extern const u8 gMonPalette_Whiscash[];
extern const u8 gMonBackPic_Whiscash[];
extern const u8 gMonShinyPalette_Whiscash[];
+extern const u8 gMonStillFrontPic_Whiscash[];
extern const u8 gMonIcon_Whiscash[];
extern const u8 gMonFootprint_Whiscash[];
extern const u8 gMonFrontPic_Luvdisc[];
extern const u8 gMonPalette_Luvdisc[];
extern const u8 gMonBackPic_Luvdisc[];
extern const u8 gMonShinyPalette_Luvdisc[];
+extern const u8 gMonStillFrontPic_Luvdisc[];
extern const u8 gMonIcon_Luvdisc[];
extern const u8 gMonFootprint_Luvdisc[];
extern const u8 gMonFrontPic_Corphish[];
extern const u8 gMonPalette_Corphish[];
extern const u8 gMonBackPic_Corphish[];
extern const u8 gMonShinyPalette_Corphish[];
+extern const u8 gMonStillFrontPic_Corphish[];
extern const u8 gMonIcon_Corphish[];
extern const u8 gMonFootprint_Corphish[];
extern const u8 gMonFrontPic_Crawdaunt[];
extern const u8 gMonPalette_Crawdaunt[];
extern const u8 gMonBackPic_Crawdaunt[];
extern const u8 gMonShinyPalette_Crawdaunt[];
+extern const u8 gMonStillFrontPic_Crawdaunt[];
extern const u8 gMonIcon_Crawdaunt[];
extern const u8 gMonFootprint_Crawdaunt[];
extern const u8 gMonFrontPic_Feebas[];
extern const u8 gMonPalette_Feebas[];
extern const u8 gMonBackPic_Feebas[];
extern const u8 gMonShinyPalette_Feebas[];
+extern const u8 gMonStillFrontPic_Feebas[];
extern const u8 gMonIcon_Feebas[];
extern const u8 gMonFootprint_Feebas[];
extern const u8 gMonFrontPic_Milotic[];
extern const u8 gMonPalette_Milotic[];
extern const u8 gMonBackPic_Milotic[];
extern const u8 gMonShinyPalette_Milotic[];
+extern const u8 gMonStillFrontPic_Milotic[];
extern const u8 gMonIcon_Milotic[];
extern const u8 gMonFootprint_Milotic[];
extern const u8 gMonFrontPic_Carvanha[];
extern const u8 gMonPalette_Carvanha[];
extern const u8 gMonBackPic_Carvanha[];
extern const u8 gMonShinyPalette_Carvanha[];
+extern const u8 gMonStillFrontPic_Carvanha[];
extern const u8 gMonIcon_Carvanha[];
extern const u8 gMonFootprint_Carvanha[];
extern const u8 gMonFrontPic_Sharpedo[];
extern const u8 gMonPalette_Sharpedo[];
extern const u8 gMonBackPic_Sharpedo[];
extern const u8 gMonShinyPalette_Sharpedo[];
+extern const u8 gMonStillFrontPic_Sharpedo[];
extern const u8 gMonIcon_Sharpedo[];
extern const u8 gMonFootprint_Sharpedo[];
extern const u8 gMonFrontPic_Trapinch[];
extern const u8 gMonPalette_Trapinch[];
extern const u8 gMonBackPic_Trapinch[];
extern const u8 gMonShinyPalette_Trapinch[];
+extern const u8 gMonStillFrontPic_Trapinch[];
extern const u8 gMonIcon_Trapinch[];
extern const u8 gMonFootprint_Trapinch[];
extern const u8 gMonFrontPic_Vibrava[];
extern const u8 gMonPalette_Vibrava[];
extern const u8 gMonBackPic_Vibrava[];
extern const u8 gMonShinyPalette_Vibrava[];
+extern const u8 gMonStillFrontPic_Vibrava[];
extern const u8 gMonIcon_Vibrava[];
extern const u8 gMonFootprint_Vibrava[];
extern const u8 gMonFrontPic_Flygon[];
extern const u8 gMonPalette_Flygon[];
extern const u8 gMonBackPic_Flygon[];
extern const u8 gMonShinyPalette_Flygon[];
+extern const u8 gMonStillFrontPic_Flygon[];
extern const u8 gMonIcon_Flygon[];
extern const u8 gMonFootprint_Flygon[];
extern const u8 gMonFrontPic_Makuhita[];
extern const u8 gMonPalette_Makuhita[];
extern const u8 gMonBackPic_Makuhita[];
extern const u8 gMonShinyPalette_Makuhita[];
+extern const u8 gMonStillFrontPic_Makuhita[];
extern const u8 gMonIcon_Makuhita[];
extern const u8 gMonFootprint_Makuhita[];
extern const u8 gMonFrontPic_Hariyama[];
extern const u8 gMonPalette_Hariyama[];
extern const u8 gMonBackPic_Hariyama[];
extern const u8 gMonShinyPalette_Hariyama[];
+extern const u8 gMonStillFrontPic_Hariyama[];
extern const u8 gMonIcon_Hariyama[];
extern const u8 gMonFootprint_Hariyama[];
extern const u8 gMonFrontPic_Electrike[];
extern const u8 gMonPalette_Electrike[];
extern const u8 gMonBackPic_Electrike[];
extern const u8 gMonShinyPalette_Electrike[];
+extern const u8 gMonStillFrontPic_Electrike[];
extern const u8 gMonIcon_Electrike[];
extern const u8 gMonFootprint_Electrike[];
extern const u8 gMonFrontPic_Manectric[];
extern const u8 gMonPalette_Manectric[];
extern const u8 gMonBackPic_Manectric[];
extern const u8 gMonShinyPalette_Manectric[];
+extern const u8 gMonStillFrontPic_Manectric[];
extern const u8 gMonIcon_Manectric[];
extern const u8 gMonFootprint_Manectric[];
extern const u8 gMonFrontPic_Numel[];
extern const u8 gMonPalette_Numel[];
extern const u8 gMonBackPic_Numel[];
extern const u8 gMonShinyPalette_Numel[];
+extern const u8 gMonStillFrontPic_Numel[];
extern const u8 gMonIcon_Numel[];
extern const u8 gMonFootprint_Numel[];
extern const u8 gMonFrontPic_Camerupt[];
extern const u8 gMonPalette_Camerupt[];
extern const u8 gMonBackPic_Camerupt[];
extern const u8 gMonShinyPalette_Camerupt[];
+extern const u8 gMonStillFrontPic_Camerupt[];
extern const u8 gMonIcon_Camerupt[];
extern const u8 gMonFootprint_Camerupt[];
extern const u8 gMonFrontPic_Spheal[];
extern const u8 gMonPalette_Spheal[];
extern const u8 gMonBackPic_Spheal[];
extern const u8 gMonShinyPalette_Spheal[];
+extern const u8 gMonStillFrontPic_Spheal[];
extern const u8 gMonIcon_Spheal[];
extern const u8 gMonFootprint_Spheal[];
extern const u8 gMonFrontPic_Sealeo[];
extern const u8 gMonPalette_Sealeo[];
extern const u8 gMonBackPic_Sealeo[];
extern const u8 gMonShinyPalette_Sealeo[];
+extern const u8 gMonStillFrontPic_Sealeo[];
extern const u8 gMonIcon_Sealeo[];
extern const u8 gMonFootprint_Sealeo[];
extern const u8 gMonFrontPic_Walrein[];
extern const u8 gMonPalette_Walrein[];
extern const u8 gMonBackPic_Walrein[];
extern const u8 gMonShinyPalette_Walrein[];
+extern const u8 gMonStillFrontPic_Walrein[];
extern const u8 gMonIcon_Walrein[];
extern const u8 gMonFootprint_Walrein[];
extern const u8 gMonFrontPic_Cacnea[];
extern const u8 gMonPalette_Cacnea[];
extern const u8 gMonBackPic_Cacnea[];
extern const u8 gMonShinyPalette_Cacnea[];
+extern const u8 gMonStillFrontPic_Cacnea[];
extern const u8 gMonIcon_Cacnea[];
extern const u8 gMonFootprint_Cacnea[];
extern const u8 gMonFrontPic_Cacturne[];
extern const u8 gMonPalette_Cacturne[];
extern const u8 gMonBackPic_Cacturne[];
extern const u8 gMonShinyPalette_Cacturne[];
+extern const u8 gMonStillFrontPic_Cacturne[];
extern const u8 gMonIcon_Cacturne[];
extern const u8 gMonFootprint_Cacturne[];
extern const u8 gMonFrontPic_Snorunt[];
extern const u8 gMonPalette_Snorunt[];
extern const u8 gMonBackPic_Snorunt[];
extern const u8 gMonShinyPalette_Snorunt[];
+extern const u8 gMonStillFrontPic_Snorunt[];
extern const u8 gMonIcon_Snorunt[];
extern const u8 gMonFootprint_Snorunt[];
extern const u8 gMonFrontPic_Glalie[];
extern const u8 gMonPalette_Glalie[];
extern const u8 gMonBackPic_Glalie[];
extern const u8 gMonShinyPalette_Glalie[];
+extern const u8 gMonStillFrontPic_Glalie[];
extern const u8 gMonIcon_Glalie[];
extern const u8 gMonFootprint_Glalie[];
extern const u8 gMonFrontPic_Lunatone[];
extern const u8 gMonPalette_Lunatone[];
extern const u8 gMonBackPic_Lunatone[];
extern const u8 gMonShinyPalette_Lunatone[];
+extern const u8 gMonStillFrontPic_Lunatone[];
extern const u8 gMonIcon_Lunatone[];
extern const u8 gMonFootprint_Lunatone[];
extern const u8 gMonFrontPic_Solrock[];
extern const u8 gMonPalette_Solrock[];
extern const u8 gMonBackPic_Solrock[];
extern const u8 gMonShinyPalette_Solrock[];
+extern const u8 gMonStillFrontPic_Solrock[];
extern const u8 gMonIcon_Solrock[];
extern const u8 gMonFootprint_Solrock[];
extern const u8 gMonFrontPic_Azurill[];
extern const u8 gMonPalette_Azurill[];
extern const u8 gMonBackPic_Azurill[];
extern const u8 gMonShinyPalette_Azurill[];
+extern const u8 gMonStillFrontPic_Azurill[];
extern const u8 gMonIcon_Azurill[];
extern const u8 gMonFootprint_Azurill[];
extern const u8 gMonFrontPic_Spoink[];
extern const u8 gMonPalette_Spoink[];
extern const u8 gMonBackPic_Spoink[];
extern const u8 gMonShinyPalette_Spoink[];
+extern const u8 gMonStillFrontPic_Spoink[];
extern const u8 gMonIcon_Spoink[];
extern const u8 gMonFootprint_Spoink[];
extern const u8 gMonFrontPic_Grumpig[];
extern const u8 gMonPalette_Grumpig[];
extern const u8 gMonBackPic_Grumpig[];
extern const u8 gMonShinyPalette_Grumpig[];
+extern const u8 gMonStillFrontPic_Grumpig[];
extern const u8 gMonIcon_Grumpig[];
extern const u8 gMonFootprint_Grumpig[];
extern const u8 gMonFrontPic_Plusle[];
extern const u8 gMonPalette_Plusle[];
extern const u8 gMonBackPic_Plusle[];
extern const u8 gMonShinyPalette_Plusle[];
+extern const u8 gMonStillFrontPic_Plusle[];
extern const u8 gMonIcon_Plusle[];
extern const u8 gMonFootprint_Plusle[];
extern const u8 gMonFrontPic_Minun[];
extern const u8 gMonPalette_Minun[];
extern const u8 gMonBackPic_Minun[];
extern const u8 gMonShinyPalette_Minun[];
+extern const u8 gMonStillFrontPic_Minun[];
extern const u8 gMonIcon_Minun[];
extern const u8 gMonFootprint_Minun[];
extern const u8 gMonFrontPic_Mawile[];
extern const u8 gMonPalette_Mawile[];
extern const u8 gMonBackPic_Mawile[];
extern const u8 gMonShinyPalette_Mawile[];
+extern const u8 gMonStillFrontPic_Mawile[];
extern const u8 gMonIcon_Mawile[];
extern const u8 gMonFootprint_Mawile[];
extern const u8 gMonFrontPic_Meditite[];
extern const u8 gMonPalette_Meditite[];
extern const u8 gMonBackPic_Meditite[];
extern const u8 gMonShinyPalette_Meditite[];
+extern const u8 gMonStillFrontPic_Meditite[];
extern const u8 gMonIcon_Meditite[];
extern const u8 gMonFootprint_Meditite[];
extern const u8 gMonFrontPic_Medicham[];
extern const u8 gMonPalette_Medicham[];
extern const u8 gMonBackPic_Medicham[];
extern const u8 gMonShinyPalette_Medicham[];
+extern const u8 gMonStillFrontPic_Medicham[];
extern const u8 gMonIcon_Medicham[];
extern const u8 gMonFootprint_Medicham[];
extern const u8 gMonFrontPic_Swablu[];
extern const u8 gMonPalette_Swablu[];
extern const u8 gMonBackPic_Swablu[];
extern const u8 gMonShinyPalette_Swablu[];
+extern const u8 gMonStillFrontPic_Swablu[];
extern const u8 gMonIcon_Swablu[];
extern const u8 gMonFootprint_Swablu[];
extern const u8 gMonFrontPic_Altaria[];
extern const u8 gMonPalette_Altaria[];
extern const u8 gMonBackPic_Altaria[];
extern const u8 gMonShinyPalette_Altaria[];
+extern const u8 gMonStillFrontPic_Altaria[];
extern const u8 gMonIcon_Altaria[];
extern const u8 gMonFootprint_Altaria[];
extern const u8 gMonFrontPic_Wynaut[];
extern const u8 gMonPalette_Wynaut[];
extern const u8 gMonBackPic_Wynaut[];
extern const u8 gMonShinyPalette_Wynaut[];
+extern const u8 gMonStillFrontPic_Wynaut[];
extern const u8 gMonIcon_Wynaut[];
extern const u8 gMonFootprint_Wynaut[];
extern const u8 gMonFrontPic_Duskull[];
extern const u8 gMonPalette_Duskull[];
extern const u8 gMonBackPic_Duskull[];
extern const u8 gMonShinyPalette_Duskull[];
+extern const u8 gMonStillFrontPic_Duskull[];
extern const u8 gMonIcon_Duskull[];
extern const u8 gMonFootprint_Duskull[];
extern const u8 gMonFrontPic_Dusclops[];
extern const u8 gMonPalette_Dusclops[];
extern const u8 gMonBackPic_Dusclops[];
extern const u8 gMonShinyPalette_Dusclops[];
+extern const u8 gMonStillFrontPic_Dusclops[];
extern const u8 gMonIcon_Dusclops[];
extern const u8 gMonFootprint_Dusclops[];
extern const u8 gMonFrontPic_Roselia[];
extern const u8 gMonPalette_Roselia[];
extern const u8 gMonBackPic_Roselia[];
extern const u8 gMonShinyPalette_Roselia[];
+extern const u8 gMonStillFrontPic_Roselia[];
extern const u8 gMonIcon_Roselia[];
extern const u8 gMonFootprint_Roselia[];
extern const u8 gMonFrontPic_Slakoth[];
extern const u8 gMonPalette_Slakoth[];
extern const u8 gMonBackPic_Slakoth[];
extern const u8 gMonShinyPalette_Slakoth[];
+extern const u8 gMonStillFrontPic_Slakoth[];
extern const u8 gMonIcon_Slakoth[];
extern const u8 gMonFootprint_Slakoth[];
extern const u8 gMonFrontPic_Vigoroth[];
extern const u8 gMonPalette_Vigoroth[];
extern const u8 gMonBackPic_Vigoroth[];
extern const u8 gMonShinyPalette_Vigoroth[];
+extern const u8 gMonStillFrontPic_Vigoroth[];
extern const u8 gMonIcon_Vigoroth[];
extern const u8 gMonFootprint_Vigoroth[];
extern const u8 gMonFrontPic_Slaking[];
extern const u8 gMonPalette_Slaking[];
extern const u8 gMonBackPic_Slaking[];
extern const u8 gMonShinyPalette_Slaking[];
+extern const u8 gMonStillFrontPic_Slaking[];
extern const u8 gMonIcon_Slaking[];
extern const u8 gMonFootprint_Slaking[];
extern const u8 gMonFrontPic_Gulpin[];
extern const u8 gMonPalette_Gulpin[];
extern const u8 gMonBackPic_Gulpin[];
extern const u8 gMonShinyPalette_Gulpin[];
+extern const u8 gMonStillFrontPic_Gulpin[];
extern const u8 gMonIcon_Gulpin[];
extern const u8 gMonFootprint_Gulpin[];
extern const u8 gMonFrontPic_Swalot[];
extern const u8 gMonPalette_Swalot[];
extern const u8 gMonBackPic_Swalot[];
extern const u8 gMonShinyPalette_Swalot[];
+extern const u8 gMonStillFrontPic_Swalot[];
extern const u8 gMonIcon_Swalot[];
extern const u8 gMonFootprint_Swalot[];
extern const u8 gMonFrontPic_Tropius[];
extern const u8 gMonPalette_Tropius[];
extern const u8 gMonBackPic_Tropius[];
extern const u8 gMonShinyPalette_Tropius[];
+extern const u8 gMonStillFrontPic_Tropius[];
extern const u8 gMonIcon_Tropius[];
extern const u8 gMonFootprint_Tropius[];
extern const u8 gMonFrontPic_Whismur[];
extern const u8 gMonPalette_Whismur[];
extern const u8 gMonBackPic_Whismur[];
extern const u8 gMonShinyPalette_Whismur[];
+extern const u8 gMonStillFrontPic_Whismur[];
extern const u8 gMonIcon_Whismur[];
extern const u8 gMonFootprint_Whismur[];
extern const u8 gMonFrontPic_Loudred[];
extern const u8 gMonPalette_Loudred[];
extern const u8 gMonBackPic_Loudred[];
extern const u8 gMonShinyPalette_Loudred[];
+extern const u8 gMonStillFrontPic_Loudred[];
extern const u8 gMonIcon_Loudred[];
extern const u8 gMonFootprint_Loudred[];
extern const u8 gMonFrontPic_Exploud[];
extern const u8 gMonPalette_Exploud[];
extern const u8 gMonBackPic_Exploud[];
extern const u8 gMonShinyPalette_Exploud[];
+extern const u8 gMonStillFrontPic_Exploud[];
extern const u8 gMonIcon_Exploud[];
extern const u8 gMonFootprint_Exploud[];
extern const u8 gMonFrontPic_Clamperl[];
extern const u8 gMonPalette_Clamperl[];
extern const u8 gMonBackPic_Clamperl[];
extern const u8 gMonShinyPalette_Clamperl[];
+extern const u8 gMonStillFrontPic_Clamperl[];
extern const u8 gMonIcon_Clamperl[];
extern const u8 gMonFootprint_Clamperl[];
extern const u8 gMonFrontPic_Huntail[];
extern const u8 gMonPalette_Huntail[];
extern const u8 gMonBackPic_Huntail[];
extern const u8 gMonShinyPalette_Huntail[];
+extern const u8 gMonStillFrontPic_Huntail[];
extern const u8 gMonIcon_Huntail[];
extern const u8 gMonFootprint_Huntail[];
extern const u8 gMonFrontPic_Gorebyss[];
extern const u8 gMonPalette_Gorebyss[];
extern const u8 gMonBackPic_Gorebyss[];
extern const u8 gMonShinyPalette_Gorebyss[];
+extern const u8 gMonStillFrontPic_Gorebyss[];
extern const u8 gMonIcon_Gorebyss[];
extern const u8 gMonFootprint_Gorebyss[];
extern const u8 gMonFrontPic_Absol[];
extern const u8 gMonPalette_Absol[];
extern const u8 gMonBackPic_Absol[];
extern const u8 gMonShinyPalette_Absol[];
+extern const u8 gMonStillFrontPic_Absol[];
extern const u8 gMonIcon_Absol[];
extern const u8 gMonFootprint_Absol[];
extern const u8 gMonFrontPic_Shuppet[];
extern const u8 gMonPalette_Shuppet[];
extern const u8 gMonBackPic_Shuppet[];
extern const u8 gMonShinyPalette_Shuppet[];
+extern const u8 gMonStillFrontPic_Shuppet[];
extern const u8 gMonIcon_Shuppet[];
extern const u8 gMonFootprint_Shuppet[];
extern const u8 gMonFrontPic_Banette[];
extern const u8 gMonPalette_Banette[];
extern const u8 gMonBackPic_Banette[];
extern const u8 gMonShinyPalette_Banette[];
+extern const u8 gMonStillFrontPic_Banette[];
extern const u8 gMonIcon_Banette[];
extern const u8 gMonFootprint_Banette[];
extern const u8 gMonFrontPic_Seviper[];
extern const u8 gMonPalette_Seviper[];
extern const u8 gMonBackPic_Seviper[];
extern const u8 gMonShinyPalette_Seviper[];
+extern const u8 gMonStillFrontPic_Seviper[];
extern const u8 gMonIcon_Seviper[];
extern const u8 gMonFootprint_Seviper[];
extern const u8 gMonFrontPic_Zangoose[];
extern const u8 gMonPalette_Zangoose[];
extern const u8 gMonBackPic_Zangoose[];
extern const u8 gMonShinyPalette_Zangoose[];
+extern const u8 gMonStillFrontPic_Zangoose[];
extern const u8 gMonIcon_Zangoose[];
extern const u8 gMonFootprint_Zangoose[];
extern const u8 gMonFrontPic_Relicanth[];
extern const u8 gMonPalette_Relicanth[];
extern const u8 gMonBackPic_Relicanth[];
extern const u8 gMonShinyPalette_Relicanth[];
+extern const u8 gMonStillFrontPic_Relicanth[];
extern const u8 gMonIcon_Relicanth[];
extern const u8 gMonFootprint_Relicanth[];
extern const u8 gMonFrontPic_Aron[];
extern const u8 gMonPalette_Aron[];
extern const u8 gMonBackPic_Aron[];
extern const u8 gMonShinyPalette_Aron[];
+extern const u8 gMonStillFrontPic_Aron[];
extern const u8 gMonIcon_Aron[];
extern const u8 gMonFootprint_Aron[];
extern const u8 gMonFrontPic_Lairon[];
extern const u8 gMonPalette_Lairon[];
extern const u8 gMonBackPic_Lairon[];
extern const u8 gMonShinyPalette_Lairon[];
+extern const u8 gMonStillFrontPic_Lairon[];
extern const u8 gMonIcon_Lairon[];
extern const u8 gMonFootprint_Lairon[];
extern const u8 gMonFrontPic_Aggron[];
extern const u8 gMonPalette_Aggron[];
extern const u8 gMonBackPic_Aggron[];
extern const u8 gMonShinyPalette_Aggron[];
+extern const u8 gMonStillFrontPic_Aggron[];
extern const u8 gMonIcon_Aggron[];
extern const u8 gMonFootprint_Aggron[];
extern const u8 gMonFrontPic_Castform[];
extern const u8 gMonPalette_Castform[];
extern const u8 gMonBackPic_Castform[];
extern const u8 gMonShinyPalette_Castform[];
+extern const u8 gMonStillFrontPic_Castform[];
extern const u8 gMonIcon_Castform[];
extern const u8 gMonFootprint_Castform[];
extern const u8 gMonFrontPic_Volbeat[];
extern const u8 gMonPalette_Volbeat[];
extern const u8 gMonBackPic_Volbeat[];
extern const u8 gMonShinyPalette_Volbeat[];
+extern const u8 gMonStillFrontPic_Volbeat[];
extern const u8 gMonIcon_Volbeat[];
extern const u8 gMonFootprint_Volbeat[];
extern const u8 gMonFrontPic_Illumise[];
extern const u8 gMonPalette_Illumise[];
extern const u8 gMonBackPic_Illumise[];
extern const u8 gMonShinyPalette_Illumise[];
+extern const u8 gMonStillFrontPic_Illumise[];
extern const u8 gMonIcon_Illumise[];
extern const u8 gMonFootprint_Illumise[];
extern const u8 gMonFrontPic_Lileep[];
extern const u8 gMonPalette_Lileep[];
extern const u8 gMonBackPic_Lileep[];
extern const u8 gMonShinyPalette_Lileep[];
+extern const u8 gMonStillFrontPic_Lileep[];
extern const u8 gMonIcon_Lileep[];
extern const u8 gMonFootprint_Lileep[];
extern const u8 gMonFrontPic_Cradily[];
extern const u8 gMonPalette_Cradily[];
extern const u8 gMonBackPic_Cradily[];
extern const u8 gMonShinyPalette_Cradily[];
+extern const u8 gMonStillFrontPic_Cradily[];
extern const u8 gMonIcon_Cradily[];
extern const u8 gMonFootprint_Cradily[];
extern const u8 gMonFrontPic_Anorith[];
extern const u8 gMonPalette_Anorith[];
extern const u8 gMonBackPic_Anorith[];
extern const u8 gMonShinyPalette_Anorith[];
+extern const u8 gMonStillFrontPic_Anorith[];
extern const u8 gMonIcon_Anorith[];
extern const u8 gMonFootprint_Anorith[];
extern const u8 gMonFrontPic_Armaldo[];
extern const u8 gMonPalette_Armaldo[];
extern const u8 gMonBackPic_Armaldo[];
extern const u8 gMonShinyPalette_Armaldo[];
+extern const u8 gMonStillFrontPic_Armaldo[];
extern const u8 gMonIcon_Armaldo[];
extern const u8 gMonFootprint_Armaldo[];
extern const u8 gMonFrontPic_Ralts[];
extern const u8 gMonPalette_Ralts[];
extern const u8 gMonBackPic_Ralts[];
extern const u8 gMonShinyPalette_Ralts[];
+extern const u8 gMonStillFrontPic_Ralts[];
extern const u8 gMonIcon_Ralts[];
extern const u8 gMonFootprint_Ralts[];
extern const u8 gMonFrontPic_Kirlia[];
extern const u8 gMonPalette_Kirlia[];
extern const u8 gMonBackPic_Kirlia[];
extern const u8 gMonShinyPalette_Kirlia[];
+extern const u8 gMonStillFrontPic_Kirlia[];
extern const u8 gMonIcon_Kirlia[];
extern const u8 gMonFootprint_Kirlia[];
extern const u8 gMonFrontPic_Gardevoir[];
extern const u8 gMonPalette_Gardevoir[];
extern const u8 gMonBackPic_Gardevoir[];
extern const u8 gMonShinyPalette_Gardevoir[];
+extern const u8 gMonStillFrontPic_Gardevoir[];
extern const u8 gMonIcon_Gardevoir[];
extern const u8 gMonFootprint_Gardevoir[];
extern const u8 gMonFrontPic_Bagon[];
extern const u8 gMonPalette_Bagon[];
extern const u8 gMonBackPic_Bagon[];
extern const u8 gMonShinyPalette_Bagon[];
+extern const u8 gMonStillFrontPic_Bagon[];
extern const u8 gMonIcon_Bagon[];
extern const u8 gMonFootprint_Bagon[];
extern const u8 gMonFrontPic_Shelgon[];
extern const u8 gMonPalette_Shelgon[];
extern const u8 gMonBackPic_Shelgon[];
extern const u8 gMonShinyPalette_Shelgon[];
+extern const u8 gMonStillFrontPic_Shelgon[];
extern const u8 gMonIcon_Shelgon[];
extern const u8 gMonFootprint_Shelgon[];
extern const u8 gMonFrontPic_Salamence[];
extern const u8 gMonPalette_Salamence[];
extern const u8 gMonBackPic_Salamence[];
extern const u8 gMonShinyPalette_Salamence[];
+extern const u8 gMonStillFrontPic_Salamence[];
extern const u8 gMonIcon_Salamence[];
extern const u8 gMonFootprint_Salamence[];
extern const u8 gMonFrontPic_Beldum[];
extern const u8 gMonPalette_Beldum[];
extern const u8 gMonBackPic_Beldum[];
extern const u8 gMonShinyPalette_Beldum[];
+extern const u8 gMonStillFrontPic_Beldum[];
extern const u8 gMonIcon_Beldum[];
extern const u8 gMonFootprint_Beldum[];
extern const u8 gMonFrontPic_Metang[];
extern const u8 gMonPalette_Metang[];
extern const u8 gMonBackPic_Metang[];
extern const u8 gMonShinyPalette_Metang[];
+extern const u8 gMonStillFrontPic_Metang[];
extern const u8 gMonIcon_Metang[];
extern const u8 gMonFootprint_Metang[];
extern const u8 gMonFrontPic_Metagross[];
extern const u8 gMonPalette_Metagross[];
extern const u8 gMonBackPic_Metagross[];
extern const u8 gMonShinyPalette_Metagross[];
+extern const u8 gMonStillFrontPic_Metagross[];
extern const u8 gMonIcon_Metagross[];
extern const u8 gMonFootprint_Metagross[];
extern const u8 gMonFrontPic_Regirock[];
extern const u8 gMonPalette_Regirock[];
extern const u8 gMonBackPic_Regirock[];
extern const u8 gMonShinyPalette_Regirock[];
+extern const u8 gMonStillFrontPic_Regirock[];
extern const u8 gMonIcon_Regirock[];
extern const u8 gMonFootprint_Regirock[];
extern const u8 gMonFrontPic_Regice[];
extern const u8 gMonPalette_Regice[];
extern const u8 gMonBackPic_Regice[];
extern const u8 gMonShinyPalette_Regice[];
+extern const u8 gMonStillFrontPic_Regice[];
extern const u8 gMonIcon_Regice[];
extern const u8 gMonFootprint_Regice[];
extern const u8 gMonFrontPic_Registeel[];
extern const u8 gMonPalette_Registeel[];
extern const u8 gMonBackPic_Registeel[];
extern const u8 gMonShinyPalette_Registeel[];
+extern const u8 gMonStillFrontPic_Registeel[];
extern const u8 gMonIcon_Registeel[];
extern const u8 gMonFootprint_Registeel[];
extern const u8 gMonFrontPic_Kyogre[];
extern const u8 gMonPalette_Kyogre[];
extern const u8 gMonBackPic_Kyogre[];
extern const u8 gMonShinyPalette_Kyogre[];
+extern const u8 gMonStillFrontPic_Kyogre[];
extern const u8 gMonIcon_Kyogre[];
extern const u8 gMonFootprint_Kyogre[];
extern const u8 gMonFrontPic_Groudon[];
extern const u8 gMonPalette_Groudon[];
extern const u8 gMonBackPic_Groudon[];
extern const u8 gMonShinyPalette_Groudon[];
+extern const u8 gMonStillFrontPic_Groudon[];
extern const u8 gMonIcon_Groudon[];
extern const u8 gMonFootprint_Groudon[];
extern const u8 gMonFrontPic_Rayquaza[];
extern const u8 gMonPalette_Rayquaza[];
extern const u8 gMonBackPic_Rayquaza[];
extern const u8 gMonShinyPalette_Rayquaza[];
+extern const u8 gMonStillFrontPic_Rayquaza[];
extern const u8 gMonIcon_Rayquaza[];
extern const u8 gMonFootprint_Rayquaza[];
extern const u8 gMonFrontPic_Latias[];
extern const u8 gMonPalette_Latias[];
extern const u8 gMonBackPic_Latias[];
extern const u8 gMonShinyPalette_Latias[];
+extern const u8 gMonStillFrontPic_Latias[];
extern const u8 gMonIcon_Latias[];
extern const u8 gMonFootprint_Latias[];
extern const u8 gMonFrontPic_Latios[];
extern const u8 gMonPalette_Latios[];
extern const u8 gMonBackPic_Latios[];
extern const u8 gMonShinyPalette_Latios[];
+extern const u8 gMonStillFrontPic_Latios[];
extern const u8 gMonIcon_Latios[];
extern const u8 gMonFootprint_Latios[];
extern const u8 gMonFrontPic_Jirachi[];
extern const u8 gMonPalette_Jirachi[];
extern const u8 gMonBackPic_Jirachi[];
extern const u8 gMonShinyPalette_Jirachi[];
+extern const u8 gMonStillFrontPic_Jirachi[];
extern const u8 gMonIcon_Jirachi[];
extern const u8 gMonFootprint_Jirachi[];
extern const u8 gMonFrontPic_Deoxys[];
extern const u8 gMonPalette_Deoxys[];
extern const u8 gMonBackPic_Deoxys[];
extern const u8 gMonShinyPalette_Deoxys[];
+extern const u8 gMonStillFrontPic_Deoxys[];
extern const u8 gMonIcon_Deoxys[];
extern const u8 gMonFootprint_Deoxys[];
extern const u8 gMonFrontPic_Chimecho[];
extern const u8 gMonPalette_Chimecho[];
extern const u8 gMonBackPic_Chimecho[];
extern const u8 gMonShinyPalette_Chimecho[];
+extern const u8 gMonStillFrontPic_Chimecho[];
extern const u8 gMonIcon_Chimecho[];
extern const u8 gMonFootprint_Chimecho[];
extern const u8 gMonPic_Egg[];
extern const u8 gMonPalette_Egg[];
+extern const u8 gMonFrontPic_Egg[];
+extern const u8 gMonStillFrontPic_Egg[];
+extern const u8 gMonIcon_Egg[];
extern const u8 gMonFrontPic_UnownB[];
extern const u8 gMonBackPic_UnownB[];
+extern const u8 gMonStillFrontPic_UnownB[];
extern const u8 gMonIcon_UnownB[];
extern const u8 gMonFrontPic_UnownC[];
extern const u8 gMonBackPic_UnownC[];
+extern const u8 gMonStillFrontPic_UnownC[];
extern const u8 gMonIcon_UnownC[];
extern const u8 gMonFrontPic_UnownD[];
extern const u8 gMonBackPic_UnownD[];
+extern const u8 gMonStillFrontPic_UnownD[];
extern const u8 gMonIcon_UnownD[];
extern const u8 gMonFrontPic_UnownE[];
extern const u8 gMonBackPic_UnownE[];
+extern const u8 gMonStillFrontPic_UnownE[];
extern const u8 gMonIcon_UnownE[];
extern const u8 gMonFrontPic_UnownF[];
extern const u8 gMonBackPic_UnownF[];
+extern const u8 gMonStillFrontPic_UnownF[];
extern const u8 gMonIcon_UnownF[];
extern const u8 gMonFrontPic_UnownG[];
extern const u8 gMonBackPic_UnownG[];
+extern const u8 gMonStillFrontPic_UnownG[];
extern const u8 gMonIcon_UnownG[];
extern const u8 gMonFrontPic_UnownH[];
extern const u8 gMonBackPic_UnownH[];
+extern const u8 gMonStillFrontPic_UnownH[];
extern const u8 gMonIcon_UnownH[];
extern const u8 gMonFrontPic_UnownI[];
extern const u8 gMonBackPic_UnownI[];
+extern const u8 gMonStillFrontPic_UnownI[];
extern const u8 gMonIcon_UnownI[];
extern const u8 gMonFrontPic_UnownJ[];
extern const u8 gMonBackPic_UnownJ[];
+extern const u8 gMonStillFrontPic_UnownJ[];
extern const u8 gMonIcon_UnownJ[];
extern const u8 gMonFrontPic_UnownK[];
extern const u8 gMonBackPic_UnownK[];
+extern const u8 gMonStillFrontPic_UnownK[];
extern const u8 gMonIcon_UnownK[];
extern const u8 gMonFrontPic_UnownL[];
extern const u8 gMonBackPic_UnownL[];
+extern const u8 gMonStillFrontPic_UnownL[];
extern const u8 gMonIcon_UnownL[];
extern const u8 gMonFrontPic_UnownM[];
extern const u8 gMonBackPic_UnownM[];
+extern const u8 gMonStillFrontPic_UnownM[];
extern const u8 gMonIcon_UnownM[];
extern const u8 gMonFrontPic_UnownN[];
extern const u8 gMonBackPic_UnownN[];
+extern const u8 gMonStillFrontPic_UnownN[];
extern const u8 gMonIcon_UnownN[];
extern const u8 gMonFrontPic_UnownO[];
extern const u8 gMonBackPic_UnownO[];
+extern const u8 gMonStillFrontPic_UnownO[];
extern const u8 gMonIcon_UnownO[];
extern const u8 gMonFrontPic_UnownP[];
extern const u8 gMonBackPic_UnownP[];
+extern const u8 gMonStillFrontPic_UnownP[];
extern const u8 gMonIcon_UnownP[];
extern const u8 gMonFrontPic_UnownQ[];
extern const u8 gMonBackPic_UnownQ[];
+extern const u8 gMonStillFrontPic_UnownQ[];
extern const u8 gMonIcon_UnownQ[];
extern const u8 gMonFrontPic_UnownR[];
extern const u8 gMonBackPic_UnownR[];
+extern const u8 gMonStillFrontPic_UnownR[];
extern const u8 gMonIcon_UnownR[];
extern const u8 gMonFrontPic_UnownS[];
extern const u8 gMonBackPic_UnownS[];
+extern const u8 gMonStillFrontPic_UnownS[];
extern const u8 gMonIcon_UnownS[];
extern const u8 gMonFrontPic_UnownT[];
extern const u8 gMonBackPic_UnownT[];
+extern const u8 gMonStillFrontPic_UnownT[];
extern const u8 gMonIcon_UnownT[];
extern const u8 gMonFrontPic_UnownU[];
extern const u8 gMonBackPic_UnownU[];
+extern const u8 gMonStillFrontPic_UnownU[];
extern const u8 gMonIcon_UnownU[];
extern const u8 gMonFrontPic_UnownV[];
extern const u8 gMonBackPic_UnownV[];
+extern const u8 gMonStillFrontPic_UnownV[];
extern const u8 gMonIcon_UnownV[];
extern const u8 gMonFrontPic_UnownW[];
extern const u8 gMonBackPic_UnownW[];
+extern const u8 gMonStillFrontPic_UnownW[];
extern const u8 gMonIcon_UnownW[];
extern const u8 gMonFrontPic_UnownX[];
extern const u8 gMonBackPic_UnownX[];
+extern const u8 gMonStillFrontPic_UnownX[];
extern const u8 gMonIcon_UnownX[];
extern const u8 gMonFrontPic_UnownY[];
extern const u8 gMonBackPic_UnownY[];
+extern const u8 gMonStillFrontPic_UnownY[];
extern const u8 gMonIcon_UnownY[];
extern const u8 gMonFrontPic_UnownZ[];
extern const u8 gMonBackPic_UnownZ[];
+extern const u8 gMonStillFrontPic_UnownZ[];
extern const u8 gMonIcon_UnownZ[];
extern const u8 gMonFrontPic_UnownExclamationMark[];
extern const u8 gMonBackPic_UnownExclamationMark[];
+extern const u8 gMonStillFrontPic_UnownExclamationMark[];
extern const u8 gMonIcon_UnownExclamationMark[];
extern const u8 gMonFrontPic_UnownQuestionMark[];
+extern const u8 gMonStillFrontPic_UnownQuestionMark[];
extern const u8 gMonBackPic_UnownQuestionMark[];
extern const u8 gMonIcon_UnownQuestionMark[];
@@ -2441,14 +2858,13 @@ extern const u8 gMonFrontPic_CircledQuestionMark[];
extern const u8 gMonBackPic_CircledQuestionMark[];
extern const u8 gMonPalette_CircledQuestionMark[];
extern const u8 gMonShinyPalette_CircledQuestionMark[];
+extern const u8 gMonStillFrontPic_CircledQuestionMark[];
extern const u8 gMonIcon_QuestionMark[];
extern const u8 gMonFrontPic_DoubleQuestionMark[];
extern const u8 gMonBackPic_DoubleQuestionMark[];
extern const u8 gMonPalette_DoubleQuestionMark[];
extern const u8 gMonShinyPalette_DoubleQuestionMark[];
-extern const u8 gMonFrontPic_Egg[];
-extern const u8 gMonStillFrontPic_Egg[];
-extern const u8 gMonIcon_Egg[];
+extern const u8 gMonStillFrontPic_DoubleQuestionMark[];
extern const u16 gMonIconPalettes[][16];
// trainer sprites
diff --git a/include/item_use.h b/include/item_use.h
index 7874f7ee9..37343f6e7 100644
--- a/include/item_use.h
+++ b/include/item_use.h
@@ -1,8 +1,6 @@
#ifndef GUARD_ITEM_USE_H
#define GUARD_ITEM_USE_H
-extern u16 gSpecialVar_ItemId;
-
void ItemUseOutOfBattle_Mail(u8);
void ItemUseOutOfBattle_Bike(u8);
void ItemUseOnFieldCB_Bike(u8);
diff --git a/include/list_menu.h b/include/list_menu.h
index ee3d60f3d..84c38306b 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -11,7 +11,8 @@
#define LIST_MULTIPLE_SCROLL_DPAD 1
#define LIST_MULTIPLE_SCROLL_L_R 2
-enum {
+enum
+{
SCROLL_ARROW_LEFT,
SCROLL_ARROW_RIGHT,
SCROLL_ARROW_UP,
diff --git a/include/menu.h b/include/menu.h
index 054d8cb34..a13fe73ec 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -53,7 +53,7 @@ void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size,
bool8 free_temp_tile_data_buffers_if_possible(void);
struct WindowTemplate CreateWindowTemplate(u8, u8, u8, u8, u8, u8, u16);
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
-void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode);
+void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode);
s8 Menu_ProcessInputNoWrap_(void);
s8 ProcessMenuInput_other(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
@@ -66,9 +66,9 @@ u16 sub_8198AA4(u8, u8, u8, u8, u8, u8, u16);
void *malloc_and_decompress(const void *src, int *sizeOut);
u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode);
void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress);
-void AddItemMenuActionTextPrinters (u8, u8, u8, u8, u8, u8, u8, const struct MenuAction*, const u8*);
-void sub_8198DBC(u8, u8, u8, u8, u8, u8, u8, const struct MenuAction*, const u8*);
-u8 sub_8199944(u8, u8, u8, u8, u8);
+void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8);
+void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8);
+u8 sub_8199944(u8 windowId, u8 optionWidth, u8 horizontalCount, u8 verticalCount, u8 initialCursorPos);
u8 sub_8199134(s8, s8);
u8 GetStartMenuWindowId(void);
void sub_819A2BC(u8, u8);
diff --git a/include/pokemon.h b/include/pokemon.h
index a60ad66be..09496b5c3 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -456,6 +456,7 @@ extern const u8 gStatStageRatios[][2];
extern const u16 gUnknown_08329D54[];
extern const struct SpriteTemplate gUnknown_08329D98[];
extern const struct CompressedSpritePalette gMonPaletteTable[];
+extern const s8 gNatureStatTable[][5];
void ZeroBoxMonData(struct BoxPokemon *boxMon);
void ZeroMonData(struct Pokemon *mon);
diff --git a/include/save.h b/include/save.h
index 7b271129a..9859870b4 100644
--- a/include/save.h
+++ b/include/save.h
@@ -32,7 +32,7 @@ struct SaveSectionOffsets
};
// Emerald changes this definition to be the sectors per slot.
-#define NUM_SECTORS_PER_SLOT 16 // move to save.h
+#define NUM_SECTORS_PER_SLOT 16
#define UNKNOWN_CHECK_VALUE 0x8012025
diff --git a/include/strings.h b/include/strings.h
index f88425b26..e72360563 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -776,6 +776,23 @@ extern const u8 gText_TeachWhichMoveToPkmn[];
extern const u8 gText_GiveUpTeachingNewMove[];
extern const u8 gText_TeachX[];
+extern const u8 gText_DadsAdvice[];
+extern const u8 gText_CantDismountBike[];
+extern const u8 gText_ItemFinderNothing[];
+extern const u8 gText_ItemFinderNearby[];
+extern const u8 gText_ItemFinderOnTop[];
+extern const u8 gText_CoinCase[];
+extern const u8 gText_PowderQty[];
+extern const u8 gText_BootedUpHM[];
+extern const u8 gText_BootedUpTM[];
+extern const u8 gText_TMHMContainedVar1[];
+extern const u8 gText_PlayerUsedVar2[];
+extern const u8 gText_RepelEffectsLingered[];
+extern const u8 gText_UsedVar2WildLured[];
+extern const u8 gText_UsedVar2WildRepelled[];
+extern const u8 gText_BoxFull[];
+extern const u8 gText_WontHaveEffect[];
+
extern const u8 gText_LevelSymbol[];
extern const u8 gText_PkmnInfo[];
extern const u8 gText_PkmnSkills[];
@@ -824,4 +841,6 @@ extern const u8 gText_RibbonsVar1[];
extern const u8 gText_OneDash[];
extern const u8 gText_TwoDashes[];
+extern const u8 *const gReturnToXStringsTable2[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/trainer_pokemon_sprites.h b/include/trainer_pokemon_sprites.h
new file mode 100644
index 000000000..90ceedaf5
--- /dev/null
+++ b/include/trainer_pokemon_sprites.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_TRAINER_POKEMON_SPRITES_H
+#define GUARD_TRAINER_POKEMON_SPRITES_H
+
+bool16 ResetAllPicSprites(void);
+u16 CreatePicSprite2(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
+u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
+u16 FreeAndDestroyMonPicSprite(u16 spriteId);
+u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
+u16 FreeAndDestroyTrainerPicSprite(u16 spriteId);
+u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
+u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass);
+
+#endif // GUARD_TRAINER_POKEMON_SPRITES_H
diff --git a/ld_script.txt b/ld_script.txt
index a4ef0bb17..668cf7c5a 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -212,6 +212,7 @@ SECTIONS {
src/fldeff_softboiled.o(.text);
src/decoration_inventory.o(.text);
src/roamer.o(.text);
+ src/battle_tower.o(.text);
asm/battle_tower.o(.text);
src/use_pokeblock.o(.text);
asm/use_pokeblock.o(.text);
@@ -240,8 +241,10 @@ SECTIONS {
src/recorded_battle.o(.text);
src/battle_controller_recorded_opponent.o(.text);
src/battle_controller_recorded_player.o(.text);
- src/battle_dome_cards.o(.text);
+ src/trainer_pokemon_sprites.o(.text);
src/lilycove_lady.o(.text);
+ src/battle_dome.o(.text);
+ src/battle_frontier_1.o(.text);
asm/battle_frontier_1.o(.text);
src/menu.o(.text);
asm/battle_frontier_2.o(.text);
@@ -263,8 +266,7 @@ SECTIONS {
src/berry_fix_program.o(.text);
src/pokemon_summary_screen.o(.text);
src/unk_pokedex_area_screen_helper.o(.text);
- src/battle_pyramid.o(.text);
- asm/battle_pyramid.o(.text);
+ src/battle_pyramid_bag.o(.text);
asm/pokenav.o(.text);
src/match_call.o(.text);
asm/pokenav.o(.text.after.match.call);
@@ -522,8 +524,9 @@ SECTIONS {
src/pokemon_animation.o(.rodata);
src/battle_controller_recorded_opponent.o(.rodata);
src/battle_controller_recorded_player.o(.rodata);
- src/battle_dome_cards.o(.rodata);
+ src/trainer_pokemon_sprites.o(.rodata);
src/lilycove_lady.o(.rodata);
+ src/battle_dome.o(.rodata);
data/battle_frontier_1.o(.rodata);
src/menu.o(.rodata);
data/battle_frontier_2.o(.rodata);
@@ -541,7 +544,8 @@ SECTIONS {
src/berry_fix_program.o(.rodata);
src/pokemon_summary_screen.o(.rodata);
src/unk_pokedex_area_screen_helper.o(.rodata);
- data/battle_pyramid.o(.rodata);
+ src/battle_pyramid_bag.o(.rodata);
+ data/battle_pyramid_bag.o(.rodata);
data/pokenav.o(.rodata);
src/match_call.o(.rodata);
data/pokenav.o(.rodata.after.match.call);
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index 1eaa9da18..6148587f8 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -1606,22 +1606,22 @@ static void OpponentHandleChoosePokemon(void)
{
s32 chosenMonId;
- if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) == 6)
+ if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) == PARTY_SIZE)
{
chosenMonId = GetMostSuitableMonToSwitchInto();
- if (chosenMonId == 6)
+ if (chosenMonId == PARTY_SIZE)
{
- s32 bank1, bank2, firstId, lastId;
+ s32 battler1, battler2, firstId, lastId;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- bank2 = bank1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ battler2 = battler1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
}
else
{
- bank1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
- bank2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
+ battler1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ battler2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
}
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
@@ -1639,8 +1639,8 @@ static void OpponentHandleChoosePokemon(void)
for (chosenMonId = firstId; chosenMonId < lastId; chosenMonId++)
{
if (GetMonData(&gEnemyParty[chosenMonId], MON_DATA_HP) != 0
- && chosenMonId != gBattlerPartyIndexes[bank1]
- && chosenMonId != gBattlerPartyIndexes[bank2])
+ && chosenMonId != gBattlerPartyIndexes[battler1]
+ && chosenMonId != gBattlerPartyIndexes[battler2])
{
break;
}
@@ -1650,7 +1650,7 @@ static void OpponentHandleChoosePokemon(void)
else
{
chosenMonId = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler);
- *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6;
+ *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = PARTY_SIZE;
}
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 6ab19e368..7f038a0c3 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -28,19 +28,18 @@
#include "pokeball.h"
#include "data2.h"
#include "battle_setup.h"
-#include "item_use.h"
+#include "item_menu.h"
#include "recorded_battle.h"
#include "party_menu.h"
+#include "battle_dome.h"
extern u8 gUnknown_0203CEE8;
extern u8 gUnknown_0203CEE9;
extern u8 gUnknown_0203CF00[];
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
-extern s32 gUnknown_0203CD70;
extern struct UnusedControllerStruct gUnknown_02022D0C;
extern struct MusicPlayerInfo gMPlayInfo_BGM;
-extern struct SpriteTemplate gMultiuseSpriteTemplate;
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
@@ -52,7 +51,6 @@ extern void sub_81851A8(u8 *);
// this file's functions
static void PlayerHandleGetMonData(void);
-void PlayerHandleGetRawMonData(void);
static void PlayerHandleSetMonData(void);
static void PlayerHandleSetRawMonData(void);
static void PlayerHandleLoadMonSprite(void);
diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c
index bc97c01f9..aab804b41 100644
--- a/src/battle_controller_safari.c
+++ b/src/battle_controller_safari.c
@@ -21,7 +21,7 @@
#include "pokeball.h"
#include "data2.h"
#include "pokeblock.h"
-#include "item_use.h"
+#include "item_menu.h"
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c
index 960181fbc..4faf78681 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle_controller_wally.c
@@ -29,7 +29,7 @@
#include "data2.h"
#include "party_menu.h"
#include "battle_setup.h"
-#include "item_use.h"
+#include "item_menu.h"
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
diff --git a/src/battle_dome.c b/src/battle_dome.c
new file mode 100644
index 000000000..9f400bc7a
--- /dev/null
+++ b/src/battle_dome.c
@@ -0,0 +1,6481 @@
+#include "global.h"
+#include "battle_dome.h"
+#include "battle.h"
+#include "battle_setup.h"
+#include "battle_tower.h"
+#include "battle_message.h"
+#include "event_data.h"
+#include "overworld.h"
+#include "util.h"
+#include "malloc.h"
+#include "string_util.h"
+#include "random.h"
+#include "task.h"
+#include "main.h"
+#include "gpu_regs.h"
+#include "text.h"
+#include "bg.h"
+#include "window.h"
+#include "palette.h"
+#include "decompress.h"
+#include "menu.h"
+#include "sound.h"
+#include "pokemon_icon.h"
+#include "data2.h"
+#include "international_string_util.h"
+#include "trainer_pokemon_sprites.h"
+#include "scanline_effect.h"
+#include "constants/species.h"
+#include "constants/moves.h"
+#include "constants/trainers.h"
+#include "constants/abilities.h"
+#include "constants/songs.h"
+#include "constants/battle_frontier.h"
+#include "constants/rgb.h"
+
+#define DOME_ROUND1 0
+#define DOME_ROUND2 1
+#define DOME_QUARTERFINAL 1 // Different name for the same round.
+#define DOME_SEMIFINAL 2
+#define DOME_FINAL 3
+#define DOME_ROUNDS_COUNT 4
+
+struct BattleDomeStruct
+{
+ u8 arr[DOME_TOURNAMENT_TRAINERS_COUNT];
+ u8 unk_10;
+ u8 unk_11[3];
+};
+
+struct UnkStruct_860DD10
+{
+ u8 x;
+ u8 y;
+ u16 src;
+};
+
+extern void sub_81B8558(void);
+extern u32 sub_81A39C4(void);
+extern u16 sub_8162548(u8, u8);
+extern u16 RandomizeFacilityTrainerMonId(u16);
+extern u8 GetFacilityEnemyMonLevel(void);
+extern u16 sub_81A5060(u8 monId, u8 moveSlotId);
+extern u8 sub_81A50F0(u8, u8);
+extern u8 sub_81A50B0(u8);
+extern void sub_8162614(u16, u8);
+extern void sub_81A4C30(void);
+extern bool8 sub_81A3610(void);
+extern u16 sub_81A4FF0(u8);
+extern u8 GetFrontierTrainerFrontSpriteId(u16);
+extern u8 GetFrontierOpponentClass(u16);
+extern void sub_80F94E8(void);
+
+extern u8 gUnknown_0203CEF8[];
+extern u16 gBattle_BG0_X;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG1_Y;
+extern u16 gBattle_BG2_X;
+extern u16 gBattle_BG2_Y;
+extern u16 gBattle_BG3_X;
+extern u16 gBattle_BG3_Y;
+
+extern const u16 gBattleFrontierHeldItems[];
+extern const struct FacilityMon gBattleFrontierMons[];
+extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
+extern const struct SpriteTemplate gUnknown_0860CFA8;
+
+// gfx
+extern const u8 gUnknown_08D83D50[];
+extern const u8 gUnknown_08D84970[];
+extern const u8 gUnknown_08D84F00[];
+extern const u8 gUnknown_08D85444[];
+extern const u8 gUnknown_08D85358[];
+extern const u8 gUnknown_08D85600[];
+extern const u8 gUnknown_08D854C8[];
+extern const u8 gUnknown_08D82F10[];
+extern const u8 gUnknown_08D834FC[];
+extern const u8 gUnknown_08D83B2C[];
+extern const u8 gUnknown_08D83C3C[];
+extern const u8 gUnknown_08D83900[];
+extern const u8 gBattleFrontierGfx_DomeOptions[];
+
+// text
+extern const u8 gTrainerClassNames[][0xD];
+
+extern const u8 gBattleDomeOpponentPotential1[];
+extern const u8 gBattleDomeOpponentPotential2[];
+extern const u8 gBattleDomeOpponentPotential3[];
+extern const u8 gBattleDomeOpponentPotential4[];
+extern const u8 gBattleDomeOpponentPotential5[];
+extern const u8 gBattleDomeOpponentPotential6[];
+extern const u8 gBattleDomeOpponentPotential7[];
+extern const u8 gBattleDomeOpponentPotential8[];
+extern const u8 gBattleDomeOpponentPotential9[];
+extern const u8 gBattleDomeOpponentPotential10[];
+extern const u8 gBattleDomeOpponentPotential11[];
+extern const u8 gBattleDomeOpponentPotential12[];
+extern const u8 gBattleDomeOpponentPotential13[];
+extern const u8 gBattleDomeOpponentPotential14[];
+extern const u8 gBattleDomeOpponentPotential15[];
+extern const u8 gBattleDomeOpponentPotential16[];
+extern const u8 gBattleDomeOpponentPotential17[];
+extern const u8 gBattleDomeOpponentStyle1[];
+extern const u8 gBattleDomeOpponentStyle2[];
+extern const u8 gBattleDomeOpponentStyle3[];
+extern const u8 gBattleDomeOpponentStyle4[];
+extern const u8 gBattleDomeOpponentStyle5[];
+extern const u8 gBattleDomeOpponentStyle6[];
+extern const u8 gBattleDomeOpponentStyle7[];
+extern const u8 gBattleDomeOpponentStyle8[];
+extern const u8 gBattleDomeOpponentStyle9[];
+extern const u8 gBattleDomeOpponentStyle10[];
+extern const u8 gBattleDomeOpponentStyle11[];
+extern const u8 gBattleDomeOpponentStyle12[];
+extern const u8 gBattleDomeOpponentStyle13[];
+extern const u8 gBattleDomeOpponentStyle14[];
+extern const u8 gBattleDomeOpponentStyle15[];
+extern const u8 gBattleDomeOpponentStyle16[];
+extern const u8 gBattleDomeOpponentStyle17[];
+extern const u8 gBattleDomeOpponentStyle18[];
+extern const u8 gBattleDomeOpponentStyle19[];
+extern const u8 gBattleDomeOpponentStyle20[];
+extern const u8 gBattleDomeOpponentStyle21[];
+extern const u8 gBattleDomeOpponentStyle22[];
+extern const u8 gBattleDomeOpponentStyle23[];
+extern const u8 gBattleDomeOpponentStyle24[];
+extern const u8 gBattleDomeOpponentStyle25[];
+extern const u8 gBattleDomeOpponentStyle26[];
+extern const u8 gBattleDomeOpponentStyle27[];
+extern const u8 gBattleDomeOpponentStyle28[];
+extern const u8 gBattleDomeOpponentStyleUnused1[];
+extern const u8 gBattleDomeOpponentStyleUnused2[];
+extern const u8 gBattleDomeOpponentStyleUnused3[];
+extern const u8 gBattleDomeOpponentStyleUnused4[];
+extern const u8 gBattleDomeOpponentStats1[];
+extern const u8 gBattleDomeOpponentStats2[];
+extern const u8 gBattleDomeOpponentStats3[];
+extern const u8 gBattleDomeOpponentStats4[];
+extern const u8 gBattleDomeOpponentStats5[];
+extern const u8 gBattleDomeOpponentStats6[];
+extern const u8 gBattleDomeOpponentStats7[];
+extern const u8 gBattleDomeOpponentStats8[];
+extern const u8 gBattleDomeOpponentStats9[];
+extern const u8 gBattleDomeOpponentStats10[];
+extern const u8 gBattleDomeOpponentStats11[];
+extern const u8 gBattleDomeOpponentStats12[];
+extern const u8 gBattleDomeOpponentStats13[];
+extern const u8 gBattleDomeOpponentStats14[];
+extern const u8 gBattleDomeOpponentStats15[];
+extern const u8 gBattleDomeOpponentStats16[];
+extern const u8 gBattleDomeOpponentStats17[];
+extern const u8 gBattleDomeOpponentStats18[];
+extern const u8 gBattleDomeOpponentStats19[];
+extern const u8 gBattleDomeOpponentStats20[];
+extern const u8 gBattleDomeOpponentStats21[];
+extern const u8 gBattleDomeOpponentStats22[];
+extern const u8 gBattleDomeOpponentStats23[];
+extern const u8 gBattleDomeOpponentStats24[];
+extern const u8 gBattleDomeOpponentStats25[];
+extern const u8 gBattleDomeOpponentStats26[];
+extern const u8 gBattleDomeOpponentStats27[];
+extern const u8 gBattleDomeOpponentStats28[];
+extern const u8 gBattleDomeOpponentStats29[];
+extern const u8 gBattleDomeOpponentStats30[];
+extern const u8 gBattleDomeOpponentStats31[];
+extern const u8 gBattleDomeOpponentStats32[];
+extern const u8 gBattleDomeOpponentStats33[];
+extern const u8 gBattleDomeOpponentStats34[];
+extern const u8 gBattleDomeOpponentStats35[];
+extern const u8 gBattleDomeOpponentStats36[];
+extern const u8 gBattleDomeOpponentStats37[];
+extern const u8 gBattleDomeOpponentStats38[];
+extern const u8 gBattleDomeOpponentStats39[];
+extern const u8 gBattleDomeOpponentStats40[];
+extern const u8 gBattleDomeOpponentStats41[];
+extern const u8 gBattleDomeOpponentStats42[];
+extern const u8 gBattleDomeOpponentStats43[];
+extern const u8 gBattleDomeMatchNumber1[];
+extern const u8 gBattleDomeMatchNumber2[];
+extern const u8 gBattleDomeMatchNumber3[];
+extern const u8 gBattleDomeMatchNumber4[];
+extern const u8 gBattleDomeMatchNumber5[];
+extern const u8 gBattleDomeMatchNumber6[];
+extern const u8 gBattleDomeMatchNumber7[];
+extern const u8 gBattleDomeMatchNumber8[];
+extern const u8 gBattleDomeMatchNumber9[];
+extern const u8 gBattleDomeMatchNumber10[];
+extern const u8 gBattleDomeMatchNumber11[];
+extern const u8 gBattleDomeMatchNumber12[];
+extern const u8 gBattleDomeMatchNumber13[];
+extern const u8 gBattleDomeMatchNumber14[];
+extern const u8 gBattleDomeMatchNumber15[];
+extern const u8 gBattleDomeWinStrings1[];
+extern const u8 gBattleDomeWinStrings2[];
+extern const u8 gBattleDomeWinStrings3[];
+extern const u8 gBattleDomeWinStrings4[];
+extern const u8 gBattleDomeWinStrings5[];
+extern const u8 gBattleDomeWinStrings6[];
+extern const u8 gBattleDomeWinStrings7[];
+
+// This file's functions.
+static u8 GetDomeTrainerMonIvs(u16 trainerId);
+static void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray);
+static void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats);
+static void CreateDomeTrainerMons(u16 tournamentTrainerId);
+static s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1);
+static s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1);
+static s32 GetTypeEffectivenessPoints(s32 move, s32 species, s32 arg2);
+static s32 sub_818FEB4(s32 *arr, bool8 arg1);
+static void sub_8190400(u8 taskId);
+static void sub_8190CD4(u8 taskId);
+static u8 sub_819221C(u8 taskId);
+static void sub_8194D48(void);
+static s32 TrainerIdToTournamentId(u16 trainerId);
+static u16 TrainerIdOfPlayerOpponent(void);
+static void sub_8194220(u8 taskId);
+static void sub_8194950(u8 taskId);
+static void CB2_BattleDome(void);
+static void VblankCb0_BattleDome(void);
+static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo);
+static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId);
+static s32 sub_8192F08(u8, u8*);
+static u8 GetDomeBrainTrainerPicId(void);
+static u8 GetDomeBrainTrainerClass(void);
+static void CopyDomeBrainTrainerName(u8 *dst);
+static void CopyDomeTrainerName(u8 *dst, u16 trainerId);
+static void HblankCb_BattleDome(void);
+static void VblankCb1_BattleDome(void);
+static u8 sub_8193BDC(u8 taskId);
+static void DecideRoundWinners(u8 roundId);
+static u8 sub_81953E8(u8 tournamentId, u8);
+static void sub_81948EC(u8, u8);
+static void sub_8190B40(struct Sprite *sprite);
+static void sub_8190C6C(struct Sprite *sprite);
+static void sub_818E9CC(void);
+static void sub_818EA84(void);
+static void sub_818ED28(void);
+static void sub_818F9B0(void);
+static void sub_818F9E0(void);
+static void sub_818FA20(void);
+static void ShowDomeOpponentInfo(void);
+static void sub_81938A4(void);
+static void sub_81938E0(void);
+static void sub_8190298(void);
+static void sub_81902E4(void);
+static void sub_8193D40(void);
+static void sub_8193D7C(void);
+static void sub_81902F8(void);
+static void sub_819033C(void);
+static void sub_8194D68(void);
+static void sub_8194E44(void);
+static void sub_8194EB4(void);
+static void sub_8194EC0(void);
+static void sub_8194EF8(void);
+static void sub_8194F58(void);
+static void InitDomeTrainers(void);
+
+// EWRAM variables.
+EWRAM_DATA u32 gUnknown_0203CD70 = 0;
+static EWRAM_DATA u32 gUnknown_0203CD74 = 0;
+static EWRAM_DATA struct BattleDomeStruct *sBattleDomeStruct = {0};
+static EWRAM_DATA u8 *sTilemapBuffer = NULL;
+
+// Const rom data.
+static const u8 sMovePointsForDomeTrainers[MOVES_COUNT][DOME_TOURNAMENT_TRAINERS_COUNT] =
+{
+ [MOVE_NONE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_POUND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_KARATE_CHOP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_DOUBLE_SLAP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_COMET_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_MEGA_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_PAY_DAY] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_FIRE_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_ICE_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_THUNDER_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_SCRATCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_VICE_GRIP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_GUILLOTINE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_RAZOR_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SWORDS_DANCE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
+ [MOVE_CUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_GUST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_WING_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_WHIRLWIND] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_FLY] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_BIND] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_SLAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_VINE_WHIP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_STOMP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_DOUBLE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_MEGA_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_JUMP_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_ROLLING_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_SAND_ATTACK] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_HEADBUTT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_HORN_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_FURY_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_HORN_DRILL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_TACKLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_BODY_SLAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_WRAP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_TAKE_DOWN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_THRASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_DOUBLE_EDGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_TAIL_WHIP] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_POISON_STING] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_TWINEEDLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_PIN_MISSILE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_LEER] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_BITE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_GROWL] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_ROAR] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SING] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SUPERSONIC] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SONIC_BOOM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_DISABLE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_ACID] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_EMBER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_FLAMETHROWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
+ [MOVE_MIST] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_WATER_GUN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_HYDRO_PUMP] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0},
+ [MOVE_SURF] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0},
+ [MOVE_ICE_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
+ [MOVE_BLIZZARD] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1},
+ [MOVE_PSYBEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_BUBBLE_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_AURORA_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_HYPER_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0},
+ [MOVE_PECK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_DRILL_PECK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SUBMISSION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_LOW_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_COUNTER] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0},
+ [MOVE_SEISMIC_TOSS] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_STRENGTH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_ABSORB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_MEGA_DRAIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_LEECH_SEED] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_GROWTH] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_RAZOR_LEAF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SOLAR_BEAM] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0},
+ [MOVE_POISON_POWDER] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_STUN_SPORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SLEEP_POWDER] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_PETAL_DANCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_STRING_SHOT] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_DRAGON_RAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_FIRE_SPIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_THUNDER_SHOCK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_THUNDERBOLT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
+ [MOVE_THUNDER_WAVE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_THUNDER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1},
+ [MOVE_ROCK_THROW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_EARTHQUAKE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0},
+ [MOVE_FISSURE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0},
+ [MOVE_DIG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_TOXIC] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_CONFUSION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_PSYCHIC] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
+ [MOVE_HYPNOSIS] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_MEDITATE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_AGILITY] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_QUICK_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_RAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_TELEPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_NIGHT_SHADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_MIMIC] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SCREECH] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_DOUBLE_TEAM] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_RECOVER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_HARDEN] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_MINIMIZE] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SMOKESCREEN] = {0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_CONFUSE_RAY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_WITHDRAW] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_DEFENSE_CURL] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_BARRIER] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_LIGHT_SCREEN] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_HAZE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_REFLECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_FOCUS_ENERGY] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_BIDE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_METRONOME] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
+ [MOVE_MIRROR_MOVE] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
+ [MOVE_SELF_DESTRUCT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0},
+ [MOVE_EGG_BOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0},
+ [MOVE_LICK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_SMOG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_SLUDGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_BONE_CLUB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_FIRE_BLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1},
+ [MOVE_WATERFALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_CLAMP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_SWIFT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SKULL_BASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0},
+ [MOVE_SPIKE_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_CONSTRICT] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_AMNESIA] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_KINESIS] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SOFT_BOILED] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_HI_JUMP_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_GLARE] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_DREAM_EATER] = {1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0},
+ [MOVE_POISON_GAS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_BARRAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_LEECH_LIFE] = {0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_LOVELY_KISS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SKY_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1},
+ [MOVE_TRANSFORM] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_BUBBLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_DIZZY_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_SPORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_FLASH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_PSYWAVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SPLASH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_ACID_ARMOR] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_CRABHAMMER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
+ [MOVE_EXPLOSION] = {0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0},
+ [MOVE_FURY_SWIPES] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_BONEMERANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_REST] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_ROCK_SLIDE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_HYPER_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_SHARPEN] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_CONVERSION] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_TRI_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_SUPER_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SLASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SUBSTITUTE] = {0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_STRUGGLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0},
+ [MOVE_SKETCH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0},
+ [MOVE_TRIPLE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_THIEF] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_SPIDER_WEB] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_MIND_READER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0},
+ [MOVE_NIGHTMARE] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_FLAME_WHEEL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_SNORE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_CURSE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_FLAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_CONVERSION_2] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_AEROBLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0},
+ [MOVE_COTTON_SPORE] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_REVERSAL] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SPITE] = {0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_POWDER_SNOW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_PROTECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0},
+ [MOVE_MACH_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SCARY_FACE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_FAINT_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SWEET_KISS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_BELLY_DRUM] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SLUDGE_BOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1},
+ [MOVE_MUD_SLAP] = {0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_OCTAZOOKA] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_SPIKES] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_ZAP_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1},
+ [MOVE_FORESIGHT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_DESTINY_BOND] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_PERISH_SONG] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_ICY_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_DETECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_BONE_RUSH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_LOCK_ON] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0},
+ [MOVE_OUTRAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1},
+ [MOVE_SANDSTORM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_GIGA_DRAIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0},
+ [MOVE_ENDURE] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_CHARM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_ROLLOUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_FALSE_SWIPE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SWAGGER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_MILK_DRINK] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SPARK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_FURY_CUTTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_STEEL_WING] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_MEAN_LOOK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0},
+ [MOVE_ATTRACT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SLEEP_TALK] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
+ [MOVE_HEAL_BELL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_RETURN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_PRESENT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0},
+ [MOVE_FRUSTRATION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SAFEGUARD] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_PAIN_SPLIT] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SACRED_FIRE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1},
+ [MOVE_MAGNITUDE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_DYNAMIC_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1},
+ [MOVE_MEGAHORN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
+ [MOVE_DRAGON_BREATH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_BATON_PASS] = {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_ENCORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0},
+ [MOVE_PURSUIT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_RAPID_SPIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SWEET_SCENT] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_IRON_TAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1},
+ [MOVE_METAL_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_VITAL_THROW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_MORNING_SUN] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_SYNTHESIS] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_MOONLIGHT] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_HIDDEN_POWER] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_CROSS_CHOP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0},
+ [MOVE_TWISTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_RAIN_DANCE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_SUNNY_DAY] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_CRUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_MIRROR_COAT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_PSYCH_UP] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_EXTREME_SPEED] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0},
+ [MOVE_ANCIENT_POWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1},
+ [MOVE_SHADOW_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_FUTURE_SIGHT] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_ROCK_SMASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_WHIRLPOOL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_BEAT_UP] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_FAKE_OUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_UPROAR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_STOCKPILE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SPIT_UP] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0},
+ [MOVE_SWALLOW] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_HEAT_WAVE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1},
+ [MOVE_HAIL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_TORMENT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_FLATTER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_WILL_O_WISP] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_MEMENTO] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_FACADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_FOCUS_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0},
+ [MOVE_SMELLING_SALT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_FOLLOW_ME] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_NATURE_POWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_CHARGE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_TAUNT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_HELPING_HAND] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_TRICK] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_ROLE_PLAY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_WISH] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_ASSIST] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0},
+ [MOVE_INGRAIN] = {1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_SUPERPOWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0},
+ [MOVE_MAGIC_COAT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0},
+ [MOVE_RECYCLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_REVENGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0},
+ [MOVE_BRICK_BREAK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_YAWN] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_KNOCK_OFF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_ENDEAVOR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0},
+ [MOVE_ERUPTION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0},
+ [MOVE_SKILL_SWAP] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_IMPRISON] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0},
+ [MOVE_REFRESH] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_GRUDGE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0},
+ [MOVE_SNATCH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0},
+ [MOVE_SECRET_POWER] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_DIVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_ARM_THRUST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_CAMOUFLAGE] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_TAIL_GLOW] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_LUSTER_PURGE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1},
+ [MOVE_MIST_BALL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1},
+ [MOVE_FEATHER_DANCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_TEETER_DANCE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_BLAZE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_MUD_SPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_ICE_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_NEEDLE_ARM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_SLACK_OFF] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_HYPER_VOICE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0},
+ [MOVE_POISON_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_CRUSH_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_BLAST_BURN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0},
+ [MOVE_HYDRO_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0},
+ [MOVE_METEOR_MASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1},
+ [MOVE_ASTONISH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_WEATHER_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_AROMATHERAPY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0},
+ [MOVE_FAKE_TEARS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_AIR_CUTTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_OVERHEAT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1},
+ [MOVE_ODOR_SLEUTH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_ROCK_TOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_SILVER_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1},
+ [MOVE_METAL_SOUND] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_GRASS_WHISTLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_TICKLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_COSMIC_POWER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_WATER_SPOUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0},
+ [MOVE_SIGNAL_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_SHADOW_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_EXTRASENSORY] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_SKY_UPPERCUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SAND_TOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_SHEER_COLD] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0},
+ [MOVE_MUDDY_WATER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1},
+ [MOVE_BULLET_SEED] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_AERIAL_ACE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_ICICLE_SPEAR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_IRON_DEFENSE] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_BLOCK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0},
+ [MOVE_HOWL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_DRAGON_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_FRENZY_PLANT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0},
+ [MOVE_BULK_UP] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_BOUNCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1},
+ [MOVE_MUD_SHOT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
+ [MOVE_POISON_TAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_COVET] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_VOLT_TACKLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0},
+ [MOVE_MAGICAL_LEAF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_WATER_SPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_CALM_MIND] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_LEAF_BLADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
+ [MOVE_DRAGON_DANCE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_ROCK_BLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_SHOCK_WAVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ [MOVE_WATER_PULSE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1},
+ [MOVE_DOOM_DESIRE] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0},
+ [MOVE_PSYCHO_BOOST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1},
+};
+
+static const u8 gUnknown_0860C988[][DOME_TOURNAMENT_TRAINERS_COUNT] =
+{
+ {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0},
+ {1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+ {3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0},
+ {0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0},
+ {0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0},
+ {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+};
+static const u8 sUnusedArray[] =
+{
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 0,
+ 0, 0, 3, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 2,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
+ 0, 2, 253, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 253, 0,
+ 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 253, 254, 0, 0, 0, 0,
+ 0, 254, 0, 0, 0, 0, 0, 254, 0, 0, 0, 0, 0, 254, 0, 0,
+ 0, 0, 0, 254, 0, 0, 0, 0, 0,
+};
+
+static const u8 gUnknown_0860CBF1[][5][4]=
+{
+ {{0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}},
+ {{0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}},
+ {{0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}},
+ {{0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}},
+ {{0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}},
+ {{0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}},
+ {{0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}},
+ {{0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}},
+ {{0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}},
+ {{0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}},
+ {{0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}},
+ {{0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}},
+ {{0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}},
+ {{0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}},
+ {{0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}},
+ {{0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}},
+ {{0x13, 0x11, 0x00, 0x14}, {0x13, 0x11, 0x00, 0x18}, {0x13, 0x11, 0x00, 0x18}, {0x13, 0x11, 0x00, 0x18}, {0x13, 0x11, 0x00, 0x18}},
+ {{0x10, 0x12, 0x02, 0x15}, {0x10, 0x12, 0x02, 0x18}, {0x10, 0x12, 0x02, 0x18}, {0x10, 0x12, 0x02, 0x18}, {0x10, 0x12, 0x02, 0x18}},
+ {{0x11, 0x13, 0x04, 0x16}, {0x11, 0x13, 0x04, 0x19}, {0x11, 0x13, 0x04, 0x19}, {0x11, 0x13, 0x04, 0x19}, {0x11, 0x13, 0x04, 0x19}},
+ {{0x12, 0x10, 0x06, 0x17}, {0x12, 0x10, 0x06, 0x19}, {0x12, 0x10, 0x06, 0x19}, {0x12, 0x10, 0x06, 0x19}, {0x12, 0x10, 0x06, 0x19}},
+ {{0x17, 0x15, 0x10, 0x08}, {0x17, 0x15, 0x1a, 0x08}, {0x17, 0x15, 0x1a, 0x08}, {0x17, 0x15, 0x1a, 0x08}, {0x17, 0x15, 0x1a, 0x08}},
+ {{0x14, 0x16, 0x11, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}},
+ {{0x15, 0x17, 0x12, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}},
+ {{0x16, 0x14, 0x13, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}},
+ {{0xff, 0xff, 0xff, 0xff}, {0x19, 0x19, 0x10, 0x1a}, {0x19, 0x19, 0x10, 0x1c}, {0x19, 0x19, 0x10, 0x1c}, {0x19, 0x19, 0x10, 0x1c}},
+ {{0xff, 0xff, 0xff, 0xff}, {0x18, 0x18, 0x12, 0x1b}, {0x18, 0x18, 0x12, 0x1c}, {0x18, 0x18, 0x12, 0x1c}, {0x18, 0x18, 0x12, 0x1c}},
+ {{0xff, 0xff, 0xff, 0xff}, {0x1b, 0x1b, 0x18, 0x14}, {0x1b, 0x1b, 0x1d, 0x14}, {0x1b, 0x1b, 0x1d, 0x14}, {0x1b, 0x1b, 0x1d, 0x14}},
+ {{0xff, 0xff, 0xff, 0xff}, {0x1a, 0x1a, 0x19, 0x16}, {0x1a, 0x1a, 0x1d, 0x16}, {0x1a, 0x1a, 0x1d, 0x16}, {0x1a, 0x1a, 0x1d, 0x16}},
+ {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x18, 0x1d}, {0xff, 0xff, 0x18, 0x1e}, {0xff, 0xff, 0x18, 0x1e}},
+ {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x1c, 0x1a}, {0xff, 0xff, 0x1e, 0x1a}, {0xff, 0xff, 0x1e, 0x1a}},
+ {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x1c, 0x1d}, {0xff, 0xff, 0x1c, 0x1d}},
+ {{0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}},
+};
+
+static const struct BgTemplate gUnknown_0860CE74[4] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 28,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ },
+ {
+ .bg = 1,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 29,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ },
+ {
+ .bg = 3,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ },
+};
+
+static const struct BgTemplate gUnknown_0860CE84[4] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 20,
+ .screenSize = 3,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ },
+ {
+ .bg = 1,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 24,
+ .screenSize = 3,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 28,
+ .screenSize = 3,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 3,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 7,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+};
+
+static const struct WindowTemplate gUnknown_0860CE94[] =
+{
+ {
+ .priority = 0,
+ .tilemapLeft = 0,
+ .tilemapTop = 3,
+ .width = 8,
+ .height = 16,
+ .paletteNum = 15,
+ .baseBlock = 16,
+ },
+ {
+ .priority = 0,
+ .tilemapLeft = 22,
+ .tilemapTop = 3,
+ .width = 8,
+ .height = 16,
+ .paletteNum = 15,
+ .baseBlock = 144,
+ },
+ {
+ .priority = 0,
+ .tilemapLeft = 8,
+ .tilemapTop = 1,
+ .width = 14,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 272,
+ },
+ DUMMY_WIN_TEMPLATE,
+};
+
+static const struct WindowTemplate gUnknown_0860CEB4[] =
+{
+ {
+ .priority = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 2,
+ .width = 26,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 1,
+ },
+ {
+ .priority = 0,
+ .tilemapLeft = 16,
+ .tilemapTop = 5,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 53,
+ },
+ {
+ .priority = 0,
+ .tilemapLeft = 19,
+ .tilemapTop = 7,
+ .width = 9,
+ .height = 3,
+ .paletteNum = 15,
+ .baseBlock = 69,
+ },
+ {
+ .priority = 0,
+ .tilemapLeft = 16,
+ .tilemapTop = 10,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 96,
+ },
+ {
+ .priority = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 12,
+ .width = 26,
+ .height = 7,
+ .paletteNum = 15,
+ .baseBlock = 112,
+ },
+ {
+ .priority = 0,
+ .tilemapLeft = 5,
+ .tilemapTop = 2,
+ .width = 23,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 294,
+ },
+ {
+ .priority = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 5,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 340,
+ },
+ {
+ .priority = 0,
+ .tilemapLeft = 20,
+ .tilemapTop = 5,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 356,
+ },
+ {
+ .priority = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 16,
+ .width = 26,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 372,
+ },
+ {
+ .priority = 1,
+ .tilemapLeft = 2,
+ .tilemapTop = 2,
+ .width = 26,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 1,
+ },
+ {
+ .priority = 1,
+ .tilemapLeft = 16,
+ .tilemapTop = 5,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 53,
+ },
+ {
+ .priority = 1,
+ .tilemapLeft = 19,
+ .tilemapTop = 7,
+ .width = 9,
+ .height = 3,
+ .paletteNum = 15,
+ .baseBlock = 69,
+ },
+ {
+ .priority = 1,
+ .tilemapLeft = 16,
+ .tilemapTop = 10,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 96,
+ },
+ {
+ .priority = 1,
+ .tilemapLeft = 2,
+ .tilemapTop = 12,
+ .width = 26,
+ .height = 7,
+ .paletteNum = 15,
+ .baseBlock = 112,
+ },
+ {
+ .priority = 1,
+ .tilemapLeft = 5,
+ .tilemapTop = 2,
+ .width = 23,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 294,
+ },
+ {
+ .priority = 1,
+ .tilemapLeft = 2,
+ .tilemapTop = 5,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 340,
+ },
+ {
+ .priority = 1,
+ .tilemapLeft = 20,
+ .tilemapTop = 5,
+ .width = 8,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 356,
+ },
+ {
+ .priority = 1,
+ .tilemapLeft = 2,
+ .tilemapTop = 16,
+ .width = 26,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 372,
+ },
+ // UB: No DUMMY_WIN_TEMPLATE at the array's end.
+};
+
+static const struct ScanlineEffectParams gUnknown_0860CF44 =
+{
+ .dmaDest = (void *)REG_ADDR_BG3CNT,
+ .dmaControl = 0xa2600001,
+ .initState = 1,
+};
+
+static const struct CompressedSpriteSheet gUnknown_0860CF50[] =
+{
+ {gBattleFrontierGfx_DomeOptions, 0x0600, 0x0000},
+ {},
+};
+
+static const struct CompressedSpritePalette gUnknown_0860CF60[] =
+{
+ {gUnknown_08D85444, 0x0000},
+ {},
+};
+
+static const struct OamData gUnknown_0860CF70 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const struct OamData gUnknown_0860CF78 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 1,
+ .affineParam = 0,
+};
+
+static const struct OamData gUnknown_0860CF80 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 2,
+ .affineParam = 0,
+};
+
+static const struct OamData gUnknown_0860CF88 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 2,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 2,
+ .affineParam = 0,
+};
+
+static const union AnimCmd gUnknown_0860CF90[] =
+{
+ ANIMCMD_FRAME(20, 1),
+ ANIMCMD_END,
+};
+static const union AnimCmd gUnknown_0860CF98[] =
+{
+ ANIMCMD_FRAME(24, 1),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd * const gUnknown_0860CFA0[] =
+{
+ gUnknown_0860CF90,
+ gUnknown_0860CF98,
+};
+
+static const struct SpriteTemplate gUnknown_0860CFA8 =
+{
+ .tileTag = 0x0000,
+ .paletteTag = 0xffff,
+ .oam = &gUnknown_0860CF70,
+ .anims = gUnknown_0860CFA0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const union AnimCmd gUnknown_0860CFC0[] =
+{
+ ANIMCMD_FRAME(8, 1),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gUnknown_0860CFC8[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd * const gUnknown_0860CFD0[] =
+{
+ gUnknown_0860CFC0,
+ gUnknown_0860CFC8,
+};
+
+static const struct SpriteTemplate gUnknown_0860CFD8 =
+{
+ .tileTag = 0x0000,
+ .paletteTag = 0xffff,
+ .oam = &gUnknown_0860CF78,
+ .anims = gUnknown_0860CFD0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const union AnimCmd gUnknown_0860CFF0[] =
+{
+ ANIMCMD_FRAME(40, 1),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gUnknown_0860CFF8[] =
+{
+ ANIMCMD_FRAME(32, 1),
+ ANIMCMD_END,
+ };
+
+static const union AnimCmd * const gUnknown_0860D000[] =
+{
+ gUnknown_0860CFF0,
+ gUnknown_0860CFF8,
+};
+
+static const struct SpriteTemplate gUnknown_0860D008 =
+{
+ .tileTag = 0x0000,
+ .paletteTag = 0xffff,
+ .oam = &gUnknown_0860CF78,
+ .anims = gUnknown_0860D000,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const union AnimCmd gUnknown_0860D020[] =
+{
+ ANIMCMD_FRAME(18, 1),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gUnknown_0860D028[] =
+{
+ ANIMCMD_FRAME(18, 129, .vFlip = TRUE),
+ ANIMCMD_END,
+ };
+
+static const union AnimCmd gUnknown_0860D030[] =
+{
+ ANIMCMD_FRAME(16, 65, .hFlip = TRUE),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd gUnknown_0860D038[] =
+{
+ ANIMCMD_FRAME(16, 1),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd * const gUnknown_0860D040[] =
+{
+ gUnknown_0860D020,
+ gUnknown_0860D028,
+};
+
+static const union AnimCmd * const gUnknown_0860D048[] =
+{
+ gUnknown_0860D030,
+ gUnknown_0860D038,
+};
+
+static const struct SpriteTemplate gUnknown_0860D050 =
+{
+ .tileTag = 0x0000,
+ .paletteTag = 0xffff,
+ .oam = &gUnknown_0860CF88,
+ .anims = gUnknown_0860D048,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8190B40
+};
+
+static const struct SpriteTemplate gUnknown_0860D068 =
+{
+ .tileTag = 0x0000,
+ .paletteTag = 0xffff,
+ .oam = &gUnknown_0860CF80,
+ .anims = gUnknown_0860D040,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8190C6C
+};
+
+static const u8 gUnknown_0860D080[DOME_TOURNAMENT_TRAINERS_COUNT] =
+{
+ 0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01
+};
+
+static void (* const gUnknown_0860D090[])(void) =
+{
+ sub_818E9CC,
+ sub_818EA84,
+ sub_818ED28,
+ sub_818F9B0,
+ sub_818F9E0,
+ sub_818FA20,
+ ShowDomeOpponentInfo,
+ sub_81938A4,
+ sub_81938E0,
+ sub_8190298,
+ sub_81902E4,
+ sub_8193D40,
+ sub_8193D7C,
+ sub_81902F8,
+ sub_819033C,
+ sub_8194D48,
+ sub_8194D68,
+ sub_8194E44,
+ sub_8194EB4,
+ sub_8194EC0,
+ sub_8194EF8,
+ sub_8194F58,
+ InitDomeTrainers,
+};
+
+static const u32 gUnknown_0860D0EC[][2] =
+{
+ {0x00000004, 0x00000008},
+ {0x00100000, 0x00200000},
+};
+
+static const u32 gUnknown_0860D0FC[][2] =
+{
+ {0xfffffffb, 0xfffffff7},
+ {0xffefffff, 0xffdfffff},
+};
+
+static const u8 sIdToOpponentId[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] =
+{
+ [0] = {8, 0, 4, 8},
+ [1] = {9, 12, 8, 0},
+ [2] = {10, 8, 12, 0},
+ [3] = {11, 4, 0, 8},
+ [4] = {12, 0, 4, 8},
+ [5] = {13, 12, 8, 0},
+ [6] = {14, 8, 12, 0},
+ [7] = {15, 4, 0, 8},
+ [8] = {0, 0, 4, 8},
+ [9] = {1, 12, 8, 0},
+ [10] = {2, 8, 12, 0},
+ [11] = {3, 4, 0, 8},
+ [12] = {4, 0, 4, 8},
+ [13] = {5, 12, 8, 0},
+ [14] = {6, 8, 12, 0},
+ [15] = {7, 4, 0, 8},
+};
+
+static const u8 gUnknown_0860D14C[] = {0x00, 0x08, 0x04, 0x0c, 0x07, 0x0f, 0x03, 0x0b, 0x02, 0x0a, 0x06, 0x0e, 0x05, 0x0d, 0x01, 0x09};
+
+static const u8 gUnknown_0860D15C[][4] =
+{
+ {0x00, 0x08, 0x0c, 0x0e},
+ {0x00, 0x08, 0x0c, 0x0e},
+ {0x01, 0x08, 0x0c, 0x0e},
+ {0x01, 0x08, 0x0c, 0x0e},
+ {0x02, 0x09, 0x0c, 0x0e},
+ {0x02, 0x09, 0x0c, 0x0e},
+ {0x03, 0x09, 0x0c, 0x0e},
+ {0x03, 0x09, 0x0c, 0x0e},
+ {0x04, 0x0a, 0x0d, 0x0e},
+ {0x04, 0x0a, 0x0d, 0x0e},
+ {0x05, 0x0a, 0x0d, 0x0e},
+ {0x05, 0x0a, 0x0d, 0x0e},
+ {0x06, 0x0b, 0x0d, 0x0e},
+ {0x06, 0x0b, 0x0d, 0x0e},
+ {0x07, 0x0b, 0x0d, 0x0e},
+ {0x07, 0x0b, 0x0d, 0x0e},
+};
+
+static const u8 gUnknown_0860D19C[] = {0x17, 0x1b, 0x1d, 0x1e};
+
+static const u8 gUnknown_0860D1A0[][4] =
+{
+ {0x10, 0x18, 0x1c, 0x1e},
+ {0x11, 0x18, 0x1c, 0x1e},
+ {0x12, 0x19, 0x1c, 0x1e},
+ {0x13, 0x19, 0x1c, 0x1e},
+ {0x14, 0x1a, 0x1d, 0x1e},
+ {0x15, 0x1a, 0x1d, 0x1e},
+ {0x16, 0x1b, 0x1d, 0x1e},
+ {0x17, 0x1b, 0x1d, 0x1e},
+};
+
+static const u8 gUnknown_0860D1C0[] = {0x00, 0x0f, 0x08, 0x07, 0x03, 0x0c, 0x0b, 0x04, 0x01, 0x0e, 0x09, 0x06, 0x02, 0x0d, 0x0a, 0x05};
+
+static const u8 *const gBattleDomePotentialPointers[] =
+{
+ gBattleDomeOpponentPotential1,
+ gBattleDomeOpponentPotential2,
+ gBattleDomeOpponentPotential3,
+ gBattleDomeOpponentPotential4,
+ gBattleDomeOpponentPotential5,
+ gBattleDomeOpponentPotential6,
+ gBattleDomeOpponentPotential7,
+ gBattleDomeOpponentPotential8,
+ gBattleDomeOpponentPotential9,
+ gBattleDomeOpponentPotential10,
+ gBattleDomeOpponentPotential11,
+ gBattleDomeOpponentPotential12,
+ gBattleDomeOpponentPotential13,
+ gBattleDomeOpponentPotential14,
+ gBattleDomeOpponentPotential15,
+ gBattleDomeOpponentPotential16,
+ gBattleDomeOpponentPotential17,
+};
+
+static const u8 *const gBattleDomeOpponentStylePointers[] =
+{
+ gBattleDomeOpponentStyle1,
+ gBattleDomeOpponentStyle2,
+ gBattleDomeOpponentStyle3,
+ gBattleDomeOpponentStyle4,
+ gBattleDomeOpponentStyle5,
+ gBattleDomeOpponentStyle6,
+ gBattleDomeOpponentStyle7,
+ gBattleDomeOpponentStyle8,
+ gBattleDomeOpponentStyle9,
+ gBattleDomeOpponentStyle10,
+ gBattleDomeOpponentStyle11,
+ gBattleDomeOpponentStyle12,
+ gBattleDomeOpponentStyle13,
+ gBattleDomeOpponentStyle14,
+ gBattleDomeOpponentStyle15,
+ gBattleDomeOpponentStyle16,
+ gBattleDomeOpponentStyle17,
+ gBattleDomeOpponentStyle18,
+ gBattleDomeOpponentStyle19,
+ gBattleDomeOpponentStyle20,
+ gBattleDomeOpponentStyle21,
+ gBattleDomeOpponentStyle22,
+ gBattleDomeOpponentStyle23,
+ gBattleDomeOpponentStyle24,
+ gBattleDomeOpponentStyle25,
+ gBattleDomeOpponentStyle26,
+ gBattleDomeOpponentStyle27,
+ gBattleDomeOpponentStyle28,
+ gBattleDomeOpponentStyleUnused1,
+ gBattleDomeOpponentStyleUnused2,
+ gBattleDomeOpponentStyleUnused3,
+ gBattleDomeOpponentStyleUnused4,
+};
+
+static const u8 *const gBattleDomeOpponentStatsPointers[] =
+{
+ gBattleDomeOpponentStats1,
+ gBattleDomeOpponentStats2,
+ gBattleDomeOpponentStats3,
+ gBattleDomeOpponentStats4,
+ gBattleDomeOpponentStats5,
+ gBattleDomeOpponentStats6,
+ gBattleDomeOpponentStats7,
+ gBattleDomeOpponentStats8,
+ gBattleDomeOpponentStats9,
+ gBattleDomeOpponentStats10,
+ gBattleDomeOpponentStats11,
+ gBattleDomeOpponentStats12,
+ gBattleDomeOpponentStats13,
+ gBattleDomeOpponentStats14,
+ gBattleDomeOpponentStats15,
+ gBattleDomeOpponentStats16,
+ gBattleDomeOpponentStats17,
+ gBattleDomeOpponentStats18,
+ gBattleDomeOpponentStats19,
+ gBattleDomeOpponentStats20,
+ gBattleDomeOpponentStats21,
+ gBattleDomeOpponentStats22,
+ gBattleDomeOpponentStats23,
+ gBattleDomeOpponentStats24,
+ gBattleDomeOpponentStats25,
+ gBattleDomeOpponentStats26,
+ gBattleDomeOpponentStats27,
+ gBattleDomeOpponentStats28,
+ gBattleDomeOpponentStats29,
+ gBattleDomeOpponentStats30,
+ gBattleDomeOpponentStats31,
+ gBattleDomeOpponentStats32,
+ gBattleDomeOpponentStats33,
+ gBattleDomeOpponentStats34,
+ gBattleDomeOpponentStats35,
+ gBattleDomeOpponentStats36,
+ gBattleDomeOpponentStats37,
+ gBattleDomeOpponentStats38,
+ gBattleDomeOpponentStats39,
+ gBattleDomeOpponentStats40,
+ gBattleDomeOpponentStats41,
+ gBattleDomeOpponentStats42,
+ gBattleDomeOpponentStats43,
+};
+
+static const u8 sInfoTrainerMonX[] = {0x68, 0x88, 0x68};
+static const u8 sInfoTrainerMonY[] = {0x26, 0x3e, 0x4e};
+static const u8 gUnknown_0860D346[] = {0x00, 0x04, 0x00};
+
+static const u8 gUnknown_0860D349[] = {0x00, 0x05, 0x09, 0x0c, 0x0e, 0x00, 0x00};
+
+static const u8 *const gBattleDomeMatchNumberPointers[] =
+{
+ gBattleDomeMatchNumber1,
+ gBattleDomeMatchNumber2,
+ gBattleDomeMatchNumber3,
+ gBattleDomeMatchNumber4,
+ gBattleDomeMatchNumber5,
+ gBattleDomeMatchNumber6,
+ gBattleDomeMatchNumber7,
+ gBattleDomeMatchNumber8,
+ gBattleDomeMatchNumber9,
+ gBattleDomeMatchNumber10,
+ gBattleDomeMatchNumber11,
+ gBattleDomeMatchNumber12,
+ gBattleDomeMatchNumber13,
+ gBattleDomeMatchNumber14,
+ gBattleDomeMatchNumber15,
+};
+
+static const u8 *const gBattleDomeWinStringsPointers[] =
+{
+ gBattleDomeWinStrings1,
+ gBattleDomeWinStrings2,
+ gBattleDomeWinStrings3,
+ gBattleDomeWinStrings4,
+ gBattleDomeWinStrings5,
+ gBattleDomeWinStrings6,
+ gBattleDomeWinStrings7,
+};
+
+static const u8 sFirstTrainerMonX[] = {0x60, 0x60, 0x60};
+static const u8 sFirstTrainerMonY[] = {0x38, 0x50, 0x68};
+static const u8 sSecondTrainerMonX[] = {0x90, 0x90, 0x90};
+static const u8 sSecondTrainerMonY[] = {0x38, 0x50, 0x68};
+
+static const u8 gUnknown_0860D3B4[] = {0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01};
+
+static const u8 gUnknown_0860D3C4[][3] =
+{
+ {0x00, 0x02, 0x00},
+ {0x02, 0x02, 0x00},
+ {0x04, 0x02, 0x00},
+ {0x06, 0x02, 0x00},
+ {0x08, 0x02, 0x00},
+ {0x0a, 0x02, 0x00},
+ {0x0c, 0x02, 0x00},
+ {0x0e, 0x02, 0x00},
+ {0x00, 0x04, 0x01},
+ {0x04, 0x04, 0x01},
+ {0x08, 0x04, 0x01},
+ {0x0c, 0x04, 0x01},
+ {0x00, 0x08, 0x02},
+ {0x08, 0x08, 0x02},
+ {0x00, 0x10, 0x03},
+};
+
+static const u8 gUnknown_0860D3F1[][2] =
+{
+ {0x00, 0x00},
+ {0x01, 0x70},
+ {0x01, 0x00},
+ {0x00, 0x70},
+ {0x00, 0x30},
+ {0x01, 0x40},
+ {0x01, 0x30},
+ {0x00, 0x40},
+ {0x00, 0x10},
+ {0x01, 0x60},
+ {0x01, 0x10},
+ {0x00, 0x60},
+ {0x00, 0x20},
+ {0x01, 0x50},
+ {0x01, 0x20},
+ {0x00, 0x50},
+};
+
+static const u8 gUnknown_0860D411[][2] =
+{
+ {0x44, 0x21},
+ {0x44, 0x31},
+ {0x44, 0x41},
+ {0x44, 0x51},
+ {0x44, 0x61},
+ {0x44, 0x71},
+ {0x44, 0x81},
+ {0x44, 0x91},
+ {0xac, 0x21},
+ {0xac, 0x31},
+ {0xac, 0x41},
+ {0xac, 0x51},
+ {0xac, 0x61},
+ {0xac, 0x71},
+ {0xac, 0x81},
+ {0xac, 0x91},
+ {0x57, 0x29},
+ {0x57, 0x49},
+ {0x57, 0x69},
+ {0x57, 0x89},
+ {0x99, 0x29},
+ {0x99, 0x49},
+ {0x99, 0x69},
+ {0x99, 0x89},
+ {0x5f, 0x39},
+ {0x5f, 0x79},
+ {0x91, 0x39},
+ {0x91, 0x79},
+ {0x67, 0x59},
+ {0x89, 0x59},
+ {0x78, 0x59},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d450[] =
+{
+ {.src = 0x6021, .y = 0x04, .x = 0x09},
+ {.src = 0x6023, .y = 0x04, .x = 0x0a},
+ {.src = 0x6047, .y = 0x05, .x = 0x0a},
+ {.src = 0x6043, .y = 0x05, .x = 0x0b},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d460[] =
+{
+ {.src = 0x6021, .y = 0x04, .x = 0x09},
+ {.src = 0x6023, .y = 0x04, .x = 0x0a},
+ {.src = 0x6047, .y = 0x05, .x = 0x0a},
+ {.src = 0x6023, .y = 0x05, .x = 0x0b},
+ {.src = 0x6027, .y = 0x06, .x = 0x0b},
+ {.src = 0x6047, .y = 0x07, .x = 0x0b},
+ {.src = 0x6043, .y = 0x07, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d47c[] =
+{
+ {.src = 0x6021, .y = 0x04, .x = 0x09},
+ {.src = 0x6023, .y = 0x04, .x = 0x0a},
+ {.src = 0x6047, .y = 0x05, .x = 0x0a},
+ {.src = 0x6023, .y = 0x05, .x = 0x0b},
+ {.src = 0x6027, .y = 0x06, .x = 0x0b},
+ {.src = 0x6047, .y = 0x07, .x = 0x0b},
+ {.src = 0x6023, .y = 0x07, .x = 0x0c},
+ {.src = 0x6027, .y = 0x08, .x = 0x0c},
+ {.src = 0x6027, .y = 0x09, .x = 0x0c},
+ {.src = 0x6027, .y = 0x0a, .x = 0x0c},
+ {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d4a8[] =
+{
+ {.src = 0x6021, .y = 0x04, .x = 0x09},
+ {.src = 0x6023, .y = 0x04, .x = 0x0a},
+ {.src = 0x6047, .y = 0x05, .x = 0x0a},
+ {.src = 0x6023, .y = 0x05, .x = 0x0b},
+ {.src = 0x6027, .y = 0x06, .x = 0x0b},
+ {.src = 0x6047, .y = 0x07, .x = 0x0b},
+ {.src = 0x6023, .y = 0x07, .x = 0x0c},
+ {.src = 0x6027, .y = 0x08, .x = 0x0c},
+ {.src = 0x6027, .y = 0x09, .x = 0x0c},
+ {.src = 0x6027, .y = 0x0a, .x = 0x0c},
+ {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+ {.src = 0x602c, .y = 0x0b, .x = 0x0d},
+ {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d4dc[] =
+{
+ {.src = 0x6021, .y = 0x06, .x = 0x09},
+ {.src = 0x6021, .y = 0x06, .x = 0x0a},
+ {.src = 0x6027, .y = 0x05, .x = 0x0a},
+ {.src = 0x6043, .y = 0x05, .x = 0x0b},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d4ec[] =
+{
+ {.src = 0x6021, .y = 0x06, .x = 0x09},
+ {.src = 0x6021, .y = 0x06, .x = 0x0a},
+ {.src = 0x6027, .y = 0x05, .x = 0x0a},
+ {.src = 0x6023, .y = 0x05, .x = 0x0b},
+ {.src = 0x6027, .y = 0x06, .x = 0x0b},
+ {.src = 0x6047, .y = 0x07, .x = 0x0b},
+ {.src = 0x6043, .y = 0x07, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d508[] =
+{
+ {.src = 0x6021, .y = 0x06, .x = 0x09},
+ {.src = 0x6021, .y = 0x06, .x = 0x0a},
+ {.src = 0x6027, .y = 0x05, .x = 0x0a},
+ {.src = 0x6023, .y = 0x05, .x = 0x0b},
+ {.src = 0x6027, .y = 0x06, .x = 0x0b},
+ {.src = 0x6047, .y = 0x07, .x = 0x0b},
+ {.src = 0x6023, .y = 0x07, .x = 0x0c},
+ {.src = 0x6027, .y = 0x08, .x = 0x0c},
+ {.src = 0x6027, .y = 0x09, .x = 0x0c},
+ {.src = 0x6027, .y = 0x0a, .x = 0x0c},
+ {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d534[] =
+{
+ {.src = 0x6021, .y = 0x06, .x = 0x09},
+ {.src = 0x6021, .y = 0x06, .x = 0x0a},
+ {.src = 0x6027, .y = 0x05, .x = 0x0a},
+ {.src = 0x6023, .y = 0x05, .x = 0x0b},
+ {.src = 0x6027, .y = 0x06, .x = 0x0b},
+ {.src = 0x6047, .y = 0x07, .x = 0x0b},
+ {.src = 0x6023, .y = 0x07, .x = 0x0c},
+ {.src = 0x6027, .y = 0x08, .x = 0x0c},
+ {.src = 0x6027, .y = 0x09, .x = 0x0c},
+ {.src = 0x6027, .y = 0x0a, .x = 0x0c},
+ {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+ {.src = 0x602c, .y = 0x0b, .x = 0x0d},
+ {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d568[] =
+{
+ {.src = 0x6021, .y = 0x08, .x = 0x09},
+ {.src = 0x6023, .y = 0x08, .x = 0x0a},
+ {.src = 0x6047, .y = 0x09, .x = 0x0a},
+ {.src = 0x6021, .y = 0x09, .x = 0x0b},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d578[] =
+{
+ {.src = 0x6021, .y = 0x08, .x = 0x09},
+ {.src = 0x6023, .y = 0x08, .x = 0x0a},
+ {.src = 0x6047, .y = 0x09, .x = 0x0a},
+ {.src = 0x6021, .y = 0x09, .x = 0x0b},
+ {.src = 0x6027, .y = 0x08, .x = 0x0b},
+ {.src = 0x6027, .y = 0x07, .x = 0x0b},
+ {.src = 0x6043, .y = 0x07, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d594[] =
+{
+ {.src = 0x6021, .y = 0x08, .x = 0x09},
+ {.src = 0x6023, .y = 0x08, .x = 0x0a},
+ {.src = 0x6047, .y = 0x09, .x = 0x0a},
+ {.src = 0x6021, .y = 0x09, .x = 0x0b},
+ {.src = 0x6027, .y = 0x08, .x = 0x0b},
+ {.src = 0x6027, .y = 0x07, .x = 0x0b},
+ {.src = 0x6023, .y = 0x07, .x = 0x0c},
+ {.src = 0x6027, .y = 0x08, .x = 0x0c},
+ {.src = 0x6027, .y = 0x09, .x = 0x0c},
+ {.src = 0x6027, .y = 0x0a, .x = 0x0c},
+ {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d5c0[] =
+{
+ {.src = 0x6021, .y = 0x08, .x = 0x09},
+ {.src = 0x6023, .y = 0x08, .x = 0x0a},
+ {.src = 0x6047, .y = 0x09, .x = 0x0a},
+ {.src = 0x6021, .y = 0x09, .x = 0x0b},
+ {.src = 0x6027, .y = 0x08, .x = 0x0b},
+ {.src = 0x6027, .y = 0x07, .x = 0x0b},
+ {.src = 0x6023, .y = 0x07, .x = 0x0c},
+ {.src = 0x6027, .y = 0x08, .x = 0x0c},
+ {.src = 0x6027, .y = 0x09, .x = 0x0c},
+ {.src = 0x6027, .y = 0x0a, .x = 0x0c},
+ {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+ {.src = 0x602c, .y = 0x0b, .x = 0x0d},
+ {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d5f4[] =
+{
+ {.src = 0x6021, .y = 0x0a, .x = 0x09},
+ {.src = 0x6021, .y = 0x0a, .x = 0x0a},
+ {.src = 0x6027, .y = 0x09, .x = 0x0a},
+ {.src = 0x6021, .y = 0x09, .x = 0x0b},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d604[] =
+{
+ {.src = 0x6021, .y = 0x0a, .x = 0x09},
+ {.src = 0x6021, .y = 0x0a, .x = 0x0a},
+ {.src = 0x6027, .y = 0x09, .x = 0x0a},
+ {.src = 0x6021, .y = 0x09, .x = 0x0b},
+ {.src = 0x6027, .y = 0x08, .x = 0x0b},
+ {.src = 0x6027, .y = 0x07, .x = 0x0b},
+ {.src = 0x6043, .y = 0x07, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d620[] =
+{
+ {.src = 0x6021, .y = 0x0a, .x = 0x09},
+ {.src = 0x6021, .y = 0x0a, .x = 0x0a},
+ {.src = 0x6027, .y = 0x09, .x = 0x0a},
+ {.src = 0x6021, .y = 0x09, .x = 0x0b},
+ {.src = 0x6027, .y = 0x08, .x = 0x0b},
+ {.src = 0x6027, .y = 0x07, .x = 0x0b},
+ {.src = 0x6023, .y = 0x07, .x = 0x0c},
+ {.src = 0x6027, .y = 0x08, .x = 0x0c},
+ {.src = 0x6027, .y = 0x09, .x = 0x0c},
+ {.src = 0x6027, .y = 0x0a, .x = 0x0c},
+ {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d64c[] =
+{
+ {.src = 0x6021, .y = 0x0a, .x = 0x09},
+ {.src = 0x6021, .y = 0x0a, .x = 0x0a},
+ {.src = 0x6027, .y = 0x09, .x = 0x0a},
+ {.src = 0x6021, .y = 0x09, .x = 0x0b},
+ {.src = 0x6027, .y = 0x08, .x = 0x0b},
+ {.src = 0x6027, .y = 0x07, .x = 0x0b},
+ {.src = 0x6023, .y = 0x07, .x = 0x0c},
+ {.src = 0x6027, .y = 0x08, .x = 0x0c},
+ {.src = 0x6027, .y = 0x09, .x = 0x0c},
+ {.src = 0x6027, .y = 0x0a, .x = 0x0c},
+ {.src = 0x603b, .y = 0x0b, .x = 0x0c},
+ {.src = 0x602c, .y = 0x0b, .x = 0x0d},
+ {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d680[] =
+{
+ {.src = 0x6021, .y = 0x0c, .x = 0x09},
+ {.src = 0x6023, .y = 0x0c, .x = 0x0a},
+ {.src = 0x6047, .y = 0x0d, .x = 0x0a},
+ {.src = 0x6043, .y = 0x0d, .x = 0x0b},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d690[] =
+{
+ {.src = 0x6021, .y = 0x0c, .x = 0x09},
+ {.src = 0x6023, .y = 0x0c, .x = 0x0a},
+ {.src = 0x6047, .y = 0x0d, .x = 0x0a},
+ {.src = 0x6023, .y = 0x0d, .x = 0x0b},
+ {.src = 0x6027, .y = 0x0e, .x = 0x0b},
+ {.src = 0x6047, .y = 0x0f, .x = 0x0b},
+ {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d6ac[] =
+{
+ {.src = 0x6021, .y = 0x0c, .x = 0x09},
+ {.src = 0x6023, .y = 0x0c, .x = 0x0a},
+ {.src = 0x6047, .y = 0x0d, .x = 0x0a},
+ {.src = 0x6023, .y = 0x0d, .x = 0x0b},
+ {.src = 0x6027, .y = 0x0e, .x = 0x0b},
+ {.src = 0x6047, .y = 0x0f, .x = 0x0b},
+ {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+ {.src = 0x6033, .y = 0x0e, .x = 0x0c},
+ {.src = 0x6032, .y = 0x0d, .x = 0x0c},
+ {.src = 0x6031, .y = 0x0c, .x = 0x0c},
+ {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d6d8[] =
+{
+ {.src = 0x6021, .y = 0x0c, .x = 0x09},
+ {.src = 0x6023, .y = 0x0c, .x = 0x0a},
+ {.src = 0x6047, .y = 0x0d, .x = 0x0a},
+ {.src = 0x6023, .y = 0x0d, .x = 0x0b},
+ {.src = 0x6027, .y = 0x0e, .x = 0x0b},
+ {.src = 0x6047, .y = 0x0f, .x = 0x0b},
+ {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+ {.src = 0x6033, .y = 0x0e, .x = 0x0c},
+ {.src = 0x6032, .y = 0x0d, .x = 0x0c},
+ {.src = 0x6031, .y = 0x0c, .x = 0x0c},
+ {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+ {.src = 0x602c, .y = 0x0b, .x = 0x0d},
+ {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d70c[] =
+{
+ {.src = 0x6021, .y = 0x0e, .x = 0x09},
+ {.src = 0x6021, .y = 0x0e, .x = 0x0a},
+ {.src = 0x6027, .y = 0x0d, .x = 0x0a},
+ {.src = 0x6043, .y = 0x0d, .x = 0x0b},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d71c[] =
+{
+ {.src = 0x6021, .y = 0x0e, .x = 0x09},
+ {.src = 0x6021, .y = 0x0e, .x = 0x0a},
+ {.src = 0x6027, .y = 0x0d, .x = 0x0a},
+ {.src = 0x6023, .y = 0x0d, .x = 0x0b},
+ {.src = 0x6027, .y = 0x0e, .x = 0x0b},
+ {.src = 0x6047, .y = 0x0f, .x = 0x0b},
+ {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d738[] =
+{
+ {.src = 0x6021, .y = 0x0e, .x = 0x09},
+ {.src = 0x6021, .y = 0x0e, .x = 0x0a},
+ {.src = 0x6027, .y = 0x0d, .x = 0x0a},
+ {.src = 0x6023, .y = 0x0d, .x = 0x0b},
+ {.src = 0x6027, .y = 0x0e, .x = 0x0b},
+ {.src = 0x6047, .y = 0x0f, .x = 0x0b},
+ {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+ {.src = 0x6033, .y = 0x0e, .x = 0x0c},
+ {.src = 0x6032, .y = 0x0d, .x = 0x0c},
+ {.src = 0x6031, .y = 0x0c, .x = 0x0c},
+ {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d764[] =
+{
+ {.src = 0x6021, .y = 0x0e, .x = 0x09},
+ {.src = 0x6021, .y = 0x0e, .x = 0x0a},
+ {.src = 0x6027, .y = 0x0d, .x = 0x0a},
+ {.src = 0x6023, .y = 0x0d, .x = 0x0b},
+ {.src = 0x6027, .y = 0x0e, .x = 0x0b},
+ {.src = 0x6047, .y = 0x0f, .x = 0x0b},
+ {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+ {.src = 0x6033, .y = 0x0e, .x = 0x0c},
+ {.src = 0x6032, .y = 0x0d, .x = 0x0c},
+ {.src = 0x6031, .y = 0x0c, .x = 0x0c},
+ {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+ {.src = 0x602c, .y = 0x0b, .x = 0x0d},
+ {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d798[] =
+{
+ {.src = 0x6021, .y = 0x10, .x = 0x09},
+ {.src = 0x6023, .y = 0x10, .x = 0x0a},
+ {.src = 0x6047, .y = 0x11, .x = 0x0a},
+ {.src = 0x6021, .y = 0x11, .x = 0x0b},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d7a8[] =
+{
+ {.src = 0x6021, .y = 0x10, .x = 0x09},
+ {.src = 0x6023, .y = 0x10, .x = 0x0a},
+ {.src = 0x6047, .y = 0x11, .x = 0x0a},
+ {.src = 0x6021, .y = 0x11, .x = 0x0b},
+ {.src = 0x6027, .y = 0x10, .x = 0x0b},
+ {.src = 0x6027, .y = 0x0f, .x = 0x0b},
+ {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d7c4[] =
+{
+ {.src = 0x6021, .y = 0x10, .x = 0x09},
+ {.src = 0x6023, .y = 0x10, .x = 0x0a},
+ {.src = 0x6047, .y = 0x11, .x = 0x0a},
+ {.src = 0x6021, .y = 0x11, .x = 0x0b},
+ {.src = 0x6027, .y = 0x10, .x = 0x0b},
+ {.src = 0x6027, .y = 0x0f, .x = 0x0b},
+ {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+ {.src = 0x6033, .y = 0x0e, .x = 0x0c},
+ {.src = 0x6032, .y = 0x0d, .x = 0x0c},
+ {.src = 0x6031, .y = 0x0c, .x = 0x0c},
+ {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d7f0[] =
+{
+ {.src = 0x6021, .y = 0x10, .x = 0x09},
+ {.src = 0x6023, .y = 0x10, .x = 0x0a},
+ {.src = 0x6047, .y = 0x11, .x = 0x0a},
+ {.src = 0x6021, .y = 0x11, .x = 0x0b},
+ {.src = 0x6027, .y = 0x10, .x = 0x0b},
+ {.src = 0x6027, .y = 0x0f, .x = 0x0b},
+ {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+ {.src = 0x6033, .y = 0x0e, .x = 0x0c},
+ {.src = 0x6032, .y = 0x0d, .x = 0x0c},
+ {.src = 0x6031, .y = 0x0c, .x = 0x0c},
+ {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+ {.src = 0x602c, .y = 0x0b, .x = 0x0d},
+ {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d824[] =
+{
+ {.src = 0x602b, .y = 0x12, .x = 0x09},
+ {.src = 0x602b, .y = 0x12, .x = 0x0a},
+ {.src = 0x6027, .y = 0x11, .x = 0x0a},
+ {.src = 0x6021, .y = 0x11, .x = 0x0b},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d834[] =
+{
+ {.src = 0x602b, .y = 0x12, .x = 0x09},
+ {.src = 0x602b, .y = 0x12, .x = 0x0a},
+ {.src = 0x6027, .y = 0x11, .x = 0x0a},
+ {.src = 0x6021, .y = 0x11, .x = 0x0b},
+ {.src = 0x6027, .y = 0x10, .x = 0x0b},
+ {.src = 0x6027, .y = 0x0f, .x = 0x0b},
+ {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d850[] =
+{
+ {.src = 0x602b, .y = 0x12, .x = 0x09},
+ {.src = 0x602b, .y = 0x12, .x = 0x0a},
+ {.src = 0x6027, .y = 0x11, .x = 0x0a},
+ {.src = 0x6021, .y = 0x11, .x = 0x0b},
+ {.src = 0x6027, .y = 0x10, .x = 0x0b},
+ {.src = 0x6027, .y = 0x0f, .x = 0x0b},
+ {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+ {.src = 0x6033, .y = 0x0e, .x = 0x0c},
+ {.src = 0x6032, .y = 0x0d, .x = 0x0c},
+ {.src = 0x6031, .y = 0x0c, .x = 0x0c},
+ {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d87c[] =
+{
+ {.src = 0x602b, .y = 0x12, .x = 0x09},
+ {.src = 0x602b, .y = 0x12, .x = 0x0a},
+ {.src = 0x6027, .y = 0x11, .x = 0x0a},
+ {.src = 0x6021, .y = 0x11, .x = 0x0b},
+ {.src = 0x6027, .y = 0x10, .x = 0x0b},
+ {.src = 0x6027, .y = 0x0f, .x = 0x0b},
+ {.src = 0x6021, .y = 0x0f, .x = 0x0c},
+ {.src = 0x6033, .y = 0x0e, .x = 0x0c},
+ {.src = 0x6032, .y = 0x0d, .x = 0x0c},
+ {.src = 0x6031, .y = 0x0c, .x = 0x0c},
+ {.src = 0x6030, .y = 0x0b, .x = 0x0c},
+ {.src = 0x602c, .y = 0x0b, .x = 0x0d},
+ {.src = 0x602d, .y = 0x0b, .x = 0x0e},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d8b0[] =
+{
+ {.src = 0x6021, .y = 0x04, .x = 0x14},
+ {.src = 0x6025, .y = 0x04, .x = 0x13},
+ {.src = 0x6049, .y = 0x05, .x = 0x13},
+ {.src = 0x6045, .y = 0x05, .x = 0x12},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d8c0[] =
+{
+ {.src = 0x6021, .y = 0x04, .x = 0x14},
+ {.src = 0x6025, .y = 0x04, .x = 0x13},
+ {.src = 0x6049, .y = 0x05, .x = 0x13},
+ {.src = 0x6025, .y = 0x05, .x = 0x12},
+ {.src = 0x6029, .y = 0x06, .x = 0x12},
+ {.src = 0x6049, .y = 0x07, .x = 0x12},
+ {.src = 0x6045, .y = 0x07, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d8dc[] =
+{
+ {.src = 0x6021, .y = 0x04, .x = 0x14},
+ {.src = 0x6025, .y = 0x04, .x = 0x13},
+ {.src = 0x6049, .y = 0x05, .x = 0x13},
+ {.src = 0x6025, .y = 0x05, .x = 0x12},
+ {.src = 0x6029, .y = 0x06, .x = 0x12},
+ {.src = 0x6049, .y = 0x07, .x = 0x12},
+ {.src = 0x6025, .y = 0x07, .x = 0x11},
+ {.src = 0x6029, .y = 0x08, .x = 0x11},
+ {.src = 0x6029, .y = 0x09, .x = 0x11},
+ {.src = 0x6029, .y = 0x0a, .x = 0x11},
+ {.src = 0x603c, .y = 0x0b, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d908[] =
+{
+ {.src = 0x6021, .y = 0x04, .x = 0x14},
+ {.src = 0x6025, .y = 0x04, .x = 0x13},
+ {.src = 0x6049, .y = 0x05, .x = 0x13},
+ {.src = 0x6025, .y = 0x05, .x = 0x12},
+ {.src = 0x6029, .y = 0x06, .x = 0x12},
+ {.src = 0x6049, .y = 0x07, .x = 0x12},
+ {.src = 0x6025, .y = 0x07, .x = 0x11},
+ {.src = 0x6029, .y = 0x08, .x = 0x11},
+ {.src = 0x6029, .y = 0x09, .x = 0x11},
+ {.src = 0x6029, .y = 0x0a, .x = 0x11},
+ {.src = 0x603c, .y = 0x0b, .x = 0x11},
+ {.src = 0x602f, .y = 0x0b, .x = 0x10},
+ {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d93c[] =
+{
+ {.src = 0x6021, .y = 0x06, .x = 0x14},
+ {.src = 0x6021, .y = 0x06, .x = 0x13},
+ {.src = 0x6029, .y = 0x05, .x = 0x13},
+ {.src = 0x6045, .y = 0x05, .x = 0x12},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d94c[] =
+{
+ {.src = 0x6021, .y = 0x06, .x = 0x14},
+ {.src = 0x6021, .y = 0x06, .x = 0x13},
+ {.src = 0x6029, .y = 0x05, .x = 0x13},
+ {.src = 0x6025, .y = 0x05, .x = 0x12},
+ {.src = 0x6029, .y = 0x06, .x = 0x12},
+ {.src = 0x6049, .y = 0x07, .x = 0x12},
+ {.src = 0x6045, .y = 0x07, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d968[] =
+{
+ {.src = 0x6021, .y = 0x06, .x = 0x14},
+ {.src = 0x6021, .y = 0x06, .x = 0x13},
+ {.src = 0x6029, .y = 0x05, .x = 0x13},
+ {.src = 0x6025, .y = 0x05, .x = 0x12},
+ {.src = 0x6029, .y = 0x06, .x = 0x12},
+ {.src = 0x6049, .y = 0x07, .x = 0x12},
+ {.src = 0x6025, .y = 0x07, .x = 0x11},
+ {.src = 0x6029, .y = 0x08, .x = 0x11},
+ {.src = 0x6029, .y = 0x09, .x = 0x11},
+ {.src = 0x6029, .y = 0x0a, .x = 0x11},
+ {.src = 0x603c, .y = 0x0b, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d994[] =
+{
+ {.src = 0x6021, .y = 0x06, .x = 0x14},
+ {.src = 0x6021, .y = 0x06, .x = 0x13},
+ {.src = 0x6029, .y = 0x05, .x = 0x13},
+ {.src = 0x6025, .y = 0x05, .x = 0x12},
+ {.src = 0x6029, .y = 0x06, .x = 0x12},
+ {.src = 0x6049, .y = 0x07, .x = 0x12},
+ {.src = 0x6025, .y = 0x07, .x = 0x11},
+ {.src = 0x6029, .y = 0x08, .x = 0x11},
+ {.src = 0x6029, .y = 0x09, .x = 0x11},
+ {.src = 0x6029, .y = 0x0a, .x = 0x11},
+ {.src = 0x603c, .y = 0x0b, .x = 0x11},
+ {.src = 0x602f, .y = 0x0b, .x = 0x10},
+ {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d9c8[] =
+{
+ {.src = 0x6021, .y = 0x08, .x = 0x14},
+ {.src = 0x6025, .y = 0x08, .x = 0x13},
+ {.src = 0x6049, .y = 0x09, .x = 0x13},
+ {.src = 0x6021, .y = 0x09, .x = 0x12},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d9d8[] =
+{
+ {.src = 0x6021, .y = 0x08, .x = 0x14},
+ {.src = 0x6025, .y = 0x08, .x = 0x13},
+ {.src = 0x6049, .y = 0x09, .x = 0x13},
+ {.src = 0x6021, .y = 0x09, .x = 0x12},
+ {.src = 0x6029, .y = 0x08, .x = 0x12},
+ {.src = 0x6029, .y = 0x07, .x = 0x12},
+ {.src = 0x6045, .y = 0x07, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860d9f4[] =
+{
+ {.src = 0x6021, .y = 0x08, .x = 0x14},
+ {.src = 0x6025, .y = 0x08, .x = 0x13},
+ {.src = 0x6049, .y = 0x09, .x = 0x13},
+ {.src = 0x6021, .y = 0x09, .x = 0x12},
+ {.src = 0x6029, .y = 0x08, .x = 0x12},
+ {.src = 0x6029, .y = 0x07, .x = 0x12},
+ {.src = 0x6025, .y = 0x07, .x = 0x11},
+ {.src = 0x6029, .y = 0x08, .x = 0x11},
+ {.src = 0x6029, .y = 0x09, .x = 0x11},
+ {.src = 0x6029, .y = 0x0a, .x = 0x11},
+ {.src = 0x603c, .y = 0x0b, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860da20[] =
+{
+ {.src = 0x6021, .y = 0x08, .x = 0x14},
+ {.src = 0x6025, .y = 0x08, .x = 0x13},
+ {.src = 0x6049, .y = 0x09, .x = 0x13},
+ {.src = 0x6021, .y = 0x09, .x = 0x12},
+ {.src = 0x6029, .y = 0x08, .x = 0x12},
+ {.src = 0x6029, .y = 0x07, .x = 0x12},
+ {.src = 0x6025, .y = 0x07, .x = 0x11},
+ {.src = 0x6029, .y = 0x08, .x = 0x11},
+ {.src = 0x6029, .y = 0x09, .x = 0x11},
+ {.src = 0x6029, .y = 0x0a, .x = 0x11},
+ {.src = 0x603c, .y = 0x0b, .x = 0x11},
+ {.src = 0x602f, .y = 0x0b, .x = 0x10},
+ {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860da54[] =
+{
+ {.src = 0x6021, .y = 0x0a, .x = 0x14},
+ {.src = 0x6021, .y = 0x0a, .x = 0x13},
+ {.src = 0x6029, .y = 0x09, .x = 0x13},
+ {.src = 0x6021, .y = 0x09, .x = 0x12},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860da64[] =
+{
+ {.src = 0x6021, .y = 0x0a, .x = 0x14},
+ {.src = 0x6021, .y = 0x0a, .x = 0x13},
+ {.src = 0x6029, .y = 0x09, .x = 0x13},
+ {.src = 0x6021, .y = 0x09, .x = 0x12},
+ {.src = 0x6029, .y = 0x08, .x = 0x12},
+ {.src = 0x6029, .y = 0x07, .x = 0x12},
+ {.src = 0x6045, .y = 0x07, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860da80[] =
+{
+ {.src = 0x6021, .y = 0x0a, .x = 0x14},
+ {.src = 0x6021, .y = 0x0a, .x = 0x13},
+ {.src = 0x6029, .y = 0x09, .x = 0x13},
+ {.src = 0x6021, .y = 0x09, .x = 0x12},
+ {.src = 0x6029, .y = 0x08, .x = 0x12},
+ {.src = 0x6029, .y = 0x07, .x = 0x12},
+ {.src = 0x6025, .y = 0x07, .x = 0x11},
+ {.src = 0x6029, .y = 0x08, .x = 0x11},
+ {.src = 0x6029, .y = 0x09, .x = 0x11},
+ {.src = 0x6029, .y = 0x0a, .x = 0x11},
+ {.src = 0x603c, .y = 0x0b, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860daac[] =
+{
+ {.src = 0x6021, .y = 0x0a, .x = 0x14},
+ {.src = 0x6021, .y = 0x0a, .x = 0x13},
+ {.src = 0x6029, .y = 0x09, .x = 0x13},
+ {.src = 0x6021, .y = 0x09, .x = 0x12},
+ {.src = 0x6029, .y = 0x08, .x = 0x12},
+ {.src = 0x6029, .y = 0x07, .x = 0x12},
+ {.src = 0x6025, .y = 0x07, .x = 0x11},
+ {.src = 0x6029, .y = 0x08, .x = 0x11},
+ {.src = 0x6029, .y = 0x09, .x = 0x11},
+ {.src = 0x6029, .y = 0x0a, .x = 0x11},
+ {.src = 0x603c, .y = 0x0b, .x = 0x11},
+ {.src = 0x602f, .y = 0x0b, .x = 0x10},
+ {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860dae0[] =
+{
+ {.src = 0x6021, .y = 0x0c, .x = 0x14},
+ {.src = 0x6025, .y = 0x0c, .x = 0x13},
+ {.src = 0x6049, .y = 0x0d, .x = 0x13},
+ {.src = 0x6045, .y = 0x0d, .x = 0x12},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860daf0[] =
+{
+ {.src = 0x6021, .y = 0x0c, .x = 0x14},
+ {.src = 0x6025, .y = 0x0c, .x = 0x13},
+ {.src = 0x6049, .y = 0x0d, .x = 0x13},
+ {.src = 0x6025, .y = 0x0d, .x = 0x12},
+ {.src = 0x6029, .y = 0x0e, .x = 0x12},
+ {.src = 0x6049, .y = 0x0f, .x = 0x12},
+ {.src = 0x6021, .y = 0x0f, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860db0c[] =
+{
+ {.src = 0x6021, .y = 0x0c, .x = 0x14},
+ {.src = 0x6025, .y = 0x0c, .x = 0x13},
+ {.src = 0x6049, .y = 0x0d, .x = 0x13},
+ {.src = 0x6025, .y = 0x0d, .x = 0x12},
+ {.src = 0x6029, .y = 0x0e, .x = 0x12},
+ {.src = 0x6049, .y = 0x0f, .x = 0x12},
+ {.src = 0x6021, .y = 0x0f, .x = 0x11},
+ {.src = 0x6038, .y = 0x0e, .x = 0x11},
+ {.src = 0x6037, .y = 0x0d, .x = 0x11},
+ {.src = 0x6036, .y = 0x0c, .x = 0x11},
+ {.src = 0x6035, .y = 0x0b, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860db38[] =
+{
+ {.src = 0x6021, .y = 0x0c, .x = 0x14},
+ {.src = 0x6025, .y = 0x0c, .x = 0x13},
+ {.src = 0x6049, .y = 0x0d, .x = 0x13},
+ {.src = 0x6025, .y = 0x0d, .x = 0x12},
+ {.src = 0x6029, .y = 0x0e, .x = 0x12},
+ {.src = 0x6049, .y = 0x0f, .x = 0x12},
+ {.src = 0x6021, .y = 0x0f, .x = 0x11},
+ {.src = 0x6038, .y = 0x0e, .x = 0x11},
+ {.src = 0x6037, .y = 0x0d, .x = 0x11},
+ {.src = 0x6036, .y = 0x0c, .x = 0x11},
+ {.src = 0x6035, .y = 0x0b, .x = 0x11},
+ {.src = 0x602f, .y = 0x0b, .x = 0x10},
+ {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860db6c[] =
+{
+ {.src = 0x6021, .y = 0x0e, .x = 0x14},
+ {.src = 0x6021, .y = 0x0e, .x = 0x13},
+ {.src = 0x6029, .y = 0x0d, .x = 0x13},
+ {.src = 0x6045, .y = 0x0d, .x = 0x12},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860db7c[] =
+{
+ {.src = 0x6021, .y = 0x0e, .x = 0x14},
+ {.src = 0x6021, .y = 0x0e, .x = 0x13},
+ {.src = 0x6029, .y = 0x0d, .x = 0x13},
+ {.src = 0x6025, .y = 0x0d, .x = 0x12},
+ {.src = 0x6029, .y = 0x0e, .x = 0x12},
+ {.src = 0x6049, .y = 0x0f, .x = 0x12},
+ {.src = 0x6021, .y = 0x0f, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860db98[] =
+{
+ {.src = 0x6021, .y = 0x0e, .x = 0x14},
+ {.src = 0x6021, .y = 0x0e, .x = 0x13},
+ {.src = 0x6029, .y = 0x0d, .x = 0x13},
+ {.src = 0x6025, .y = 0x0d, .x = 0x12},
+ {.src = 0x6029, .y = 0x0e, .x = 0x12},
+ {.src = 0x6049, .y = 0x0f, .x = 0x12},
+ {.src = 0x6021, .y = 0x0f, .x = 0x11},
+ {.src = 0x6038, .y = 0x0e, .x = 0x11},
+ {.src = 0x6037, .y = 0x0d, .x = 0x11},
+ {.src = 0x6036, .y = 0x0c, .x = 0x11},
+ {.src = 0x6035, .y = 0x0b, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860dbc4[] =
+{
+ {.src = 0x6021, .y = 0x0e, .x = 0x14},
+ {.src = 0x6021, .y = 0x0e, .x = 0x13},
+ {.src = 0x6029, .y = 0x0d, .x = 0x13},
+ {.src = 0x6025, .y = 0x0d, .x = 0x12},
+ {.src = 0x6029, .y = 0x0e, .x = 0x12},
+ {.src = 0x6049, .y = 0x0f, .x = 0x12},
+ {.src = 0x6021, .y = 0x0f, .x = 0x11},
+ {.src = 0x6038, .y = 0x0e, .x = 0x11},
+ {.src = 0x6037, .y = 0x0d, .x = 0x11},
+ {.src = 0x6036, .y = 0x0c, .x = 0x11},
+ {.src = 0x6035, .y = 0x0b, .x = 0x11},
+ {.src = 0x602f, .y = 0x0b, .x = 0x10},
+ {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860dbf8[] =
+{
+ {.src = 0x6021, .y = 0x10, .x = 0x14},
+ {.src = 0x6025, .y = 0x10, .x = 0x13},
+ {.src = 0x6049, .y = 0x11, .x = 0x13},
+ {.src = 0x6021, .y = 0x11, .x = 0x12},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860dc08[] =
+{
+ {.src = 0x6021, .y = 0x10, .x = 0x14},
+ {.src = 0x6025, .y = 0x10, .x = 0x13},
+ {.src = 0x6049, .y = 0x11, .x = 0x13},
+ {.src = 0x6021, .y = 0x11, .x = 0x12},
+ {.src = 0x6029, .y = 0x10, .x = 0x12},
+ {.src = 0x6029, .y = 0x0f, .x = 0x12},
+ {.src = 0x6021, .y = 0x0f, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860dc24[] =
+{
+ {.src = 0x6021, .y = 0x10, .x = 0x14},
+ {.src = 0x6025, .y = 0x10, .x = 0x13},
+ {.src = 0x6049, .y = 0x11, .x = 0x13},
+ {.src = 0x6021, .y = 0x11, .x = 0x12},
+ {.src = 0x6029, .y = 0x10, .x = 0x12},
+ {.src = 0x6029, .y = 0x0f, .x = 0x12},
+ {.src = 0x6021, .y = 0x0f, .x = 0x11},
+ {.src = 0x6038, .y = 0x0e, .x = 0x11},
+ {.src = 0x6037, .y = 0x0d, .x = 0x11},
+ {.src = 0x6036, .y = 0x0c, .x = 0x11},
+ {.src = 0x6035, .y = 0x0b, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860dc50[] =
+{
+ {.src = 0x6021, .y = 0x10, .x = 0x14},
+ {.src = 0x6025, .y = 0x10, .x = 0x13},
+ {.src = 0x6049, .y = 0x11, .x = 0x13},
+ {.src = 0x6021, .y = 0x11, .x = 0x12},
+ {.src = 0x6029, .y = 0x10, .x = 0x12},
+ {.src = 0x6029, .y = 0x0f, .x = 0x12},
+ {.src = 0x6021, .y = 0x0f, .x = 0x11},
+ {.src = 0x6038, .y = 0x0e, .x = 0x11},
+ {.src = 0x6037, .y = 0x0d, .x = 0x11},
+ {.src = 0x6036, .y = 0x0c, .x = 0x11},
+ {.src = 0x6035, .y = 0x0b, .x = 0x11},
+ {.src = 0x602f, .y = 0x0b, .x = 0x10},
+ {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860dc84[] =
+{
+ {.src = 0x602b, .y = 0x12, .x = 0x14},
+ {.src = 0x602b, .y = 0x12, .x = 0x13},
+ {.src = 0x6029, .y = 0x11, .x = 0x13},
+ {.src = 0x6021, .y = 0x11, .x = 0x12},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860dc94[] =
+{
+ {.src = 0x602b, .y = 0x12, .x = 0x14},
+ {.src = 0x602b, .y = 0x12, .x = 0x13},
+ {.src = 0x6029, .y = 0x11, .x = 0x13},
+ {.src = 0x6021, .y = 0x11, .x = 0x12},
+ {.src = 0x6029, .y = 0x10, .x = 0x12},
+ {.src = 0x6029, .y = 0x0f, .x = 0x12},
+ {.src = 0x6021, .y = 0x0f, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860dcb0[] =
+{
+ {.src = 0x602b, .y = 0x12, .x = 0x14},
+ {.src = 0x602b, .y = 0x12, .x = 0x13},
+ {.src = 0x6029, .y = 0x11, .x = 0x13},
+ {.src = 0x6021, .y = 0x11, .x = 0x12},
+ {.src = 0x6029, .y = 0x10, .x = 0x12},
+ {.src = 0x6029, .y = 0x0f, .x = 0x12},
+ {.src = 0x6021, .y = 0x0f, .x = 0x11},
+ {.src = 0x6038, .y = 0x0e, .x = 0x11},
+ {.src = 0x6037, .y = 0x0d, .x = 0x11},
+ {.src = 0x6036, .y = 0x0c, .x = 0x11},
+ {.src = 0x6035, .y = 0x0b, .x = 0x11},
+};
+
+static const struct UnkStruct_860DD10 gUnknown_0860dcdc[] =
+{
+ {.src = 0x602b, .y = 0x12, .x = 0x14},
+ {.src = 0x602b, .y = 0x12, .x = 0x13},
+ {.src = 0x6029, .y = 0x11, .x = 0x13},
+ {.src = 0x6021, .y = 0x11, .x = 0x12},
+ {.src = 0x6029, .y = 0x10, .x = 0x12},
+ {.src = 0x6029, .y = 0x0f, .x = 0x12},
+ {.src = 0x6021, .y = 0x0f, .x = 0x11},
+ {.src = 0x6038, .y = 0x0e, .x = 0x11},
+ {.src = 0x6037, .y = 0x0d, .x = 0x11},
+ {.src = 0x6036, .y = 0x0c, .x = 0x11},
+ {.src = 0x6035, .y = 0x0b, .x = 0x11},
+ {.src = 0x602f, .y = 0x0b, .x = 0x10},
+ {.src = 0x602e, .y = 0x0b, .x = 0x0f},
+};
+
+static const struct UnkStruct_860DD10 * const gUnknown_0860DD10[DOME_TOURNAMENT_TRAINERS_COUNT][4] =
+{
+ {gUnknown_0860d450, gUnknown_0860d460, gUnknown_0860d47c, gUnknown_0860d4a8},
+ {gUnknown_0860dc84, gUnknown_0860dc94, gUnknown_0860dcb0, gUnknown_0860dcdc},
+ {gUnknown_0860d8b0, gUnknown_0860d8c0, gUnknown_0860d8dc, gUnknown_0860d908},
+ {gUnknown_0860d824, gUnknown_0860d834, gUnknown_0860d850, gUnknown_0860d87c},
+ {gUnknown_0860d5f4, gUnknown_0860d604, gUnknown_0860d620, gUnknown_0860d64c},
+ {gUnknown_0860dae0, gUnknown_0860daf0, gUnknown_0860db0c, gUnknown_0860db38},
+ {gUnknown_0860da54, gUnknown_0860da64, gUnknown_0860da80, gUnknown_0860daac},
+ {gUnknown_0860d680, gUnknown_0860d690, gUnknown_0860d6ac, gUnknown_0860d6d8},
+ {gUnknown_0860d4dc, gUnknown_0860d4ec, gUnknown_0860d508, gUnknown_0860d534},
+ {gUnknown_0860dbf8, gUnknown_0860dc08, gUnknown_0860dc24, gUnknown_0860dc50},
+ {gUnknown_0860d93c, gUnknown_0860d94c, gUnknown_0860d968, gUnknown_0860d994},
+ {gUnknown_0860d798, gUnknown_0860d7a8, gUnknown_0860d7c4, gUnknown_0860d7f0},
+ {gUnknown_0860d568, gUnknown_0860d578, gUnknown_0860d594, gUnknown_0860d5c0},
+ {gUnknown_0860db6c, gUnknown_0860db7c, gUnknown_0860db98, gUnknown_0860dbc4},
+ {gUnknown_0860d9c8, gUnknown_0860d9d8, gUnknown_0860d9f4, gUnknown_0860da20},
+ {gUnknown_0860d70c, gUnknown_0860d71c, gUnknown_0860d738, gUnknown_0860d764},
+};
+
+static const u8 gUnknown_0860DE10[DOME_TOURNAMENT_TRAINERS_COUNT][4] =
+{
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+ {0x04, 0x07, 0x0b, 0x0d},
+};
+
+// code
+void CallBattleDomeFunction(void)
+{
+ gUnknown_0860D090[gSpecialVar_0x8004]();
+}
+
+static void sub_818E9CC(void)
+{
+ u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+
+ gSaveBlock2Ptr->frontier.field_CA8 = 0;
+ gSaveBlock2Ptr->frontier.field_CB2 = 0;
+ gSaveBlock2Ptr->frontier.field_CA9_a = 0;
+ gSaveBlock2Ptr->frontier.field_CA9_b = 0;
+ if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[battleMode][lvlMode]))
+ gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] = 0;
+
+ saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
+ gTrainerBattleOpponent_A = 0;
+}
+
+static void sub_818EA84(void)
+{
+ u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+
+ switch (gSpecialVar_0x8005)
+ {
+ case 0:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode];
+ break;
+ case 1:
+ gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[battleMode][lvlMode]) != 0);
+ break;
+ case 2:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0;
+ break;
+ case 3:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_1;
+ break;
+ case 4:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2;
+ break;
+ case 5:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3;
+ break;
+ case 6:
+ if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)
+ {
+ if (lvlMode)
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_5;
+ else
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_4;
+ }
+ else
+ {
+ if (lvlMode)
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_1;
+ else
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0;
+ }
+ break;
+ case 7:
+ if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)
+ {
+ if (lvlMode)
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_7;
+ else
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_6;
+ }
+ else
+ {
+ if (lvlMode)
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3;
+ else
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2;
+ }
+ break;
+ case 8:
+ sub_81B8558();
+ gUnknown_0203CEF8[0] = gSaveBlock2Ptr->frontier.field_CB0;
+ gUnknown_0203CEF8[1] = gSaveBlock2Ptr->frontier.field_CB0 >> 8;
+ break;
+ case 9:
+ gSpecialVar_Result = (gSaveBlock2Ptr->frontier.field_D0A * 2) - 3 + gSaveBlock2Ptr->frontier.field_D0B;
+ break;
+ }
+}
+
+static void sub_818ED28(void)
+{
+ u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+
+ switch (gSpecialVar_0x8005)
+ {
+ case 0:
+ gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] = gSpecialVar_0x8006;
+ break;
+ case 1:
+ if (gSpecialVar_0x8006)
+ gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860D0EC[battleMode][lvlMode];
+ else
+ gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860D0FC[battleMode][lvlMode];
+ break;
+ case 2:
+ gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006;
+ break;
+ case 3:
+ gSaveBlock2Ptr->frontier.field_D08_1 = gSpecialVar_0x8006;
+ break;
+ case 4:
+ gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006;
+ break;
+ case 5:
+ gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006;
+ break;
+ case 6:
+ if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)
+ {
+ if (lvlMode)
+ gSaveBlock2Ptr->frontier.field_D08_5 = gSpecialVar_0x8006;
+ else
+ gSaveBlock2Ptr->frontier.field_D08_4 = gSpecialVar_0x8006;
+ }
+ else
+ {
+ if (lvlMode)
+ gSaveBlock2Ptr->frontier.field_D08_1 = gSpecialVar_0x8006;
+ else
+ gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006;
+ }
+ break;
+ case 7:
+ if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)
+ {
+ if (lvlMode)
+ gSaveBlock2Ptr->frontier.field_D08_7 = gSpecialVar_0x8006;
+ else
+ gSaveBlock2Ptr->frontier.field_D08_6 = gSpecialVar_0x8006;
+ }
+ else
+ {
+ if (lvlMode)
+ gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006;
+ else
+ gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006;
+ }
+ break;
+ case 8:
+ gSaveBlock2Ptr->frontier.field_CB0 = T1_READ_16(gUnknown_0203CEF8);
+ break;
+ }
+}
+
+static void InitDomeTrainers(void)
+{
+ s32 i, j, k;
+ s32 monLevel;
+ s32 species[3];
+ s32 monTypesBits, monTypesCount;
+ s32 trainerId;
+ s32 monTournamentId;
+ u16 *statSums;
+ s32 *statValues;
+ u8 ivs = 0;
+
+ species[0] = 0;
+ species[1] = 0;
+ species[2] = 0;
+ statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT);
+ statValues = AllocZeroed(sizeof(s32) * 6);
+
+ gSaveBlock2Ptr->frontier.field_D0A = gSaveBlock2Ptr->frontier.lvlMode + 1;
+ gSaveBlock2Ptr->frontier.field_D0B = VarGet(VAR_FRONTIER_BATTLE_MODE) + 1;
+ gSaveBlock2Ptr->frontier.domeTrainers[0].trainerId = TRAINER_PLAYER;
+ gSaveBlock2Ptr->frontier.domeTrainers[0].isEliminated = 0;
+ gSaveBlock2Ptr->frontier.domeTrainers[0].eliminatedAt = 0;
+ gSaveBlock2Ptr->frontier.domeTrainers[0].unk3 = 0;
+
+ for (i = 0; i < 3; i++)
+ {
+ gSaveBlock2Ptr->frontier.domeMonId[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1], MON_DATA_SPECIES, NULL);
+ for (j = 0; j < 4; j++)
+ gSaveBlock2Ptr->frontier.field_EFC[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1], MON_DATA_MOVE1 + j, NULL);
+ for (j = 0; j < 6; j++)
+ gSaveBlock2Ptr->frontier.field_EFC[i].evs[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1], MON_DATA_HP_EV + j, NULL);
+
+ gSaveBlock2Ptr->frontier.field_EFC[i].nature = GetNature(&gPlayerParty[gSaveBlock2Ptr->frontier.field_CAA[i] - 1]);
+ }
+
+ for (i = 1; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (i > 5)
+ {
+ do
+ {
+ trainerId = sub_8162548(sub_81A39C4(), 0);
+ for (j = 1; j < i; j++)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId)
+ break;
+ }
+ } while (j != i);
+ gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId;
+ }
+ else
+ {
+ do
+ {
+ trainerId = sub_8162548(sub_81A39C4() + 1, 0);
+ for (j = 1; j < i; j++)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId)
+ break;
+ }
+ } while (j != i);
+ gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId;
+ }
+
+ for (j = 0; j < 3; j++)
+ {
+ // Make sure the mon is valid.
+ do
+ {
+ monTournamentId = RandomizeFacilityTrainerMonId(trainerId);
+ for (k = 0; k < j; k++)
+ {
+ s32 checkingMonId = gSaveBlock2Ptr->frontier.domeMonId[i][k];
+ if (checkingMonId == monTournamentId
+ || species[0] == gFacilityTrainerMons[monTournamentId].species
+ || species[1] == gFacilityTrainerMons[monTournamentId].species
+ || gFacilityTrainerMons[checkingMonId].itemTableId == gFacilityTrainerMons[monTournamentId].itemTableId)
+ break;
+ }
+ } while (k != j);
+
+ gSaveBlock2Ptr->frontier.domeMonId[i][j] = monTournamentId;
+ species[j] = gFacilityTrainerMons[monTournamentId].species;
+ }
+
+ gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated = 0;
+ gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt = 0;
+ gSaveBlock2Ptr->frontier.domeTrainers[i].unk3 = 0;
+ }
+
+ monTypesBits = 0;
+ statSums[0] = 0;
+ for (i = 0; i < 3; i++)
+ {
+ trainerId = gSaveBlock2Ptr->frontier.field_CAA[i] - 1; // Great variable choice, gamefreak.
+ statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_ATK, NULL);
+ statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_DEF, NULL);
+ statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPATK, NULL);
+ statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPDEF, NULL);
+ statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPEED, NULL);
+ statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_MAX_HP, NULL);
+ monTypesBits |= gBitTable[gBaseStats[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].type1];
+ monTypesBits |= gBitTable[gBaseStats[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].type2];
+ }
+
+ for (monTypesCount = 0, j = 0; j < 32; j++)
+ {
+ if (monTypesBits & 1)
+ monTypesCount++;
+ monTypesBits >>= 1;
+ }
+
+ monLevel = GetFacilityEnemyMonLevel();
+ statSums[0] += (monTypesCount * monLevel) / 20;
+
+ for (i = 1; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ monTypesBits = 0;
+ statSums[i] = 0;
+ ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
+ for (j = 0; j < 3; j++)
+ {
+ CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species,
+ monLevel, ivs,
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].evSpread,
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].nature,
+ statValues);
+
+ statSums[i] += statValues[STAT_ATK];
+ statSums[i] += statValues[STAT_DEF];
+ statSums[i] += statValues[STAT_SPATK];
+ statSums[i] += statValues[STAT_SPDEF];
+ statSums[i] += statValues[STAT_SPEED];
+ statSums[i] += statValues[STAT_HP];
+ monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species].type1];
+ monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species].type2];
+ }
+
+ for (monTypesCount = 0, j = 0; j < 32; j++)
+ {
+ if (monTypesBits & 1)
+ monTypesCount++;
+ monTypesBits >>= 1;
+ }
+ statSums[i] += (monTypesCount * monLevel) / 20;
+ }
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT - 1; i++)
+ {
+ for (j = i + 1; j < DOME_TOURNAMENT_TRAINERS_COUNT; j++)
+ {
+ if (statSums[i] < statSums[j])
+ {
+ SwapDomeTrainers(i, j, statSums);
+ }
+ else
+ {
+ if (statSums[i] == statSums[j])
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == TRAINER_PLAYER)
+ SwapDomeTrainers(i, j, statSums);
+ else if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId > gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId)
+ SwapDomeTrainers(i, j, statSums);
+ }
+ }
+ }
+ }
+
+ if (sub_81A3610())
+ {
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER)
+ break;
+ }
+
+ if (gUnknown_0860D3F1[i][0] != 0)
+ {
+ j = 0;
+ gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId = TRAINER_FRONTIER_BRAIN;
+ }
+ else
+ {
+ j = 1;
+ gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId = TRAINER_FRONTIER_BRAIN;
+ }
+
+ for (i = 0; i < 3; i++)
+ gSaveBlock2Ptr->frontier.domeMonId[j][i] = sub_81A4FF0(i);
+ }
+
+ Free(statSums);
+ Free(statValues);
+}
+
+#define CALC_STAT(base, statIndex) \
+{ \
+ u8 baseStat = gBaseStats[species].base; \
+ stats[statIndex] = (((2 * baseStat + ivs + evs[statIndex] / 4) * level) / 100) + 5; \
+ stats[statIndex] = (u8) ModifyStatByNature(nature, stats[statIndex], statIndex); \
+}
+
+static void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats)
+{
+ s32 i, count;
+ u8 bits;
+ u16 resultingEvs;
+ s32 evs[6];
+
+ count = 0, bits = evBits;
+ for (i = 0; i < 6; bits >>= 1, i++)
+ {
+ if (bits & 1)
+ count++;
+ }
+
+ resultingEvs = MAX_TOTAL_EVS / count;
+ for (i = 0; i < 6; bits <<= 1, i++)
+ {
+ evs[i] = 0;
+ if (evBits & bits)
+ evs[i] = resultingEvs;
+ }
+
+ if (species == SPECIES_SHEDINJA)
+ {
+ stats[STAT_HP] = 1;
+ }
+ else
+ {
+ s32 n = 2 * gBaseStats[species].baseHP;
+ stats[STAT_HP] = (((n + ivs + evs[STAT_HP] / 4) * level) / 100) + level + 10;
+ }
+
+ CALC_STAT(baseAttack, STAT_ATK);
+ CALC_STAT(baseDefense, STAT_DEF);
+ CALC_STAT(baseSpeed, STAT_SPEED);
+ CALC_STAT(baseSpAttack, STAT_SPATK);
+ CALC_STAT(baseSpDefense, STAT_SPDEF);
+}
+
+static void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray)
+{
+ s32 i;
+ u16 temp;
+
+ SWAP(statsArray[id1], statsArray[id2], temp);
+ SWAP(gSaveBlock2Ptr->frontier.domeTrainers[id1].trainerId, gSaveBlock2Ptr->frontier.domeTrainers[id2].trainerId, temp);
+
+ for (i = 0; i < 3; i++)
+ SWAP(gSaveBlock2Ptr->frontier.domeMonId[id1][i], gSaveBlock2Ptr->frontier.domeMonId[id2][i], temp);
+}
+
+static void sub_818F9B0(void)
+{
+ StringCopy(gStringVar1, gRoundsStringTable[gSaveBlock2Ptr->frontier.field_CB2]);
+}
+
+static void sub_818F9E0(void)
+{
+ StringCopy(gStringVar1, gRoundsStringTable[gSaveBlock2Ptr->frontier.field_CB2]);
+ CopyDomeTrainerName(gStringVar2, gTrainerBattleOpponent_A);
+}
+
+static void sub_818FA20(void)
+{
+ gUnknown_0203CD70 = 0;
+ gUnknown_0203CD74 = GetMonData(&gPlayerParty[0], MON_DATA_MAX_HP, NULL);
+ gUnknown_0203CD74 += GetMonData(&gPlayerParty[1], MON_DATA_MAX_HP, NULL);
+ CalculatePlayerPartyCount();
+ CreateDomeTrainerMons(TrainerIdToTournamentId(gTrainerBattleOpponent_A));
+}
+
+static void CreateDomeMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentMonId, u32 otId)
+{
+ s32 i;
+ u8 happiness = 0xFF;
+ u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using trainerId instead of tournamentTrainerId. As a result, all Pokemon have ivs of 3.
+ u8 level = GetFacilityEnemyMonLevel();
+ CreateMonWithEVSpreadPersonalityOTID(&gEnemyParty[monPartyId],
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].species,
+ level,
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].nature,
+ fixedIv,
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].evSpread, otId);
+
+ happiness = 0xFF;
+ for (i = 0; i < 4; i++)
+ {
+ SetMonMoveSlot(&gEnemyParty[monPartyId],
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].moves[i], i);
+ if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].moves[i] == MOVE_FRUSTRATION)
+ happiness = 0;
+ }
+
+ SetMonData(&gEnemyParty[monPartyId], MON_DATA_FRIENDSHIP, &happiness);
+ SetMonData(&gEnemyParty[monPartyId], MON_DATA_HELD_ITEM,
+ &gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][tournamentMonId]].itemTableId]);
+}
+
+static void CreateDomeTrainerMons(u16 tournamentTrainerId)
+{
+ u8 monsCount = 0;
+ u32 otId = 0;
+ s32 i, bits;
+
+ ZeroEnemyPartyMons();
+ bits = GetTrainerMonCountInBits(tournamentTrainerId);
+ otId = Random32();
+ if (Random() % 10 > 5)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ if (bits & 1)
+ {
+ CreateDomeMon(monsCount, tournamentTrainerId, i, otId);
+ monsCount++;
+ }
+ bits >>= 1;
+ }
+ }
+ else
+ {
+ for (i = 2; i >= 0; i--)
+ {
+ if (bits & 4)
+ {
+ CreateDomeMon(monsCount, tournamentTrainerId, i, otId);
+ monsCount++;
+ }
+ bits <<= 1;
+ }
+ }
+}
+
+s32 GetTrainerMonCountInBits(u16 tournamentTrainerId)
+{
+ s32 bits;
+ if (Random() & 1)
+ {
+ bits = sub_818FCBC(tournamentTrainerId, FALSE);
+ if (bits == 0)
+ bits = sub_818FDB8(tournamentTrainerId, TRUE);
+ }
+ else
+ {
+ bits = sub_818FDB8(tournamentTrainerId, FALSE);
+ if (bits == 0)
+ bits = sub_818FCBC(tournamentTrainerId, TRUE);
+ }
+
+ return bits;
+}
+
+static s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1)
+{
+ s32 i, moveId, playerMonId;
+ s32 array[3];
+
+ for (i = 0; i < 3; i++)
+ {
+ array[i] = 0;
+ for (moveId = 0; moveId < 4; moveId++)
+ {
+ for (playerMonId = 0; playerMonId < 3; playerMonId++)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
+ {
+ array[i] += GetTypeEffectivenessPoints(sub_81A5060(i, moveId),
+ GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0);
+ }
+ else
+ {
+ array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][i]].moves[moveId],
+ GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0);
+ }
+ }
+ }
+ }
+ return sub_818FEB4(array, arg1);
+}
+
+static s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1)
+{
+ s32 i, moveId, playerMonId;
+ s32 array[3];
+
+ for (i = 0; i < 3; i++)
+ {
+ array[i] = 0;
+ for (moveId = 0; moveId < 4; moveId++)
+ {
+ for (playerMonId = 0; playerMonId < 3; playerMonId++)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
+ {
+ array[i] += GetTypeEffectivenessPoints(sub_81A5060(i, moveId),
+ GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1);
+ }
+ else
+ {
+ array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentTrainerId][i]].moves[moveId],
+ GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1);
+ }
+ }
+ }
+ }
+ return sub_818FEB4(array, arg1);
+}
+
+static s32 sub_818FEB4(s32 *arr, bool8 arg1)
+{
+ s32 i, j;
+ s32 bits = 0;
+ s32 array[3];
+
+ for (i = 0; i < 3; i++)
+ array[i] = i;
+
+ if (arr[0] == arr[1] && arr[0] == arr[2])
+ {
+ if (arg1)
+ {
+ i = 0;
+ while (i != 2)
+ {
+ u32 rand = Random() & 3;
+ if (rand != 3 && !(bits & gBitTable[rand]))
+ {
+ bits |= gBitTable[rand];
+ i++;
+ }
+ }
+ }
+ }
+ else
+ {
+ for (i = 0; i < 2; i++)
+ {
+ for (j = i + 1; j < 3; j++)
+ {
+ s32 temp;
+
+ if (arr[i] < arr[j])
+ {
+ temp = arr[i];
+ arr[i] = arr[j];
+ arr[j] = temp;
+
+ temp = array[i];
+ array[i] = array[j];
+ array[j] = temp;
+ }
+
+ if (arr[i] == arr[j] && (Random() & 1))
+ {
+ temp = arr[i];
+ arr[i] = arr[j];
+ arr[j] = temp;
+
+ temp = array[i];
+ array[i] = array[j];
+ array[j] = temp;
+ }
+ }
+ }
+
+ for (i = 0; i < 2; i++)
+ {
+ bits |= gBitTable[array[i]];
+ }
+ }
+
+ return bits;
+}
+
+#define TYPE_x0 0
+#define TYPE_x0_25 5
+#define TYPE_x0_50 10
+#define TYPE_x1 20
+#define TYPE_x2 40
+#define TYPE_x4 80
+
+// Functionally equivalent, while loop is impossible to match.
+#ifdef NONMATCHING
+static s32 GetTypeEffectivenessPoints(s32 move, s32 targetSpecies, s32 arg2)
+{
+ s32 defType1, defType2, defAbility, moveType;
+ s32 i = 0;
+ s32 typePower = TYPE_x1;
+
+ if (move == MOVE_NONE || move == 0xFFFF || gBattleMoves[move].power == 0)
+ return 0;
+
+ defType1 = gBaseStats[targetSpecies].type1;
+ defType2 = gBaseStats[targetSpecies].type2;
+ defAbility = gBaseStats[targetSpecies].ability1;
+ moveType = gBattleMoves[move].type;
+
+ if (defAbility == ABILITY_LEVITATE && moveType == TYPE_GROUND)
+ {
+ if (arg2 == 1)
+ typePower = 8;
+ }
+ else
+ {
+ while (gTypeEffectiveness[i + 0] != TYPE_ENDTABLE)
+ {
+ if (gTypeEffectiveness[i + 0] == TYPE_FORESIGHT)
+ {
+ i += 3;
+ }
+ else
+ {
+ u8 val = gTypeEffectiveness[i + 0];
+ if (val == moveType)
+ {
+ // BUG: * 2 is not necessary and makes the condition always false if the ability is wonder guard.
+ if (gTypeEffectiveness[i + 1] == defType1 && (defAbility != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2))
+ typePower = (gTypeEffectiveness[i + 2] * typePower) / 10;
+ if (gTypeEffectiveness[i + 1] == defType2 && defType1 != defType2 && (defAbility != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2))
+ typePower = (gTypeEffectiveness[i + 2] * typePower) / 10;
+ }
+ i += 3;
+ }
+ }
+ }
+
+ switch (arg2)
+ {
+ case 0:
+ switch (typePower)
+ {
+ case 10:
+ case 5:
+ case 0:
+ default:
+ typePower = 0;
+ break;
+ case 20:
+ typePower = 2;
+ break;
+ case 40:
+ typePower = 4;
+ break;
+ case 80:
+ typePower = 8;
+ break;
+ }
+ break;
+ case 1:
+ switch (typePower)
+ {
+ default:
+ case 20:
+ typePower = 0;
+ break;
+ case 5:
+ typePower = 4;
+ break;
+ case 0:
+ typePower = 8;
+ break;
+ case 10:
+ typePower = 2;
+ break;
+ case 40:
+ typePower = -2;
+ break;
+ case 80:
+ typePower = -4;
+ break;
+ }
+ break;
+ case 2:
+ switch (typePower)
+ {
+ case TYPE_x0:
+ typePower = -16;
+ break;
+ case TYPE_x0_25:
+ typePower = -8;
+ break;
+ case TYPE_x0_50:
+ default:
+ typePower = 0;
+ break;
+ case TYPE_x1:
+ typePower = 4;
+ break;
+ case TYPE_x2:
+ typePower = 12;
+ break;
+ case TYPE_x4:
+ typePower = 20;
+ break;
+ }
+ break;
+ }
+
+ return typePower;
+}
+#else
+NAKED
+static s32 GetTypeEffectivenessPoints(s32 move, s32 species, s32 arg2)
+{
+ asm_unified("\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x8\n\
+ adds r3, r0, 0\n\
+ adds r4, r1, 0\n\
+ str r2, [sp]\n\
+ movs r6, 0\n\
+ movs r2, 0x14\n\
+ cmp r3, 0\n\
+ beq _0818FFF0\n\
+ ldr r0, =0x0000ffff\n\
+ cmp r3, r0\n\
+ beq _0818FFF0\n\
+ ldr r0, =gBattleMoves\n\
+ lsls r1, r3, 1\n\
+ adds r1, r3\n\
+ lsls r1, 2\n\
+ adds r3, r1, r0\n\
+ ldrb r0, [r3, 0x1]\n\
+ cmp r0, 0\n\
+ bne _0818FFFC\n\
+_0818FFF0:\n\
+ movs r0, 0\n\
+ b _08190156\n\
+ .pool\n\
+_0818FFFC:\n\
+ ldr r1, =gBaseStats\n\
+ lsls r0, r4, 3\n\
+ subs r0, r4\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldrb r1, [r0, 0x6]\n\
+ mov r10, r1\n\
+ ldrb r1, [r0, 0x7]\n\
+ mov r9, r1\n\
+ ldrb r0, [r0, 0x16]\n\
+ mov r8, r0\n\
+ ldrb r3, [r3, 0x2]\n\
+ str r3, [sp, 0x4]\n\
+ cmp r0, 0x1A\n\
+ bne _0819002C\n\
+ cmp r3, 0x4\n\
+ bne _0819002C\n\
+ ldr r0, [sp]\n\
+ cmp r0, 0x1\n\
+ bne _081900AA\n\
+ movs r2, 0x8\n\
+ b _081900A4\n\
+ .pool\n\
+_0819002C:\n\
+ ldr r0, =gTypeEffectiveness\n\
+ adds r1, r6, r0\n\
+ ldrb r0, [r1]\n\
+ ldr r7, =gTypeEffectiveness\n\
+ cmp r0, 0xFF\n\
+ beq _081900A4\n\
+ adds r4, r1, 0\n\
+_0819003A:\n\
+ ldrb r0, [r4]\n\
+ cmp r0, 0xFE\n\
+ beq _08190096\n\
+ ldrb r0, [r4]\n\
+ ldr r1, [sp, 0x4]\n\
+ cmp r0, r1\n\
+ bne _08190096\n\
+ ldrb r0, [r4, 0x1]\n\
+ adds r5, r6, 0x1\n\
+ cmp r0, r10\n\
+ bne _0819006C\n\
+ adds r1, r6, 0x2\n\
+ mov r0, r8\n\
+ cmp r0, 0x19\n\
+ bne _0819005E\n\
+ ldrb r0, [r4, 0x2]\n\
+ cmp r0, 0x28\n\
+ bne _0819006C\n\
+_0819005E:\n\
+ adds r0, r1, r7\n\
+ ldrb r0, [r0]\n\
+ muls r0, r2\n\
+ movs r1, 0xA\n\
+ bl __divsi3\n\
+ adds r2, r0, 0\n\
+_0819006C:\n\
+ adds r0, r5, r7\n\
+ ldrb r0, [r0]\n\
+ cmp r0, r9\n\
+ bne _08190096\n\
+ cmp r10, r9\n\
+ beq _08190096\n\
+ adds r1, r6, 0x2\n\
+ mov r0, r8\n\
+ cmp r0, 0x19\n\
+ bne _08190088\n\
+ adds r0, r1, r7\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x28\n\
+ bne _08190096\n\
+_08190088:\n\
+ adds r0, r1, r7\n\
+ ldrb r0, [r0]\n\
+ muls r0, r2\n\
+ movs r1, 0xA\n\
+ bl __divsi3\n\
+ adds r2, r0, 0\n\
+_08190096:\n\
+ adds r4, 0x3\n\
+ adds r6, 0x3\n\
+ ldr r1, =gTypeEffectiveness\n\
+ adds r0, r6, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0xFF\n\
+ bne _0819003A\n\
+_081900A4:\n\
+ ldr r0, [sp]\n\
+ cmp r0, 0x1\n\
+ beq _081900E0\n\
+_081900AA:\n\
+ ldr r1, [sp]\n\
+ cmp r1, 0x1\n\
+ bgt _081900BC\n\
+ cmp r1, 0\n\
+ beq _081900C4\n\
+ b _08190154\n\
+ .pool\n\
+_081900BC:\n\
+ ldr r0, [sp]\n\
+ cmp r0, 0x2\n\
+ beq _08190114\n\
+ b _08190154\n\
+_081900C4:\n\
+ cmp r2, 0xA\n\
+ beq _08190146\n\
+ cmp r2, 0xA\n\
+ ble _08190146\n\
+ cmp r2, 0x28\n\
+ beq _0819014A\n\
+ cmp r2, 0x28\n\
+ bgt _081900DA\n\
+ cmp r2, 0x14\n\
+ beq _08190104\n\
+ b _08190146\n\
+_081900DA:\n\
+ cmp r2, 0x50\n\
+ bne _08190146\n\
+ b _08190100\n\
+_081900E0:\n\
+ cmp r2, 0xA\n\
+ beq _08190104\n\
+ cmp r2, 0xA\n\
+ bgt _081900F2\n\
+ cmp r2, 0\n\
+ beq _08190100\n\
+ cmp r2, 0x5\n\
+ beq _0819014A\n\
+ b _08190146\n\
+_081900F2:\n\
+ cmp r2, 0x28\n\
+ beq _08190108\n\
+ cmp r2, 0x28\n\
+ ble _08190146\n\
+ cmp r2, 0x50\n\
+ beq _0819010E\n\
+ b _08190146\n\
+_08190100:\n\
+ movs r2, 0x8\n\
+ b _08190154\n\
+_08190104:\n\
+ movs r2, 0x2\n\
+ b _08190154\n\
+_08190108:\n\
+ movs r2, 0x2\n\
+ negs r2, r2\n\
+ b _08190154\n\
+_0819010E:\n\
+ movs r2, 0x4\n\
+ negs r2, r2\n\
+ b _08190154\n\
+_08190114:\n\
+ cmp r2, 0xA\n\
+ beq _08190146\n\
+ cmp r2, 0xA\n\
+ bgt _08190126\n\
+ cmp r2, 0\n\
+ beq _0819013A\n\
+ cmp r2, 0x5\n\
+ beq _08190140\n\
+ b _08190146\n\
+_08190126:\n\
+ cmp r2, 0x28\n\
+ beq _0819014E\n\
+ cmp r2, 0x28\n\
+ bgt _08190134\n\
+ cmp r2, 0x14\n\
+ beq _0819014A\n\
+ b _08190146\n\
+_08190134:\n\
+ cmp r2, 0x50\n\
+ beq _08190152\n\
+ b _08190146\n\
+_0819013A:\n\
+ movs r2, 0x10\n\
+ negs r2, r2\n\
+ b _08190154\n\
+_08190140:\n\
+ movs r2, 0x8\n\
+ negs r2, r2\n\
+ b _08190154\n\
+_08190146:\n\
+ movs r2, 0\n\
+ b _08190154\n\
+_0819014A:\n\
+ movs r2, 0x4\n\
+ b _08190154\n\
+_0819014E:\n\
+ movs r2, 0xC\n\
+ b _08190154\n\
+_08190152:\n\
+ movs r2, 0x14\n\
+_08190154:\n\
+ adds r0, r2, 0\n\
+_08190156:\n\
+ add sp, 0x8\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ ");
+}
+#endif // NONMATCHING
+
+static u8 GetDomeTrainerMonIvs(u16 trainerId)
+{
+ u8 fixedIv;
+ if (trainerId <= 99)
+ fixedIv = 3;
+ else if (trainerId <= 119)
+ fixedIv = 6;
+ else if (trainerId <= 139)
+ fixedIv = 9;
+ else if (trainerId <= 159)
+ fixedIv = 12;
+ else if (trainerId <= 179)
+ fixedIv = 15;
+ else if (trainerId <= 199)
+ fixedIv = 18;
+ else if (trainerId <= 219)
+ fixedIv = 21;
+ else
+ fixedIv = 31;
+
+ return fixedIv;
+}
+
+static s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId)
+{
+ s32 i, j, val;
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId)
+ break;
+ }
+
+ if (roundId != DOME_ROUND1)
+ {
+ if (roundId == DOME_FINAL)
+ val = sIdToOpponentId[i][roundId] + 8;
+ else
+ val = sIdToOpponentId[i][roundId] + 4;
+
+ for (j = sIdToOpponentId[i][roundId]; j < val; j++)
+ {
+ if (gUnknown_0860D14C[j] != i && !gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D14C[j]].isEliminated)
+ break;
+ }
+
+ if (j != val)
+ return gUnknown_0860D14C[j];
+ else
+ return 0xFF;
+ }
+ else
+ {
+ if (!gSaveBlock2Ptr->frontier.domeTrainers[sIdToOpponentId[i][roundId]].isEliminated)
+ return sIdToOpponentId[i][roundId];
+ else
+ return 0xFF;
+ }
+}
+
+static void sub_8190298(void)
+{
+ gTrainerBattleOpponent_A = TrainerIdOfPlayerOpponent();
+}
+
+static u16 TrainerIdOfPlayerOpponent(void)
+{
+ return gSaveBlock2Ptr->frontier.domeTrainers[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.field_CB2, TRAINER_PLAYER)].trainerId;
+}
+
+static void sub_81902E4(void)
+{
+ sub_8162614(gTrainerBattleOpponent_A, 0);
+}
+
+static void sub_81902F8(void)
+{
+ gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005;
+ VarSet(VAR_TEMP_0, 0);
+ gSaveBlock2Ptr->frontier.field_CA9_a = 1;
+ sub_81A4C30();
+}
+
+static void sub_819033C(void)
+{
+ u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+
+ if (gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] < 999)
+ gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode]++;
+ if (gSaveBlock2Ptr->frontier.field_D1C[battleMode][lvlMode] < 999)
+ gSaveBlock2Ptr->frontier.field_D1C[battleMode][lvlMode]++;
+
+ if (gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] > gSaveBlock2Ptr->frontier.field_D14[battleMode][lvlMode])
+ gSaveBlock2Ptr->frontier.field_D14[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode];
+}
+
+static void ShowDomeOpponentInfo(void)
+{
+ u8 taskId = CreateTask(sub_8190400, 0);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = TrainerIdToTournamentId(TrainerIdOfPlayerOpponent());
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+
+ SetMainCallback2(CB2_BattleDome);
+}
+
+static void sub_8190400(u8 taskId)
+{
+ s32 i;
+ s32 r5 = gTasks[taskId].data[1];
+ s32 r9 = gTasks[taskId].data[2];
+ s32 r7 = gTasks[taskId].data[3];
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ SetHBlankCallback(NULL);
+ SetVBlankCallback(NULL);
+ EnableInterrupts(INTR_FLAG_VBLANK);
+ CpuFill32(0, (void *)VRAM, VRAM_SIZE);
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, gUnknown_0860CE84, ARRAY_COUNT(gUnknown_0860CE84));
+ InitWindows(gUnknown_0860CEB4);
+ DeactivateAllTextPrinters();
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
+ if (r9 == 2)
+ gBattle_BG2_X = 0, gBattle_BG2_Y = 0;
+ else
+ gBattle_BG2_X = 0, gBattle_BG2_Y = 160;
+
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ SetGpuReg(REG_OFFSET_MOSAIC, 0);
+ SetGpuReg(REG_OFFSET_WIN0H, 0);
+ SetGpuReg(REG_OFFSET_WIN0V, 0);
+ SetGpuReg(REG_OFFSET_WIN1H, 0);
+ SetGpuReg(REG_OFFSET_WIN1V, 0);
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
+ ResetPaletteFade();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 4;
+ gTasks[taskId].data[0]++;
+ break;
+ case 2:
+ DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D83D50, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D84970, 0x2000, 0, 1);
+ DecompressAndLoadBgGfxUsingHeap(3, gUnknown_08D84F00, 0x800, 0, 1);
+ LoadCompressedObjectPic(gUnknown_0860CF50);
+ LoadCompressedPalette(gUnknown_08D85358, 0, 0x200);
+ LoadCompressedPalette(gUnknown_08D85444, 0x100, 0x200);
+ LoadCompressedPalette(gUnknown_08D85600, 0xF0, 0x20);
+ if (r9 == 2)
+ LoadCompressedPalette(gUnknown_08D854C8, 0x50, 0x20);
+ CpuFill32(0, gPlttBufferFaded, 0x400);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ ShowBg(3);
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ SetVBlankCallback(VblankCb0_BattleDome);
+ sBattleDomeStruct = AllocZeroed(sizeof(*sBattleDomeStruct));
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ sBattleDomeStruct->arr[i] |= 0xFF;
+ LoadMonIconPalettes();
+ i = CreateTask(sub_8190CD4, 0);
+ gTasks[i].data[0] = 0;
+ gTasks[i].data[2] = 0;
+ gTasks[i].data[3] = r9;
+ gTasks[i].data[4] = r7;
+ if (r9 == 2)
+ {
+ DisplayMatchInfoOnCard(0, r5);
+ sBattleDomeStruct->unk_10 = 1;
+ }
+ else
+ {
+ DisplayTrainerInfoOnCard(0, r5);
+ }
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP);
+ if (r9 != 0)
+ {
+ r7 = CreateSprite(&gUnknown_0860D068, 120, 4, 0);
+ StartSpriteAnim(&gSprites[r7], 0);
+ gSprites[r7].data[0] = i;
+
+ r7 = CreateSprite(&gUnknown_0860D068, 120, 156, 0);
+ StartSpriteAnim(&gSprites[r7], 1);
+ gSprites[r7].data[0] = i;
+
+ r7 = CreateSprite(&gUnknown_0860D050, 6, 80, 0);
+ StartSpriteAnim(&gSprites[r7], 0);
+ gSprites[r7].data[0] = i;
+ gSprites[r7].data[1] = 0;
+ if (r9 == 1)
+ gSprites[r7].invisible = 1;
+
+ r7 = CreateSprite(&gUnknown_0860D050, 234, 80, 0);
+ StartSpriteAnim(&gSprites[r7], 1);
+ gSprites[r7].data[0] = i;
+ gSprites[r7].data[1] = 1;
+ }
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+// Note: Card scrolling up means the current card goes down and another one appears from top.
+// The same is true for scrolling left.
+// That means that the sprite needs to move with the moving card in the opposite scrolling direction.
+
+static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite)
+{
+ sprite->pos1.y += 4;
+ if (sprite->data[0] != 0)
+ {
+ if (sprite->pos1.y >= -32)
+ sprite->invisible = 0;
+ if (++sprite->data[1] == 40)
+ sprite->callback = SpriteCallbackDummy;
+ }
+ else
+ {
+ if (sprite->pos1.y >= 192)
+ {
+ sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
+ FreeAndDestroyTrainerPicSprite(sprite->data[3]);
+ }
+ }
+}
+
+static void SpriteCb_TrainerIconCardScrollDown(struct Sprite *sprite)
+{
+ sprite->pos1.y -= 4;
+ if (sprite->data[0] != 0)
+ {
+ if (sprite->pos1.y <= 192)
+ sprite->invisible = 0;
+ if (++sprite->data[1] == 40)
+ sprite->callback = SpriteCallbackDummy;
+ }
+ else
+ {
+ if (sprite->pos1.y <= -32)
+ {
+ sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
+ FreeAndDestroyTrainerPicSprite(sprite->data[3]);
+ }
+ }
+}
+
+static void SpriteCb_TrainerIconCardScrollLeft(struct Sprite *sprite)
+{
+ sprite->pos1.x += 4;
+ if (sprite->data[0] != 0)
+ {
+ if (sprite->pos1.x >= -32)
+ sprite->invisible = 0;
+ if (++sprite->data[1] == 64)
+ sprite->callback = SpriteCallbackDummy;
+ }
+ else
+ {
+ if (sprite->pos1.x >= 272)
+ {
+ sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
+ FreeAndDestroyTrainerPicSprite(sprite->data[3]);
+ }
+ }
+}
+
+static void SpriteCb_TrainerIconCardScrollRight(struct Sprite *sprite)
+{
+ sprite->pos1.x -= 4;
+ if (sprite->data[0] != 0)
+ {
+ if (sprite->pos1.x <= 272)
+ sprite->invisible = 0;
+ if (++sprite->data[1] == 64)
+ sprite->callback = SpriteCallbackDummy;
+ }
+ else
+ {
+ if (sprite->pos1.x <= -32)
+ {
+ sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
+ FreeAndDestroyTrainerPicSprite(sprite->data[3]);
+ }
+ }
+}
+
+#define sMonIconStill data[3]
+
+static void SpriteCb_MonIcon(struct Sprite *sprite)
+{
+ if (!sprite->sMonIconStill)
+ UpdateMonIconFrame(sprite);
+}
+
+static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite)
+{
+ if (!sprite->sMonIconStill)
+ UpdateMonIconFrame(sprite);
+ sprite->pos1.y += 4;
+ if (sprite->data[0] != 0)
+ {
+ if (sprite->pos1.y >= -16)
+ sprite->invisible = 0;
+ if (++sprite->data[1] == 40)
+ sprite->callback = SpriteCb_MonIcon;
+ }
+ else
+ {
+ if (sprite->pos1.y >= 176)
+ {
+ sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
+ sub_80D2EF8(sprite);
+ }
+ }
+}
+
+static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite)
+{
+ if (!sprite->sMonIconStill)
+ UpdateMonIconFrame(sprite);
+ sprite->pos1.y -= 4;
+ if (sprite->data[0] != 0)
+ {
+ if (sprite->pos1.y <= 176)
+ sprite->invisible = 0;
+ if (++sprite->data[1] == 40)
+ sprite->callback = SpriteCb_MonIcon;
+ }
+ else
+ {
+ if (sprite->pos1.y <= -16)
+ {
+ sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
+ sub_80D2EF8(sprite);
+ }
+ }
+}
+
+static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite)
+{
+ if (!sprite->sMonIconStill)
+ UpdateMonIconFrame(sprite);
+ sprite->pos1.x += 4;
+ if (sprite->data[0] != 0)
+ {
+ if (sprite->pos1.x >= -16)
+ sprite->invisible = 0;
+ if (++sprite->data[1] == 64)
+ sprite->callback = SpriteCb_MonIcon;
+ }
+ else
+ {
+ if (sprite->pos1.x >= 256)
+ {
+ sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
+ sub_80D2EF8(sprite);
+ }
+ }
+}
+
+static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite)
+{
+ if (!sprite->sMonIconStill)
+ UpdateMonIconFrame(sprite);
+ sprite->pos1.x -= 4;
+ if (sprite->data[0] != 0)
+ {
+ if (sprite->pos1.x <= 256)
+ sprite->invisible = 0;
+ if (++sprite->data[1] == 64)
+ sprite->callback = SpriteCb_MonIcon;
+ }
+ else
+ {
+ if (sprite->pos1.x <= -16)
+ {
+ sBattleDomeStruct->arr[sprite->data[2]] = 0xFF;
+ sub_80D2EF8(sprite);
+ }
+ }
+}
+
+static void sub_8190B40(struct Sprite *sprite)
+{
+ s32 taskId1 = sprite->data[0];
+ s32 arrId = gTasks[gTasks[taskId1].data[4]].data[1];
+ s32 tournmanetTrainerId = gUnknown_0860D080[arrId];
+ s32 r12 = gSaveBlock2Ptr->frontier.field_CB2;
+
+ if (gTasks[taskId1].data[3] == 1)
+ {
+ if (sprite->data[1])
+ {
+ if ((gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated
+ && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].eliminatedAt))
+ {
+ sprite->invisible = 0;
+ }
+ else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated
+ && sBattleDomeStruct->unk_10 - 1 < r12)
+ {
+ sprite->invisible = 0;
+ }
+ else
+ {
+ if (gTasks[taskId1].data[0] == 2)
+ sprite->invisible = 1;
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->unk_10 != 0)
+ {
+ sprite->invisible = 0;
+ }
+ else
+ {
+ if (gTasks[taskId1].data[0] == 2)
+ sprite->invisible = 1;
+ }
+ }
+ }
+ else
+ {
+ if (sprite->data[1])
+ {
+ if (sBattleDomeStruct->unk_10 > 1)
+ {
+ if (gTasks[taskId1].data[0] == 2)
+ sprite->invisible = 1;
+ }
+ else
+ {
+ sprite->invisible = 0;
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->unk_10 != 0)
+ {
+ sprite->invisible = 0;
+ }
+ else
+ {
+ if (gTasks[taskId1].data[0] == 2)
+ sprite->invisible = 1;
+ }
+ }
+ }
+}
+
+static void sub_8190C6C(struct Sprite *sprite)
+{
+ s32 taskId1 = sprite->data[0];
+
+ if (gTasks[taskId1].data[3] == 1)
+ {
+ if (sBattleDomeStruct->unk_10 != 0)
+ {
+ if (gTasks[taskId1].data[0] == 2)
+ sprite->invisible = 1;
+ }
+ else
+ {
+ sprite->invisible = 0;
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->unk_10 != 1)
+ {
+ if (gTasks[taskId1].data[0] == 2)
+ sprite->invisible = 1;
+ }
+ else
+ {
+ sprite->invisible = 0;
+ }
+ }
+}
+
+static void sub_8190CD4(u8 taskId)
+{
+ s32 i;
+ s32 windowId = 0;
+ s32 r9 = gTasks[taskId].data[3];
+ s32 taskId2 = gTasks[taskId].data[4];
+ s32 trainerTournamentId = 0;
+ s32 matchNo = 0;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
+ gTasks[taskId].data[0] = 1;
+ }
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ gTasks[taskId].data[0] = 2;
+ break;
+ case 2:
+ i = sub_819221C(taskId);
+ switch (i)
+ {
+ case 9:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
+ gTasks[taskId].data[0] = 8;
+ break;
+ case 1 ... 8:
+ gTasks[taskId].data[5] = i;
+ if (gTasks[taskId].data[2] != 0)
+ windowId = 9;
+ else
+ windowId = 0;
+
+ for (i = windowId; i < windowId + 9; i++)
+ {
+ CopyWindowToVram(i, 2);
+ FillWindowPixelBuffer(i, 0);
+ }
+ gTasks[taskId].data[0] = 3;
+ break;
+ case 0:
+ break;
+ }
+ break;
+ case 3:
+ i = gTasks[taskId].data[5];
+ switch (i)
+ {
+ case 1:
+ case 5:
+ if (gTasks[taskId].data[2])
+ {
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 160;
+ }
+ else
+ {
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 160;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ }
+
+ if (i == 1)
+ {
+ if (sBattleDomeStruct->unk_10 == 0)
+ {
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 320;
+ trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]];
+ DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId);
+ }
+ else
+ {
+ gBattle_BG2_X = 256;
+ gBattle_BG2_Y = 0;
+ trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]];
+ DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId);
+ sBattleDomeStruct->unk_10 = 0;
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->unk_10 == 0)
+ {
+ matchNo = gTasks[taskId2].data[1] - 16;
+ sub_8192F08(matchNo, sBattleDomeStruct->unk_11);
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 320;
+ trainerTournamentId = sBattleDomeStruct->unk_11[0];
+ DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId);
+ }
+ else if (sBattleDomeStruct->unk_10 == 2)
+ {
+ matchNo = gTasks[taskId2].data[1] - 16;
+ sub_8192F08(matchNo, sBattleDomeStruct->unk_11);
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 320;
+ trainerTournamentId = sBattleDomeStruct->unk_11[1];
+ DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId);
+ }
+ else
+ {
+ gBattle_BG2_X = 256;
+ gBattle_BG2_Y = 160;
+ matchNo = gTasks[taskId2].data[1] - 16;
+ DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 0x10, matchNo);
+ }
+ }
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ {
+ if (i < 2)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollUp;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollUp;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ }
+ }
+ }
+ for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (i < 10)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollUp;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollUp;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ }
+ }
+ }
+
+ gTasks[taskId].data[0] = 4;
+ gTasks[taskId].data[5] = 0;
+ break;
+ case 2:
+ case 6:
+ if (gTasks[taskId].data[2])
+ {
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = -160;
+ }
+ else
+ {
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = -160;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ }
+
+ if (i == 2)
+ {
+ if (sBattleDomeStruct->unk_10 == 0)
+ {
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 160;
+ trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]];
+ DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId);
+ }
+ else
+ {
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]];
+ DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId);
+ sBattleDomeStruct->unk_10 = 0;
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->unk_10 == 0)
+ {
+ matchNo = gTasks[taskId2].data[1] - 16;
+ sub_8192F08(matchNo, sBattleDomeStruct->unk_11);
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 160;
+ trainerTournamentId = sBattleDomeStruct->unk_11[0];
+ DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId);
+ }
+ else if (sBattleDomeStruct->unk_10 == 2)
+ {
+ matchNo = gTasks[taskId2].data[1] - 16;
+ sub_8192F08(matchNo, sBattleDomeStruct->unk_11);
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 160;
+ trainerTournamentId = sBattleDomeStruct->unk_11[1];
+ DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId);
+ }
+ else
+ {
+ gBattle_BG2_X = 256;
+ gBattle_BG2_Y = 0;
+ matchNo = gTasks[taskId2].data[1] - 16;
+ DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 4, matchNo);
+ }
+ }
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ {
+ if (i < 2)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollDown;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollDown;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ }
+ }
+ }
+ for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (i < 10)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollDown;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollDown;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ }
+ }
+ }
+
+ gTasks[taskId].data[0] = 5;
+ gTasks[taskId].data[5] = 0;
+ break;
+ case 3:
+ if (gTasks[taskId].data[2])
+ {
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 256;
+ gBattle_BG1_Y = 0;
+ }
+ else
+ {
+ gBattle_BG0_X = 256;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ }
+
+ if (sBattleDomeStruct->unk_10 == 0)
+ {
+ gBattle_BG2_X = 256;
+ gBattle_BG2_Y = 160;
+ trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]];
+ DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId);
+ }
+ else
+ {
+ gBattle_BG2_X = 256;
+ gBattle_BG2_Y = 0;
+ matchNo = gUnknown_0860D15C[gTasks[taskId2].data[1]][sBattleDomeStruct->unk_10 - 1];
+ DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo);
+ }
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ {
+ if (i < 2)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ }
+ }
+ }
+ for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (i < 10)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ }
+ }
+ }
+
+ gTasks[taskId].data[0] = 6;
+ gTasks[taskId].data[5] = 0;
+ break;
+ case 7:
+ if (gTasks[taskId].data[2])
+ {
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 256;
+ gBattle_BG1_Y = 0;
+ }
+ else
+ {
+ gBattle_BG0_X = 256;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ }
+
+ if (sBattleDomeStruct->unk_10 == 0)
+ {
+ gBattle_BG2_X = 256;
+ gBattle_BG2_Y = 160;
+ trainerTournamentId = sBattleDomeStruct->unk_11[0];
+ DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId);
+ }
+ else
+ {
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 160;
+ matchNo = gTasks[taskId2].data[1] - 16;
+ DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo);
+ }
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ {
+ if (i < 2)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ }
+ }
+ }
+ for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (i < 10)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ }
+ }
+ }
+
+ gTasks[taskId].data[0] = 6;
+ gTasks[taskId].data[5] = 0;
+ break;
+ case 4:
+ if (gTasks[taskId].data[2])
+ {
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = -256;
+ gBattle_BG1_Y = 0;
+ }
+ else
+ {
+ gBattle_BG0_X = -256;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ }
+
+ if (sBattleDomeStruct->unk_10 == 1)
+ {
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 160;
+ }
+ else
+ {
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ }
+ matchNo = gUnknown_0860D15C[gTasks[taskId2].data[1]][sBattleDomeStruct->unk_10 - 1];
+ DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo);
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ {
+ if (i < 2)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ }
+ }
+ }
+ for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (i < 10)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ }
+ }
+ }
+
+ gTasks[taskId].data[0] = 7;
+ gTasks[taskId].data[5] = 0;
+ break;
+ case 8:
+ if (gTasks[taskId].data[2])
+ {
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = -256;
+ gBattle_BG1_Y = 0;
+ }
+ else
+ {
+ gBattle_BG0_X = -256;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ }
+
+ if (sBattleDomeStruct->unk_10 == 2)
+ {
+ gBattle_BG2_X = 256;
+ gBattle_BG2_Y = 160;
+ trainerTournamentId = sBattleDomeStruct->unk_11[1];
+ DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 2, trainerTournamentId);
+ }
+ else
+ {
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 160;
+ matchNo = gTasks[taskId2].data[1] - 16;
+ DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo);
+ }
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ {
+ if (i < 2)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1;
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ }
+ }
+ }
+ for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (i < 10)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i];
+ }
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ {
+ gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight;
+ gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2];
+ gSprites[sBattleDomeStruct->arr[i]].data[1] = 0;
+ gSprites[sBattleDomeStruct->arr[i]].data[2] = i;
+ }
+ }
+ }
+
+ gTasks[taskId].data[0] = 7;
+ gTasks[taskId].data[5] = 0;
+ break;
+ }
+ break;
+ case 4:
+ if (++gTasks[taskId].data[5] != 41)
+ {
+ gBattle_BG0_Y -= 4;
+ gBattle_BG1_Y -= 4;
+ gBattle_BG2_Y -= 4;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 2;
+ }
+ break;
+ case 5:
+ if (++gTasks[taskId].data[5] != 41)
+ {
+ gBattle_BG0_Y += 4;
+ gBattle_BG1_Y += 4;
+ gBattle_BG2_Y += 4;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 2;
+ }
+ break;
+ case 6:
+ if (++gTasks[taskId].data[5] != 65)
+ {
+ gBattle_BG0_X -= 4;
+ gBattle_BG1_X -= 4;
+ gBattle_BG2_X -= 4;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 2;
+ }
+ break;
+ case 7:
+ if (++gTasks[taskId].data[5] != 65)
+ {
+ gBattle_BG0_X += 4;
+ gBattle_BG1_X += 4;
+ gBattle_BG2_X += 4;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 2;
+ }
+ break;
+ case 8:
+ if (!gPaletteFade.active)
+ {
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++)
+ {
+ if (i < 2)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ FreeAndDestroyTrainerPicSprite(sBattleDomeStruct->arr[i]);
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ sub_80D2EF8(&gSprites[sBattleDomeStruct->arr[i]]);
+ }
+ }
+ for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (i < 10)
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ FreeAndDestroyTrainerPicSprite(sBattleDomeStruct->arr[i]);
+ }
+ else
+ {
+ if (sBattleDomeStruct->arr[i] != 0xFF)
+ sub_80D2EF8(&gSprites[sBattleDomeStruct->arr[i]]);
+ }
+ }
+
+ FreeMonIconPalettes();
+ FREE_AND_SET_NULL(sBattleDomeStruct);
+ FreeAllWindowBuffers();
+ if (r9 == 0)
+ {
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ }
+ else
+ {
+ i = CreateTask(sub_8194220, 0);
+ gTasks[i].data[0] = 0;
+ gTasks[i].data[1] = 0;
+ gTasks[i].data[2] = 3;
+ gTasks[i].data[3] = gTasks[taskId].data[4];
+ gTasks[i].data[4] = gTasks[taskId2].data[6];
+ }
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static u8 sub_819221C(u8 taskId)
+{
+ u8 retVal = 0;
+ s32 taskId2 = gTasks[taskId].data[4];
+ s32 r5 = gTasks[taskId2].data[1];
+ u8 r10 = gUnknown_0860D080[r5];
+ u16 roundId = gSaveBlock2Ptr->frontier.field_CB2;
+
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ retVal = 9;
+
+ if (gTasks[taskId].data[3] == 0)
+ return retVal;
+
+ if (gTasks[taskId].data[3] == 1)
+ {
+ if (gMain.newKeys & DPAD_UP && sBattleDomeStruct->unk_10 == 0)
+ {
+ if (r5 == 0)
+ r5 = 15;
+ else
+ r5--;
+ retVal = 1;
+ }
+ else if (gMain.newKeys & DPAD_DOWN && sBattleDomeStruct->unk_10 == 0)
+ {
+ if (r5 == 15)
+ r5 = 0;
+ else
+ r5++;
+ retVal = 2;
+ }
+ else if (gMain.newKeys & DPAD_LEFT && sBattleDomeStruct->unk_10 != 0)
+ {
+ sBattleDomeStruct->unk_10--;
+ retVal = 3;
+ }
+ else if (gMain.newKeys & DPAD_RIGHT)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].eliminatedAt)
+ {
+ sBattleDomeStruct->unk_10++;
+ retVal = 4;
+ }
+ if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < roundId)
+ {
+ sBattleDomeStruct->unk_10++;
+ retVal = 4;
+ }
+ }
+
+ if (retVal == 9)
+ {
+ if (sBattleDomeStruct->unk_10 != 0)
+ gTasks[taskId2].data[1] = gUnknown_0860D1A0[r5 / 2][sBattleDomeStruct->unk_10 - 1];
+ else
+ gTasks[taskId2].data[1] = r5;
+ }
+ }
+ else
+ {
+ if (gMain.newKeys & DPAD_UP && sBattleDomeStruct->unk_10 == 1)
+ {
+ if (r5 == 16)
+ r5 = gUnknown_0860D19C[roundId];
+ else
+ r5--;
+ retVal = 5;
+ }
+ else if (gMain.newKeys & DPAD_DOWN && sBattleDomeStruct->unk_10 == 1)
+ {
+ if (r5 == gUnknown_0860D19C[roundId])
+ r5 = 16;
+ else
+ r5++;
+ retVal = 6;
+ }
+ else if (gMain.newKeys & DPAD_LEFT && sBattleDomeStruct->unk_10 != 0)
+ {
+ retVal = 7;
+ sBattleDomeStruct->unk_10--;
+ }
+ else if (gMain.newKeys & DPAD_RIGHT && (sBattleDomeStruct->unk_10 == 0 || sBattleDomeStruct->unk_10 == 1))
+ {
+ retVal = 8;
+ sBattleDomeStruct->unk_10++;
+ }
+
+ if (retVal == 9)
+ {
+ if (sBattleDomeStruct->unk_10 == 0)
+ gTasks[taskId2].data[1] = gUnknown_0860D1C0[sBattleDomeStruct->unk_11[0]];
+ else if (sBattleDomeStruct->unk_10 == 2)
+ gTasks[taskId2].data[1] = gUnknown_0860D1C0[sBattleDomeStruct->unk_11[1]];
+ else
+ gTasks[taskId2].data[1] = r5;
+ }
+ }
+
+ if (retVal != 0 && retVal != 9)
+ {
+ PlaySE(SE_SELECT);
+ gTasks[taskId2].data[1] = r5;
+ gTasks[taskId].data[2] ^= 1;
+ }
+
+ return retVal;
+}
+
+static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId)
+{
+ struct TextSubPrinter textPrinter;
+ s32 i, j, k;
+ s32 trainerId = 0;
+ u8 nature = 0;
+ s32 arrId = 0;
+ s32 windowId = 0;
+ s32 x = 0, y = 0;
+ u8 palSlot = 0;
+ s16 *allocatedArray = AllocZeroed(sizeof(s16) * 18);
+ trainerId = gSaveBlock2Ptr->frontier.domeTrainers[trainerTournamentId].trainerId;
+
+ if (flags & 1)
+ arrId = 8, windowId = 9, palSlot = 2;
+ if (flags & 2)
+ x = 256;
+ if (flags & 4)
+ y = 160;
+ if (flags & 8)
+ x = -256;
+ if (flags & 0x10)
+ y = -160;
+
+ if (trainerId == TRAINER_PLAYER)
+ sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF);
+ else if (trainerId == TRAINER_FRONTIER_BRAIN)
+ sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF);
+ else
+ sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF);
+
+ if (flags & 0x1E)
+ gSprites[sBattleDomeStruct->arr[arrId]].invisible = 1;
+
+ for (i = 0; i < 3; i++)
+ {
+ if (trainerId == TRAINER_PLAYER)
+ {
+ sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i],
+ SpriteCb_MonIcon,
+ x | sInfoTrainerMonX[i],
+ y + sInfoTrainerMonY[i],
+ 0, 0, TRUE);
+ gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0;
+ }
+ else if (trainerId == TRAINER_FRONTIER_BRAIN)
+ {
+ sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i],
+ SpriteCb_MonIcon,
+ x | sInfoTrainerMonX[i],
+ y + sInfoTrainerMonY[i],
+ 0, 0, TRUE);
+ gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0;
+ }
+ else
+ {
+ sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species,
+ SpriteCb_MonIcon,
+ x | sInfoTrainerMonX[i],
+ y + sInfoTrainerMonY[i],
+ 0, 0, TRUE);
+ gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0;
+ }
+
+ if (flags & 0x1E)
+ gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = 1;
+ }
+ textPrinter.fontId = 2;
+ textPrinter.x = 0;
+ textPrinter.y = 0;
+ textPrinter.currentX = textPrinter.x;
+ textPrinter.currentY = textPrinter.y;
+ textPrinter.letterSpacing = 2;
+ textPrinter.lineSpacing = 0;
+ textPrinter.fontColor_l = 0;
+ textPrinter.fgColor = 14;
+ textPrinter.bgColor = 0;
+ textPrinter.shadowColor = 13;
+
+ i = 0;
+ if (trainerId == TRAINER_PLAYER)
+ j = gFacilityClassToTrainerClass[FACILITY_CLASS_PKMN_TRAINER_BRENDAN];
+ else if (trainerId == TRAINER_FRONTIER_BRAIN)
+ j = GetDomeBrainTrainerClass();
+ else
+ j = GetFrontierOpponentClass(trainerId);
+
+ for (;gTrainerClassNames[j][i] != EOS; i++)
+ gStringVar1[i] = gTrainerClassNames[j][i];
+ gStringVar1[i] = CHAR_SPACE;
+ gStringVar1[i + 1] = EOS;
+
+ if (trainerId == TRAINER_PLAYER)
+ {
+ StringAppend(gStringVar1, gSaveBlock2Ptr->playerName);
+ }
+ else if (trainerId == TRAINER_FRONTIER_BRAIN)
+ {
+ CopyDomeBrainTrainerName(gStringVar2);
+ StringAppend(gStringVar1, gStringVar2);
+ }
+ else
+ {
+ CopyDomeTrainerName(gStringVar2, trainerId);
+ StringAppend(gStringVar1, gStringVar2);
+ }
+
+ textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, gStringVar1, 0xD0, textPrinter.letterSpacing);
+ textPrinter.current_text_offset = gStringVar1;
+ textPrinter.windowId = windowId;
+ PutWindowTilemap(windowId);
+ CopyWindowToVram(windowId, 3);
+ AddTextPrinter(&textPrinter, 0, NULL);
+ textPrinter.letterSpacing = 0;
+
+ for (i = 0; i < 3; i++)
+ {
+ textPrinter.currentY = gUnknown_0860D346[i];
+ if (trainerId == TRAINER_PLAYER)
+ textPrinter.current_text_offset = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]];
+ else if (trainerId == TRAINER_FRONTIER_BRAIN)
+ textPrinter.current_text_offset = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]];
+ else
+ textPrinter.current_text_offset = gSpeciesNames[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].species];
+
+ textPrinter.windowId = 1 + i + windowId;
+ if (i == 1)
+ textPrinter.currentX = 7;
+ else
+ textPrinter.currentX = 0;
+
+ PutWindowTilemap(1 + i + windowId);
+ CopyWindowToVram(1 + i + windowId, 3);
+ AddTextPrinter(&textPrinter, 0, NULL);
+ }
+
+ PutWindowTilemap(windowId + 4);
+ CopyWindowToVram(windowId + 4, 3);
+ if (trainerId == TRAINER_FRONTIER_BRAIN)
+ textPrinter.current_text_offset = gBattleDomePotentialPointers[16];
+ else
+ textPrinter.current_text_offset = gBattleDomePotentialPointers[trainerTournamentId];
+
+ textPrinter.fontId = 1;
+ textPrinter.windowId = windowId + 4;
+ textPrinter.currentX = 0;
+ textPrinter.y = 4;
+ textPrinter.currentY = 4;
+ AddTextPrinter(&textPrinter, 0, NULL);
+
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ for (k = 0; k < DOME_TOURNAMENT_TRAINERS_COUNT; k++)
+ {
+ if (trainerId == TRAINER_FRONTIER_BRAIN)
+ allocatedArray[k] += sMovePointsForDomeTrainers[sub_81A5060(i, j)][k];
+ else if (trainerId == TRAINER_PLAYER)
+ allocatedArray[k] += sMovePointsForDomeTrainers[gSaveBlock2Ptr->frontier.field_EFC[i].moves[j]][k];
+ else
+ allocatedArray[k] += sMovePointsForDomeTrainers[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].moves[j]][k];
+ }
+ }
+ }
+
+ for (i = 0; i < ARRAY_COUNT(gUnknown_0860C988); i++)
+ {
+ s32 r4 = 0;
+
+ for (k = 0, j = 0; j < DOME_TOURNAMENT_TRAINERS_COUNT; j++)
+ {
+ if (gUnknown_0860C988[i][j] != 0)
+ {
+ r4++;
+ if (allocatedArray[j] != 0 && allocatedArray[j] >= gUnknown_0860C988[i][j])
+ k++;
+ }
+ }
+ if (r4 == k)
+ break;
+ }
+
+ textPrinter.current_text_offset = gBattleDomeOpponentStylePointers[i];
+ textPrinter.y = 20;
+ textPrinter.currentY = 20;
+ AddTextPrinter(&textPrinter, 0, NULL);
+
+ for (i = 0; i < 18; i++)
+ allocatedArray[i] = 0;
+
+ if (trainerId == TRAINER_FRONTIER_BRAIN || trainerId == TRAINER_PLAYER)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < 6; j++)
+ {
+ if (trainerId == TRAINER_FRONTIER_BRAIN)
+ allocatedArray[j] = sub_81A50F0(i, j);
+ else
+ allocatedArray[j] = gSaveBlock2Ptr->frontier.field_EFC[i].evs[j];
+ }
+ allocatedArray[6] += allocatedArray[0];
+ for (j = 0; j < 5; j++)
+ {
+ if (trainerId == TRAINER_FRONTIER_BRAIN)
+ nature = sub_81A50B0(i);
+ else
+ nature = gSaveBlock2Ptr->frontier.field_EFC[i].nature;
+
+ if (gNatureStatTable[nature][j] > 0)
+ {
+ allocatedArray[j + 7] += (allocatedArray[j + 1] * 110) / 100;
+ }
+ else if (gNatureStatTable[nature][j] < 0)
+ {
+ allocatedArray[j + 7] += (allocatedArray[j + 1] * 90) / 100;
+ allocatedArray[j + 13]++;
+ }
+ else
+ {
+ allocatedArray[j + 7] += allocatedArray[j + 1];
+ }
+ }
+ }
+ for (j = 0, i = 0; i < 6; i++)
+ j += allocatedArray[6 + i];
+ for (i = 0; i < 6; i++)
+ allocatedArray[i] = (allocatedArray[6 + i] * 100) / j;
+ }
+ else
+ {
+ for (i = 0; i < 3; i++)
+ {
+ s32 evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].evSpread;
+ for (k = 0, j = 0; j < 6; j++)
+ {
+ allocatedArray[j] = 0;
+ if (evBits & 1)
+ k++;
+ evBits >>= 1;
+ }
+ k = MAX_TOTAL_EVS / k;
+ evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].evSpread;
+ for (j = 0; j < 6; j++)
+ {
+ if (evBits & 1)
+ allocatedArray[j] = k;
+ evBits >>= 1;
+ }
+
+ allocatedArray[6] += allocatedArray[0];
+ for (j = 0; j < 5; j++)
+ {
+ nature = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[trainerTournamentId][i]].nature;
+ if (gNatureStatTable[nature][j] > 0)
+ {
+ allocatedArray[j + 7] += (allocatedArray[j + 1] * 110) / 100;
+ }
+ else if (gNatureStatTable[nature][j] < 0)
+ {
+ allocatedArray[j + 7] += (allocatedArray[j + 1] * 90) / 100;
+ allocatedArray[j + 13]++;
+ }
+ else
+ {
+ allocatedArray[j + 7] += allocatedArray[j + 1];
+ }
+ }
+ }
+ for (j = 0, i = 0; i < 6; i++)
+ j += allocatedArray[i + 6];
+ for (i = 0; i < 6; i++)
+ allocatedArray[i] = (allocatedArray[6 + i] * 100) / j;
+ }
+
+ for (i = 0, j = 0, k = 0; k < 6; k++)
+ {
+ if (allocatedArray[k] > 29)
+ {
+ if (i == 2)
+ {
+ if (allocatedArray[6] < allocatedArray[k])
+ {
+ if (allocatedArray[7] < allocatedArray[k])
+ {
+ if (allocatedArray[6] < allocatedArray[7])
+ {
+ allocatedArray[6] = allocatedArray[7];
+ allocatedArray[7] = k;
+ }
+ else
+ {
+ allocatedArray[7] = k;
+ }
+ }
+ else
+ {
+ allocatedArray[6] = allocatedArray[7];
+ allocatedArray[7] = k;
+ }
+ }
+ else
+ {
+ if (allocatedArray[7] < allocatedArray[k])
+ allocatedArray[7] = k;
+ }
+ }
+ else
+ {
+ allocatedArray[i + 6] = k;
+ i++;
+ }
+ }
+ if (allocatedArray[k] == 0)
+ {
+ if (j == 2)
+ {
+ if (allocatedArray[k + 12] >= 2
+ || ((allocatedArray[k + 12] == 1 && allocatedArray[12 + allocatedArray[8]] == 0 && allocatedArray[12 + allocatedArray[9]] == 0)
+ )
+ )
+ {
+ allocatedArray[8] = allocatedArray[9];
+ allocatedArray[9] = k;
+ }
+ else if (allocatedArray[k + 12] == 1 && allocatedArray[12 + allocatedArray[8]] == 0)
+ {
+ allocatedArray[8] = allocatedArray[9];
+ allocatedArray[9] = k;
+ }
+ else if (allocatedArray[k + 12] == 1 && allocatedArray[12 + allocatedArray[9]] == 0)
+ {
+ allocatedArray[9] = k;
+ }
+ }
+ else
+ {
+ allocatedArray[j + 8] = k;
+ j++;
+ }
+ }
+ }
+
+ if (i == 2)
+ i = gUnknown_0860D349[allocatedArray[6]] + (allocatedArray[7] - (allocatedArray[6] + 1));
+ else if (i == 1)
+ i = allocatedArray[6] + 15;
+ else if (j == 2)
+ i = gUnknown_0860D349[allocatedArray[8]] + (allocatedArray[9] - (allocatedArray[8] + 1)) + 21;
+ else if (j == 1)
+ i = allocatedArray[8] + 36;
+ else
+ i = 42;
+
+ textPrinter.current_text_offset = gBattleDomeOpponentStatsPointers[i];
+ textPrinter.y = 36;
+ textPrinter.currentY = 36;
+ AddTextPrinter(&textPrinter, 0, NULL);
+ Free(allocatedArray);
+}
+
+static s32 sub_8192F08(u8 arg0, u8 *arg1)
+{
+ s32 i;
+ u8 tournamentId;
+ s32 retVal = 0;
+ s32 count = 0;
+
+ for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++)
+ {
+ tournamentId = gUnknown_0860D3B4[i];
+ if (!gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].isEliminated)
+ {
+ arg1[count] = tournamentId;
+ if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_PLAYER)
+ StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
+ else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN)
+ CopyDomeBrainTrainerName(gStringVar1);
+ else
+ CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId);
+ count++;
+ }
+ }
+
+ if (count == 2)
+ return 0;
+
+ for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++)
+ {
+ tournamentId = gUnknown_0860D3B4[i];
+ if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].isEliminated
+ && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].eliminatedAt >= gUnknown_0860D3C4[arg0][2])
+ {
+ arg1[count] = tournamentId;
+ count++;
+ if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].eliminatedAt == gUnknown_0860D3C4[arg0][2])
+ {
+ StringCopy(gStringVar2, gMoveNames[gSaveBlock2Ptr->frontier.field_EC0[tournamentId]]);
+ retVal = gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk3 * 2;
+ if (gSaveBlock2Ptr->frontier.field_EC0[tournamentId] == 0 && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk3 == 0)
+ retVal = 4;
+ }
+ else
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_PLAYER)
+ StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
+ else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN)
+ CopyDomeBrainTrainerName(gStringVar1);
+ else
+ CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId);
+ }
+ }
+
+ if (count == 2)
+ break;
+ }
+
+ if (arg0 == 14)
+ return retVal + 2;
+ else
+ return retVal + 1;
+}
+
+static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
+{
+ struct TextSubPrinter textPrinter;
+ s32 tournamentIds[2];
+ s32 trainerIds[2];
+ bool32 lost[2];
+ s32 i;
+ s32 winStringId = 0;
+ s32 arrId = 0;
+ s32 windowId = 0;
+ s32 x = 0, y = 0;
+ u8 palSlot = 0;
+
+ if (flags & 1)
+ arrId = 8, windowId = 9, palSlot = 2;
+ if (flags & 2)
+ x = 256;
+ if (flags & 4)
+ y = 160;
+ if (flags & 8)
+ x = -256;
+ if (flags & 0x10)
+ y = -160;
+
+ // Copy trainers information to handy arrays.
+ winStringId = sub_8192F08(matchNo, sBattleDomeStruct->unk_11);
+ for (i = 0; i < 2; i++)
+ {
+ tournamentIds[i] = sBattleDomeStruct->unk_11[i];
+ trainerIds[i] = gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].trainerId;
+ if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].eliminatedAt <= gUnknown_0860D3C4[matchNo][2]
+ && gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].isEliminated)
+ lost[i] = TRUE;
+ else
+ lost[i] = FALSE;
+ }
+
+ // Draw first trainer sprite.
+ if (trainerIds[0] == TRAINER_PLAYER)
+ sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF);
+ else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN)
+ sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF);
+ else
+ sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[0]), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF);
+
+ if (flags & 0x1E)
+ gSprites[sBattleDomeStruct->arr[arrId]].invisible = 1;
+ if (lost[0])
+ gSprites[sBattleDomeStruct->arr[arrId]].oam.paletteNum = 3;
+
+ // Draw second trainer sprite.
+ if (trainerIds[1] == TRAINER_PLAYER)
+ sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF);
+ else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN)
+ sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF);
+ else
+ sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[1]), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF);
+
+ if (flags & 0x1E)
+ gSprites[sBattleDomeStruct->arr[1 + arrId]].invisible = 1;
+ if (lost[1])
+ gSprites[sBattleDomeStruct->arr[1 + arrId]].oam.paletteNum = 3;
+
+ // Draw first trainer's pokemon icons.
+ for (i = 0; i < 3; i++)
+ {
+ if (trainerIds[0] == TRAINER_PLAYER)
+ {
+ sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i],
+ SpriteCb_MonIcon,
+ x | sFirstTrainerMonX[i],
+ y + sFirstTrainerMonY[i],
+ 0, 0, TRUE);
+ gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0;
+ }
+ else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN)
+ {
+ sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i],
+ SpriteCb_MonIcon,
+ x | sFirstTrainerMonX[i],
+ y + sFirstTrainerMonY[i],
+ 0, 0, TRUE);
+ gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0;
+ }
+ else
+ {
+ sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[0]][i]].species,
+ SpriteCb_MonIcon,
+ x | sFirstTrainerMonX[i],
+ y + sFirstTrainerMonY[i],
+ 0, 0, TRUE);
+ gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0;
+ }
+
+ if (flags & 0x1E)
+ gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = 1;
+ if (lost[0])
+ {
+ gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.paletteNum = 3;
+ gSprites[sBattleDomeStruct->arr[2 + i + arrId]].sMonIconStill = TRUE;
+ }
+ }
+
+ // Draw second trainer's pokemon icons.
+ for (i = 0; i < 3; i++)
+ {
+ if (trainerIds[1] == TRAINER_PLAYER)
+ {
+ sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i],
+ SpriteCb_MonIcon,
+ x | sSecondTrainerMonX[i],
+ y + sSecondTrainerMonY[i],
+ 0, 0, TRUE);
+ gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0;
+ }
+ else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN)
+ {
+ sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i],
+ SpriteCb_MonIcon,
+ x | sSecondTrainerMonX[i],
+ y + sSecondTrainerMonY[i],
+ 0, 0, TRUE);
+ gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0;
+ }
+ else
+ {
+ sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentIds[1]][i]].species,
+ SpriteCb_MonIcon,
+ x | sSecondTrainerMonX[i],
+ y + sSecondTrainerMonY[i],
+ 0, 0, TRUE);
+ gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0;
+ }
+
+ if (flags & 0x1E)
+ gSprites[sBattleDomeStruct->arr[5 + i + arrId]].invisible = 1;
+ if (lost[1])
+ {
+ gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.paletteNum = 3;
+ gSprites[sBattleDomeStruct->arr[5 + i + arrId]].sMonIconStill = TRUE;
+ }
+ }
+
+ // Print the win string (or 'Let the battle begin!' one).
+ textPrinter.x = 0;
+ textPrinter.y = 2;
+ textPrinter.currentX = textPrinter.x;
+ textPrinter.currentY = textPrinter.y;
+ textPrinter.letterSpacing = 0;
+ textPrinter.lineSpacing = 0;
+ textPrinter.fontColor_l = 0;
+ textPrinter.fgColor = 14;
+ textPrinter.bgColor = 0;
+ textPrinter.shadowColor = 13;
+ StringExpandPlaceholders(gStringVar4, gBattleDomeWinStringsPointers[winStringId]);
+ textPrinter.current_text_offset = gStringVar4;
+ textPrinter.windowId = windowId + 8;
+ textPrinter.fontId = 1;
+ PutWindowTilemap(windowId + 8);
+ CopyWindowToVram(windowId + 8, 3);
+ textPrinter.currentX = 0;
+ textPrinter.currentY = textPrinter.y = 0;
+ AddTextPrinter(&textPrinter, 0, NULL);
+
+ // Print first trainer's name.
+ if (trainerIds[0] == TRAINER_PLAYER)
+ StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
+ else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN)
+ CopyDomeBrainTrainerName(gStringVar1);
+ else
+ CopyDomeTrainerName(gStringVar1, trainerIds[0]);
+
+ textPrinter.fontId = 2;
+ textPrinter.letterSpacing = 2;
+ textPrinter.current_text_offset = gStringVar1;
+ textPrinter.windowId = windowId + 6;
+ textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.current_text_offset, 0x40, textPrinter.letterSpacing);
+ textPrinter.currentY = textPrinter.y = 2;
+ PutWindowTilemap(windowId + 6);
+ CopyWindowToVram(windowId + 6, 3);
+ AddTextPrinter(&textPrinter, 0, NULL);
+
+ // Print second trainer's name.
+ if (trainerIds[1] == TRAINER_PLAYER)
+ StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
+ else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN)
+ CopyDomeBrainTrainerName(gStringVar1);
+ else
+ CopyDomeTrainerName(gStringVar1, trainerIds[1]);
+
+ textPrinter.current_text_offset = gStringVar1;
+ textPrinter.windowId = windowId + 7;
+ textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.current_text_offset, 0x40, textPrinter.letterSpacing);
+ textPrinter.currentY = textPrinter.y = 2;
+ PutWindowTilemap(windowId + 7);
+ CopyWindowToVram(windowId + 7, 3);
+ AddTextPrinter(&textPrinter, 0, NULL);
+
+ // Print match number.
+ textPrinter.letterSpacing = 0;
+ textPrinter.current_text_offset = gBattleDomeMatchNumberPointers[matchNo];
+ textPrinter.windowId = windowId + 5;
+ textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.current_text_offset, 0xA0, textPrinter.letterSpacing);
+ textPrinter.currentY = textPrinter.y = 2;
+ PutWindowTilemap(windowId + 5);
+ CopyWindowToVram(windowId + 5, 3);
+ AddTextPrinter(&textPrinter, 0, NULL);
+}
+
+static void sub_81938A4(void)
+{
+ u8 taskId = CreateTask(sub_8194220, 0);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 2;
+ gTasks[taskId].data[4] = 0;
+ SetMainCallback2(CB2_BattleDome);
+}
+
+static void sub_81938E0(void)
+{
+ u8 taskId;
+
+ sub_8194D48();
+ gSaveBlock2Ptr->frontier.lvlMode = gSaveBlock2Ptr->frontier.field_D0A - 1;
+ gSaveBlock2Ptr->frontier.field_CB2 = 3;
+ taskId = CreateTask(sub_8194220, 0);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 2;
+ gTasks[taskId].data[4] = 1;
+ SetMainCallback2(CB2_BattleDome);
+}
+
+static void sub_819395C(u8 taskId)
+{
+ u8 newTaskId = 0;
+ s32 spriteId = gTasks[taskId].data[1];
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
+ gTasks[taskId].data[0] = 1;
+ StartSpriteAnim(&gSprites[spriteId], 1);
+ }
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ gTasks[taskId].data[0] = 2;
+ break;
+ case 2:
+ switch (sub_8193BDC(taskId))
+ {
+ case 0:
+ default:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
+ gTasks[taskId].data[0] = 7;
+ break;
+ case 1:
+ break;
+ case 2:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
+ gTasks[taskId].data[0] = 3;
+ break;
+ case 3:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
+ gTasks[taskId].data[0] = 5;
+ break;
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ FreeAllWindowBuffers();
+ ScanlineEffect_Stop();
+ FREE_AND_SET_NULL(sTilemapBuffer);
+ newTaskId = CreateTask(sub_8190400, 0);
+ gTasks[newTaskId].data[0] = 0;
+ gTasks[newTaskId].data[1] = gUnknown_0860D080[spriteId];
+ gTasks[newTaskId].data[2] = 1;
+ gTasks[newTaskId].data[3] = taskId;
+
+ gTasks[taskId].data[0] = 4;
+ sBattleDomeStruct->unk_10 = 0;
+ }
+ break;
+ case 4:
+ break;
+ case 5:
+ if (!gPaletteFade.active)
+ {
+ FreeAllWindowBuffers();
+ ScanlineEffect_Stop();
+ FREE_AND_SET_NULL(sTilemapBuffer);
+ newTaskId = CreateTask(sub_8190400, 0);
+ gTasks[newTaskId].data[0] = 0;
+ gTasks[newTaskId].data[1] = spriteId - 16;
+ gTasks[newTaskId].data[2] = 2;
+ gTasks[newTaskId].data[3] = taskId;
+
+ gTasks[taskId].data[0] = 6;
+ }
+ break;
+ case 6:
+ break;
+ case 7:
+ if (!gPaletteFade.active)
+ {
+ FreeAllWindowBuffers();
+ ScanlineEffect_Stop();
+ FREE_AND_SET_NULL(sTilemapBuffer);
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ DestroyTask(gTasks[taskId].data[7]);
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static u8 sub_8193BDC(u8 taskId)
+{
+ u8 retVal = 1;
+ s32 arrId = 4;
+ s32 spriteId = gTasks[taskId].data[1];
+ s32 roundId = gSaveBlock2Ptr->frontier.field_CB2;
+
+ if (gMain.newKeys == B_BUTTON || (gMain.newKeys & A_BUTTON && spriteId == 31))
+ {
+ PlaySE(SE_SELECT);
+ retVal = 0;
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ if (spriteId < 16)
+ {
+ PlaySE(SE_SELECT);
+ retVal = 2;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ retVal = 3;
+ }
+ }
+ else
+ {
+ if (gMain.newKeys == DPAD_UP && gUnknown_0860CBF1[spriteId][roundId][0] != 0xFF)
+ arrId = 0;
+ else if (gMain.newKeys == DPAD_DOWN && gUnknown_0860CBF1[spriteId][roundId][1] != 0xFF)
+ arrId = 1;
+ else if (gMain.newKeys == DPAD_LEFT && gUnknown_0860CBF1[spriteId][roundId][2] != 0xFF)
+ arrId = 2;
+ else if (gMain.newKeys == DPAD_RIGHT && gUnknown_0860CBF1[spriteId][roundId][3] != 0xFF)
+ arrId = 3;
+ }
+
+ if (arrId != 4)
+ {
+ PlaySE(SE_SELECT);
+ StartSpriteAnim(&gSprites[spriteId], 0);
+ spriteId = gUnknown_0860CBF1[spriteId][roundId][arrId];
+ StartSpriteAnim(&gSprites[spriteId], 1);
+ gTasks[taskId].data[1] = spriteId;
+ }
+
+ return retVal;
+}
+
+static void sub_8193D40(void)
+{
+ u8 taskId = CreateTask(sub_8194220, 0);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 1;
+ gTasks[taskId].data[2] = 2;
+ gTasks[taskId].data[4] = 0;
+ SetMainCallback2(CB2_BattleDome);
+}
+
+static void sub_8193D7C(void)
+{
+ s32 i;
+
+ if (gSpecialVar_0x8005 == 1)
+ {
+ gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].isEliminated = 1;
+ gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].eliminatedAt = gSaveBlock2Ptr->frontier.field_CB2;
+ gSaveBlock2Ptr->frontier.field_EC0[TrainerIdToTournamentId(gTrainerBattleOpponent_A)] = gBattleResults.lastUsedMovePlayer;
+ if (gSaveBlock2Ptr->frontier.field_CB2 < DOME_FINAL)
+ DecideRoundWinners(gSaveBlock2Ptr->frontier.field_CB2);
+ }
+ else
+ {
+ gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].isEliminated = 1;
+ gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].eliminatedAt = gSaveBlock2Ptr->frontier.field_CB2;
+ gSaveBlock2Ptr->frontier.field_EC0[TrainerIdToTournamentId(TRAINER_PLAYER)] = gBattleResults.lastUsedMoveOpponent;
+ if (gBattleOutcome == B_OUTCOME_FORFEITED || gSpecialVar_0x8005 == 9)
+ gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].unk3 = 1;
+ for (i = gSaveBlock2Ptr->frontier.field_CB2; i < DOME_ROUNDS_COUNT; i++)
+ DecideRoundWinners(i);
+ }
+}
+
+static u16 GetWinningMove(s32 winnerTournamentId, s32 loserTournamentId, u8 roundId)
+{
+ s32 i, j, k;
+ s32 moveScores[4 * 3];
+ u16 moveIds[4 * 3];
+ u16 bestScore = 0;
+ u16 bestId = 0;
+ s32 movePower = 0;
+ GetFacilityEnemyMonLevel(); // Unused return variable.
+
+ // Calc move points of all 4 moves for all 3 pokemon hitting all 3 target mons.
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ moveScores[i * 4 + j] = 0;
+ if (gSaveBlock2Ptr->frontier.domeTrainers[winnerTournamentId].trainerId == TRAINER_FRONTIER_BRAIN)
+ moveIds[i * 4 + j] = sub_81A5060(i, j);
+ else
+ moveIds[i * 4 + j] = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[winnerTournamentId][i]].moves[j];
+
+ movePower = gBattleMoves[moveIds[i * 4 + j]].power;
+ if (movePower == 0)
+ movePower = 40;
+ else if (movePower == 1)
+ movePower = 60;
+ else if (moveIds[i * 4 + j] == MOVE_SELF_DESTRUCT || moveIds[i * 4 + j] == MOVE_EXPLOSION)
+ movePower /= 2;
+
+ for (k = 0; k < 3; k++)
+ {
+ u32 var = 0;
+ u32 targetSpecies = 0;
+ u32 targetAbility = 0;
+ do
+ {
+ var = Random32();
+ } while (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[loserTournamentId][k]].nature != GetNatureFromPersonality(var));
+
+ targetSpecies = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[loserTournamentId][k]].species;
+ if (var & 1)
+ targetAbility = gBaseStats[targetSpecies].ability2;
+ else
+ targetAbility = gBaseStats[targetSpecies].ability1;
+
+ var = AI_TypeCalc(moveIds[i * 4 + j], targetSpecies, targetAbility);
+ if (var & MOVE_RESULT_NOT_VERY_EFFECTIVE && var & MOVE_RESULT_SUPER_EFFECTIVE)
+ moveScores[i * 4 + j] += movePower;
+ else if (var & MOVE_RESULT_NO_EFFECT)
+ moveScores[i * 4 + j] += 0;
+ else if (var & MOVE_RESULT_SUPER_EFFECTIVE)
+ moveScores[i * 4 + j] += movePower * 2;
+ else if (var & MOVE_RESULT_NOT_VERY_EFFECTIVE)
+ moveScores[i * 4 + j] += movePower / 2;
+ else
+ moveScores[i * 4 + j] += movePower;
+ }
+
+ if (bestScore < moveScores[i * 4 + j])
+ {
+ bestId = i * 4 + j;
+ bestScore = moveScores[i * 4 + j];
+ }
+ else if (bestScore == moveScores[i * 4 + j])
+ {
+ if (moveIds[bestId] < moveIds[i * 4 + j]) // Why not use (Random() & 1) instead of promoting moves with a higher id?
+ bestId = i * 4 + j;
+ }
+ }
+ }
+
+ j = bestId;
+ goto LABEL;
+ while (j != 0)
+ {
+ for (j = 0, k = 0; k < 4 * 3; k++)
+ {
+ if (bestScore < moveScores[k])
+ {
+ j = k;
+ bestScore = moveScores[k];
+ }
+ else if (bestScore == moveScores[k] && moveIds[j] < moveIds[k])
+ {
+ j = k;
+ }
+ }
+ if (i == roundId - 1)
+ break;
+ LABEL:
+ {
+ for (i = 0; i < roundId - 1; i++)
+ {
+ if (gSaveBlock2Ptr->frontier.field_EC0[sub_81953E8(winnerTournamentId, i)] == moveIds[j])
+ break;
+ }
+ if (i == roundId - 1)
+ break;
+
+ moveScores[j] = 0;
+ bestScore = 0;
+ j = 0;
+ for (k = 0; k < 4 * 3; k++)
+ j += moveScores[k];
+ }
+ }
+
+ if (moveScores[j] == 0)
+ j = bestId;
+
+ return moveIds[j];
+}
+
+static void sub_8194220(u8 taskId)
+{
+ s32 i;
+ struct TextSubPrinter textPrinter;
+ s32 r10 = gTasks[taskId].data[1];
+ s32 r4 = gTasks[taskId].data[2];
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ SetHBlankCallback(NULL);
+ SetVBlankCallback(NULL);
+ EnableInterrupts(INTR_FLAG_HBLANK | INTR_FLAG_VBLANK);
+ CpuFill32(0, (void *)VRAM, VRAM_SIZE);
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, gUnknown_0860CE74, ARRAY_COUNT(gUnknown_0860CE74));
+ InitWindows(gUnknown_0860CE94);
+ DeactivateAllTextPrinters();
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ ChangeBgX(2, 0, 0);
+ ChangeBgY(2, 0, 0);
+ ChangeBgX(3, 0, 0);
+ ChangeBgY(3, 0xB00, 0);
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ SetGpuReg(REG_OFFSET_MOSAIC, 0);
+ SetGpuReg(REG_OFFSET_WIN0H, 0x5860);
+ SetGpuReg(REG_OFFSET_WIN0V, 0x9F);
+ SetGpuReg(REG_OFFSET_WIN1H, 0x9098);
+ SetGpuReg(REG_OFFSET_WIN1V, 0x9F);
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, 0x3F);
+ ResetPaletteFade();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gTasks[taskId].data[0]++;
+ break;
+ case 2:
+ sTilemapBuffer = AllocZeroed(0x800);
+ LZDecompressWram(gUnknown_08D83900, sTilemapBuffer);
+ SetBgTilemapBuffer(1, sTilemapBuffer);
+ CopyBgTilemapBufferToVram(1);
+ DecompressAndLoadBgGfxUsingHeap(1, gUnknown_08D82F10, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D834FC, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D83B2C, 0x2000, 0, 1);
+ DecompressAndLoadBgGfxUsingHeap(3, gUnknown_08D83C3C, 0x2000, 0, 1);
+ LoadCompressedPalette(gUnknown_08D85358, 0, 0x200);
+ LoadCompressedPalette(gUnknown_08D85444, 0x100, 0x200);
+ LoadCompressedPalette(gUnknown_08D85600, 0xF0, 0x20);
+ CpuFill32(0, gPlttBufferFaded, 0x400);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ ShowBg(3);
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ LoadCompressedObjectPic(gUnknown_0860CF50);
+ if (r10 == 0)
+ {
+ for (i = 0; i < (unsigned) 31; i++)
+ CreateSprite(&gUnknown_0860CFA8, gUnknown_0860D411[i][0], gUnknown_0860D411[i][1], 0);
+ if (gTasks[taskId].data[4])
+ CreateSprite(&gUnknown_0860D008, 218, 12, 0);
+ else
+ CreateSprite(&gUnknown_0860CFD8, 218, 12, 0);
+ }
+
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJ_1D_MAP);
+ gTasks[taskId].data[0]++;
+ break;
+ case 4:
+ textPrinter.fontId = 2;
+ textPrinter.current_text_offset = gText_BattleTourney;
+ textPrinter.windowId = 2;
+ textPrinter.x = 0;
+ textPrinter.y = 0;
+ textPrinter.letterSpacing = 2;
+ textPrinter.lineSpacing = 0;
+ textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.current_text_offset, 0x70, textPrinter.letterSpacing);
+ textPrinter.currentY = 1;
+ textPrinter.fontColor_l = 0;
+ textPrinter.fgColor = 14;
+ textPrinter.bgColor = 0;
+ textPrinter.shadowColor = 13;
+ AddTextPrinter(&textPrinter, 0, NULL);
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ s32 var, var2;
+
+ CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
+ if (r10 == 1)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0)
+ {
+ var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 1;
+ sub_81948EC(i, var2);
+ }
+ }
+ else if (gSaveBlock2Ptr->frontier.field_CB2 != DOME_ROUND2)
+ {
+ sub_81948EC(i, gSaveBlock2Ptr->frontier.field_CB2 - 2);
+ }
+ }
+ else if (r10 == 0)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0)
+ {
+ var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 1;
+ sub_81948EC(i, var2);
+ }
+ }
+ else if (gSaveBlock2Ptr->frontier.field_CB2 != DOME_ROUND1)
+ {
+ if (gTasks[taskId].data[4])
+ var2 = gSaveBlock2Ptr->frontier.field_CB2;
+ else
+ var2 = gSaveBlock2Ptr->frontier.field_CB2 - 1;
+ sub_81948EC(i, var2);
+ }
+ }
+
+ if (gTasks[taskId].data[4])
+ var = gSaveBlock2Ptr->frontier.field_CB2;
+ else
+ var = gSaveBlock2Ptr->frontier.field_CB2 - 1;
+
+ if ( ((r10 == 1 && gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt < gSaveBlock2Ptr->frontier.field_CB2 - 1)
+ || (r10 == 0 && gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt <= var))
+ && gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER)
+ {
+ textPrinter.fgColor = 3;
+ textPrinter.shadowColor = 4;
+ }
+ else
+ {
+ textPrinter.fgColor = 11;
+ textPrinter.shadowColor = 13;
+ }
+ }
+ else
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER)
+ {
+ textPrinter.fgColor = 3;
+ textPrinter.shadowColor = 4;
+ }
+ else
+ {
+ textPrinter.fgColor = 14;
+ textPrinter.shadowColor = 13;
+ }
+ }
+
+ if (gUnknown_0860D3F1[i][0] == 0)
+ textPrinter.currentX = GetStringWidthDifference(textPrinter.fontId, gDisplayedStringBattle, 0x3D, textPrinter.letterSpacing);
+ else
+ textPrinter.currentX = 3;
+ textPrinter.current_text_offset = gDisplayedStringBattle;
+ textPrinter.windowId = gUnknown_0860D3F1[i][0];
+ textPrinter.currentY = gUnknown_0860D3F1[i][1];
+ AddTextPrinter(&textPrinter, 0, NULL);
+ }
+ gTasks[taskId].data[0]++;
+ break;
+ case 5:
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ PutWindowTilemap(2);
+ CopyWindowToVram(0, 3);
+ CopyWindowToVram(1, 3);
+ CopyWindowToVram(2, 3);
+ SetHBlankCallback(HblankCb_BattleDome);
+ SetVBlankCallback(VblankCb1_BattleDome);
+ if (r4 == 2)
+ {
+ if (r10 == 0)
+ {
+ i = CreateTask(sub_819395C, 0);
+ gTasks[i].data[0] = r10;
+ gTasks[i].data[1] = r10;
+ gTasks[i].data[6] = gTasks[taskId].data[4];
+ }
+ else
+ {
+ i = CreateTask(sub_8194950, 0);
+ gTasks[i].data[0] = 0;
+ }
+ }
+ else
+ {
+ i = gTasks[taskId].data[3];
+ gTasks[i].data[0] = 0;
+ }
+ ScanlineEffect_Clear();
+ for (i = 0; i < 91; i++)
+ {
+ gScanlineEffectRegBuffers[0][i] = 0x1F0A;
+ gScanlineEffectRegBuffers[1][i] = 0x1F0A;
+ }
+ for (i = 91; i < 160; i++)
+ {
+ asm(""::"r"(i));
+ gScanlineEffectRegBuffers[0][i] = 0x1F09;
+ gScanlineEffectRegBuffers[1][i] = 0x1F09;
+ }
+ ScanlineEffect_SetParams(gUnknown_0860CF44);
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+static void sub_81948EC(u8 tournamentId, u8 arg1)
+{
+ s32 i;
+ const struct UnkStruct_860DD10 *structPtr = gUnknown_0860DD10[tournamentId][arg1];
+
+ for (i = 0; i < gUnknown_0860DE10[tournamentId][arg1]; i++)
+ CopyToBgTilemapBufferRect_ChangePalette(1, &structPtr[i].src, structPtr[i].x, structPtr[i].y, 1, 1, 0x11);
+
+ CopyBgTilemapBufferToVram(1);
+}
+
+static void sub_8194950(u8 taskId)
+{
+ s32 i;
+ struct TextSubPrinter textPrinter;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
+ gTasks[taskId].data[0] = 1;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ gTasks[taskId].data[0] = 2;
+ gTasks[taskId].data[3] = 64;
+ textPrinter.fontId = 2;
+ textPrinter.x = 0;
+ textPrinter.y = 0;
+ textPrinter.letterSpacing = 2;
+ textPrinter.lineSpacing = 0;
+ textPrinter.fontColor_l = 0;
+ textPrinter.fgColor = 11;
+ textPrinter.bgColor = 0;
+ textPrinter.shadowColor = 13;
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt == gSaveBlock2Ptr->frontier.field_CB2 - 1
+ && gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated)
+ {
+ if (gUnknown_0860D3F1[i][0] == 0)
+ textPrinter.currentX = GetStringWidthDifference(textPrinter.fontId, gDisplayedStringBattle, 0x3D, textPrinter.letterSpacing);
+ else
+ textPrinter.currentX = 3;
+
+ textPrinter.current_text_offset = gDisplayedStringBattle;
+ textPrinter.windowId = gUnknown_0860D3F1[i][0];
+ textPrinter.currentY = gUnknown_0860D3F1[i][1];
+ AddTextPrinter(&textPrinter, 0, NULL);
+ }
+ if (!gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated)
+ {
+ s32 var = gSaveBlock2Ptr->frontier.field_CB2 - 1;
+ sub_81948EC(i, var);
+ }
+ }
+ }
+ break;
+ case 2:
+ if (--gTasks[taskId].data[3] == 0)
+ gTasks[taskId].data[0] = 3;
+ break;
+ case 3:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
+ gTasks[taskId].data[0] = 4;
+ }
+ break;
+ case 4:
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static void CB2_BattleDome(void)
+{
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTextPrinters();
+ UpdatePaletteFade();
+ RunTasks();
+}
+
+static void VblankCb0_BattleDome(void)
+{
+ ChangeBgX(3, 0x80, 1);
+ ChangeBgY(3, 0x80, 2);
+ 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);
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+#define SET_WIN0H_WIN1H(win0H, win1H) \
+{ \
+ *(vu32*)(REG_ADDR_WIN0H) = ((win0H << 16) | (win1H)); \
+}
+
+static void HblankCb_BattleDome(void)
+{
+ register u32 vCount asm("r0") = REG_VCOUNT;
+ register u32 vCount_ asm("r1") = vCount;
+ if (vCount > 41)
+ {
+ if (vCount < 50)
+ {
+ REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
+ SET_WIN0H_WIN1H(WINHV_COORDS(152, 155), WINHV_COORDS(85, 88));
+ return;
+ }
+ else if (vCount > 57)
+ {
+ if (vCount < 75)
+ {
+ REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
+ SET_WIN0H_WIN1H(WINHV_COORDS(144, 152), WINHV_COORDS(88, 96));
+ return;
+ }
+ else if (vCount < 82)
+ {
+ REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
+ SET_WIN0H_WIN1H(WINHV_COORDS(152, 155), WINHV_COORDS(85, 88));
+ return;
+ }
+ else if (vCount > 94)
+ {
+ if (vCount < 103)
+ {
+ REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
+ SET_WIN0H_WIN1H(WINHV_COORDS(152, 155), WINHV_COORDS(85, 88));
+ return;
+ }
+ else if (vCount < 119)
+ {
+ REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
+ SET_WIN0H_WIN1H(WINHV_COORDS(144, 152), WINHV_COORDS(88, 96));
+ return;
+ }
+ else if (vCount > 126)
+ {
+ if (vCount_ < 135)
+ {
+ REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR;
+ SET_WIN0H_WIN1H(WINHV_COORDS(152, 155), WINHV_COORDS(85, 88));
+ return;
+ }
+ }
+ }
+ }
+ }
+
+ REG_WININ = WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ | WININ_WIN1_BG_ALL | WININ_WIN1_CLR | WININ_WIN1_OBJ;
+ SET_WIN0H_WIN1H(0, 0);
+}
+
+static void VblankCb1_BattleDome(void)
+{
+ 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);
+ ChangeBgY(2, 0x80, 2);
+ ChangeBgY(3, 0x80, 1);
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ ScanlineEffect_InitHBlankDmaTransfer();
+}
+
+static void sub_8194D48(void)
+{
+ gFacilityTrainerMons = gBattleFrontierMons;
+ gFacilityTrainers = gBattleFrontierTrainers;
+}
+
+static void sub_8194D68(void)
+{
+ s32 i, moveSlot;
+
+ for (i = 0; i < 2; i++)
+ {
+ s32 playerMonId = gSaveBlock2Ptr->frontier.field_CAA[gUnknown_0203CEF8[i] - 1] - 1;
+ s32 count;
+
+ for (moveSlot = 0; moveSlot < 4; moveSlot++)
+ {
+ count = 0;
+ while (count < 4)
+ {
+ if (GetMonData(&gSaveBlock1Ptr->playerParty[playerMonId], MON_DATA_MOVE1 + count, NULL) == GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + moveSlot, NULL))
+ break;
+ count++;
+ }
+ if (count == 4)
+ SetMonMoveSlot(&gPlayerParty[i], MOVE_SKETCH, moveSlot);
+ }
+
+ gSaveBlock1Ptr->playerParty[playerMonId] = gPlayerParty[i];
+ }
+}
+
+static void sub_8194E44(void)
+{
+ s32 i;
+
+ for (i = 0; i < 2; i++)
+ {
+ s32 playerMonId = gSaveBlock2Ptr->frontier.field_CAA[gUnknown_0203CEF8[i] - 1] - 1;
+ u16 item = GetMonData(&gSaveBlock1Ptr->playerParty[playerMonId], MON_DATA_HELD_ITEM, NULL);
+ SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &item);
+ }
+}
+
+static void sub_8194EB4(void)
+{
+ sub_80F94E8();
+}
+
+static void sub_8194EC0(void)
+{
+ if (TrainerIdToTournamentId(gTrainerBattleOpponent_A) > TrainerIdToTournamentId(TRAINER_PLAYER))
+ gSpecialVar_Result = 1;
+ else
+ gSpecialVar_Result = 2;
+}
+
+static void sub_8194EF8(void)
+{
+ s32 i;
+
+ sub_8194D48();
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (!gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated)
+ break;
+ }
+ CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
+}
+
+static void sub_8194F58(void)
+{
+ s32 i, j, k;
+ s32 monLevel;
+ s32 species[3];
+ s32 monTypesBits;
+ s32 trainerId;
+ s32 monTournamentId;
+ u8 lvlMode;
+ u16 *statSums;
+ s32 *statValues;
+ u8 ivs = 0;
+
+ species[0] = 0;
+ species[1] = 0;
+ species[2] = 0;
+ if ((gSaveBlock2Ptr->frontier.field_D0A != -gSaveBlock2Ptr->frontier.field_D0B) && gSaveBlock2Ptr->frontier.field_CA8 != 1)
+ return;
+
+ statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT);
+ statValues = AllocZeroed(sizeof(s32) * 6);
+ lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ gSaveBlock2Ptr->frontier.lvlMode = 0;
+ // This one, I'd like to call a 'C fakematching'.
+ {
+ u8 one;
+ gSaveBlock2Ptr->frontier.field_D0A = (one = 1);
+ gSaveBlock2Ptr->frontier.field_D0B = one;
+ }
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ do
+ {
+ if (i < 5)
+ trainerId = Random() % 10;
+ else if (i < 15)
+ trainerId = Random() % 20 + 10;
+ else
+ trainerId = Random() % 10 + 30;
+
+ for (j = 0; j < i; j++)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId)
+ break;
+ }
+ } while (j != i);
+
+ gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId;
+ for (j = 0; j < 3; j++)
+ {
+ // Make sure the mon is valid.
+ do
+ {
+ monTournamentId = RandomizeFacilityTrainerMonId(trainerId);
+ for (k = 0; k < j; k++)
+ {
+ s32 checkingMonId = gSaveBlock2Ptr->frontier.domeMonId[i][k];
+ if (checkingMonId == monTournamentId
+ || species[0] == gFacilityTrainerMons[monTournamentId].species
+ || species[1] == gFacilityTrainerMons[monTournamentId].species
+ || gFacilityTrainerMons[checkingMonId].itemTableId == gFacilityTrainerMons[monTournamentId].itemTableId)
+ break;
+ }
+ } while (k != j);
+
+ gSaveBlock2Ptr->frontier.domeMonId[i][j] = monTournamentId;
+ species[j] = gFacilityTrainerMons[monTournamentId].species;
+ }
+ gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated = 0;
+ gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt = 0;
+ gSaveBlock2Ptr->frontier.domeTrainers[i].unk3 = 0;
+ }
+
+ monLevel = 50;
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ monTypesBits = 0;
+ statSums[i] = 0;
+ ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId);
+ for (j = 0; j < 3; j++)
+ {
+ CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species,
+ monLevel, ivs,
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].evSpread,
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].nature,
+ statValues);
+
+ statSums[i] += statValues[STAT_ATK];
+ statSums[i] += statValues[STAT_DEF];
+ statSums[i] += statValues[STAT_SPATK];
+ statSums[i] += statValues[STAT_SPDEF];
+ statSums[i] += statValues[STAT_SPEED];
+ statSums[i] += statValues[STAT_HP];
+ monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species].type1];
+ monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[i][j]].species].type2];
+ }
+
+ // Because GF hates temporary vars, trainerId acts like monTypesCount here.
+ for (trainerId = 0, j = 0; j < 32; j++)
+ {
+ if (monTypesBits & 1)
+ trainerId++;
+ monTypesBits >>= 1;
+ }
+ statSums[i] += (trainerId * monLevel) / 20;
+ }
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT - 1; i++)
+ {
+ for (j = i + 1; j < DOME_TOURNAMENT_TRAINERS_COUNT; j++)
+ {
+ if (statSums[i] < statSums[j])
+ {
+ SwapDomeTrainers(i, j, statSums);
+ }
+ else if (statSums[i] == statSums[j])
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId > gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId)
+ SwapDomeTrainers(i, j, statSums);
+ }
+ }
+ }
+
+ Free(statSums);
+ Free(statValues);
+
+ for (i = 0; i < 4; i++)
+ DecideRoundWinners(i);
+
+ gSaveBlock2Ptr->frontier.lvlMode = lvlMode;
+}
+
+static s32 TrainerIdToTournamentId(u16 trainerId)
+{
+ s32 i;
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId)
+ break;
+ }
+
+ return i;
+}
+
+// The same as the above one, but has global scope.
+s32 TrainerIdToDomeTournamentId(u16 trainerId)
+{
+ s32 i;
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId)
+ break;
+ }
+
+ return i;
+}
+
+static u8 sub_81953E8(u8 tournamentId, u8 arg1)
+{
+ u8 arr[2];
+ sub_8192F08(gUnknown_0860D1A0[gUnknown_0860D1C0[tournamentId] / 2][arg1] - 16, arr);
+ if (tournamentId == arr[0])
+ return arr[1];
+ else
+ return arr[0];
+}
+
+static void DecideRoundWinners(u8 roundId)
+{
+ s32 i;
+ s32 moveSlot, monId1, monId2;
+ s32 tournamentId1, tournamentId2;
+ s32 species;
+ s32 points1 = 0, points2 = 0;
+
+ for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
+ {
+ if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated || gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER)
+ continue;
+
+ tournamentId1 = i;
+ tournamentId2 = TournamentIdOfOpponent(roundId, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].trainerId);
+ // Frontier Brain always wins, check tournamentId1.
+ if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId2 != 0xFF)
+ {
+ gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1;
+ gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId;
+ gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId);
+ }
+ // Frontier Brain always wins, check tournamentId2.
+ else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId1 != 0xFF)
+ {
+ gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1;
+ gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId;
+ gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId);
+ }
+ // Decide which one of two trainers wins!
+ else if (tournamentId2 != 0xFF)
+ {
+ // BUG: points1 and points2 are not cleared at the beginning of the loop resulting in not fair results.
+
+ // Calculate points for both trainers.
+ for (monId1 = 0; monId1 < 3; monId1++)
+ {
+ for (moveSlot = 0; moveSlot < 4; moveSlot++)
+ {
+ for (monId2 = 0; monId2 < 3; monId2++)
+ {
+ points1 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId1][monId1]].moves[moveSlot],
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId2][monId2]].species, 2);
+ }
+ }
+ species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId1][monId1]].species;
+ points1 += ( gBaseStats[species].baseHP
+ + gBaseStats[species].baseAttack
+ + gBaseStats[species].baseDefense
+ + gBaseStats[species].baseSpeed
+ + gBaseStats[species].baseSpAttack
+ + gBaseStats[species].baseSpDefense) / 10;
+ }
+ // Random part of the formula.
+ points1 += (Random() & 0x1F);
+ // Favor trainers with higher id;
+ points1 += tournamentId1;
+
+ for (monId1 = 0; monId1 < 3; monId1++)
+ {
+ for (moveSlot = 0; moveSlot < 4; moveSlot++)
+ {
+ for (monId2 = 0; monId2 < 3; monId2++)
+ {
+ points2 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId2][monId1]].moves[moveSlot],
+ gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId1][monId2]].species, 2);
+ }
+ }
+ species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonId[tournamentId2][monId1]].species;
+ points2 += ( gBaseStats[species].baseHP
+ + gBaseStats[species].baseAttack
+ + gBaseStats[species].baseDefense
+ + gBaseStats[species].baseSpeed
+ + gBaseStats[species].baseSpAttack
+ + gBaseStats[species].baseSpDefense) / 10;
+ }
+ // Random part of the formula.
+ points2 += (Random() & 0x1F);
+ // Favor trainers with higher id;
+ points2 += tournamentId2;
+
+ if (points1 > points2)
+ {
+ gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1;
+ gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId;
+ gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId);
+ }
+ else if (points1 < points2)
+ {
+ gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1;
+ gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId;
+ gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId);
+ }
+ // Points are the same, so we favor the one with the higher id.
+ else if (tournamentId1 > tournamentId2)
+ {
+ gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1;
+ gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId;
+ gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId);
+ }
+ else
+ {
+ gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1;
+ gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId;
+ gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId);
+ }
+ }
+ }
+}
+
+static void CopyDomeTrainerName(u8 *dst, u16 trainerId)
+{
+ s32 i = 0;
+ GetFacilityEnemyMonLevel(); // Unused return value.
+
+ if (trainerId == TRAINER_FRONTIER_BRAIN)
+ {
+ CopyDomeBrainTrainerName(dst);
+ }
+ else
+ {
+ if (trainerId == TRAINER_PLAYER)
+ {
+ for (i = 0; i < OT_NAME_LENGTH; i++)
+ dst[i] = gSaveBlock2Ptr->playerName[i];
+ }
+ else if (trainerId < 300)
+ {
+ for (i = 0; i < 7; i++)
+ dst[i] = gFacilityTrainers[trainerId].trainerName[i];
+ }
+ dst[i] = EOS;
+ }
+}
+
+static u8 GetDomeBrainTrainerPicId(void)
+{
+ return gTrainers[TRAINER_TUCKER].trainerPic;
+}
+
+static u8 GetDomeBrainTrainerClass(void)
+{
+ return gTrainers[TRAINER_TUCKER].trainerClass;
+}
+
+static void CopyDomeBrainTrainerName(u8 *dst)
+{
+ s32 i;
+
+ for (i = 0; i < 7; i++)
+ dst[i] = gTrainers[TRAINER_TUCKER].trainerName[i];
+ dst[i] = EOS;
+}
diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c
new file mode 100644
index 000000000..ee8a42954
--- /dev/null
+++ b/src/battle_frontier_1.c
@@ -0,0 +1,118 @@
+#include "global.h"
+#include "event_data.h"
+#include "battle_setup.h"
+#include "overworld.h"
+#include "random.h"
+#include "battle_tower.h"
+
+extern void sub_8162614(u16, u8);
+
+extern void (* const gUnknown_0860DE50[])(void);
+extern const u32 gUnknown_0860DE98[][2];
+extern const u32 gUnknown_0860DEA8[][2];
+
+// code
+void sub_8195960(void)
+{
+ gUnknown_0860DE50[gSpecialVar_0x8004]();
+}
+
+void sub_8195980(void)
+{
+ u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+
+ gSaveBlock2Ptr->frontier.field_CA8 = 0;
+ gSaveBlock2Ptr->frontier.field_CB2 = 0;
+ gSaveBlock2Ptr->frontier.field_CA9_a = 0;
+ gSaveBlock2Ptr->frontier.field_CA9_b = 0;
+ if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860DE98[battleMode][lvlMode]))
+ gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] = 0;
+
+ saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
+ gTrainerBattleOpponent_A = 0;
+}
+
+void sub_8195A38(void)
+{
+ u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+
+ switch (gSpecialVar_0x8005)
+ {
+ case 0:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_DC4[1];
+ break;
+ case 1:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode];
+ break;
+ case 2:
+ gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860DE98[battleMode][lvlMode]) != 0);
+ break;
+ }
+}
+
+void sub_8195AE4(void)
+{
+ u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+
+ switch (gSpecialVar_0x8005)
+ {
+ case 0:
+ gSaveBlock2Ptr->frontier.field_DC4[1] = gSpecialVar_0x8006;
+ break;
+ case 1:
+ gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] = gSpecialVar_0x8006;
+ break;
+ case 2:
+ if (gSpecialVar_0x8006)
+ gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860DE98[battleMode][lvlMode];
+ else
+ gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860DEA8[battleMode][lvlMode];
+ break;
+ }
+}
+
+void sub_8195BB0(void)
+{
+ u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+ u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+
+ if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] < 50)
+ gSpecialVar_Result = Random() % 3;
+ else if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] < 99)
+ gSpecialVar_Result = 3;
+ else
+ gSpecialVar_Result = 4;
+}
+
+void sub_8195C20(void)
+{
+ gTrainerBattleOpponent_A = 5 *(Random() % 255) / 64u;
+ sub_8162614(gTrainerBattleOpponent_A, 0);
+}
+
+void sub_8195C50(void)
+{
+ if (gTrainerBattleOpponent_A < 300)
+ ConvertBattleFrontierTrainerSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore);
+}
+
+/*
+void sub_8195C7C(void)
+{
+ u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+
+ if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode] < 9999)
+ {
+ u16 wat = 0;
+ gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode]++;
+ if (lvlMode < gSaveBlock2Ptr->frontier.field_DD0[battleMode][lvlMode])
+ wat = 1;
+ if (gSaveBlock2Ptr->frontier.field_DC8[battleMode][wat] != 0)
+ gSaveBlock2Ptr->frontier.field_DD0[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.field_DC8[battleMode][lvlMode];
+ }
+}
+*/
diff --git a/src/battle_main.c b/src/battle_main.c
index 86937f85f..c31fb48d5 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -3929,7 +3929,7 @@ static void TryDoEventsBeforeFirstTurn(void)
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
{
StopCryAndClearCrySongs();
- BattleScriptExecute(BattleScript_82DB8BE);
+ BattleScriptExecute(BattleScript_ArenaTurnBeginning);
}
}
@@ -4019,7 +4019,7 @@ void BattleTurnPassed(void)
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
BattleScriptExecute(BattleScript_82DB881);
else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_DA == 0)
- BattleScriptExecute(BattleScript_82DB8BE);
+ BattleScriptExecute(BattleScript_ArenaTurnBeginning);
}
u8 IsRunningFromBattleImpossible(void)
@@ -4596,13 +4596,10 @@ static void sub_803CDF8(void)
void SwapTurnOrder(u8 id1, u8 id2)
{
- u32 temp = gActionsByTurnOrder[id1];
- gActionsByTurnOrder[id1] = gActionsByTurnOrder[id2];
- gActionsByTurnOrder[id2] = temp;
-
- temp = gBattlerByTurnOrder[id1];
- gBattlerByTurnOrder[id1] = gBattlerByTurnOrder[id2];
- gBattlerByTurnOrder[id2] = temp;
+ u32 temp;
+
+ SWAP(gActionsByTurnOrder[id1], gActionsByTurnOrder[id2], temp);
+ SWAP(gBattlerByTurnOrder[id1], gBattlerByTurnOrder[id2], temp);
}
u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves)
diff --git a/src/battle_message.c b/src/battle_message.c
index 13502d6f2..78b9ac53b 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -1248,7 +1248,7 @@ static const u8 sText_Round2[] = _("Round 2");
static const u8 sText_Semifinal[] = _("Semifinal");
static const u8 sText_Final[] = _("Final");
-const u8 * const gRoundsStringTable[] =
+const u8 *const gRoundsStringTable[] =
{
sText_Round1,
sText_Round2,
diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c
deleted file mode 100644
index f9cc48a9a..000000000
--- a/src/battle_pyramid.c
+++ /dev/null
@@ -1,248 +0,0 @@
-#include "global.h"
-#include "main.h"
-#include "battle_controllers.h"
-#include "bg.h"
-#include "field_effect.h"
-#include "field_weather.h"
-#include "gpu_regs.h"
-#include "malloc.h"
-#include "menu.h"
-#include "menu_helpers.h"
-#include "overworld.h"
-#include "palette.h"
-#include "party_menu.h"
-#include "scanline_effect.h"
-#include "script.h"
-#include "task.h"
-#include "constants/rgb.h"
-
-EWRAM_DATA struct
-{
- u32 unk0;
- u8 filler4[0x804 - 0x4];
- u8 unk804[11];
- u8 unk80F[5];
- u8 unk814;
- u8 filler815;
- s8 unk816;
- u8 filler817[0x984 - 0x817];
- u16 unk984;
- u8 filler986[0x98C - 0x986];
-} *gUnknown_0203CF2C = NULL;
-EWRAM_DATA struct
-{
- void (*callback)(void);
- u8 unk4;
- u16 unk6;
- u16 unk8;
-} gUnknown_0203CF30 = {0};
-
-extern const struct BgTemplate gUnknown_0861F2B4[3];
-
-void sub_81C4F98(u8 a0, void (*callback)(void));
-void sub_81C4F44(u8 taskId);
-void sub_81C504C(void);
-bool8 sub_81C5078(void);
-void sub_81C51DC(void);
-bool8 sub_81C5238(void);
-void sub_81C5314(void);
-void sub_81C5674(void);
-void sub_81C56F8(void);
-void sub_81C5924(void);
-void sub_81C59BC(void);
-void sub_81C5A20(void);
-void sub_81C6BD8(void);
-void sub_81C6EF4(void);
-void sub_81C700C(void);
-
-void sub_81C4EEC(void)
-{
- gUnknown_0203CF30.unk6 = 0;
- gUnknown_0203CF30.unk8 = 0;
-}
-
-void sub_81C4EFC(void)
-{
- sub_81C4F98(0, CB2_ReturnToFieldWithOpenMenu);
-}
-
-void sub_81C4F10(void)
-{
- sub_81C4F98(1, SetCB2ToReshowScreenAfterMenu2);
-}
-
-void sub_81C4F24(void)
-{
- ScriptContext2_Enable();
- FadeScreen(1, 0);
- CreateTask(sub_81C4F44, 10);
-}
-
-void sub_81C4F44(u8 taskId)
-{
- if (!gPaletteFade.active)
- {
- overworld_free_bg_tilemaps();
- gFieldCallback2 = hm_add_c3_without_phase_2;
- sub_81C4F98(3, CB2_ReturnToField);
- DestroyTask(taskId);
- }
-}
-
-void sub_81C4F84(void)
-{
- sub_81C4F98(4, gUnknown_0203CF30.callback);
-}
-
-void sub_81C4F98(u8 a0, void (*callback)(void))
-{
- gUnknown_0203CF2C = AllocZeroed(sizeof(*gUnknown_0203CF2C));
-
- if (a0 != 4)
- {
- gUnknown_0203CF30.unk4 = a0;
- }
-
- if (callback != NULL)
- {
- gUnknown_0203CF30.callback = callback;
- }
-
- gUnknown_0203CF2C->unk0 = 0;
- gUnknown_0203CF2C->unk814 = -1;
- gUnknown_0203CF2C->unk816 = -1;
-
- memset(gUnknown_0203CF2C->unk804, 0xFF, sizeof(gUnknown_0203CF2C->unk804));
- memset(gUnknown_0203CF2C->unk80F, 0xFF, sizeof(gUnknown_0203CF2C->unk80F));
-
- SetMainCallback2(sub_81C504C);
-}
-
-void sub_81C501C(void)
-{
- RunTasks();
- AnimateSprites();
- BuildOamBuffer();
- do_scheduled_bg_tilemap_copies_to_vram();
- UpdatePaletteFade();
-}
-
-void sub_81C5038(void)
-{
- LoadOam();
- ProcessSpriteCopyRequests();
- TransferPlttBuffer();
-}
-
-void sub_81C504C(void)
-{
- while (sub_81221EC() != TRUE && sub_81C5078() != TRUE && sub_81221AC() != TRUE);
-}
-
-bool8 sub_81C5078(void)
-{
- switch (gMain.state)
- {
- case 0:
- SetVBlankHBlankCallbacksToNull();
- clear_scheduled_bg_copies_to_vram();
- gMain.state++;
- break;
- case 1:
- ScanlineEffect_Stop();
- gMain.state++;
- break;
- case 2:
- FreeAllSpritePalettes();
- gMain.state++;
- break;
- case 3:
- ResetPaletteFade();
- gPaletteFade.bufferTransferDisabled = TRUE;
- gMain.state++;
- break;
- case 4:
- ResetSpriteData();
- gMain.state++;
- break;
- case 5:
- if (!sub_81221AC())
- {
- ResetTasks();
- }
- gMain.state++;
- break;
- case 6:
- sub_81C51DC();
- gUnknown_0203CF2C->unk984 = 0;
- gMain.state++;
- break;
- case 7:
- if (sub_81C5238())
- {
- gMain.state++;
- }
- break;
- case 8:
- sub_81C6BD8();
- gMain.state++;
- break;
- case 9:
- sub_81C5924();
- sub_81C59BC();
- sub_81C5A20();
- gMain.state++;
- break;
- case 10:
- sub_81C5314();
- gMain.state++;
- break;
- case 11:
- sub_81C56F8();
- gMain.state++;
- break;
- case 12:
- sub_81C6EF4();
- gMain.state++;
- break;
- case 13:
- sub_81C5674();
- gMain.state++;
- break;
- case 14:
- sub_81C700C();
- gMain.state++;
- break;
- case 15:
- BlendPalettes(0xFFFFFFFF, 0x10, 0);
- gMain.state++;
- break;
- case 16:
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
- gPaletteFade.bufferTransferDisabled = FALSE;
- gMain.state++;
- break;
- default:
- SetVBlankCallback(sub_81C5038);
- SetMainCallback2(sub_81C501C);
- return TRUE;
- }
- return FALSE;
-}
-
-void sub_81C51DC(void)
-{
- ResetVramOamAndBgCntRegs();
- ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(0, gUnknown_0861F2B4, ARRAY_COUNT(gUnknown_0861F2B4));
- SetBgTilemapBuffer(2, gUnknown_0203CF2C->filler4);
- ResetAllBgsCoordinates();
- schedule_bg_copy_tilemap_to_vram(2);
- SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 |
- DISPCNT_OBJ_1D_MAP |
- DISPCNT_OBJ_ON);
- ShowBg(0);
- ShowBg(1);
- ShowBg(2);
- SetGpuReg(REG_OFFSET_BLDCNT, 0);
-}
diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c
new file mode 100644
index 000000000..8a5ce7a99
--- /dev/null
+++ b/src/battle_pyramid_bag.c
@@ -0,0 +1,1434 @@
+#include "global.h"
+#include "battle_pyramid_bag.h"
+#include "main.h"
+#include "battle_controllers.h"
+#include "bg.h"
+#include "field_effect.h"
+#include "field_weather.h"
+#include "gpu_regs.h"
+#include "malloc.h"
+#include "menu.h"
+#include "overworld.h"
+#include "menu_helpers.h"
+#include "overworld.h"
+#include "palette.h"
+#include "party_menu.h"
+#include "scanline_effect.h"
+#include "script.h"
+#include "task.h"
+#include "decompress.h"
+#include "graphics.h"
+#include "string_util.h"
+#include "list_menu.h"
+#include "strings.h"
+#include "item.h"
+#include "sound.h"
+#include "item_menu.h"
+#include "mail.h"
+#include "item_use.h"
+#include "event_data.h"
+#include "text_window.h"
+#include "international_string_util.h"
+#include "item_icon.h"
+#include "constants/items.h"
+#include "constants/rgb.h"
+#include "constants/songs.h"
+
+EWRAM_DATA struct PyramidBagResources *gPyramidBagResources = NULL;
+EWRAM_DATA struct PyramidBagCursorData gPyramidBagCursorData = {0};
+
+// gfx
+extern const u8 gUnknown_08D9ADD0[];
+extern const u8 gUnknown_08D9AE04[];
+extern const u8 gUnknown_08D9AF44[];
+extern const u16 gUnknown_0860F074[];
+
+// This file's functions.
+static void Task_HandlePyramidBagInput(u8 taskId);
+static void sub_81C4F44(u8 taskId);
+static void sub_81C5B4C(u8 taskId);
+static void Task_BeginItemSwap(u8 taskId);
+static void sub_81C5D20(u8 taskId);
+static void sub_81C674C(u8 taskId);
+static void HandleMenuActionInput(u8 taskId);
+static void HandleFewMenuActionsInput(u8 taskId);
+static void sub_81C66EC(u8 taskId);
+static void SetTaskToMainPyramidBagInputHandler(u8 taskId);
+static void sub_81C6350(u8 taskId);
+static void sub_81C64B4(u8 taskId);
+static void sub_81C65CC(u8 taskId);
+static void sub_81C66AC(u8 taskId);
+static void PerformItemSwap(u8 taskId);
+static void Task_ItemSwapHandleInput(u8 taskId);
+static void sub_81C6A14(u8 taskId);
+static void SetBagItemsListTemplate(void);
+static void sub_81C504C(void);
+static void sub_81C51DC(void);
+static void AddScrollArrow(void);
+static void sub_81C56F8(void);
+static void sub_81C5A20(void);
+static void sub_81C6BD8(void);
+static void sub_81C6EF4(void);
+static void sub_81C700C(void);
+static void sub_81C6E98(void);
+static void sub_81C6F20(void);
+static void sub_81C6404(void);
+static void sub_81C6E1C(void);
+static bool8 sub_81C5238(void);
+static bool8 sub_81C5078(void);
+static void ShowItemImage(u16 itemId, u8 itemSpriteArrayId);
+static void PyramidBag_CopyItemName(u8 *dst, u16 itemId);
+static void sub_81C6FF8(u8 arg0);
+static void PrintItemDescription(s32 listMenuId);
+static void sub_81C5AB8(u8 y, u8 arg1);
+static void PrintOnWindow_Font1(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId);
+static void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId);
+static u8 sub_81C6D24(u8 windowArrayId);
+static void sub_81C6D6C(u8 windowArrayId);
+static void sub_81C5EAC(u8 windowId);
+static void sub_81C5F08(u8 windowId, u8 horizontalCount, u8 verticalCount);
+static bool8 IsValidMenuAction(s8 arg0);
+static void sub_81C6DAC(u8 taskId, const struct YesNoFuncTable *yesNoTable);
+static void sub_81C6CEC(u8 windowId);
+static void sub_81C704C(u8 y);
+static void sub_81C7028(bool8 invisible);
+static void sub_81C6F68(struct Sprite *sprite);
+static void BagAction_UseOnField(u8 taskId);
+static void BagAction_Toss(u8 taskId);
+static void BagAction_Give(u8 taskId);
+static void BagAction_Cancel(u8 taskId);
+static void BagAction_UseInBattle(u8 taskId);
+static void PyramidBagMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list);
+static void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y);
+static void TossItem(u8 taskId);
+static void DontTossItem(u8 taskId);
+
+// Const rom data.
+static const struct BgTemplate gUnknown_0861F2B4[] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 1,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 29,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ },
+};
+
+static const struct ListMenuTemplate gUnknown_0861F2C0 =
+{
+ .items = NULL,
+ .moveCursorFunc = PyramidBagMoveCursorFunc,
+ .itemPrintFunc = PrintItemQuantity,
+ .totalItems = 0,
+ .maxShowed = 0,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 1,
+ .cursorPal = 2,
+ .fillValue = 0,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 0,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
+ .fontId = 7,
+ .cursorKind = 0
+};
+
+#define ACTION_USE_FIELD 0
+#define ACTION_TOSS 1
+#define ACTION_GIVE 2
+#define ACTION_CANCEL 3
+#define ACTION_USE_BATTLE 4
+#define ACTION_DUMMY 5
+
+static const struct MenuAction sMenuActions[] =
+{
+ [ACTION_USE_FIELD] = { gMenuText_Use, BagAction_UseOnField },
+ [ACTION_TOSS] = { gMenuText_Toss, BagAction_Toss },
+ [ACTION_GIVE] = { gMenuText_Give, BagAction_Give },
+ [ACTION_CANCEL] = { gText_Cancel2, BagAction_Cancel },
+ [ACTION_USE_BATTLE] = { gMenuText_Use, BagAction_UseInBattle },
+ [ACTION_DUMMY] = { gText_EmptyString2, NULL },
+};
+
+static const u8 sFieldMenuActionIds[] = {ACTION_USE_FIELD, ACTION_GIVE, ACTION_TOSS, ACTION_CANCEL};
+static const u8 gUnknown_0861F30C[] = {ACTION_TOSS, ACTION_CANCEL};
+static const u8 sBattleMenuActionIds[] = {ACTION_USE_BATTLE, ACTION_CANCEL};
+static const u8 gUnknown_0861F310[] = {ACTION_CANCEL};
+
+static const struct YesNoFuncTable sYesNoTossFuncions =
+{
+ TossItem, DontTossItem
+};
+
+static const u8 sColorTable[][3] =
+{
+ {0, 2, 3},
+ {0, 3, 1},
+ {1, 2, 3},
+};
+
+static const struct WindowTemplate gUnknown_0861F328[] =
+{
+ {0x00, 0x0e, 0x02, 0x0f, 0x10, 0x0f, 0x001e},
+ {0x00, 0x00, 0x0d, 0x0e, 0x06, 0x0f, 0x010e},
+ {0x01, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x0162},
+ {0x01, 0x18, 0x11, 0x05, 0x02, 0x0f, 0x01ce},
+ DUMMY_WIN_TEMPLATE,
+};
+
+static const struct WindowTemplate gUnknown_0861F350[] =
+{
+ {0x01, 0x16, 0x11, 0x07, 0x02, 0x0f, 0x01d8},
+ {0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01d8},
+ {0x01, 0x0f, 0x0f, 0x0e, 0x04, 0x0f, 0x01d8},
+ {0x01, 0x0f, 0x0d, 0x0e, 0x06, 0x0f, 0x01d8},
+ {0x01, 0x18, 0x0f, 0x05, 0x04, 0x0f, 0x01d8},
+};
+
+extern const struct CompressedSpriteSheet gUnknown_0861F3CC;
+extern const struct SpriteTemplate gUnknown_0861F3D4;
+
+// code
+void sub_81C4EEC(void)
+{
+ gPyramidBagCursorData.cursorPosition = 0;
+ gPyramidBagCursorData.scrollPosition = 0;
+}
+
+void CB2_PyramidBagMenuFromStartMenu(void)
+{
+ sub_81C4F98(0, CB2_ReturnToFieldWithOpenMenu);
+}
+
+static void sub_81C4F10(void)
+{
+ sub_81C4F98(1, SetCB2ToReshowScreenAfterMenu2);
+}
+
+void sub_81C4F24(void)
+{
+ ScriptContext2_Enable();
+ FadeScreen(1, 0);
+ CreateTask(sub_81C4F44, 10);
+}
+
+static void sub_81C4F44(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ overworld_free_bg_tilemaps();
+ gFieldCallback2 = hm_add_c3_without_phase_2;
+ sub_81C4F98(3, CB2_ReturnToField);
+ DestroyTask(taskId);
+ }
+}
+
+void sub_81C4F84(void)
+{
+ sub_81C4F98(4, gPyramidBagCursorData.callback);
+}
+
+void sub_81C4F98(u8 a0, void (*callback)(void))
+{
+ gPyramidBagResources = AllocZeroed(sizeof(*gPyramidBagResources));
+
+ if (a0 != 4)
+ gPyramidBagCursorData.unk4 = a0;
+
+ if (callback != NULL)
+ gPyramidBagCursorData.callback = callback;
+
+ gPyramidBagResources->callback2 = NULL;
+ gPyramidBagResources->unk814 = 0xFF;
+ gPyramidBagResources->scrollArrowSpriteId = 0xFF;
+
+ memset(gPyramidBagResources->itemsSpriteIds, 0xFF, sizeof(gPyramidBagResources->itemsSpriteIds));
+ memset(gPyramidBagResources->windowIds, 0xFF, sizeof(gPyramidBagResources->windowIds));
+
+ SetMainCallback2(sub_81C504C);
+}
+
+static void sub_81C501C(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ do_scheduled_bg_tilemap_copies_to_vram();
+ UpdatePaletteFade();
+}
+
+static void sub_81C5038(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void sub_81C504C(void)
+{
+ while (sub_81221EC() != TRUE && sub_81C5078() != TRUE && sub_81221AC() != TRUE);
+}
+
+static bool8 sub_81C5078(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankHBlankCallbacksToNull();
+ clear_scheduled_bg_copies_to_vram();
+ gMain.state++;
+ break;
+ case 1:
+ ScanlineEffect_Stop();
+ gMain.state++;
+ break;
+ case 2:
+ FreeAllSpritePalettes();
+ gMain.state++;
+ break;
+ case 3:
+ ResetPaletteFade();
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ gMain.state++;
+ break;
+ case 4:
+ ResetSpriteData();
+ gMain.state++;
+ break;
+ case 5:
+ if (!sub_81221AC())
+ {
+ ResetTasks();
+ }
+ gMain.state++;
+ break;
+ case 6:
+ sub_81C51DC();
+ gPyramidBagResources->state = 0;
+ gMain.state++;
+ break;
+ case 7:
+ if (sub_81C5238())
+ {
+ gMain.state++;
+ }
+ break;
+ case 8:
+ sub_81C6BD8();
+ gMain.state++;
+ break;
+ case 9:
+ sub_81C5924();
+ sub_81C59BC();
+ sub_81C5A20();
+ gMain.state++;
+ break;
+ case 10:
+ SetBagItemsListTemplate();
+ gMain.state++;
+ break;
+ case 11:
+ sub_81C56F8();
+ gMain.state++;
+ break;
+ case 12:
+ sub_81C6EF4();
+ gMain.state++;
+ break;
+ case 13:
+ AddScrollArrow();
+ gMain.state++;
+ break;
+ case 14:
+ sub_81C700C();
+ gMain.state++;
+ break;
+ case 15:
+ BlendPalettes(0xFFFFFFFF, 0x10, 0);
+ gMain.state++;
+ break;
+ case 16:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ gMain.state++;
+ break;
+ default:
+ SetVBlankCallback(sub_81C5038);
+ SetMainCallback2(sub_81C501C);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void sub_81C51DC(void)
+{
+ ResetVramOamAndBgCntRegs();
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, gUnknown_0861F2B4, ARRAY_COUNT(gUnknown_0861F2B4));
+ SetBgTilemapBuffer(2, gPyramidBagResources->tilemapBuffer);
+ ResetAllBgsCoordinates();
+ schedule_bg_copy_tilemap_to_vram(2);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 |
+ DISPCNT_OBJ_1D_MAP |
+ DISPCNT_OBJ_ON);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+}
+
+static bool8 sub_81C5238(void)
+{
+ switch (gPyramidBagResources->state)
+ {
+ case 0:
+ reset_temp_tile_data_buffers();
+ decompress_and_copy_tile_data_to_vram(2, gBagScreen_Gfx, 0, 0, 0);
+ gPyramidBagResources->state++;
+ break;
+ case 1:
+ if (free_temp_tile_data_buffers_if_possible() != TRUE)
+ {
+ LZDecompressWram(gUnknown_08D9AE04, gPyramidBagResources->tilemapBuffer);
+ gPyramidBagResources->state++;
+ }
+ break;
+ case 2:
+ LoadCompressedPalette(gUnknown_08D9AF44, 0, 0x20);
+ gPyramidBagResources->state++;
+ break;
+ case 3:
+ LoadCompressedObjectPic(&gUnknown_0861F3CC);
+ gPyramidBagResources->state++;
+ break;
+ case 4:
+ sub_81C6E98();
+ gPyramidBagResources->state++;
+ break;
+ default:
+ LoadListMenuArrowsGfx();
+ gPyramidBagResources->state = 0;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void SetBagItemsListTemplate(void)
+{
+ u16 i;
+ u16 *pyramidItems = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
+
+ for (i = 0; i < gPyramidBagResources->listMenuCount - 1; i++)
+ {
+ PyramidBag_CopyItemName(gPyramidBagResources->itemStrings[i], pyramidItems[i]);
+ gPyramidBagResources->bagListItems[i].name = gPyramidBagResources->itemStrings[i];
+ gPyramidBagResources->bagListItems[i].id = i;
+ }
+ StringCopy(gPyramidBagResources->itemStrings[i], gText_CloseBag);
+ gPyramidBagResources->bagListItems[i].name = gPyramidBagResources->itemStrings[i];
+ gPyramidBagResources->bagListItems[i].id = LIST_B_PRESSED;
+ gMultiuseListMenuTemplate = gUnknown_0861F2C0;
+ gMultiuseListMenuTemplate.totalItems = gPyramidBagResources->listMenuCount;
+ gMultiuseListMenuTemplate.items = gPyramidBagResources->bagListItems;
+ gMultiuseListMenuTemplate.maxShowed = gPyramidBagResources->listMenuMaxShown;
+}
+
+static void PyramidBag_CopyItemName(u8 *dst, u16 itemId)
+{
+ if (ItemId_GetPocket(itemId) == POCKET_BERRIES)
+ {
+ ConvertIntToDecimalStringN(gStringVar1, ITEM_TO_BERRY(itemId), STR_CONV_MODE_LEADING_ZEROS, 2);
+ CopyItemName(itemId, gStringVar2);
+ StringExpandPlaceholders(dst, gText_UnkF908Var1Clear7Var2);
+ }
+ else
+ {
+ CopyItemName(itemId, dst);
+ }
+}
+
+static void PyramidBagMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list)
+{
+ if (onInit != TRUE)
+ {
+ PlaySE(SE_SELECT);
+ sub_81C6F20();
+ }
+ if (gPyramidBagResources->unk814 == 0xFF)
+ {
+ sub_81C6FF8(gPyramidBagResources->unk815 ^ 1);
+ if (itemIndex != LIST_B_PRESSED)
+ ShowItemImage(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][itemIndex], gPyramidBagResources->unk815);
+ else
+ ShowItemImage(0xFFFF, gPyramidBagResources->unk815);
+ gPyramidBagResources->unk815 ^= 1;
+ PrintItemDescription(itemIndex);
+ }
+}
+
+static void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y)
+{
+ s32 xAlign;
+ if (itemIndex == LIST_B_PRESSED)
+ return;
+
+ if (gPyramidBagResources->unk814 != 0xFF)
+ {
+ if (gPyramidBagResources->unk814 == (u8)(itemIndex))
+ sub_81C5AB8(y, 1);
+ else
+ sub_81C5AB8(y, 0xFF);
+ }
+ ConvertIntToDecimalStringN(gStringVar1,
+ gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode][itemIndex],
+ STR_CONV_MODE_RIGHT_ALIGN,
+ 2);
+ StringExpandPlaceholders(gStringVar4, gText_xVar1);
+ xAlign = GetStringRightAlignXOffset(7, gStringVar4, 0x77);
+ PrintOnWindow_Font7(windowId, gStringVar4, xAlign, y, 0, 0, TEXT_SPEED_FF, 0);
+}
+
+static void PrintItemDescription(s32 listMenuId)
+{
+ const u8 *desc;
+ if (listMenuId != LIST_B_PRESSED)
+ {
+ desc = ItemId_GetDescription(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][listMenuId]);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gReturnToXStringsTable2[gPyramidBagCursorData.unk4]);
+ StringExpandPlaceholders(gStringVar4, gText_ReturnToVar1);
+ desc = gStringVar4;
+ }
+ FillWindowPixelBuffer(1, 0);
+ PrintOnWindow_Font1(1, desc, 3, 0, 0, 1, 0, 0);
+}
+
+static void AddScrollArrow(void)
+{
+ if (gPyramidBagResources->scrollArrowSpriteId == 0xFF)
+ gPyramidBagResources->scrollArrowSpriteId = AddScrollIndicatorArrowPairParameterized(2, 172, 12, 148, gPyramidBagResources->listMenuCount - gPyramidBagResources->listMenuMaxShown, 0xB5E, 0xB5E, &gPyramidBagCursorData.scrollPosition);
+}
+
+static void RemoveScrollArrow(void)
+{
+ if (gPyramidBagResources->scrollArrowSpriteId != 0xFF)
+ {
+ RemoveScrollIndicatorArrowPair(gPyramidBagResources->scrollArrowSpriteId);
+ gPyramidBagResources->scrollArrowSpriteId = 0xFF;
+ }
+}
+
+static void sub_81C56F8(void)
+{
+ u8 taskId = CreateTask(Task_HandlePyramidBagInput, 0);
+ s16 *data = gTasks[taskId].data;
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gPyramidBagCursorData.scrollPosition, gPyramidBagCursorData.cursorPosition);
+}
+
+static void SwapItems(u8 id1, u8 id2)
+{
+ u16 temp;
+ u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
+ u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode];
+
+ SWAP(itemIds[id1], itemIds[id2], temp);
+ SWAP(quantities[id1], quantities[id2], temp);
+}
+
+static void MovePyramidBagItemSlotInList(u8 from, u8 to)
+{
+ u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
+ u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode];
+
+ if (from != to)
+ {
+ s16 i;
+ u16 firstSlotItemId = itemIds[from];
+ u8 firstSlotQuantity = quantities[from];
+
+ if (to > from)
+ {
+ to--;
+ for (i = from; i < to; i++)
+ {
+ itemIds[i] = itemIds[i + 1];
+ quantities[i] = quantities[i + 1];
+ }
+ }
+ else
+ {
+ for (i = from; i > to; i--)
+ {
+ itemIds[i] = itemIds[i - 1];
+ quantities[i] = quantities[i - 1];
+ }
+ }
+ itemIds[to] = firstSlotItemId;
+ quantities[to] = firstSlotQuantity;
+ }
+}
+
+static void CompactItems(void)
+{
+ u8 i, j;
+ u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
+ u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode];
+
+ for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++)
+ {
+ if (itemIds[i] == 0 || quantities[i] == 0)
+ {
+ itemIds[i] = 0;
+ quantities[i] = 0;
+ }
+ }
+ for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT - 1; i++)
+ {
+ for (j = i + 1; j < PYRAMID_BAG_ITEMS_COUNT; j++)
+ {
+ if (itemIds[i] == 0 || quantities[i] == 0)
+ SwapItems(i, j);
+ }
+ }
+}
+
+void sub_81C5924(void)
+{
+ u16 i;
+ u16 *itemIds = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
+
+ CompactItems();
+ gPyramidBagResources->listMenuCount = 0;
+ for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++)
+ {
+ if (itemIds[i] != 0)
+ gPyramidBagResources->listMenuCount++;
+ }
+ gPyramidBagResources->listMenuCount++;
+ if (gPyramidBagResources->listMenuCount > 8)
+ gPyramidBagResources->listMenuMaxShown = 8;
+ else
+ gPyramidBagResources->listMenuMaxShown = gPyramidBagResources->listMenuCount;
+}
+
+void sub_81C59BC(void)
+{
+ if (gPyramidBagCursorData.scrollPosition != 0 && gPyramidBagCursorData.scrollPosition + gPyramidBagResources->listMenuMaxShown > gPyramidBagResources->listMenuCount)
+ gPyramidBagCursorData.scrollPosition = gPyramidBagResources->listMenuCount - gPyramidBagResources->listMenuMaxShown;
+ if (gPyramidBagCursorData.scrollPosition + gPyramidBagCursorData.cursorPosition >= gPyramidBagResources->listMenuCount)
+ {
+ if (gPyramidBagResources->listMenuCount == 0)
+ gPyramidBagCursorData.cursorPosition = 0;
+ else
+ gPyramidBagCursorData.cursorPosition = gPyramidBagResources->listMenuCount - 1;
+ }
+}
+
+static void sub_81C5A20(void)
+{
+ u8 i;
+
+ if (gPyramidBagCursorData.cursorPosition > 4)
+ {
+ for (i = 0; i <= gPyramidBagCursorData.cursorPosition - 4; i++)
+ {
+ if (gPyramidBagCursorData.scrollPosition + gPyramidBagResources->listMenuMaxShown == gPyramidBagResources->listMenuCount)
+ {
+ // daycare.c sends its regards.
+ break;
+ }
+ gPyramidBagCursorData.cursorPosition--;
+ gPyramidBagCursorData.scrollPosition++;
+ }
+ }
+}
+
+static void sub_81C5A98(u8 listMenuTaskId, u8 arg1)
+{
+ u8 y = ListMenuGetYCoordForPrintingArrowCursor(listMenuTaskId);
+ sub_81C5AB8(y, arg1);
+}
+
+static void sub_81C5AB8(u8 y, u8 arg1)
+{
+ if (arg1 == 0xFF)
+ FillWindowPixelRect(0, 0, 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1));
+ else
+ PrintOnWindow_Font1(0, gText_SelectorArrow2, 0, y, 0, 0, 0, arg1);
+}
+
+void sub_81C5B14(u8 taskId)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
+ gTasks[taskId].func = sub_81C5B4C;
+}
+
+static void sub_81C5B4C(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (!gPaletteFade.active)
+ {
+ DestroyListMenuTask(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition);
+ if (gPyramidBagResources->callback2 != NULL)
+ SetMainCallback2(gPyramidBagResources->callback2);
+ else
+ SetMainCallback2(gPyramidBagCursorData.callback);
+ RemoveScrollArrow();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ FreeAllWindowBuffers();
+ Free(gPyramidBagResources);
+ DestroyTask(taskId);
+ }
+}
+
+static void Task_HandlePyramidBagInput(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (sub_81221EC() != TRUE && !gPaletteFade.active)
+ {
+ if (gMain.newKeys & SELECT_BUTTON)
+ {
+ if (gPyramidBagCursorData.unk4 != 2)
+ {
+ ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition);
+ if (gPyramidBagCursorData.scrollPosition + gPyramidBagCursorData.cursorPosition != gPyramidBagResources->listMenuCount - 1)
+ {
+ PlaySE(SE_SELECT);
+ Task_BeginItemSwap(taskId);
+ }
+ }
+ }
+ else
+ {
+ s32 listId = ListMenuHandleInputGetItemId(data[0]);
+ ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition);
+ switch (listId)
+ {
+ case LIST_NOTHING_CHOSEN:
+ break;
+ case LIST_B_PRESSED:
+ PlaySE(SE_SELECT);
+ gSpecialVar_ItemId = 0;
+ sub_81C5B14(taskId);
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ gSpecialVar_ItemId = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][listId];
+ data[1] = listId;
+ data[2] = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode][listId];
+ if (gPyramidBagCursorData.unk4 == 2)
+ sub_81C674C(taskId);
+ else
+ sub_81C5D20(taskId);
+ break;
+ }
+ }
+ }
+}
+
+static void sub_81C5D20(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ RemoveScrollArrow();
+ sub_81C5A98(data[0], 1);
+ switch (gPyramidBagCursorData.unk4)
+ {
+ default:
+ gPyramidBagResources->menuActionIds = sFieldMenuActionIds;
+ gPyramidBagResources->menuActionsCount = ARRAY_COUNT(sFieldMenuActionIds);
+ break;
+ case 1:
+ if (ItemId_GetBattleUsage(gSpecialVar_ItemId))
+ {
+ gPyramidBagResources->menuActionIds = sBattleMenuActionIds;
+ gPyramidBagResources->menuActionsCount = ARRAY_COUNT(sBattleMenuActionIds);
+ }
+ else
+ {
+ gPyramidBagResources->menuActionIds = gUnknown_0861F310;
+ gPyramidBagResources->menuActionsCount = ARRAY_COUNT(gUnknown_0861F310);
+ }
+ break;
+ case 3:
+ gPyramidBagResources->menuActionIds = gUnknown_0861F30C;
+ gPyramidBagResources->menuActionsCount = ARRAY_COUNT(gUnknown_0861F30C);
+ break;
+ }
+
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_Var1IsSelected);
+ FillWindowPixelBuffer(1, 0);
+ PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0);
+ if (gPyramidBagResources->menuActionsCount == 1)
+ sub_81C5EAC(sub_81C6D24(0));
+ else if (gPyramidBagResources->menuActionsCount == 2)
+ sub_81C5EAC(sub_81C6D24(1));
+ else
+ sub_81C5F08(sub_81C6D24(2), 2, 2);
+
+ if (gPyramidBagResources->menuActionsCount == 4)
+ gTasks[taskId].func = HandleMenuActionInput;
+ else
+ gTasks[taskId].func = HandleFewMenuActionsInput;
+}
+
+static void sub_81C5EAC(u8 windowId)
+{
+ AddItemMenuActionTextPrinters(windowId, 7, 8, 1, 0, 0x10, gPyramidBagResources->menuActionsCount, sMenuActions, gPyramidBagResources->menuActionIds);
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, gPyramidBagResources->menuActionsCount, 0);
+}
+
+static void sub_81C5F08(u8 windowId, u8 horizontalCount, u8 verticalCount)
+{
+ sub_8198DBC(windowId, 7, 8, 1, 0x38, horizontalCount, verticalCount, sMenuActions, gPyramidBagResources->menuActionIds);
+ sub_8199944(windowId, 0x38, horizontalCount, verticalCount, 0);
+}
+
+static void HandleFewMenuActionsInput(u8 taskId)
+{
+ if (sub_81221EC() != TRUE)
+ {
+ s32 id = Menu_ProcessInputNoWrapAround();
+ switch (id)
+ {
+ case -2:
+ break;
+ case -1:
+ PlaySE(SE_SELECT);
+ sMenuActions[ACTION_CANCEL].func.void_u8(taskId);
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ if (sMenuActions[gPyramidBagResources->menuActionIds[id]].func.void_u8 != NULL)
+ sMenuActions[gPyramidBagResources->menuActionIds[id]].func.void_u8(taskId);
+ break;
+ }
+ }
+}
+
+static void HandleMenuActionInput(u8 taskId)
+{
+ if (sub_81221EC() != TRUE)
+ {
+ s8 id = GetMenuCursorPos();
+ if (gMain.newKeys & DPAD_UP)
+ {
+ if (id > 0 && IsValidMenuAction(id - 2))
+ {
+ PlaySE(SE_SELECT);
+ sub_8199134(0, -1);
+ }
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ if (id < gPyramidBagResources->menuActionsCount - 2 && IsValidMenuAction(id + 2))
+ {
+ PlaySE(SE_SELECT);
+ sub_8199134(0, 1);
+ }
+ }
+ else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1)
+ {
+ if (id & 1 && IsValidMenuAction(id - 1))
+ {
+ PlaySE(SE_SELECT);
+ sub_8199134(-1, 0);
+ }
+ }
+ else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2)
+ {
+ if (!(id & 1) && IsValidMenuAction(id + 1))
+ {
+ PlaySE(SE_SELECT);
+ sub_8199134(1, 0);
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ if (sMenuActions[gPyramidBagResources->menuActionIds[id]].func.void_u8 != NULL)
+ sMenuActions[gPyramidBagResources->menuActionIds[id]].func.void_u8(taskId);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sMenuActions[ACTION_CANCEL].func.void_u8(taskId);
+ }
+ }
+}
+
+static bool8 IsValidMenuAction(s8 actionTableId)
+{
+ if (actionTableId < 0)
+ return FALSE;
+ else if (actionTableId > gPyramidBagResources->menuActionsCount)
+ return FALSE;
+ else if (gPyramidBagResources->menuActionIds[actionTableId] == ACTION_DUMMY)
+ return FALSE;
+ else
+ return TRUE;
+}
+
+static void sub_81C61A8(void)
+{
+ if (gPyramidBagResources->menuActionsCount == 1)
+ sub_81C6D6C(0);
+ else if (gPyramidBagResources->menuActionsCount == 2)
+ sub_81C6D6C(1);
+ else
+ sub_81C6D6C(2);
+}
+
+static void BagAction_UseOnField(u8 taskId)
+{
+ u8 pocketId = ItemId_GetPocket(gSpecialVar_ItemId);
+
+ if (pocketId == POCKET_KEY_ITEMS
+ || pocketId == POCKET_POKE_BALLS
+ || pocketId == POCKET_TM_HM
+ || ItemIsMail(gSpecialVar_ItemId) == TRUE)
+ {
+ sub_81C61A8();
+ DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, sub_81C6714);
+ }
+ else if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL)
+ {
+ sub_81C61A8();
+ FillWindowPixelBuffer(1, 0);
+ schedule_bg_copy_tilemap_to_vram(0);
+ ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId);
+ }
+}
+
+static void BagAction_Cancel(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ sub_81C61A8();
+ PrintItemDescription(data[1]);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ sub_81C5A98(data[0], 0);
+ SetTaskToMainPyramidBagInputHandler(taskId);
+}
+
+static void SetTaskToMainPyramidBagInputHandler(u8 taskId)
+{
+ AddScrollArrow();
+ gTasks[taskId].func = Task_HandlePyramidBagInput;
+}
+
+static void BagAction_Toss(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ sub_81C61A8();
+ data[8] = 1;
+ if (data[2] == 1)
+ {
+ sub_81C6350(taskId);
+ }
+ else
+ {
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_TossHowManyVar1s);
+ FillWindowPixelBuffer(1, 0);
+ PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0);
+ sub_81C6404();
+ gTasks[taskId].func = sub_81C64B4;
+ }
+}
+
+static void sub_81C6350(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 2);
+ StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems);
+ FillWindowPixelBuffer(1, 0);
+ PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0);
+ sub_81C6DAC(taskId, &sYesNoTossFuncions);
+}
+
+static void DontTossItem(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ PrintItemDescription(data[1]);
+ sub_81C5A98(data[0], 0);
+ SetTaskToMainPyramidBagInputHandler(taskId);
+}
+
+static void sub_81C6404(void)
+{
+ s32 x;
+
+ ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringExpandPlaceholders(gStringVar4, gText_xVar1);
+ sub_81C6CEC(3);
+ x = GetStringCenterAlignXOffset(1, gStringVar4, 0x28);
+ PrintTextOnWindow(3, 1, gStringVar4, x, 2, 0, NULL);
+}
+
+static void sub_81C645C(s16 value)
+{
+ s32 x;
+
+ ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringExpandPlaceholders(gStringVar4, gText_xVar1);
+ x = GetStringCenterAlignXOffset(1, gStringVar4, 0x28);
+ PrintTextOnWindow(3, 1, gStringVar4, x, 2, 0, NULL);
+}
+
+static void sub_81C64B4(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE)
+ {
+ sub_81C645C(data[8]);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_8198070(3, 0);
+ ClearWindowTilemap(3);
+ schedule_bg_copy_tilemap_to_vram(1);
+ sub_81C6350(taskId);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_8198070(3, 0);
+ ClearWindowTilemap(3);
+ schedule_bg_copy_tilemap_to_vram(1);
+ DontTossItem(taskId);
+ }
+}
+
+static void TossItem(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 2);
+ StringExpandPlaceholders(gStringVar4, gText_ThrewAwayVar2Var1s);
+ FillWindowPixelBuffer(1, 0);
+ PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0);
+ gTasks[taskId].func = sub_81C65CC;
+}
+
+static void sub_81C65CC(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 *scrollOffset = &gPyramidBagCursorData.scrollPosition;
+ u16 *selectedRow = &gPyramidBagCursorData.cursorPosition;
+
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ RemovePyramidBagItem(gSpecialVar_ItemId, data[8]);
+ DestroyListMenuTask(data[0], scrollOffset, selectedRow);
+ sub_81C5924();
+ sub_81C59BC();
+ SetBagItemsListTemplate();
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow);
+ schedule_bg_copy_tilemap_to_vram(0);
+ SetTaskToMainPyramidBagInputHandler(taskId);
+ }
+}
+
+static void BagAction_Give(u8 taskId)
+{
+ sub_81C61A8();
+ if (ItemIsMail(gSpecialVar_ItemId) == TRUE)
+ {
+ DisplayItemMessageInBattlePyramid(taskId, gText_CantWriteMail, sub_81C66EC);
+ }
+ else if (!ItemId_GetImportance(gSpecialVar_ItemId))
+ {
+ gPyramidBagResources->callback2 = sub_81B7F60;
+ sub_81C5B14(taskId);
+ }
+ else
+ {
+ sub_81C66AC(taskId);
+ }
+}
+
+static void sub_81C66AC(u8 taskId)
+{
+ CopyItemName(gSpecialVar_ItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeld);
+ DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C66EC);
+}
+
+static void sub_81C66EC(u8 taskId)
+{
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_81C6714(taskId);
+ }
+}
+
+void sub_81C6714(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ sub_81C6E1C();
+ PrintItemDescription(data[1]);
+ sub_81C5A98(data[0], 0);
+ SetTaskToMainPyramidBagInputHandler(taskId);
+}
+
+static void sub_81C674C(u8 taskId)
+{
+ if (!itemid_80BF6D8_mail_related(gSpecialVar_ItemId))
+ DisplayItemMessageInBattlePyramid(taskId, gText_CantWriteMail, sub_81C66EC);
+ else if (!ItemId_GetImportance(gSpecialVar_ItemId))
+ sub_81C5B14(taskId);
+ else
+ sub_81C66AC(taskId);
+}
+
+static void BagAction_UseInBattle(u8 taskId)
+{
+ if (ItemId_GetBattleFunc(gSpecialVar_ItemId) != NULL)
+ {
+ sub_81C61A8();
+ ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId);
+ }
+}
+
+static void Task_BeginItemSwap(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ data[1] = gPyramidBagCursorData.scrollPosition + gPyramidBagCursorData.cursorPosition;
+ gPyramidBagResources->unk814 = data[1];
+ ListMenuSetUnkIndicatorsStructField(data[0], 0x10, 1);
+ CopyItemName(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][data[1]], gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where);
+ FillWindowPixelBuffer(1, 0);
+ PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0);
+ sub_81C5A98(data[0], 1);
+ sub_81C704C(data[1]);
+ gTasks[taskId].func = Task_ItemSwapHandleInput;
+}
+
+static void Task_ItemSwapHandleInput(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (sub_81221EC() != TRUE)
+ {
+ if (gMain.newKeys & SELECT_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition);
+ PerformItemSwap(taskId);
+ }
+ else
+ {
+ s32 id = ListMenuHandleInputGetItemId(data[0]);
+ ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition);
+ sub_81C7028(FALSE);
+ sub_81C704C(gPyramidBagCursorData.cursorPosition);
+ switch (id)
+ {
+ case LIST_NOTHING_CHOSEN:
+ break;
+ case LIST_B_PRESSED:
+ PlaySE(SE_SELECT);
+ if (gMain.newKeys & A_BUTTON)
+ PerformItemSwap(taskId);
+ else
+ sub_81C6A14(taskId);
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ PerformItemSwap(taskId);
+ break;
+ }
+ }
+ }
+}
+
+static void PerformItemSwap(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 *scrollOffset = &gPyramidBagCursorData.scrollPosition;
+ u16 *selectedRow = &gPyramidBagCursorData.cursorPosition;
+ u16 var = *scrollOffset + *selectedRow;
+
+ if (data[1] == var || data[1] == var - 1)
+ {
+ sub_81C6A14(taskId);
+ }
+ else
+ {
+ MovePyramidBagItemSlotInList(data[1], var);
+ gPyramidBagResources->unk814 = 0xFF;
+ sub_81C7028(TRUE);
+ DestroyListMenuTask(data[0], scrollOffset, selectedRow);
+ if (data[1] < var)
+ gPyramidBagCursorData.cursorPosition--;
+ SetBagItemsListTemplate();
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow);
+ SetTaskToMainPyramidBagInputHandler(taskId);
+ }
+}
+
+static void sub_81C6A14(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 *scrollOffset = &gPyramidBagCursorData.scrollPosition;
+ u16 *selectedRow = &gPyramidBagCursorData.cursorPosition;
+
+ gPyramidBagResources->unk814 = 0xFF;
+ sub_81C7028(TRUE);
+ DestroyListMenuTask(data[0], scrollOffset, selectedRow);
+ if (data[1] < *scrollOffset + *selectedRow)
+ gPyramidBagCursorData.cursorPosition--;
+ SetBagItemsListTemplate();
+ data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollOffset, *selectedRow);
+ SetTaskToMainPyramidBagInputHandler(taskId);
+}
+
+void sub_81C6A94(void)
+{
+ u8 i;
+ struct Pokemon *party = gPlayerParty;
+ u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u16));
+ u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u8));
+ u16 heldItem;
+
+ memcpy(newItems, gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], PYRAMID_BAG_ITEMS_COUNT * sizeof(u16));
+ memcpy(newQuantities, gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], PYRAMID_BAG_ITEMS_COUNT * sizeof(u8));
+ for (i = 0; i < 3; i++)
+ {
+ heldItem = GetMonData(&party[i], MON_DATA_HELD_ITEM);
+ if (heldItem != 0 && !AddBagItem(heldItem, 1))
+ {
+ memcpy(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], newItems, PYRAMID_BAG_ITEMS_COUNT * sizeof(u16));
+ memcpy(gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], newQuantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(u8));
+ Free(newItems);
+ Free(newQuantities);
+ gSpecialVar_Result = 1;
+ return;
+ }
+ }
+
+ heldItem = 0;
+ for (i = 0; i < 3; i++)
+ {
+ SetMonData(&party[i], MON_DATA_HELD_ITEM, &heldItem);
+ }
+ gSpecialVar_Result = 0;
+ Free(newItems);
+ Free(newQuantities);
+}
+
+static void sub_81C6BD8(void)
+{
+ u8 i;
+
+ InitWindows(gUnknown_0861F328);
+ DeactivateAllTextPrinters();
+ LoadUserWindowBorderGfx(0, 0x1, 0xE0);
+ LoadMessageBoxGfx(0, 0xA, 0xD0);
+ LoadPalette(gUnknown_0860F074, 0xF0, 0x20);
+
+ for (i = 0; i < 5; i++)
+ FillWindowPixelBuffer(i, 0);
+
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+}
+
+static void PrintOnWindow_Font1(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId)
+{
+ AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src);
+}
+
+static void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId)
+{
+ AddTextPrinterParameterized2(windowId, 7, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src);
+}
+
+static void sub_81C6CEC(u8 windowId)
+{
+ SetWindowBorderStyle(windowId, 0, 1, 0xE);
+ schedule_bg_copy_tilemap_to_vram(1);
+}
+
+static u8 sub_81C6D08(u8 windowArrayId)
+{
+ return gPyramidBagResources->windowIds[windowArrayId];
+}
+
+static u8 sub_81C6D24(u8 windowArrayId)
+{
+ u8 *windowId = &gPyramidBagResources->windowIds[windowArrayId];
+ if (*windowId == 0xFF)
+ {
+ *windowId = AddWindow(&gUnknown_0861F350[windowArrayId]);
+ SetWindowBorderStyle(*windowId, FALSE, 1, 0xE);
+ schedule_bg_copy_tilemap_to_vram(1);
+ }
+ return *windowId;
+}
+
+static void sub_81C6D6C(u8 windowArrayId)
+{
+ u8 *windowId = &gPyramidBagResources->windowIds[windowArrayId];
+ if (*windowId != 0xFF)
+ {
+ sub_8198070(*windowId, FALSE);
+ ClearWindowTilemap(*windowId);
+ RemoveWindow(*windowId);
+ schedule_bg_copy_tilemap_to_vram(1);
+ *windowId = 0xFF;
+ }
+}
+
+static void sub_81C6DAC(u8 taskId, const struct YesNoFuncTable *yesNoTable)
+{
+ CreateYesNoMenuWithCallbacks(taskId, &gUnknown_0861F350[4], 1, 0, 2, 1, 0xE, yesNoTable);
+}
+
+void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId))
+{
+ FillWindowPixelBuffer(2, 0x11);
+ DisplayMessageAndContinueTask(taskId, 2, 0xA, 0xD, 1, GetPlayerTextSpeed(), str, callback);
+ schedule_bg_copy_tilemap_to_vram(1);
+}
+
+static void sub_81C6E1C(void)
+{
+ sub_8197DF8(2, FALSE);
+ ClearWindowTilemap(2);
+ schedule_bg_copy_tilemap_to_vram(1);
+}
+
+#define ITEM_IMAGE_TAG 0x1024
+
+static void sub_81C6E38(u8 itemSpriteArrayId)
+{
+ u8 *spriteId = &gPyramidBagResources->itemsSpriteIds[itemSpriteArrayId];
+ if (*spriteId != 0xFF)
+ {
+ FreeSpriteTilesByTag(ITEM_IMAGE_TAG + itemSpriteArrayId);
+ FreeSpritePaletteByTag(ITEM_IMAGE_TAG + itemSpriteArrayId);
+ FreeSpriteOamMatrix(&gSprites[*spriteId]);
+ DestroySprite(&gSprites[*spriteId]);
+ *spriteId = 0xFF;
+ }
+}
+
+static void sub_81C6E98(void)
+{
+ struct SpritePalette spritePalette;
+ u16 *palPtr = Alloc(0x40);
+
+ LZDecompressWram(gUnknown_08D9ADD0, palPtr);
+ spritePalette.data = palPtr + (gSaveBlock2Ptr->frontier.lvlMode * 16);
+ spritePalette.tag = ITEM_IMAGE_TAG;
+ LoadSpritePalette(&spritePalette);
+ Free(palPtr);
+}
+
+static void sub_81C6EF4(void)
+{
+ u8 *spriteId = &gPyramidBagResources->itemsSpriteIds[0];
+ *spriteId = CreateSprite(&gUnknown_0861F3D4, 0x44, 0x38, 0);
+}
+
+static void sub_81C6F20(void)
+{
+ struct Sprite *sprite = &gSprites[gPyramidBagResources->itemsSpriteIds[0]];
+ if (sprite->affineAnimEnded)
+ {
+ StartSpriteAffineAnim(sprite, 1);
+ sprite->callback = sub_81C6F68;
+ }
+}
+
+static void sub_81C6F68(struct Sprite *sprite)
+{
+ if (sprite->affineAnimEnded)
+ {
+ StartSpriteAffineAnim(sprite, 0);
+ sprite->callback = SpriteCallbackDummy;
+ }
+}
+
+static void ShowItemImage(u16 itemId, u8 itemSpriteArrayId)
+{
+ u8 itemSpriteId;
+ u8 *spriteId = &gPyramidBagResources->itemsSpriteIds[itemSpriteArrayId + 1];
+ if (*spriteId == 0xFF)
+ {
+ FreeSpriteTilesByTag(ITEM_IMAGE_TAG + 1 + itemSpriteArrayId);
+ FreeSpritePaletteByTag(ITEM_IMAGE_TAG + 1 + itemSpriteArrayId);
+ itemSpriteId = AddItemIconSprite(ITEM_IMAGE_TAG + 1 + itemSpriteArrayId, ITEM_IMAGE_TAG + 1 + itemSpriteArrayId, itemId);
+ if (itemSpriteId != MAX_SPRITES)
+ {
+ *spriteId = itemSpriteId;
+ gSprites[itemSpriteId].pos2.x = 24;
+ gSprites[itemSpriteId].pos2.y = 88;
+ }
+ }
+}
+
+static void sub_81C6FF8(u8 itemSpriteArrayId)
+{
+ sub_81C6E38(itemSpriteArrayId + 1);
+}
+
+static void sub_81C700C(void)
+{
+ sub_8122344(&gPyramidBagResources->itemsSpriteIds[3], 8);
+}
+
+static void sub_81C7028(bool8 invisible)
+{
+ sub_81223FC(&gPyramidBagResources->itemsSpriteIds[3], 8, invisible);
+}
+
+static void sub_81C704C(u8 y)
+{
+ sub_8122448(&gPyramidBagResources->itemsSpriteIds[3], 8 | 0x80, 120, (y + 1) * 16);
+}
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index b13727a12..12a66df80 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -6750,10 +6750,10 @@ static void atk76_various(void)
}
}
break;
- case 21:
+ case VARIOUS_VOLUME_DOWN:
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x55);
break;
- case 22:
+ case VARIOUS_VOLUME_UP:
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
break;
case 23:
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 2955a33fc..17ab20ccd 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -33,6 +33,7 @@
#include "field_weather.h"
#include "gym_leader_rematch.h"
#include "constants/map_types.h"
+#include "constants/battle_frontier.h"
enum
{
@@ -863,7 +864,7 @@ u8 sub_80B100C(s32 arg0)
return sUnknown_0854FEA7[Random() % ARRAY_COUNT(sUnknown_0854FEA7)];
}
- if (VarGet(VAR_0x40CE) != 3)
+ if (VarGet(VAR_FRONTIER_BATTLE_MODE) != FRONTIER_MODE_LINK_MULTIS)
return sUnknown_0854FE98[Random() % ARRAY_COUNT(sUnknown_0854FE98)];
}
else
@@ -880,7 +881,7 @@ u8 sub_80B100C(s32 arg0)
return sUnknown_0854FEA7[Random() % ARRAY_COUNT(sUnknown_0854FEA7)];
}
- if (VarGet(VAR_0x40CE) != 3)
+ if (VarGet(VAR_FRONTIER_BATTLE_MODE) != FRONTIER_MODE_LINK_MULTIS)
return sUnknown_0854FE98[Random() % ARRAY_COUNT(sUnknown_0854FE98)];
}
diff --git a/src/battle_tent.c b/src/battle_tent.c
index 68d7c5e83..516f3fc4d 100644
--- a/src/battle_tent.c
+++ b/src/battle_tent.c
@@ -11,7 +11,11 @@
#include "constants/items.h"
#include "constants/region_map_sections.h"
-// this file's functions
+extern const struct BattleFrontierTrainer gSlateportBattleTentTrainers[];
+extern const struct FacilityMon gSlateportBattleTentMons[];
+extern const u16 gBattleFrontierHeldItems[];
+
+// This file's functions.
void sub_81B99D4(void);
void sub_81B9A28(void);
void sub_81B9A44(void);
@@ -51,7 +55,7 @@ void (*const gUnknown_086160B4[])(void) =
sub_81B9B28
};
-const u16 gUnknown_086160D4[] = {ITEM_NEST_BALL, ITEM_NONE};
+static const u16 sVerdanturfTentRewards[] = {ITEM_NEST_BALL};
void (*const gUnknown_086160D8[])(void) =
{
@@ -64,7 +68,7 @@ void (*const gUnknown_086160D8[])(void) =
sub_81B9CF0
};
-const u16 gUnknown_086160F4[] = {ITEM_HYPER_POTION, ITEM_NONE};
+static const u16 sFallarborTentRewards[] = {ITEM_HYPER_POTION};
void (*const gUnknown_086160F8[])(void) =
{
@@ -80,7 +84,7 @@ void (*const gUnknown_086160F8[])(void) =
sub_81B9EC0
};
-const u16 gUnknown_08616120[] = {ITEM_FULL_HEAL, ITEM_NONE};
+static const u16 sSlateportTentRewards[] = {ITEM_FULL_HEAL};
// code
void sub_81B99B4(void)
@@ -115,7 +119,7 @@ void sub_81B9A60(void)
void sub_81B9A90(void)
{
if (gTrainerBattleOpponent_A < 300)
- ConvertBattleFrontierTrainerSpeechToString(gUnknown_0203BC88[gTrainerBattleOpponent_A].speechBefore);
+ ConvertBattleFrontierTrainerSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore);
}
void sub_81B9ABC(void)
@@ -128,7 +132,7 @@ void sub_81B9ABC(void)
void sub_81B9B00(void)
{
- gSaveBlock2Ptr->frontier.field_E6A = gUnknown_086160D4[Random() % 1];
+ gSaveBlock2Ptr->frontier.field_E6A = sVerdanturfTentRewards[Random() % ARRAY_COUNT(sVerdanturfTentRewards)];
}
void sub_81B9B28(void)
@@ -178,7 +182,7 @@ void sub_81B9C2C(void)
void sub_81B9C70(void)
{
- gSaveBlock2Ptr->frontier.field_E6C = gUnknown_086160F4[Random() % 1];
+ gSaveBlock2Ptr->frontier.field_E6C = sFallarborTentRewards[Random() % ARRAY_COUNT(sFallarborTentRewards)];
}
void sub_81B9C98(void)
@@ -233,7 +237,7 @@ void sub_81B9DB4(void)
void sub_81B9DF8(void)
{
- gSaveBlock2Ptr->frontier.field_E6E = gUnknown_08616120[Random() % 1];
+ gSaveBlock2Ptr->frontier.field_E6E = sSlateportTentRewards[Random() % ARRAY_COUNT(sSlateportTentRewards)];
}
void sub_81B9E20(void)
@@ -266,3 +270,259 @@ bool8 sub_81B9E94(void)
return (gMapHeader.regionMapSectionId == MAPSEC_SLATEPORT_CITY
&& ((gMapHeader.mapLayoutId == 385) | (gMapHeader.mapLayoutId == 386)));
}
+
+// This function was written very...oddly.
+#ifdef NONMATCHING
+void sub_81B9EC0(void)
+{
+ s32 i, j;
+ u16 currMonId = 0, currSpecies = 0;
+ u16 species[PARTY_SIZE];
+ u16 monIds[PARTY_SIZE];
+ u16 heldItems[PARTY_SIZE];
+ s32 zero = 0;
+
+ gFacilityTrainers = gSlateportBattleTentTrainers;
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ species[i] = 0;
+ monIds[i] = 0;
+ heldItems[i] = 0;
+ }
+ gFacilityTrainerMons = gSlateportBattleTentMons;
+ currSpecies = 0;
+ for (i = 0; i != PARTY_SIZE;)
+ {
+ // Cannot have two pokemon of the same species.
+ currMonId = Random() % 70;
+ for (j = zero; j < i + zero; j++)
+ {
+ if (monIds[j] == currMonId)
+ break;
+ if (species[j] == gFacilityTrainerMons[currMonId].species)
+ {
+ if (currSpecies == 0)
+ currSpecies = gFacilityTrainerMons[currMonId].species;
+ else
+ break;
+ }
+ }
+ if (j != i + zero)
+ continue;
+
+ // Cannot have two same held items.
+ for (j = zero; j < i + zero; j++)
+ {
+ if (heldItems[j] == 0)
+ continue;
+ if (heldItems[j] == gBattleFrontierHeldItems[gFacilityTrainerMons[currMonId].itemTableId])
+ {
+ if (gFacilityTrainerMons[currMonId].species == currSpecies)
+ currSpecies = 0;
+ else
+ break;
+ }
+ }
+ if (j != i + zero)
+ continue;
+
+ gSaveBlock2Ptr->frontier.field_E70[i].monId = currMonId;
+ species[i] = gFacilityTrainerMons[currMonId].species;
+ heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[currMonId].itemTableId];
+ monIds[i] = currMonId;
+ i++;
+ }
+}
+#else
+NAKED
+void sub_81B9EC0(void)
+{
+ asm_unified("\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x3C\n\
+ ldr r1, =gFacilityTrainers\n\
+ ldr r0, =gSlateportBattleTentTrainers\n\
+ str r0, [r1]\n\
+ add r0, sp, 0xC\n\
+ mov r9, r0\n\
+ mov r1, sp\n\
+ adds r1, 0x18\n\
+ str r1, [sp, 0x2C]\n\
+ ldr r5, =gFacilityTrainerMons\n\
+ ldr r4, =gSlateportBattleTentMons\n\
+ movs r2, 0\n\
+ adds r3, r1, 0\n\
+ mov r1, r9\n\
+ mov r0, sp\n\
+ movs r6, 0x5\n\
+ mov r8, r6\n\
+_081B9EEC:\n\
+ strh r2, [r0]\n\
+ strh r2, [r1]\n\
+ strh r2, [r3]\n\
+ adds r3, 0x2\n\
+ adds r1, 0x2\n\
+ adds r0, 0x2\n\
+ movs r7, 0x1\n\
+ negs r7, r7\n\
+ add r8, r7\n\
+ mov r6, r8\n\
+ cmp r6, 0\n\
+ bge _081B9EEC\n\
+ str r4, [r5]\n\
+ movs r7, 0\n\
+ mov r10, r7\n\
+ movs r0, 0\n\
+ mov r8, r0\n\
+ ldr r1, [sp, 0x2C]\n\
+ str r1, [sp, 0x30]\n\
+ mov r2, sp\n\
+ str r2, [sp, 0x34]\n\
+ lsls r6, r0, 1\n\
+ str r6, [sp, 0x24]\n\
+ add r6, r9\n\
+ str r6, [sp, 0x28]\n\
+_081B9F1E:\n\
+ bl Random\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ movs r1, 0x46\n\
+ bl __umodsi3\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ movs r2, 0\n\
+ mov r7, r8\n\
+ adds r6, r2, r7\n\
+ cmp r2, r6\n\
+ bge _081B9F7C\n\
+ ldr r1, [sp, 0x28]\n\
+ ldrh r0, [r1]\n\
+ cmp r0, r5\n\
+ beq _081B9F7C\n\
+ ldr r0, =gFacilityTrainerMons\n\
+ ldr r1, [r0]\n\
+ lsls r0, r5, 4\n\
+ adds r4, r0, r1\n\
+ ldrh r7, [r4]\n\
+ mov r12, r7\n\
+ lsls r3, r2, 1\n\
+ ldr r1, [sp, 0x24]\n\
+ add r1, sp\n\
+ str r6, [sp, 0x38]\n\
+_081B9F56:\n\
+ ldrh r0, [r1]\n\
+ cmp r0, r12\n\
+ bne _081B9F66\n\
+ mov r0, r10\n\
+ cmp r0, 0\n\
+ bne _081B9F7C\n\
+ ldrh r7, [r4]\n\
+ mov r10, r7\n\
+_081B9F66:\n\
+ adds r3, 0x2\n\
+ adds r1, 0x2\n\
+ adds r2, 0x1\n\
+ ldr r0, [sp, 0x38]\n\
+ cmp r2, r0\n\
+ bge _081B9F7C\n\
+ mov r7, r9\n\
+ adds r0, r7, r3\n\
+ ldrh r0, [r0]\n\
+ cmp r0, r5\n\
+ bne _081B9F56\n\
+_081B9F7C:\n\
+ cmp r2, r6\n\
+ bne _081BA01C\n\
+ movs r2, 0\n\
+ cmp r2, r6\n\
+ bge _081B9FD4\n\
+ ldr r0, =gBattleFrontierHeldItems\n\
+ mov r12, r0\n\
+ ldr r7, =gFacilityTrainerMons\n\
+ ldr r1, [sp, 0x24]\n\
+ ldr r0, [sp, 0x2C]\n\
+ adds r4, r1, r0\n\
+_081B9F92:\n\
+ ldrh r3, [r4]\n\
+ cmp r3, 0\n\
+ beq _081B9FCC\n\
+ ldr r1, [r7]\n\
+ lsls r0, r5, 4\n\
+ adds r1, r0, r1\n\
+ ldrb r0, [r1, 0xA]\n\
+ lsls r0, 1\n\
+ add r0, r12\n\
+ ldrh r0, [r0]\n\
+ cmp r3, r0\n\
+ bne _081B9FCC\n\
+ ldrh r0, [r1]\n\
+ cmp r0, r10\n\
+ bne _081B9FD4\n\
+ movs r1, 0\n\
+ mov r10, r1\n\
+ b _081B9FD4\n\
+ .pool\n\
+_081B9FCC:\n\
+ adds r4, 0x2\n\
+ adds r2, 0x1\n\
+ cmp r2, r6\n\
+ blt _081B9F92\n\
+_081B9FD4:\n\
+ cmp r2, r6\n\
+ bne _081BA01C\n\
+ ldr r0, =gSaveBlock2Ptr\n\
+ ldr r1, [r0]\n\
+ mov r2, r8\n\
+ lsls r3, r2, 1\n\
+ adds r0, r3, r2\n\
+ lsls r0, 2\n\
+ adds r1, r0\n\
+ movs r6, 0xE7\n\
+ lsls r6, 4\n\
+ adds r1, r6\n\
+ strh r5, [r1]\n\
+ ldr r0, =gFacilityTrainerMons\n\
+ ldr r0, [r0]\n\
+ lsls r1, r5, 4\n\
+ adds r1, r0\n\
+ ldrh r0, [r1]\n\
+ ldr r7, [sp, 0x34]\n\
+ strh r0, [r7]\n\
+ ldr r2, =gBattleFrontierHeldItems\n\
+ ldrb r0, [r1, 0xA]\n\
+ lsls r0, 1\n\
+ adds r0, r2\n\
+ ldrh r0, [r0]\n\
+ ldr r1, [sp, 0x30]\n\
+ strh r0, [r1]\n\
+ add r3, r9\n\
+ strh r5, [r3]\n\
+ adds r1, 0x2\n\
+ str r1, [sp, 0x30]\n\
+ adds r2, r7, 0\n\
+ adds r2, 0x2\n\
+ str r2, [sp, 0x34]\n\
+ movs r6, 0x1\n\
+ add r8, r6\n\
+_081BA01C:\n\
+ mov r7, r8\n\
+ cmp r7, 0x6\n\
+ beq _081BA024\n\
+ b _081B9F1E\n\
+_081BA024:\n\
+ add sp, 0x3C\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n\
+ ");
+}
+#endif // NONMATCHING
diff --git a/src/battle_tower.c b/src/battle_tower.c
new file mode 100644
index 000000000..e70d4af91
--- /dev/null
+++ b/src/battle_tower.c
@@ -0,0 +1,85 @@
+#include "global.h"
+#include "event_data.h"
+#include "battle_setup.h"
+#include "overworld.h"
+#include "random.h"
+#include "battle_tower.h"
+
+extern void sub_81A3ACC(void);
+
+extern const u32 gUnknown_085DF9AC[][2];
+extern const u32 gUnknown_085DF9CC[][2];
+extern void (* const gUnknown_085DF96C[])(void);
+
+// This file's functions.
+void sub_8164ED8(void);
+u16 sub_8164FCC(u8, u8);
+
+// code
+void sub_8161F74(void)
+{
+ gUnknown_085DF96C[gSpecialVar_0x8004]();
+}
+
+void sub_8161F94(void)
+{
+ u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+
+ gSaveBlock2Ptr->frontier.field_CA8 = 1;
+ gSaveBlock2Ptr->frontier.field_CB2 = 0;
+ gSaveBlock2Ptr->frontier.field_CA9_a = 0;
+ gSaveBlock2Ptr->frontier.field_CA9_b = 0;
+ sub_81A3ACC();
+ if (!(gSaveBlock2Ptr->frontier.field_CDC & gUnknown_085DF9AC[battleMode][lvlMode]))
+ gSaveBlock2Ptr->frontier.field_CE0[battleMode][lvlMode] = 0;
+
+ sub_8164ED8();
+ saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
+ gTrainerBattleOpponent_A = 0;
+}
+
+void sub_8162054(void)
+{
+ u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+
+ switch (gSpecialVar_0x8005)
+ {
+ case 0:
+ break;
+ case 1:
+ gSpecialVar_Result = sub_8164FCC(lvlMode, battleMode);
+ break;
+ case 2:
+ gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_085DF9AC[battleMode][lvlMode]) != 0);
+ break;
+ case 3:
+ gSaveBlock2Ptr->frontier.field_D07 = gSaveBlock2Ptr->frontier.lvlMode;
+ break;
+ }
+}
+
+void sub_81620F4(void)
+{
+ u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+
+ switch (gSpecialVar_0x8005)
+ {
+ case 0:
+ break;
+ case 1:
+ gSaveBlock2Ptr->frontier.field_CE0[battleMode][lvlMode] = gSpecialVar_0x8006;
+ break;
+ case 2:
+ if (gSpecialVar_0x8006)
+ gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_085DF9AC[battleMode][lvlMode];
+ else
+ gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_085DF9CC[battleMode][lvlMode];
+ break;
+ case 3:
+ gSaveBlock2Ptr->frontier.field_D07 = gSaveBlock2Ptr->frontier.lvlMode;
+ break;
+ }
+}
diff --git a/src/bg.c b/src/bg.c
index 2f4cdc856..7c55410b1 100644
--- a/src/bg.c
+++ b/src/bg.c
@@ -1001,7 +1001,7 @@ void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 wi
}
}
-void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette)
+void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette)
{
CopyRectToBgTilemapBufferRect(bg, src, 0, 0, rectWidth, rectHeight, destX, destY, rectWidth, rectHeight, palette, 0, 0);
}
diff --git a/src/credits.c b/src/credits.c
index a88e4b549..c054958ce 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -12,7 +12,7 @@
#include "gpu_regs.h"
#include "m4a.h"
#include "constants/rgb.h"
-#include "battle_dome_cards.h"
+#include "trainer_pokemon_sprites.h"
#include "starter_choose.h"
#include "decompress.h"
#include "intro_credits_graphics.h"
@@ -1197,7 +1197,6 @@ void sub_8175620(void)
u8 taskIdA;
s16 taskIdC;
u8 taskIdB;
- u16 savedIme;
sub_8175CE4();
SetVBlankCallback(NULL);
@@ -1333,7 +1332,7 @@ static void sub_81758E4(u8 taskIdA)
u16 *temp;
ResetSpriteData();
- dp13_810BB8C();
+ ResetAllPicSprites();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 8;
LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM);
@@ -2164,7 +2163,7 @@ static void sub_8177050(struct Sprite *sprite)
{
if (gUnknown_0203BD28)
{
- sub_818D820(sprite->data[6]);
+ FreeAndDestroyMonPicSprite(sprite->data[6]);
return;
}
@@ -2242,7 +2241,7 @@ static void sub_8177050(struct Sprite *sprite)
case 10:
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
- sub_818D820(sprite->data[6]);
+ FreeAndDestroyMonPicSprite(sprite->data[6]);
break;
}
}
diff --git a/src/data/pokemon_graphics/back_pic_coordinates.h b/src/data/pokemon_graphics/back_pic_coordinates.h
new file mode 100644
index 000000000..f54b409e4
--- /dev/null
+++ b/src/data/pokemon_graphics/back_pic_coordinates.h
@@ -0,0 +1,443 @@
+const struct MonCoords gUnknown_083021D8[] =
+{
+ {0x88, 0x00}, // SPECIES_NONE
+ {0x64, 0x10}, // SPECIES_BULBASAUR
+ {0x66, 0x09}, // SPECIES_IVYSAUR
+ {0x87, 0x07}, // SPECIES_VENUSAUR
+ {0x65, 0x0e}, // SPECIES_CHARMANDER
+ {0x66, 0x09}, // SPECIES_CHARMELEON
+ {0x87, 0x04}, // SPECIES_CHARIZARD
+ {0x65, 0x0e}, // SPECIES_SQUIRTLE
+ {0x76, 0x0a}, // SPECIES_WARTORTLE
+ {0x86, 0x08}, // SPECIES_BLASTOISE
+ {0x55, 0x0f}, // SPECIES_CATERPIE
+ {0x65, 0x0c}, // SPECIES_METAPOD
+ {0x87, 0x06}, // SPECIES_BUTTERFREE
+ {0x56, 0x0b}, // SPECIES_WEEDLE
+ {0x46, 0x0a}, // SPECIES_KAKUNA
+ {0x86, 0x09}, // SPECIES_BEEDRILL
+ {0x66, 0x08}, // SPECIES_PIDGEY
+ {0x85, 0x0c}, // SPECIES_PIDGEOTTO
+ {0x78, 0x02}, // SPECIES_PIDGEOT
+ {0x65, 0x0d}, // SPECIES_RATTATA
+ {0x75, 0x0d}, // SPECIES_RATICATE
+ {0x65, 0x0c}, // SPECIES_SPEAROW
+ {0x87, 0x05}, // SPECIES_FEAROW
+ {0x66, 0x09}, // SPECIES_EKANS
+ {0x77, 0x04}, // SPECIES_ARBOK
+ {0x77, 0x07}, // SPECIES_PIKACHU
+ {0x66, 0x08}, // SPECIES_RAICHU
+ {0x65, 0x0d}, // SPECIES_SANDSHREW
+ {0x86, 0x09}, // SPECIES_SANDSLASH
+ {0x55, 0x0c}, // SPECIES_NIDORAN_F
+ {0x86, 0x0a}, // SPECIES_NIDORINA
+ {0x77, 0x06}, // SPECIES_NIDOQUEEN
+ {0x56, 0x08}, // SPECIES_NIDORAN_M
+ {0x86, 0x09}, // SPECIES_NIDORINO
+ {0x88, 0x03}, // SPECIES_NIDOKING
+ {0x65, 0x0d}, // SPECIES_CLEFAIRY
+ {0x76, 0x0a}, // SPECIES_CLEFABLE
+ {0x76, 0x09}, // SPECIES_VULPIX
+ {0x77, 0x05}, // SPECIES_NINETALES
+ {0x65, 0x0d}, // SPECIES_JIGGLYPUFF
+ {0x66, 0x08}, // SPECIES_WIGGLYTUFF
+ {0x76, 0x0b}, // SPECIES_ZUBAT
+ {0x87, 0x06}, // SPECIES_GOLBAT
+ {0x56, 0x0b}, // SPECIES_ODDISH
+ {0x66, 0x0a}, // SPECIES_GLOOM
+ {0x87, 0x07}, // SPECIES_VILEPLUME
+ {0x63, 0x14}, // SPECIES_PARAS
+ {0x87, 0x07}, // SPECIES_VENONAT
+ {0x77, 0x06}, // SPECIES_VENOMOTH
+ {0x77, 0x04}, // SPECIES_DIGLETT
+ {0x54, 0x10}, // SPECIES_DUGTRIO
+ {0x66, 0x0b}, // SPECIES_MEOWTH
+ {0x65, 0x0c}, // SPECIES_PERSIAN
+ {0x87, 0x07}, // SPECIES_PSYDUCK
+ {0x67, 0x07}, // SPECIES_GOLDUCK
+ {0x77, 0x05}, // SPECIES_MANKEY
+ {0x76, 0x0b}, // SPECIES_PRIMEAPE
+ {0x77, 0x07}, // SPECIES_GROWLITHE
+ {0x66, 0x08}, // SPECIES_ARCANINE
+ {0x87, 0x06}, // SPECIES_POLIWAG
+ {0x74, 0x10}, // SPECIES_POLIWHIRL
+ {0x65, 0x0c}, // SPECIES_POLIWRATH
+ {0x86, 0x0b}, // SPECIES_ABRA
+ {0x66, 0x0b}, // SPECIES_KADABRA
+ {0x76, 0x08}, // SPECIES_ALAKAZAM
+ {0x67, 0x05}, // SPECIES_MACHOP
+ {0x65, 0x0c}, // SPECIES_MACHOKE
+ {0x76, 0x09}, // SPECIES_MACHAMP
+ {0x67, 0x04}, // SPECIES_BELLSPROUT
+ {0x66, 0x0a}, // SPECIES_WEEPINBELL
+ {0x66, 0x09}, // SPECIES_VICTREEBEL
+ {0x87, 0x06}, // SPECIES_TENTACOOL
+ {0x56, 0x0a}, // SPECIES_TENTACRUEL
+ {0x86, 0x0b}, // SPECIES_GEODUDE
+ {0x66, 0x0b}, // SPECIES_GRAVELER
+ {0x75, 0x0c}, // SPECIES_GOLEM
+ {0x84, 0x10}, // SPECIES_PONYTA
+ {0x66, 0x09}, // SPECIES_RAPIDASH
+ {0x87, 0x05}, // SPECIES_SLOWPOKE
+ {0x85, 0x0e}, // SPECIES_SLOWBRO
+ {0x86, 0x0a}, // SPECIES_MAGNEMITE
+ {0x43, 0x14}, // SPECIES_MAGNETON
+ {0x66, 0x0a}, // SPECIES_FARFETCHD
+ {0x66, 0x0a}, // SPECIES_DODUO
+ {0x66, 0x08}, // SPECIES_DODRIO
+ {0x88, 0x01}, // SPECIES_SEEL
+ {0x66, 0x0a}, // SPECIES_DEWGONG
+ {0x77, 0x05}, // SPECIES_GRIMER
+ {0x75, 0x0c}, // SPECIES_MUK
+ {0x87, 0x05}, // SPECIES_SHELLDER
+ {0x76, 0x0b}, // SPECIES_CLOYSTER
+ {0x87, 0x06}, // SPECIES_GASTLY
+ {0x85, 0x0e}, // SPECIES_HAUNTER
+ {0x76, 0x08}, // SPECIES_GENGAR
+ {0x76, 0x09}, // SPECIES_ONIX
+ {0x78, 0x00}, // SPECIES_DROWZEE
+ {0x65, 0x0d}, // SPECIES_HYPNO
+ {0x66, 0x09}, // SPECIES_KRABBY
+ {0x66, 0x0a}, // SPECIES_KINGLER
+ {0x77, 0x04}, // SPECIES_VOLTORB
+ {0x55, 0x0e}, // SPECIES_ELECTRODE
+ {0x65, 0x0d}, // SPECIES_EXEGGCUTE
+ {0x65, 0x0d}, // SPECIES_EXEGGUTOR
+ {0x87, 0x04}, // SPECIES_CUBONE
+ {0x66, 0x0a}, // SPECIES_MAROWAK
+ {0x66, 0x08}, // SPECIES_HITMONLEE
+ {0x65, 0x0c}, // SPECIES_HITMONCHAN
+ {0x65, 0x0c}, // SPECIES_LICKITUNG
+ {0x65, 0x0e}, // SPECIES_KOFFING
+ {0x66, 0x09}, // SPECIES_WEEZING
+ {0x77, 0x06}, // SPECIES_RHYHORN
+ {0x85, 0x0c}, // SPECIES_RHYDON
+ {0x88, 0x03}, // SPECIES_CHANSEY
+ {0x86, 0x0b}, // SPECIES_TANGELA
+ {0x85, 0x0e}, // SPECIES_KANGASKHAN
+ {0x77, 0x05}, // SPECIES_HORSEA
+ {0x66, 0x09}, // SPECIES_SEADRA
+ {0x66, 0x08}, // SPECIES_GOLDEEN
+ {0x66, 0x08}, // SPECIES_SEAKING
+ {0x76, 0x0b}, // SPECIES_STARYU
+ {0x65, 0x0d}, // SPECIES_STARMIE
+ {0x85, 0x0e}, // SPECIES_MR_MIME
+ {0x85, 0x0d}, // SPECIES_SCYTHER
+ {0x77, 0x07}, // SPECIES_JYNX
+ {0x86, 0x0a}, // SPECIES_ELECTABUZZ
+ {0x66, 0x08}, // SPECIES_MAGMAR
+ {0x66, 0x08}, // SPECIES_PINSIR
+ {0x66, 0x09}, // SPECIES_TAUROS
+ {0x85, 0x0d}, // SPECIES_MAGIKARP
+ {0x76, 0x09}, // SPECIES_GYARADOS
+ {0x78, 0x00}, // SPECIES_LAPRAS
+ {0x77, 0x04}, // SPECIES_DITTO
+ {0x54, 0x11}, // SPECIES_EEVEE
+ {0x66, 0x0a}, // SPECIES_VAPOREON
+ {0x66, 0x0a}, // SPECIES_JOLTEON
+ {0x87, 0x06}, // SPECIES_FLAREON
+ {0x67, 0x05}, // SPECIES_PORYGON
+ {0x65, 0x0d}, // SPECIES_OMANYTE
+ {0x66, 0x0a}, // SPECIES_OMASTAR
+ {0x66, 0x08}, // SPECIES_KABUTO
+ {0x65, 0x0d}, // SPECIES_KABUTOPS
+ {0x77, 0x05}, // SPECIES_AERODACTYL
+ {0x86, 0x08}, // SPECIES_SNORLAX
+ {0x86, 0x0b}, // SPECIES_ARTICUNO
+ {0x65, 0x0c}, // SPECIES_ZAPDOS
+ {0x76, 0x0b}, // SPECIES_MOLTRES
+ {0x87, 0x04}, // SPECIES_DRATINI
+ {0x66, 0x09}, // SPECIES_DRAGONAIR
+ {0x78, 0x00}, // SPECIES_DRAGONITE
+ {0x87, 0x06}, // SPECIES_MEWTWO
+ {0x78, 0x01}, // SPECIES_MEW
+ {0x66, 0x08}, // SPECIES_CHIKORITA
+ {0x56, 0x0a}, // SPECIES_BAYLEEF
+ {0x66, 0x08}, // SPECIES_MEGANIUM
+ {0x78, 0x00}, // SPECIES_CYNDAQUIL
+ {0x76, 0x09}, // SPECIES_QUILAVA
+ {0x87, 0x04}, // SPECIES_TYPHLOSION
+ {0x87, 0x04}, // SPECIES_TOTODILE
+ {0x66, 0x0b}, // SPECIES_CROCONAW
+ {0x67, 0x07}, // SPECIES_FERALIGATR
+ {0x88, 0x01}, // SPECIES_SENTRET
+ {0x67, 0x05}, // SPECIES_FURRET
+ {0x66, 0x08}, // SPECIES_HOOTHOOT
+ {0x66, 0x08}, // SPECIES_NOCTOWL
+ {0x68, 0x03}, // SPECIES_LEDYBA
+ {0x76, 0x0b}, // SPECIES_LEDIAN
+ {0x77, 0x07}, // SPECIES_SPINARAK
+ {0x73, 0x15}, // SPECIES_ARIADOS
+ {0x86, 0x0b}, // SPECIES_CROBAT
+ {0x87, 0x05}, // SPECIES_CHINCHOU
+ {0x86, 0x08}, // SPECIES_LANTURN
+ {0x86, 0x08}, // SPECIES_PICHU
+ {0x66, 0x0b}, // SPECIES_CLEFFA
+ {0x65, 0x0f}, // SPECIES_IGGLYBUFF
+ {0x66, 0x0b}, // SPECIES_TOGEPI
+ {0x54, 0x10}, // SPECIES_TOGETIC
+ {0x66, 0x08}, // SPECIES_NATU
+ {0x54, 0x11}, // SPECIES_XATU
+ {0x76, 0x08}, // SPECIES_MAREEP
+ {0x66, 0x09}, // SPECIES_FLAAFFY
+ {0x66, 0x09}, // SPECIES_AMPHAROS
+ {0x88, 0x01}, // SPECIES_BELLOSSOM
+ {0x66, 0x0b}, // SPECIES_MARILL
+ {0x75, 0x0c}, // SPECIES_AZUMARILL
+ {0x86, 0x08}, // SPECIES_SUDOWOODO
+ {0x66, 0x08}, // SPECIES_POLITOED
+ {0x66, 0x09}, // SPECIES_HOPPIP
+ {0x66, 0x0b}, // SPECIES_SKIPLOOM
+ {0x65, 0x0d}, // SPECIES_JUMPLUFF
+ {0x87, 0x04}, // SPECIES_AIPOM
+ {0x66, 0x09}, // SPECIES_SUNKERN
+ {0x56, 0x0a}, // SPECIES_SUNFLORA
+ {0x66, 0x08}, // SPECIES_YANMA
+ {0x77, 0x04}, // SPECIES_WOOPER
+ {0x85, 0x0f}, // SPECIES_QUAGSIRE
+ {0x76, 0x08}, // SPECIES_ESPEON
+ {0x76, 0x0b}, // SPECIES_UMBREON
+ {0x87, 0x04}, // SPECIES_MURKROW
+ {0x66, 0x09}, // SPECIES_SLOWKING
+ {0x66, 0x08}, // SPECIES_MISDREAVUS
+ {0x66, 0x0a}, // SPECIES_UNOWN
+ {0x36, 0x08}, // SPECIES_WOBBUFFET
+ {0x75, 0x0c}, // SPECIES_GIRAFARIG
+ {0x87, 0x05}, // SPECIES_PINECO
+ {0x65, 0x0f}, // SPECIES_FORRETRESS
+ {0x84, 0x10}, // SPECIES_DUNSPARCE
+ {0x85, 0x0f}, // SPECIES_GLIGAR
+ {0x87, 0x05}, // SPECIES_STEELIX
+ {0x88, 0x00}, // SPECIES_SNUBBULL
+ {0x76, 0x0a}, // SPECIES_GRANBULL
+ {0x87, 0x05}, // SPECIES_QWILFISH
+ {0x77, 0x07}, // SPECIES_SCIZOR
+ {0x77, 0x04}, // SPECIES_SHUCKLE
+ {0x56, 0x0b}, // SPECIES_HERACROSS
+ {0x77, 0x04}, // SPECIES_SNEASEL
+ {0x66, 0x08}, // SPECIES_TEDDIURSA
+ {0x66, 0x08}, // SPECIES_URSARING
+ {0x88, 0x03}, // SPECIES_SLUGMA
+ {0x66, 0x08}, // SPECIES_MAGCARGO
+ {0x76, 0x09}, // SPECIES_SWINUB
+ {0x63, 0x15}, // SPECIES_PILOSWINE
+ {0x75, 0x0d}, // SPECIES_CORSOLA
+ {0x65, 0x0c}, // SPECIES_REMORAID
+ {0x75, 0x0d}, // SPECIES_OCTILLERY
+ {0x66, 0x0a}, // SPECIES_DELIBIRD
+ {0x67, 0x06}, // SPECIES_MANTINE
+ {0x87, 0x07}, // SPECIES_SKARMORY
+ {0x87, 0x04}, // SPECIES_HOUNDOUR
+ {0x55, 0x0c}, // SPECIES_HOUNDOOM
+ {0x87, 0x07}, // SPECIES_KINGDRA
+ {0x87, 0x06}, // SPECIES_PHANPY
+ {0x65, 0x0e}, // SPECIES_DONPHAN
+ {0x85, 0x0d}, // SPECIES_PORYGON2
+ {0x76, 0x0a}, // SPECIES_STANTLER
+ {0x78, 0x03}, // SPECIES_SMEARGLE
+ {0x76, 0x0a}, // SPECIES_TYROGUE
+ {0x66, 0x08}, // SPECIES_HITMONTOP
+ {0x87, 0x05}, // SPECIES_SMOOCHUM
+ {0x56, 0x09}, // SPECIES_ELEKID
+ {0x66, 0x08}, // SPECIES_MAGBY
+ {0x66, 0x0b}, // SPECIES_MILTANK
+ {0x87, 0x07}, // SPECIES_BLISSEY
+ {0x85, 0x0d}, // SPECIES_RAIKOU
+ {0x86, 0x0a}, // SPECIES_ENTEI
+ {0x87, 0x06}, // SPECIES_SUICUNE
+ {0x88, 0x03}, // SPECIES_LARVITAR
+ {0x66, 0x08}, // SPECIES_PUPITAR
+ {0x67, 0x05}, // SPECIES_TYRANITAR
+ {0x88, 0x00}, // SPECIES_LUGIA
+ {0x88, 0x01}, // SPECIES_HO_OH
+ {0x88, 0x01}, // SPECIES_CELEBI
+ {0x66, 0x08}, // SPECIES_OLD_UNOWN_B
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_C
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_D
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_E
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_F
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_G
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_H
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_I
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_J
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_K
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_L
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_M
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_N
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_O
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_P
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_Q
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_R
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_S
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_T
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_U
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_V
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_W
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_X
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_Y
+ {0x88, 0x02}, // SPECIES_OLD_UNOWN_Z
+ {0x88, 0x02}, // SPECIES_TREECKO
+ {0x87, 0x06}, // SPECIES_GROVYLE
+ {0x86, 0x08}, // SPECIES_SCEPTILE
+ {0x88, 0x01}, // SPECIES_TORCHIC
+ {0x67, 0x05}, // SPECIES_COMBUSKEN
+ {0x88, 0x00}, // SPECIES_BLAZIKEN
+ {0x88, 0x00}, // SPECIES_MUDKIP
+ {0x77, 0x05}, // SPECIES_MARSHTOMP
+ {0x87, 0x04}, // SPECIES_SWAMPERT
+ {0x87, 0x05}, // SPECIES_POOCHYENA
+ {0x76, 0x09}, // SPECIES_MIGHTYENA
+ {0x87, 0x04}, // SPECIES_ZIGZAGOON
+ {0x76, 0x0b}, // SPECIES_LINOONE
+ {0x85, 0x0f}, // SPECIES_WURMPLE
+ {0x76, 0x0b}, // SPECIES_SILCOON
+ {0x83, 0x15}, // SPECIES_BEAUTIFLY
+ {0x88, 0x00}, // SPECIES_CASCOON
+ {0x73, 0x14}, // SPECIES_DUSTOX
+ {0x83, 0x14}, // SPECIES_LOTAD
+ {0x75, 0x0f}, // SPECIES_LOMBRE
+ {0x86, 0x08}, // SPECIES_LUDICOLO
+ {0x86, 0x0a}, // SPECIES_SEEDOT
+ {0x86, 0x09}, // SPECIES_NUZLEAF
+ {0x76, 0x0a}, // SPECIES_SHIFTRY
+ {0x86, 0x08}, // SPECIES_NINCADA
+ {0x83, 0x14}, // SPECIES_NINJASK
+ {0x86, 0x08}, // SPECIES_SHEDINJA
+ {0x77, 0x06}, // SPECIES_TAILLOW
+ {0x64, 0x11}, // SPECIES_SWELLOW
+ {0x86, 0x08}, // SPECIES_SHROOMISH
+ {0x85, 0x0d}, // SPECIES_BRELOOM
+ {0x87, 0x04}, // SPECIES_SPINDA
+ {0x77, 0x04}, // SPECIES_WINGULL
+ {0x85, 0x0e}, // SPECIES_PELIPPER
+ {0x87, 0x06}, // SPECIES_SURSKIT
+ {0x86, 0x0b}, // SPECIES_MASQUERAIN
+ {0x88, 0x00}, // SPECIES_WAILMER
+ {0x83, 0x15}, // SPECIES_WAILORD
+ {0x83, 0x16}, // SPECIES_SKITTY
+ {0x86, 0x0a}, // SPECIES_DELCATTY
+ {0x86, 0x08}, // SPECIES_KECLEON
+ {0x87, 0x06}, // SPECIES_BALTOY
+ {0x86, 0x08}, // SPECIES_CLAYDOL
+ {0x87, 0x07}, // SPECIES_NOSEPASS
+ {0x85, 0x0c}, // SPECIES_TORKOAL
+ {0x86, 0x0a}, // SPECIES_SABLEYE
+ {0x76, 0x08}, // SPECIES_BARBOACH
+ {0x66, 0x0a}, // SPECIES_WHISCASH
+ {0x86, 0x0a}, // SPECIES_LUVDISC
+ {0x46, 0x0a}, // SPECIES_CORPHISH
+ {0x77, 0x07}, // SPECIES_CRAWDAUNT
+ {0x87, 0x05}, // SPECIES_FEEBAS
+ {0x67, 0x07}, // SPECIES_MILOTIC
+ {0x68, 0x02}, // SPECIES_CARVANHA
+ {0x87, 0x07}, // SPECIES_SHARPEDO
+ {0x88, 0x02}, // SPECIES_TRAPINCH
+ {0x75, 0x0e}, // SPECIES_VIBRAVA
+ {0x74, 0x11}, // SPECIES_FLYGON
+ {0x88, 0x02}, // SPECIES_MAKUHITA
+ {0x76, 0x0b}, // SPECIES_HARIYAMA
+ {0x87, 0x07}, // SPECIES_ELECTRIKE
+ {0x84, 0x10}, // SPECIES_MANECTRIC
+ {0x87, 0x04}, // SPECIES_NUMEL
+ {0x86, 0x0b}, // SPECIES_CAMERUPT
+ {0x84, 0x13}, // SPECIES_SPHEAL
+ {0x64, 0x12}, // SPECIES_SEALEO
+ {0x86, 0x0a}, // SPECIES_WALREIN
+ {0x87, 0x06}, // SPECIES_CACNEA
+ {0x85, 0x0f}, // SPECIES_CACTURNE
+ {0x87, 0x07}, // SPECIES_SNORUNT
+ {0x76, 0x0a}, // SPECIES_GLALIE
+ {0x85, 0x0c}, // SPECIES_LUNATONE
+ {0x87, 0x05}, // SPECIES_SOLROCK
+ {0x87, 0x05}, // SPECIES_AZURILL
+ {0x86, 0x0a}, // SPECIES_SPOINK
+ {0x56, 0x0b}, // SPECIES_GRUMPIG
+ {0x87, 0x04}, // SPECIES_PLUSLE
+ {0x76, 0x08}, // SPECIES_MINUN
+ {0x76, 0x08}, // SPECIES_MAWILE
+ {0x87, 0x04}, // SPECIES_MEDITITE
+ {0x76, 0x0b}, // SPECIES_MEDICHAM
+ {0x68, 0x03}, // SPECIES_SWABLU
+ {0x86, 0x09}, // SPECIES_ALTARIA
+ {0x87, 0x06}, // SPECIES_WYNAUT
+ {0x77, 0x07}, // SPECIES_DUSKULL
+ {0x66, 0x0b}, // SPECIES_DUSCLOPS
+ {0x86, 0x08}, // SPECIES_ROSELIA
+ {0x86, 0x08}, // SPECIES_SLAKOTH
+ {0x85, 0x0f}, // SPECIES_VIGOROTH
+ {0x86, 0x0a}, // SPECIES_SLAKING
+ {0x86, 0x08}, // SPECIES_GULPIN
+ {0x66, 0x0b}, // SPECIES_SWALOT
+ {0x77, 0x06}, // SPECIES_TROPIUS
+ {0x87, 0x07}, // SPECIES_WHISMUR
+ {0x85, 0x0d}, // SPECIES_LOUDRED
+ {0x86, 0x09}, // SPECIES_EXPLOUD
+ {0x88, 0x03}, // SPECIES_CLAMPERL
+ {0x85, 0x0d}, // SPECIES_HUNTAIL
+ {0x68, 0x02}, // SPECIES_GOREBYSS
+ {0x77, 0x05}, // SPECIES_ABSOL
+ {0x78, 0x03}, // SPECIES_SHUPPET
+ {0x77, 0x06}, // SPECIES_BANETTE
+ {0x65, 0x0c}, // SPECIES_SEVIPER
+ {0x88, 0x03}, // SPECIES_ZANGOOSE
+ {0x88, 0x01}, // SPECIES_RELICANTH
+ {0x86, 0x0a}, // SPECIES_ARON
+ {0x54, 0x11}, // SPECIES_LAIRON
+ {0x84, 0x11}, // SPECIES_AGGRON
+ {0x87, 0x07}, // SPECIES_CASTFORM
+ {0x45, 0x0d}, // SPECIES_VOLBEAT
+ {0x76, 0x08}, // SPECIES_ILLUMISE
+ {0x67, 0x06}, // SPECIES_LILEEP
+ {0x86, 0x09}, // SPECIES_CRADILY
+ {0x77, 0x04}, // SPECIES_ANORITH
+ {0x83, 0x17}, // SPECIES_ARMALDO
+ {0x77, 0x05}, // SPECIES_RALTS
+ {0x45, 0x0d}, // SPECIES_KIRLIA
+ {0x57, 0x06}, // SPECIES_GARDEVOIR
+ {0x77, 0x04}, // SPECIES_BAGON
+ {0x66, 0x08}, // SPECIES_SHELGON
+ {0x85, 0x0d}, // SPECIES_SALAMENCE
+ {0x77, 0x06}, // SPECIES_BELDUM
+ {0x66, 0x0a}, // SPECIES_METANG
+ {0x84, 0x10}, // SPECIES_METAGROSS
+ {0x83, 0x14}, // SPECIES_REGIROCK
+ {0x86, 0x0a}, // SPECIES_REGICE
+ {0x85, 0x0e}, // SPECIES_REGISTEEL
+ {0x85, 0x0e}, // SPECIES_KYOGRE
+ {0x84, 0x13}, // SPECIES_GROUDON
+ {0x87, 0x07}, // SPECIES_RAYQUAZA
+ {0x78, 0x00}, // SPECIES_LATIAS
+ {0x88, 0x02}, // SPECIES_LATIOS
+ {0x88, 0x03}, // SPECIES_JIRACHI
+ {0x87, 0x05}, // SPECIES_DEOXYS
+ {0x86, 0x09}, // SPECIES_CHIMECHO
+ {0x47, 0x07}, // SPECIES_EGG
+ {0x36, 0x0a}, // SPECIES_UNOWN_B
+ {0x56, 0x09}, // SPECIES_UNOWN_C
+ {0x67, 0x06}, // SPECIES_UNOWN_D
+ {0x56, 0x08}, // SPECIES_UNOWN_E
+ {0x56, 0x0a}, // SPECIES_UNOWN_F
+ {0x66, 0x0a}, // SPECIES_UNOWN_G
+ {0x57, 0x05}, // SPECIES_UNOWN_H
+ {0x66, 0x08}, // SPECIES_UNOWN_I
+ {0x37, 0x07}, // SPECIES_UNOWN_J
+ {0x46, 0x09}, // SPECIES_UNOWN_K
+ {0x57, 0x07}, // SPECIES_UNOWN_L
+ {0x46, 0x0a}, // SPECIES_UNOWN_M
+ {0x65, 0x0d}, // SPECIES_UNOWN_N
+ {0x65, 0x0d}, // SPECIES_UNOWN_O
+ {0x66, 0x08}, // SPECIES_UNOWN_P
+ {0x46, 0x0a}, // SPECIES_UNOWN_Q
+ {0x55, 0x0f}, // SPECIES_UNOWN_R
+ {0x45, 0x0c}, // SPECIES_UNOWN_S
+ {0x57, 0x04}, // SPECIES_UNOWN_T
+ {0x45, 0x0d}, // SPECIES_UNOWN_U
+ {0x65, 0x0d}, // SPECIES_UNOWN_V
+ {0x56, 0x0b}, // SPECIES_UNOWN_W
+ {0x55, 0x0d}, // SPECIES_UNOWN_X
+ {0x55, 0x0f}, // SPECIES_UNOWN_Y
+ {0x46, 0x0a}, // SPECIES_UNOWN_Z
+ {0x46, 0x0a}, // SPECIES_UNOWN_EMARK
+ {0x37, 0x06}, // SPECIES_UNOWN_QMARK
+ {0x47, 0x06},
+};
diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h
new file mode 100644
index 000000000..fde423570
--- /dev/null
+++ b/src/data/pokemon_graphics/front_pic_coordinates.h
@@ -0,0 +1,443 @@
+const struct MonCoords gMonFrontPicCoords[] =
+{
+ {0x88, 0x00}, // SPECIES_NONE
+ {0x45, 0x0e}, // SPECIES_BULBASAUR
+ {0x56, 0x0a}, // SPECIES_IVYSAUR
+ {0x88, 0x03}, // SPECIES_VENUSAUR
+ {0x55, 0x0c}, // SPECIES_CHARMANDER
+ {0x66, 0x09}, // SPECIES_CHARMELEON
+ {0x88, 0x01}, // SPECIES_CHARIZARD
+ {0x65, 0x0d}, // SPECIES_SQUIRTLE
+ {0x66, 0x08}, // SPECIES_WARTORTLE
+ {0x88, 0x00}, // SPECIES_BLASTOISE
+ {0x45, 0x10}, // SPECIES_CATERPIE
+ {0x54, 0x14}, // SPECIES_METAPOD
+ {0x76, 0x09}, // SPECIES_BUTTERFREE
+ {0x54, 0x12}, // SPECIES_WEEDLE
+ {0x45, 0x0e}, // SPECIES_KAKUNA
+ {0x86, 0x09}, // SPECIES_BEEDRILL
+ {0x65, 0x0d}, // SPECIES_PIDGEY
+ {0x67, 0x0b}, // SPECIES_PIDGEOTTO
+ {0x88, 0x01}, // SPECIES_PIDGEOT
+ {0x44, 0x10}, // SPECIES_RATTATA
+ {0x66, 0x0b}, // SPECIES_RATICATE
+ {0x45, 0x0f}, // SPECIES_SPEAROW
+ {0x78, 0x00}, // SPECIES_FEAROW
+ {0x65, 0x0c}, // SPECIES_EKANS
+ {0x88, 0x02}, // SPECIES_ARBOK
+ {0x67, 0x09}, // SPECIES_PIKACHU
+ {0x67, 0x04}, // SPECIES_RAICHU
+ {0x55, 0x0e}, // SPECIES_SANDSHREW
+ {0x76, 0x09}, // SPECIES_SANDSLASH
+ {0x45, 0x0f}, // SPECIES_NIDORAN_F
+ {0x66, 0x0b}, // SPECIES_NIDORINA
+ {0x78, 0x03}, // SPECIES_NIDOQUEEN
+ {0x55, 0x0c}, // SPECIES_NIDORAN_M
+ {0x66, 0x09}, // SPECIES_NIDORINO
+ {0x78, 0x02}, // SPECIES_NIDOKING
+ {0x55, 0x10}, // SPECIES_CLEFAIRY
+ {0x66, 0x08}, // SPECIES_CLEFABLE
+ {0x65, 0x0c}, // SPECIES_VULPIX
+ {0x88, 0x03}, // SPECIES_NINETALES
+ {0x45, 0x10}, // SPECIES_JIGGLYPUFF
+ {0x67, 0x08}, // SPECIES_WIGGLYTUFF
+ {0x67, 0x06}, // SPECIES_ZUBAT
+ {0x88, 0x03}, // SPECIES_GOLBAT
+ {0x45, 0x0f}, // SPECIES_ODDISH
+ {0x66, 0x0a}, // SPECIES_GLOOM
+ {0x77, 0x06}, // SPECIES_VILEPLUME
+ {0x55, 0x0f}, // SPECIES_PARAS
+ {0x86, 0x08}, // SPECIES_VENONAT
+ {0x66, 0x08}, // SPECIES_VENOMOTH
+ {0x88, 0x02}, // SPECIES_DIGLETT
+ {0x54, 0x12}, // SPECIES_DUGTRIO
+ {0x75, 0x0d}, // SPECIES_MEOWTH
+ {0x55, 0x0c}, // SPECIES_PERSIAN
+ {0x77, 0x07}, // SPECIES_PSYDUCK
+ {0x56, 0x09}, // SPECIES_GOLDUCK
+ {0x78, 0x02}, // SPECIES_MANKEY
+ {0x65, 0x0e}, // SPECIES_PRIMEAPE
+ {0x77, 0x07}, // SPECIES_GROWLITHE
+ {0x66, 0x0b}, // SPECIES_ARCANINE
+ {0x88, 0x02}, // SPECIES_POLIWAG
+ {0x74, 0x13}, // SPECIES_POLIWHIRL
+ {0x76, 0x0a}, // SPECIES_POLIWRATH
+ {0x76, 0x08}, // SPECIES_ABRA
+ {0x66, 0x0b}, // SPECIES_KADABRA
+ {0x77, 0x05}, // SPECIES_ALAKAZAM
+ {0x87, 0x04}, // SPECIES_MACHOP
+ {0x56, 0x0b}, // SPECIES_MACHOKE
+ {0x67, 0x06}, // SPECIES_MACHAMP
+ {0x88, 0x01}, // SPECIES_BELLSPROUT
+ {0x65, 0x0f}, // SPECIES_WEEPINBELL
+ {0x66, 0x0b}, // SPECIES_VICTREEBEL
+ {0x77, 0x05}, // SPECIES_TENTACOOL
+ {0x46, 0x09}, // SPECIES_TENTACRUEL
+ {0x87, 0x04}, // SPECIES_GEODUDE
+ {0x54, 0x12}, // SPECIES_GRAVELER
+ {0x87, 0x04}, // SPECIES_GOLEM
+ {0x77, 0x05}, // SPECIES_PONYTA
+ {0x66, 0x08}, // SPECIES_RAPIDASH
+ {0x88, 0x01}, // SPECIES_SLOWPOKE
+ {0x66, 0x0b}, // SPECIES_SLOWBRO
+ {0x86, 0x08}, // SPECIES_MAGNEMITE
+ {0x43, 0x15}, // SPECIES_MAGNETON
+ {0x76, 0x08}, // SPECIES_FARFETCHD
+ {0x66, 0x09}, // SPECIES_DODUO
+ {0x57, 0x05}, // SPECIES_DODRIO
+ {0x88, 0x00}, // SPECIES_SEEL
+ {0x76, 0x0a}, // SPECIES_DEWGONG
+ {0x87, 0x07}, // SPECIES_GRIMER
+ {0x65, 0x0c}, // SPECIES_MUK
+ {0x87, 0x04}, // SPECIES_SHELLDER
+ {0x55, 0x10}, // SPECIES_CLOYSTER
+ {0x87, 0x05}, // SPECIES_GASTLY
+ {0x77, 0x06}, // SPECIES_HAUNTER
+ {0x77, 0x05}, // SPECIES_GENGAR
+ {0x77, 0x05}, // SPECIES_ONIX
+ {0x78, 0x02}, // SPECIES_DROWZEE
+ {0x77, 0x07}, // SPECIES_HYPNO
+ {0x77, 0x04}, // SPECIES_KRABBY
+ {0x65, 0x0d}, // SPECIES_KINGLER
+ {0x88, 0x03}, // SPECIES_VOLTORB
+ {0x44, 0x13}, // SPECIES_ELECTRODE
+ {0x55, 0x0e}, // SPECIES_EXEGGCUTE
+ {0x87, 0x07}, // SPECIES_EXEGGUTOR
+ {0x88, 0x00}, // SPECIES_CUBONE
+ {0x55, 0x0f}, // SPECIES_MAROWAK
+ {0x76, 0x0b}, // SPECIES_HITMONLEE
+ {0x87, 0x04}, // SPECIES_HITMONCHAN
+ {0x67, 0x04}, // SPECIES_LICKITUNG
+ {0x86, 0x08}, // SPECIES_KOFFING
+ {0x66, 0x08}, // SPECIES_WEEZING
+ {0x88, 0x02}, // SPECIES_RHYHORN
+ {0x76, 0x09}, // SPECIES_RHYDON
+ {0x88, 0x02}, // SPECIES_CHANSEY
+ {0x76, 0x09}, // SPECIES_TANGELA
+ {0x67, 0x07}, // SPECIES_KANGASKHAN
+ {0x88, 0x00}, // SPECIES_HORSEA
+ {0x45, 0x0f}, // SPECIES_SEADRA
+ {0x67, 0x07}, // SPECIES_GOLDEEN
+ {0x66, 0x0a}, // SPECIES_SEAKING
+ {0x77, 0x04}, // SPECIES_STARYU
+ {0x66, 0x0a}, // SPECIES_STARMIE
+ {0x77, 0x06}, // SPECIES_MR_MIME
+ {0x66, 0x08}, // SPECIES_SCYTHER
+ {0x88, 0x00}, // SPECIES_JYNX
+ {0x77, 0x04}, // SPECIES_ELECTABUZZ
+ {0x78, 0x02}, // SPECIES_MAGMAR
+ {0x77, 0x04}, // SPECIES_PINSIR
+ {0x77, 0x04}, // SPECIES_TAUROS
+ {0x78, 0x00}, // SPECIES_MAGIKARP
+ {0x67, 0x06}, // SPECIES_GYARADOS
+ {0x88, 0x08}, // SPECIES_LAPRAS
+ {0x85, 0x0d}, // SPECIES_DITTO
+ {0x54, 0x11}, // SPECIES_EEVEE
+ {0x56, 0x09}, // SPECIES_VAPOREON
+ {0x67, 0x06}, // SPECIES_JOLTEON
+ {0x76, 0x09}, // SPECIES_FLAREON
+ {0x66, 0x0a}, // SPECIES_PORYGON
+ {0x55, 0x0d}, // SPECIES_OMANYTE
+ {0x45, 0x0f}, // SPECIES_OMASTAR
+ {0x67, 0x07}, // SPECIES_KABUTO
+ {0x54, 0x11}, // SPECIES_KABUTOPS
+ {0x88, 0x03}, // SPECIES_AERODACTYL
+ {0x88, 0x01}, // SPECIES_SNORLAX
+ {0x87, 0x05}, // SPECIES_ARTICUNO
+ {0x88, 0x03}, // SPECIES_ZAPDOS
+ {0x87, 0x04}, // SPECIES_MOLTRES
+ {0x88, 0x00}, // SPECIES_DRATINI
+ {0x75, 0x0e}, // SPECIES_DRAGONAIR
+ {0x87, 0x06}, // SPECIES_DRAGONITE
+ {0x88, 0x00}, // SPECIES_MEWTWO
+ {0x88, 0x00}, // SPECIES_MEW
+ {0x55, 0x0d}, // SPECIES_CHIKORITA
+ {0x75, 0x0d}, // SPECIES_BAYLEEF
+ {0x77, 0x04}, // SPECIES_MEGANIUM
+ {0x88, 0x00}, // SPECIES_CYNDAQUIL
+ {0x55, 0x0e}, // SPECIES_QUILAVA
+ {0x76, 0x08}, // SPECIES_TYPHLOSION
+ {0x78, 0x00}, // SPECIES_TOTODILE
+ {0x55, 0x0f}, // SPECIES_CROCONAW
+ {0x67, 0x06}, // SPECIES_FERALIGATR
+ {0x88, 0x00}, // SPECIES_SENTRET
+ {0x47, 0x04}, // SPECIES_FURRET
+ {0x67, 0x07}, // SPECIES_HOOTHOOT
+ {0x55, 0x0d}, // SPECIES_NOCTOWL
+ {0x58, 0x03}, // SPECIES_LEDYBA
+ {0x56, 0x0c}, // SPECIES_LEDIAN
+ {0x67, 0x04}, // SPECIES_SPINARAK
+ {0x54, 0x13}, // SPECIES_ARIADOS
+ {0x87, 0x05}, // SPECIES_CROBAT
+ {0x88, 0x00}, // SPECIES_CHINCHOU
+ {0x75, 0x10}, // SPECIES_LANTURN
+ {0x87, 0x0b}, // SPECIES_PICHU
+ {0x45, 0x0c}, // SPECIES_CLEFFA
+ {0x44, 0x14}, // SPECIES_IGGLYBUFF
+ {0x44, 0x12}, // SPECIES_TOGEPI
+ {0x34, 0x14}, // SPECIES_TOGETIC
+ {0x46, 0x09}, // SPECIES_NATU
+ {0x44, 0x14}, // SPECIES_XATU
+ {0x47, 0x07}, // SPECIES_MAREEP
+ {0x55, 0x10}, // SPECIES_FLAAFFY
+ {0x56, 0x0a}, // SPECIES_AMPHAROS
+ {0x77, 0x05}, // SPECIES_BELLOSSOM
+ {0x45, 0x0e}, // SPECIES_MARILL
+ {0x65, 0x0e}, // SPECIES_AZUMARILL
+ {0x76, 0x09}, // SPECIES_SUDOWOODO
+ {0x67, 0x06}, // SPECIES_POLITOED
+ {0x67, 0x06}, // SPECIES_HOPPIP
+ {0x66, 0x0a}, // SPECIES_SKIPLOOM
+ {0x55, 0x0f}, // SPECIES_JUMPLUFF
+ {0x77, 0x07}, // SPECIES_AIPOM
+ {0x58, 0x03}, // SPECIES_SUNKERN
+ {0x44, 0x10}, // SPECIES_SUNFLORA
+ {0x56, 0x08}, // SPECIES_YANMA
+ {0x86, 0x0a}, // SPECIES_WOOPER
+ {0x54, 0x10}, // SPECIES_QUAGSIRE
+ {0x77, 0x07}, // SPECIES_ESPEON
+ {0x66, 0x08}, // SPECIES_UMBREON
+ {0x67, 0x08}, // SPECIES_MURKROW
+ {0x66, 0x0b}, // SPECIES_SLOWKING
+ {0x58, 0x01}, // SPECIES_MISDREAVUS
+ {0x55, 0x0c}, // SPECIES_UNOWN
+ {0x35, 0x0f}, // SPECIES_WOBBUFFET
+ {0x77, 0x06}, // SPECIES_GIRAFARIG
+ {0x88, 0x03}, // SPECIES_PINECO
+ {0x56, 0x0a}, // SPECIES_FORRETRESS
+ {0x76, 0x09}, // SPECIES_DUNSPARCE
+ {0x74, 0x11}, // SPECIES_GLIGAR
+ {0x78, 0x03}, // SPECIES_STEELIX
+ {0x88, 0x00}, // SPECIES_SNUBBULL
+ {0x55, 0x0d}, // SPECIES_GRANBULL
+ {0x57, 0x06}, // SPECIES_QWILFISH
+ {0x56, 0x0a}, // SPECIES_SCIZOR
+ {0x88, 0x00}, // SPECIES_SHUCKLE
+ {0x66, 0x09}, // SPECIES_HERACROSS
+ {0x88, 0x03}, // SPECIES_SNEASEL
+ {0x67, 0x05}, // SPECIES_TEDDIURSA
+ {0x45, 0x0d}, // SPECIES_URSARING
+ {0x78, 0x01}, // SPECIES_SLUGMA
+ {0x45, 0x0d}, // SPECIES_MAGCARGO
+ {0x57, 0x0d}, // SPECIES_SWINUB
+ {0x43, 0x14}, // SPECIES_PILOSWINE
+ {0x66, 0x08}, // SPECIES_CORSOLA
+ {0x65, 0x0c}, // SPECIES_REMORAID
+ {0x55, 0x0e}, // SPECIES_OCTILLERY
+ {0x66, 0x0a}, // SPECIES_DELIBIRD
+ {0x56, 0x08}, // SPECIES_MANTINE
+ {0x88, 0x01}, // SPECIES_SKARMORY
+ {0x88, 0x00}, // SPECIES_HOUNDOUR
+ {0x56, 0x0b}, // SPECIES_HOUNDOOM
+ {0x77, 0x05}, // SPECIES_KINGDRA
+ {0x78, 0x04}, // SPECIES_PHANPY
+ {0x54, 0x10}, // SPECIES_DONPHAN
+ {0x86, 0x08}, // SPECIES_PORYGON2
+ {0x55, 0x0f}, // SPECIES_STANTLER
+ {0x88, 0x00}, // SPECIES_SMEARGLE
+ {0x77, 0x06}, // SPECIES_TYROGUE
+ {0x46, 0x09}, // SPECIES_HITMONTOP
+ {0x67, 0x05}, // SPECIES_SMOOCHUM
+ {0x35, 0x0f}, // SPECIES_ELEKID
+ {0x76, 0x0a}, // SPECIES_MAGBY
+ {0x45, 0x0d}, // SPECIES_MILTANK
+ {0x77, 0x04}, // SPECIES_BLISSEY
+ {0x77, 0x06}, // SPECIES_RAIKOU
+ {0x88, 0x00}, // SPECIES_ENTEI
+ {0x88, 0x00}, // SPECIES_SUICUNE
+ {0x88, 0x00}, // SPECIES_LARVITAR
+ {0x46, 0x09}, // SPECIES_PUPITAR
+ {0x56, 0x09}, // SPECIES_TYRANITAR
+ {0x88, 0x00}, // SPECIES_LUGIA
+ {0x88, 0x00}, // SPECIES_HO_OH
+ {0x88, 0x00}, // SPECIES_CELEBI
+ {0x55, 0x0e}, // SPECIES_OLD_UNOWN_B
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_C
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_D
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_E
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_F
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_G
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_H
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_I
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_J
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_K
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_L
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_M
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_N
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_O
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_P
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_Q
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_R
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_S
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_T
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_U
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_V
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_W
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_X
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_Y
+ {0x87, 0x04}, // SPECIES_OLD_UNOWN_Z
+ {0x87, 0x04}, // SPECIES_TREECKO
+ {0x66, 0x08}, // SPECIES_GROVYLE
+ {0x87, 0x04}, // SPECIES_SCEPTILE
+ {0x88, 0x00}, // SPECIES_TORCHIC
+ {0x56, 0x08}, // SPECIES_COMBUSKEN
+ {0x88, 0x01}, // SPECIES_BLAZIKEN
+ {0x88, 0x00}, // SPECIES_MUDKIP
+ {0x56, 0x0c}, // SPECIES_MARSHTOMP
+ {0x67, 0x06}, // SPECIES_SWAMPERT
+ {0x88, 0x00}, // SPECIES_POOCHYENA
+ {0x55, 0x0c}, // SPECIES_MIGHTYENA
+ {0x87, 0x04}, // SPECIES_ZIGZAGOON
+ {0x85, 0x0f}, // SPECIES_LINOONE
+ {0x78, 0x03}, // SPECIES_WURMPLE
+ {0x45, 0x0e}, // SPECIES_SILCOON
+ {0x75, 0x11}, // SPECIES_BEAUTIFLY
+ {0x86, 0x09}, // SPECIES_CASCOON
+ {0x74, 0x10}, // SPECIES_DUSTOX
+ {0x86, 0x0f}, // SPECIES_LOTAD
+ {0x65, 0x0e}, // SPECIES_LOMBRE
+ {0x66, 0x09}, // SPECIES_LUDICOLO
+ {0x88, 0x00}, // SPECIES_SEEDOT
+ {0x46, 0x10}, // SPECIES_NUZLEAF
+ {0x56, 0x08}, // SPECIES_SHIFTRY
+ {0x88, 0x02}, // SPECIES_NINCADA
+ {0x74, 0x12}, // SPECIES_NINJASK
+ {0x86, 0x0a}, // SPECIES_SHEDINJA
+ {0x66, 0x0a}, // SPECIES_TAILLOW
+ {0x64, 0x10}, // SPECIES_SWELLOW
+ {0x87, 0x06}, // SPECIES_SHROOMISH
+ {0x54, 0x10}, // SPECIES_BRELOOM
+ {0x77, 0x04}, // SPECIES_SPINDA
+ {0x68, 0x08}, // SPECIES_WINGULL
+ {0x84, 0x18}, // SPECIES_PELIPPER
+ {0x77, 0x04}, // SPECIES_SURSKIT
+ {0x65, 0x0f}, // SPECIES_MASQUERAIN
+ {0x88, 0x01}, // SPECIES_WAILMER
+ {0x75, 0x0f}, // SPECIES_WAILORD
+ {0x87, 0x0a}, // SPECIES_SKITTY
+ {0x66, 0x0b}, // SPECIES_DELCATTY
+ {0x66, 0x08}, // SPECIES_KECLEON
+ {0x67, 0x07}, // SPECIES_BALTOY
+ {0x55, 0x10}, // SPECIES_CLAYDOL
+ {0x78, 0x06}, // SPECIES_NOSEPASS
+ {0x56, 0x0c}, // SPECIES_TORKOAL
+ {0x88, 0x02}, // SPECIES_SABLEYE
+ {0x66, 0x09}, // SPECIES_BARBOACH
+ {0x46, 0x0b}, // SPECIES_WHISCASH
+ {0x76, 0x09}, // SPECIES_LUVDISC
+ {0x46, 0x18}, // SPECIES_CORPHISH
+ {0x66, 0x0c}, // SPECIES_CRAWDAUNT
+ {0x88, 0x01}, // SPECIES_FEEBAS
+ {0x46, 0x0d}, // SPECIES_MILOTIC
+ {0x88, 0x00}, // SPECIES_CARVANHA
+ {0x67, 0x06}, // SPECIES_SHARPEDO
+ {0x78, 0x03}, // SPECIES_TRAPINCH
+ {0x54, 0x10}, // SPECIES_VIBRAVA
+ {0x86, 0x0c}, // SPECIES_FLYGON
+ {0x88, 0x01}, // SPECIES_MAKUHITA
+ {0x65, 0x0c}, // SPECIES_HARIYAMA
+ {0x88, 0x01}, // SPECIES_ELECTRIKE
+ {0x64, 0x12}, // SPECIES_MANECTRIC
+ {0x67, 0x04}, // SPECIES_NUMEL
+ {0x65, 0x0f}, // SPECIES_CAMERUPT
+ {0x87, 0x09}, // SPECIES_SPHEAL
+ {0x65, 0x10}, // SPECIES_SEALEO
+ {0x86, 0x0a}, // SPECIES_WALREIN
+ {0x88, 0x01}, // SPECIES_CACNEA
+ {0x74, 0x10}, // SPECIES_CACTURNE
+ {0x88, 0x00}, // SPECIES_SNORUNT
+ {0x56, 0x0b}, // SPECIES_GLALIE
+ {0x76, 0x0a}, // SPECIES_LUNATONE
+ {0x66, 0x09}, // SPECIES_SOLROCK
+ {0x88, 0x01}, // SPECIES_AZURILL
+ {0x55, 0x0f}, // SPECIES_SPOINK
+ {0x46, 0x09}, // SPECIES_GRUMPIG
+ {0x77, 0x05}, // SPECIES_PLUSLE
+ {0x56, 0x0e}, // SPECIES_MINUN
+ {0x66, 0x0c}, // SPECIES_MAWILE
+ {0x76, 0x08}, // SPECIES_MEDITITE
+ {0x65, 0x0c}, // SPECIES_MEDICHAM
+ {0x68, 0x01}, // SPECIES_SWABLU
+ {0x76, 0x11}, // SPECIES_ALTARIA
+ {0x88, 0x02}, // SPECIES_WYNAUT
+ {0x55, 0x0c}, // SPECIES_DUSKULL
+ {0x66, 0x0a}, // SPECIES_DUSCLOPS
+ {0x77, 0x05}, // SPECIES_ROSELIA
+ {0x76, 0x08}, // SPECIES_SLAKOTH
+ {0x74, 0x12}, // SPECIES_VIGOROTH
+ {0x78, 0x00}, // SPECIES_SLAKING
+ {0x86, 0x08}, // SPECIES_GULPIN
+ {0x55, 0x12}, // SPECIES_SWALOT
+ {0x66, 0x08}, // SPECIES_TROPIUS
+ {0x88, 0x00}, // SPECIES_WHISMUR
+ {0x55, 0x0e}, // SPECIES_LOUDRED
+ {0x78, 0x03}, // SPECIES_EXPLOUD
+ {0x88, 0x01}, // SPECIES_CLAMPERL
+ {0x55, 0x0e}, // SPECIES_HUNTAIL
+ {0x78, 0x03}, // SPECIES_GOREBYSS
+ {0x86, 0x0b}, // SPECIES_ABSOL
+ {0x68, 0x00}, // SPECIES_SHUPPET
+ {0x56, 0x0e}, // SPECIES_BANETTE
+ {0x55, 0x0c}, // SPECIES_SEVIPER
+ {0x77, 0x08}, // SPECIES_ZANGOOSE
+ {0x87, 0x05}, // SPECIES_RELICANTH
+ {0x77, 0x0b}, // SPECIES_ARON
+ {0x43, 0x14}, // SPECIES_LAIRON
+ {0x75, 0x0d}, // SPECIES_AGGRON
+ {0x88, 0x00}, // SPECIES_CASTFORM
+ {0x34, 0x11}, // SPECIES_VOLBEAT
+ {0x66, 0x08}, // SPECIES_ILLUMISE
+ {0x56, 0x08}, // SPECIES_LILEEP
+ {0x67, 0x07}, // SPECIES_CRADILY
+ {0x78, 0x00}, // SPECIES_ANORITH
+ {0x66, 0x08}, // SPECIES_ARMALDO
+ {0x88, 0x00}, // SPECIES_RALTS
+ {0x35, 0x0f}, // SPECIES_KIRLIA
+ {0x47, 0x06}, // SPECIES_GARDEVOIR
+ {0x78, 0x01}, // SPECIES_BAGON
+ {0x56, 0x0b}, // SPECIES_SHELGON
+ {0x66, 0x09}, // SPECIES_SALAMENCE
+ {0x87, 0x04}, // SPECIES_BELDUM
+ {0x55, 0x0f}, // SPECIES_METANG
+ {0x87, 0x07}, // SPECIES_METAGROSS
+ {0x87, 0x06}, // SPECIES_REGIROCK
+ {0x78, 0x04}, // SPECIES_REGICE
+ {0x88, 0x02}, // SPECIES_REGISTEEL
+ {0x88, 0x03}, // SPECIES_KYOGRE
+ {0x87, 0x04}, // SPECIES_GROUDON
+ {0x88, 0x01}, // SPECIES_RAYQUAZA
+ {0x88, 0x00}, // SPECIES_LATIAS
+ {0x88, 0x01}, // SPECIES_LATIOS
+ {0x88, 0x02}, // SPECIES_JIRACHI
+ {0x66, 0x0d}, // SPECIES_DEOXYS
+ {0x88, 0x01}, // SPECIES_CHIMECHO
+ {0x37, 0x06}, // SPECIES_EGG
+ {0x33, 0x14}, // SPECIES_UNOWN_B
+ {0x34, 0x10}, // SPECIES_UNOWN_C
+ {0x44, 0x10}, // SPECIES_UNOWN_D
+ {0x44, 0x10}, // SPECIES_UNOWN_E
+ {0x44, 0x11}, // SPECIES_UNOWN_F
+ {0x44, 0x11}, // SPECIES_UNOWN_G
+ {0x35, 0x0e}, // SPECIES_UNOWN_H
+ {0x44, 0x10}, // SPECIES_UNOWN_I
+ {0x34, 0x10}, // SPECIES_UNOWN_J
+ {0x34, 0x11}, // SPECIES_UNOWN_K
+ {0x44, 0x11}, // SPECIES_UNOWN_L
+ {0x34, 0x13}, // SPECIES_UNOWN_M
+ {0x44, 0x13}, // SPECIES_UNOWN_N
+ {0x43, 0x14}, // SPECIES_UNOWN_O
+ {0x44, 0x10}, // SPECIES_UNOWN_P
+ {0x34, 0x13}, // SPECIES_UNOWN_Q
+ {0x43, 0x15}, // SPECIES_UNOWN_R
+ {0x34, 0x13}, // SPECIES_UNOWN_S
+ {0x45, 0x0c}, // SPECIES_UNOWN_T
+ {0x34, 0x12}, // SPECIES_UNOWN_U
+ {0x44, 0x12}, // SPECIES_UNOWN_V
+ {0x44, 0x12}, // SPECIES_UNOWN_W
+ {0x44, 0x13}, // SPECIES_UNOWN_X
+ {0x33, 0x15}, // SPECIES_UNOWN_Y
+ {0x34, 0x11}, // SPECIES_UNOWN_Z
+ {0x34, 0x10}, // SPECIES_UNOWN_EMARK
+ {0x35, 0x0f}, // SPECIES_UNOWN_QMARK
+ {0x35, 0x0d},
+};
diff --git a/src/data/pokemon_graphics/still_front_pic_table.h b/src/data/pokemon_graphics/still_front_pic_table.h
new file mode 100644
index 000000000..a345a3d43
--- /dev/null
+++ b/src/data/pokemon_graphics/still_front_pic_table.h
@@ -0,0 +1,446 @@
+const struct CompressedSpriteSheet gMonStillFrontPicTable[] =
+{ //.data .size .tag
+ gMonStillFrontPic_CircledQuestionMark, 0x800, 0,
+ gMonStillFrontPic_Bulbasaur, 0x800, 1,
+ gMonStillFrontPic_Ivysaur, 0x800, 2,
+ gMonStillFrontPic_Venusaur, 0x800, 3,
+ gMonStillFrontPic_Charmander, 0x800, 4,
+ gMonStillFrontPic_Charmeleon, 0x800, 5,
+ gMonStillFrontPic_Charizard, 0x800, 6,
+ gMonStillFrontPic_Squirtle, 0x800, 7,
+ gMonStillFrontPic_Wartortle, 0x800, 8,
+ gMonStillFrontPic_Blastoise, 0x800, 9,
+ gMonStillFrontPic_Caterpie, 0x800, 10,
+ gMonStillFrontPic_Metapod, 0x800, 11,
+ gMonStillFrontPic_Butterfree, 0x800, 12,
+ gMonStillFrontPic_Weedle, 0x800, 13,
+ gMonStillFrontPic_Kakuna, 0x800, 14,
+ gMonStillFrontPic_Beedrill, 0x800, 15,
+ gMonStillFrontPic_Pidgey, 0x800, 16,
+ gMonStillFrontPic_Pidgeotto, 0x800, 17,
+ gMonStillFrontPic_Pidgeot, 0x800, 18,
+ gMonStillFrontPic_Rattata, 0x800, 19,
+ gMonStillFrontPic_Raticate, 0x800, 20,
+ gMonStillFrontPic_Spearow, 0x800, 21,
+ gMonStillFrontPic_Fearow, 0x800, 22,
+ gMonStillFrontPic_Ekans, 0x800, 23,
+ gMonStillFrontPic_Arbok, 0x800, 24,
+ gMonStillFrontPic_Pikachu, 0x800, 25,
+ gMonStillFrontPic_Raichu, 0x800, 26,
+ gMonStillFrontPic_Sandshrew, 0x800, 27,
+ gMonStillFrontPic_Sandslash, 0x800, 28,
+ gMonStillFrontPic_NidoranF, 0x800, 29,
+ gMonStillFrontPic_Nidorina, 0x800, 30,
+ gMonStillFrontPic_Nidoqueen, 0x800, 31,
+ gMonStillFrontPic_NidoranM, 0x800, 32,
+ gMonStillFrontPic_Nidorino, 0x800, 33,
+ gMonStillFrontPic_Nidoking, 0x800, 34,
+ gMonStillFrontPic_Clefairy, 0x800, 35,
+ gMonStillFrontPic_Clefable, 0x800, 36,
+ gMonStillFrontPic_Vulpix, 0x800, 37,
+ gMonStillFrontPic_Ninetales, 0x800, 38,
+ gMonStillFrontPic_Jigglypuff, 0x800, 39,
+ gMonStillFrontPic_Wigglytuff, 0x800, 40,
+ gMonStillFrontPic_Zubat, 0x800, 41,
+ gMonStillFrontPic_Golbat, 0x800, 42,
+ gMonStillFrontPic_Oddish, 0x800, 43,
+ gMonStillFrontPic_Gloom, 0x800, 44,
+ gMonStillFrontPic_Vileplume, 0x800, 45,
+ gMonStillFrontPic_Paras, 0x800, 46,
+ gMonStillFrontPic_Parasect, 0x800, 47,
+ gMonStillFrontPic_Venonat, 0x800, 48,
+ gMonStillFrontPic_Venomoth, 0x800, 49,
+ gMonStillFrontPic_Diglett, 0x800, 50,
+ gMonStillFrontPic_Dugtrio, 0x800, 51,
+ gMonStillFrontPic_Meowth, 0x800, 52,
+ gMonStillFrontPic_Persian, 0x800, 53,
+ gMonStillFrontPic_Psyduck, 0x800, 54,
+ gMonStillFrontPic_Golduck, 0x800, 55,
+ gMonStillFrontPic_Mankey, 0x800, 56,
+ gMonStillFrontPic_Primeape, 0x800, 57,
+ gMonStillFrontPic_Growlithe, 0x800, 58,
+ gMonStillFrontPic_Arcanine, 0x800, 59,
+ gMonStillFrontPic_Poliwag, 0x800, 60,
+ gMonStillFrontPic_Poliwhirl, 0x800, 61,
+ gMonStillFrontPic_Poliwrath, 0x800, 62,
+ gMonStillFrontPic_Abra, 0x800, 63,
+ gMonStillFrontPic_Kadabra, 0x800, 64,
+ gMonStillFrontPic_Alakazam, 0x800, 65,
+ gMonStillFrontPic_Machop, 0x800, 66,
+ gMonStillFrontPic_Machoke, 0x800, 67,
+ gMonStillFrontPic_Machamp, 0x800, 68,
+ gMonStillFrontPic_Bellsprout, 0x800, 69,
+ gMonStillFrontPic_Weepinbell, 0x800, 70,
+ gMonStillFrontPic_Victreebel, 0x800, 71,
+ gMonStillFrontPic_Tentacool, 0x800, 72,
+ gMonStillFrontPic_Tentacruel, 0x800, 73,
+ gMonStillFrontPic_Geodude, 0x800, 74,
+ gMonStillFrontPic_Graveler, 0x800, 75,
+ gMonStillFrontPic_Golem, 0x800, 76,
+ gMonStillFrontPic_Ponyta, 0x800, 77,
+ gMonStillFrontPic_Rapidash, 0x800, 78,
+ gMonStillFrontPic_Slowpoke, 0x800, 79,
+ gMonStillFrontPic_Slowbro, 0x800, 80,
+ gMonStillFrontPic_Magnemite, 0x800, 81,
+ gMonStillFrontPic_Magneton, 0x800, 82,
+ gMonStillFrontPic_Farfetchd, 0x800, 83,
+ gMonStillFrontPic_Doduo, 0x800, 84,
+ gMonStillFrontPic_Dodrio, 0x800, 85,
+ gMonStillFrontPic_Seel, 0x800, 86,
+ gMonStillFrontPic_Dewgong, 0x800, 87,
+ gMonStillFrontPic_Grimer, 0x800, 88,
+ gMonStillFrontPic_Muk, 0x800, 89,
+ gMonStillFrontPic_Shellder, 0x800, 90,
+ gMonStillFrontPic_Cloyster, 0x800, 91,
+ gMonStillFrontPic_Gastly, 0x800, 92,
+ gMonStillFrontPic_Haunter, 0x800, 93,
+ gMonStillFrontPic_Gengar, 0x800, 94,
+ gMonStillFrontPic_Onix, 0x800, 95,
+ gMonStillFrontPic_Drowzee, 0x800, 96,
+ gMonStillFrontPic_Hypno, 0x800, 97,
+ gMonStillFrontPic_Krabby, 0x800, 98,
+ gMonStillFrontPic_Kingler, 0x800, 99,
+ gMonStillFrontPic_Voltorb, 0x800, 100,
+ gMonStillFrontPic_Electrode, 0x800, 101,
+ gMonStillFrontPic_Exeggcute, 0x800, 102,
+ gMonStillFrontPic_Exeggutor, 0x800, 103,
+ gMonStillFrontPic_Cubone, 0x800, 104,
+ gMonStillFrontPic_Marowak, 0x800, 105,
+ gMonStillFrontPic_Hitmonlee, 0x800, 106,
+ gMonStillFrontPic_Hitmonchan, 0x800, 107,
+ gMonStillFrontPic_Lickitung, 0x800, 108,
+ gMonStillFrontPic_Koffing, 0x800, 109,
+ gMonStillFrontPic_Weezing, 0x800, 110,
+ gMonStillFrontPic_Rhyhorn, 0x800, 111,
+ gMonStillFrontPic_Rhydon, 0x800, 112,
+ gMonStillFrontPic_Chansey, 0x800, 113,
+ gMonStillFrontPic_Tangela, 0x800, 114,
+ gMonStillFrontPic_Kangaskhan, 0x800, 115,
+ gMonStillFrontPic_Horsea, 0x800, 116,
+ gMonStillFrontPic_Seadra, 0x800, 117,
+ gMonStillFrontPic_Goldeen, 0x800, 118,
+ gMonStillFrontPic_Seaking, 0x800, 119,
+ gMonStillFrontPic_Staryu, 0x800, 120,
+ gMonStillFrontPic_Starmie, 0x800, 121,
+ gMonStillFrontPic_Mrmime, 0x800, 122,
+ gMonStillFrontPic_Scyther, 0x800, 123,
+ gMonStillFrontPic_Jynx, 0x800, 124,
+ gMonStillFrontPic_Electabuzz, 0x800, 125,
+ gMonStillFrontPic_Magmar, 0x800, 126,
+ gMonStillFrontPic_Pinsir, 0x800, 127,
+ gMonStillFrontPic_Tauros, 0x800, 128,
+ gMonStillFrontPic_Magikarp, 0x800, 129,
+ gMonStillFrontPic_Gyarados, 0x800, 130,
+ gMonStillFrontPic_Lapras, 0x800, 131,
+ gMonStillFrontPic_Ditto, 0x800, 132,
+ gMonStillFrontPic_Eevee, 0x800, 133,
+ gMonStillFrontPic_Vaporeon, 0x800, 134,
+ gMonStillFrontPic_Jolteon, 0x800, 135,
+ gMonStillFrontPic_Flareon, 0x800, 136,
+ gMonStillFrontPic_Porygon, 0x800, 137,
+ gMonStillFrontPic_Omanyte, 0x800, 138,
+ gMonStillFrontPic_Omastar, 0x800, 139,
+ gMonStillFrontPic_Kabuto, 0x800, 140,
+ gMonStillFrontPic_Kabutops, 0x800, 141,
+ gMonStillFrontPic_Aerodactyl, 0x800, 142,
+ gMonStillFrontPic_Snorlax, 0x800, 143,
+ gMonStillFrontPic_Articuno, 0x800, 144,
+ gMonStillFrontPic_Zapdos, 0x800, 145,
+ gMonStillFrontPic_Moltres, 0x800, 146,
+ gMonStillFrontPic_Dratini, 0x800, 147,
+ gMonStillFrontPic_Dragonair, 0x800, 148,
+ gMonStillFrontPic_Dragonite, 0x800, 149,
+ gMonStillFrontPic_Mewtwo, 0x800, 150,
+ gMonStillFrontPic_Mew, 0x800, 151,
+// Gen II
+ gMonStillFrontPic_Chikorita, 0x800, 152,
+ gMonStillFrontPic_Bayleef, 0x800, 153,
+ gMonStillFrontPic_Meganium, 0x800, 154,
+ gMonStillFrontPic_Cyndaquil, 0x800, 155,
+ gMonStillFrontPic_Quilava, 0x800, 156,
+ gMonStillFrontPic_Typhlosion, 0x800, 157,
+ gMonStillFrontPic_Totodile, 0x800, 158,
+ gMonStillFrontPic_Croconaw, 0x800, 159,
+ gMonStillFrontPic_Feraligatr, 0x800, 160,
+ gMonStillFrontPic_Sentret, 0x800, 161,
+ gMonStillFrontPic_Furret, 0x800, 162,
+ gMonStillFrontPic_Hoothoot, 0x800, 163,
+ gMonStillFrontPic_Noctowl, 0x800, 164,
+ gMonStillFrontPic_Ledyba, 0x800, 165,
+ gMonStillFrontPic_Ledian, 0x800, 166,
+ gMonStillFrontPic_Spinarak, 0x800, 167,
+ gMonStillFrontPic_Ariados, 0x800, 168,
+ gMonStillFrontPic_Crobat, 0x800, 169,
+ gMonStillFrontPic_Chinchou, 0x800, 170,
+ gMonStillFrontPic_Lanturn, 0x800, 171,
+ gMonStillFrontPic_Pichu, 0x800, 172,
+ gMonStillFrontPic_Cleffa, 0x800, 173,
+ gMonStillFrontPic_Igglybuff, 0x800, 174,
+ gMonStillFrontPic_Togepi, 0x800, 175,
+ gMonStillFrontPic_Togetic, 0x800, 176,
+ gMonStillFrontPic_Natu, 0x800, 177,
+ gMonStillFrontPic_Xatu, 0x800, 178,
+ gMonStillFrontPic_Mareep, 0x800, 179,
+ gMonStillFrontPic_Flaaffy, 0x800, 180,
+ gMonStillFrontPic_Ampharos, 0x800, 181,
+ gMonStillFrontPic_Bellossom, 0x800, 182,
+ gMonStillFrontPic_Marill, 0x800, 183,
+ gMonStillFrontPic_Azumarill, 0x800, 184,
+ gMonStillFrontPic_Sudowoodo, 0x800, 185,
+ gMonStillFrontPic_Politoed, 0x800, 186,
+ gMonStillFrontPic_Hoppip, 0x800, 187,
+ gMonStillFrontPic_Skiploom, 0x800, 188,
+ gMonStillFrontPic_Jumpluff, 0x800, 189,
+ gMonStillFrontPic_Aipom, 0x800, 190,
+ gMonStillFrontPic_Sunkern, 0x800, 191,
+ gMonStillFrontPic_Sunflora, 0x800, 192,
+ gMonStillFrontPic_Yanma, 0x800, 193,
+ gMonStillFrontPic_Wooper, 0x800, 194,
+ gMonStillFrontPic_Quagsire, 0x800, 195,
+ gMonStillFrontPic_Espeon, 0x800, 196,
+ gMonStillFrontPic_Umbreon, 0x800, 197,
+ gMonStillFrontPic_Murkrow, 0x800, 198,
+ gMonStillFrontPic_Slowking, 0x800, 199,
+ gMonStillFrontPic_Misdreavus, 0x800, 200,
+ gMonStillFrontPic_UnownA, 0x800, 201,
+ gMonStillFrontPic_Wobbuffet, 0x800, 202,
+ gMonStillFrontPic_Girafarig, 0x800, 203,
+ gMonStillFrontPic_Pineco, 0x800, 204,
+ gMonStillFrontPic_Forretress, 0x800, 205,
+ gMonStillFrontPic_Dunsparce, 0x800, 206,
+ gMonStillFrontPic_Gligar, 0x800, 207,
+ gMonStillFrontPic_Steelix, 0x800, 208,
+ gMonStillFrontPic_Snubbull, 0x800, 209,
+ gMonStillFrontPic_Granbull, 0x800, 210,
+ gMonStillFrontPic_Qwilfish, 0x800, 211,
+ gMonStillFrontPic_Scizor, 0x800, 212,
+ gMonStillFrontPic_Shuckle, 0x800, 213,
+ gMonStillFrontPic_Heracross, 0x800, 214,
+ gMonStillFrontPic_Sneasel, 0x800, 215,
+ gMonStillFrontPic_Teddiursa, 0x800, 216,
+ gMonStillFrontPic_Ursaring, 0x800, 217,
+ gMonStillFrontPic_Slugma, 0x800, 218,
+ gMonStillFrontPic_Magcargo, 0x800, 219,
+ gMonStillFrontPic_Swinub, 0x800, 220,
+ gMonStillFrontPic_Piloswine, 0x800, 221,
+ gMonStillFrontPic_Corsola, 0x800, 222,
+ gMonStillFrontPic_Remoraid, 0x800, 223,
+ gMonStillFrontPic_Octillery, 0x800, 224,
+ gMonStillFrontPic_Delibird, 0x800, 225,
+ gMonStillFrontPic_Mantine, 0x800, 226,
+ gMonStillFrontPic_Skarmory, 0x800, 227,
+ gMonStillFrontPic_Houndour, 0x800, 228,
+ gMonStillFrontPic_Houndoom, 0x800, 229,
+ gMonStillFrontPic_Kingdra, 0x800, 230,
+ gMonStillFrontPic_Phanpy, 0x800, 231,
+ gMonStillFrontPic_Donphan, 0x800, 232,
+ gMonStillFrontPic_Porygon2, 0x800, 233,
+ gMonStillFrontPic_Stantler, 0x800, 234,
+ gMonStillFrontPic_Smeargle, 0x800, 235,
+ gMonStillFrontPic_Tyrogue, 0x800, 236,
+ gMonStillFrontPic_Hitmontop, 0x800, 237,
+ gMonStillFrontPic_Smoochum, 0x800, 238,
+ gMonStillFrontPic_Elekid, 0x800, 239,
+ gMonStillFrontPic_Magby, 0x800, 240,
+ gMonStillFrontPic_Miltank, 0x800, 241,
+ gMonStillFrontPic_Blissey, 0x800, 242,
+ gMonStillFrontPic_Raikou, 0x800, 243,
+ gMonStillFrontPic_Entei, 0x800, 244,
+ gMonStillFrontPic_Suicune, 0x800, 245,
+ gMonStillFrontPic_Larvitar, 0x800, 246,
+ gMonStillFrontPic_Pupitar, 0x800, 247,
+ gMonStillFrontPic_Tyranitar, 0x800, 248,
+ gMonStillFrontPic_Lugia, 0x800, 249,
+ gMonStillFrontPic_HoOh, 0x800, 250,
+ gMonStillFrontPic_Celebi, 0x800, 251,
+// Empty slots
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 252,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 253,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 254,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 255,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 256,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 257,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 258,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 259,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 260,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 261,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 262,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 263,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 264,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 265,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 266,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 267,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 268,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 269,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 270,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 271,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 272,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 273,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 274,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 275,
+ gMonStillFrontPic_DoubleQuestionMark, 0x800, 276,
+// Gen III
+ gMonStillFrontPic_Treecko, 0x800, 277,
+ gMonStillFrontPic_Grovyle, 0x800, 278,
+ gMonStillFrontPic_Sceptile, 0x800, 279,
+ gMonStillFrontPic_Torchic, 0x800, 280,
+ gMonStillFrontPic_Combusken, 0x800, 281,
+ gMonStillFrontPic_Blaziken, 0x800, 282,
+ gMonStillFrontPic_Mudkip, 0x800, 283,
+ gMonStillFrontPic_Marshtomp, 0x800, 284,
+ gMonStillFrontPic_Swampert, 0x800, 285,
+ gMonStillFrontPic_Poochyena, 0x800, 286,
+ gMonStillFrontPic_Mightyena, 0x800, 287,
+ gMonStillFrontPic_Zigzagoon, 0x800, 288,
+ gMonStillFrontPic_Linoone, 0x800, 289,
+ gMonStillFrontPic_Wurmple, 0x800, 290,
+ gMonStillFrontPic_Silcoon, 0x800, 291,
+ gMonStillFrontPic_Beautifly, 0x800, 292,
+ gMonStillFrontPic_Cascoon, 0x800, 293,
+ gMonStillFrontPic_Dustox, 0x800, 294,
+ gMonStillFrontPic_Lotad, 0x800, 295,
+ gMonStillFrontPic_Lombre, 0x800, 296,
+ gMonStillFrontPic_Ludicolo, 0x800, 297,
+ gMonStillFrontPic_Seedot, 0x800, 298,
+ gMonStillFrontPic_Nuzleaf, 0x800, 299,
+ gMonStillFrontPic_Shiftry, 0x800, 300,
+ gMonStillFrontPic_Nincada, 0x800, 301,
+ gMonStillFrontPic_Ninjask, 0x800, 302,
+ gMonStillFrontPic_Shedinja, 0x800, 303,
+ gMonStillFrontPic_Taillow, 0x800, 304,
+ gMonStillFrontPic_Swellow, 0x800, 305,
+ gMonStillFrontPic_Shroomish, 0x800, 306,
+ gMonStillFrontPic_Breloom, 0x800, 307,
+ gMonStillFrontPic_Spinda, 0x800, 308,
+ gMonStillFrontPic_Wingull, 0x800, 309,
+ gMonStillFrontPic_Pelipper, 0x800, 310,
+ gMonStillFrontPic_Surskit, 0x800, 311,
+ gMonStillFrontPic_Masquerain, 0x800, 312,
+ gMonStillFrontPic_Wailmer, 0x800, 313,
+ gMonStillFrontPic_Wailord, 0x800, 314,
+ gMonStillFrontPic_Skitty, 0x800, 315,
+ gMonStillFrontPic_Delcatty, 0x800, 316,
+ gMonStillFrontPic_Kecleon, 0x800, 317,
+ gMonStillFrontPic_Baltoy, 0x800, 318,
+ gMonStillFrontPic_Claydol, 0x800, 319,
+ gMonStillFrontPic_Nosepass, 0x800, 320,
+ gMonStillFrontPic_Torkoal, 0x800, 321,
+ gMonStillFrontPic_Sableye, 0x800, 322,
+ gMonStillFrontPic_Barboach, 0x800, 323,
+ gMonStillFrontPic_Whiscash, 0x800, 324,
+ gMonStillFrontPic_Luvdisc, 0x800, 325,
+ gMonStillFrontPic_Corphish, 0x800, 326,
+ gMonStillFrontPic_Crawdaunt, 0x800, 327,
+ gMonStillFrontPic_Feebas, 0x800, 328,
+ gMonStillFrontPic_Milotic, 0x800, 329,
+ gMonStillFrontPic_Carvanha, 0x800, 330,
+ gMonStillFrontPic_Sharpedo, 0x800, 331,
+ gMonStillFrontPic_Trapinch, 0x800, 332,
+ gMonStillFrontPic_Vibrava, 0x800, 333,
+ gMonStillFrontPic_Flygon, 0x800, 334,
+ gMonStillFrontPic_Makuhita, 0x800, 335,
+ gMonStillFrontPic_Hariyama, 0x800, 336,
+ gMonStillFrontPic_Electrike, 0x800, 337,
+ gMonStillFrontPic_Manectric, 0x800, 338,
+ gMonStillFrontPic_Numel, 0x800, 339,
+ gMonStillFrontPic_Camerupt, 0x800, 340,
+ gMonStillFrontPic_Spheal, 0x800, 341,
+ gMonStillFrontPic_Sealeo, 0x800, 342,
+ gMonStillFrontPic_Walrein, 0x800, 343,
+ gMonStillFrontPic_Cacnea, 0x800, 344,
+ gMonStillFrontPic_Cacturne, 0x800, 345,
+ gMonStillFrontPic_Snorunt, 0x800, 346,
+ gMonStillFrontPic_Glalie, 0x800, 347,
+ gMonStillFrontPic_Lunatone, 0x800, 348,
+ gMonStillFrontPic_Solrock, 0x800, 349,
+ gMonStillFrontPic_Azurill, 0x800, 350,
+ gMonStillFrontPic_Spoink, 0x800, 351,
+ gMonStillFrontPic_Grumpig, 0x800, 352,
+ gMonStillFrontPic_Plusle, 0x800, 353,
+ gMonStillFrontPic_Minun, 0x800, 354,
+ gMonStillFrontPic_Mawile, 0x800, 355,
+ gMonStillFrontPic_Meditite, 0x800, 356,
+ gMonStillFrontPic_Medicham, 0x800, 357,
+ gMonStillFrontPic_Swablu, 0x800, 358,
+ gMonStillFrontPic_Altaria, 0x800, 359,
+ gMonStillFrontPic_Wynaut, 0x800, 360,
+ gMonStillFrontPic_Duskull, 0x800, 361,
+ gMonStillFrontPic_Dusclops, 0x800, 362,
+ gMonStillFrontPic_Roselia, 0x800, 363,
+ gMonStillFrontPic_Slakoth, 0x800, 364,
+ gMonStillFrontPic_Vigoroth, 0x800, 365,
+ gMonStillFrontPic_Slaking, 0x800, 366,
+ gMonStillFrontPic_Gulpin, 0x800, 367,
+ gMonStillFrontPic_Swalot, 0x800, 368,
+ gMonStillFrontPic_Tropius, 0x800, 369,
+ gMonStillFrontPic_Whismur, 0x800, 370,
+ gMonStillFrontPic_Loudred, 0x800, 371,
+ gMonStillFrontPic_Exploud, 0x800, 372,
+ gMonStillFrontPic_Clamperl, 0x800, 373,
+ gMonStillFrontPic_Huntail, 0x800, 374,
+ gMonStillFrontPic_Gorebyss, 0x800, 375,
+ gMonStillFrontPic_Absol, 0x800, 376,
+ gMonStillFrontPic_Shuppet, 0x800, 377,
+ gMonStillFrontPic_Banette, 0x800, 378,
+ gMonStillFrontPic_Seviper, 0x800, 379,
+ gMonStillFrontPic_Zangoose, 0x800, 380,
+ gMonStillFrontPic_Relicanth, 0x800, 381,
+ gMonStillFrontPic_Aron, 0x800, 382,
+ gMonStillFrontPic_Lairon, 0x800, 383,
+ gMonStillFrontPic_Aggron, 0x800, 384,
+ gMonStillFrontPic_Castform, 0x800, 385,
+ gMonStillFrontPic_Volbeat, 0x800, 386,
+ gMonStillFrontPic_Illumise, 0x800, 387,
+ gMonStillFrontPic_Lileep, 0x800, 388,
+ gMonStillFrontPic_Cradily, 0x800, 389,
+ gMonStillFrontPic_Anorith, 0x800, 390,
+ gMonStillFrontPic_Armaldo, 0x800, 391,
+ gMonStillFrontPic_Ralts, 0x800, 392,
+ gMonStillFrontPic_Kirlia, 0x800, 393,
+ gMonStillFrontPic_Gardevoir, 0x800, 394,
+ gMonStillFrontPic_Bagon, 0x800, 395,
+ gMonStillFrontPic_Shelgon, 0x800, 396,
+ gMonStillFrontPic_Salamence, 0x800, 397,
+ gMonStillFrontPic_Beldum, 0x800, 398,
+ gMonStillFrontPic_Metang, 0x800, 399,
+ gMonStillFrontPic_Metagross, 0x800, 400,
+ gMonStillFrontPic_Regirock, 0x800, 401,
+ gMonStillFrontPic_Regice, 0x800, 402,
+ gMonStillFrontPic_Registeel, 0x800, 403,
+ gMonStillFrontPic_Kyogre, 0x800, 404,
+ gMonStillFrontPic_Groudon, 0x800, 405,
+ gMonStillFrontPic_Rayquaza, 0x800, 406,
+ gMonStillFrontPic_Latias, 0x800, 407,
+ gMonStillFrontPic_Latios, 0x800, 408,
+ gMonStillFrontPic_Jirachi, 0x800, 409,
+ gMonStillFrontPic_Deoxys, 0x800, 410,
+ gMonStillFrontPic_Chimecho, 0x800, 411,
+ gMonStillFrontPic_Egg, 0x800, 412,
+ gMonStillFrontPic_UnownB, 0x800, 413,
+ gMonStillFrontPic_UnownC, 0x800, 414,
+ gMonStillFrontPic_UnownD, 0x800, 415,
+ gMonStillFrontPic_UnownE, 0x800, 416,
+ gMonStillFrontPic_UnownF, 0x800, 417,
+ gMonStillFrontPic_UnownG, 0x800, 418,
+ gMonStillFrontPic_UnownH, 0x800, 419,
+ gMonStillFrontPic_UnownI, 0x800, 420,
+ gMonStillFrontPic_UnownJ, 0x800, 421,
+ gMonStillFrontPic_UnownK, 0x800, 422,
+ gMonStillFrontPic_UnownL, 0x800, 423,
+ gMonStillFrontPic_UnownM, 0x800, 424,
+ gMonStillFrontPic_UnownN, 0x800, 425,
+ gMonStillFrontPic_UnownO, 0x800, 426,
+ gMonStillFrontPic_UnownP, 0x800, 427,
+ gMonStillFrontPic_UnownQ, 0x800, 428,
+ gMonStillFrontPic_UnownR, 0x800, 429,
+ gMonStillFrontPic_UnownS, 0x800, 430,
+ gMonStillFrontPic_UnownT, 0x800, 431,
+ gMonStillFrontPic_UnownU, 0x800, 432,
+ gMonStillFrontPic_UnownV, 0x800, 433,
+ gMonStillFrontPic_UnownW, 0x800, 434,
+ gMonStillFrontPic_UnownX, 0x800, 435,
+ gMonStillFrontPic_UnownY, 0x800, 436,
+ gMonStillFrontPic_UnownZ, 0x800, 437,
+ gMonStillFrontPic_UnownExclamationMark, 0x800, 438,
+ gMonStillFrontPic_UnownQuestionMark, 0x800, 439,
+};
diff --git a/src/data/pokemon_graphics/unknown_anims.h b/src/data/pokemon_graphics/unknown_anims.h
new file mode 100644
index 000000000..a4ae43eb6
--- /dev/null
+++ b/src/data/pokemon_graphics/unknown_anims.h
@@ -0,0 +1,2347 @@
+const union AnimCmd gUnknown_082FF6EC[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF6F4[] =
+{
+ ANIMCMD_FRAME(1, 0),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF6FC[] =
+{
+ ANIMCMD_FRAME(2, 0),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF704[] =
+{
+ ANIMCMD_FRAME(3, 0),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gPlayerMonSpriteAnimsTable[] =
+{
+ gUnknown_082FF6EC,
+ gUnknown_082FF6F4,
+ gUnknown_082FF6FC,
+ gUnknown_082FF704,
+};
+
+const union AnimCmd gUnknown_082FF71C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_FRAME(1, 25),
+ ANIMCMD_FRAME(0, 7),
+ ANIMCMD_FRAME(1, 7),
+ ANIMCMD_FRAME(0, 7),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF734[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF744[] =
+{
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(2, 10),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF750[] =
+{
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF758[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_FRAME(1, 5),
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_FRAME(1, 5),
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_FRAME(1, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF774[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_FRAME(2, 12),
+ ANIMCMD_FRAME(0, 14),
+ ANIMCMD_FRAME(2, 12),
+ ANIMCMD_FRAME(0, 14),
+ ANIMCMD_FRAME(2, 12),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF790[] =
+{
+ ANIMCMD_FRAME(0, 14),
+ ANIMCMD_FRAME(2, 12),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF79C[] =
+{
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(1, 10),
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(1, 10),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF7B0[] =
+{
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(2, 10),
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(2, 10),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF7C4[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF7CC[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF7D4[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF7DC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF7E4[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF7EC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF7F4[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF7FC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF804[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF80C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF814[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF81C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF824[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF82C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF834[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF83C[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF844[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF84C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF854[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF85C[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF864[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF86C[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF874[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF87C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF884[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF88C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF894[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF89C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF8A4[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF8AC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF8B4[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF8BC[] =
+{
+ ANIMCMD_FRAME(0, 15),
+ ANIMCMD_FRAME(8, 15),
+ ANIMCMD_FRAME(2, 22),
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_FRAME(6, 5),
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_FRAME(6, 5),
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_FRAME(6, 5),
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_FRAME(6, 5),
+ ANIMCMD_FRAME(5, 5),
+ ANIMCMD_FRAME(7, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF8FC[] =
+{
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(8, 15),
+ ANIMCMD_FRAME(2, 15),
+ ANIMCMD_FRAME(8, 15),
+ ANIMCMD_FRAME(9, 15),
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(9, 10),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF91C[] =
+{
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(9, 10),
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(10, 20),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF930[] =
+{
+ ANIMCMD_FRAME(0, 15),
+ ANIMCMD_FRAME(11, 15),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF93C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF944[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF94C[] =
+{
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(1, 7),
+ ANIMCMD_FRAME(2, 7),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(1, 6),
+ ANIMCMD_FRAME(5, 2),
+ ANIMCMD_FRAME(0, 2),
+ ANIMCMD_FRAME(5, 2),
+ ANIMCMD_FRAME(0, 2),
+ ANIMCMD_FRAME(5, 2),
+ ANIMCMD_FRAME(6, 2),
+ ANIMCMD_FRAME(5, 2),
+ ANIMCMD_FRAME(6, 2),
+ ANIMCMD_FRAME(6, 10),
+ ANIMCMD_FRAME(5, 4),
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FF9A8[] =
+{
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(7, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(7, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(7, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(7, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(7, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(9, 3),
+ ANIMCMD_FRAME(0, 3),
+ ANIMCMD_FRAME(9, 3),
+ ANIMCMD_FRAME(0, 3),
+ ANIMCMD_FRAME(7, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFA00[] =
+{
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(7, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(7, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(7, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(7, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(7, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_FRAME(9, 3),
+ ANIMCMD_FRAME(0, 3),
+ ANIMCMD_FRAME(9, 3),
+ ANIMCMD_FRAME(0, 3),
+ ANIMCMD_FRAME(7, 12),
+ ANIMCMD_FRAME(8, 12),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFA58[] =
+{
+ ANIMCMD_FRAME(0,18),
+ ANIMCMD_FRAME(10, 18),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFA64[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFA6C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFA74[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFA7C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFA84[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFA8C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFA94[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFA9C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFAA4[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFAAC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFAB4[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFABC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFAC4[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFACC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFAD4[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFADC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFAE4[] =
+{
+ ANIMCMD_FRAME(0, 63),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFAEC[] =
+{
+ ANIMCMD_FRAME(0, 63),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFAF4[] =
+{
+ ANIMCMD_FRAME(0, 63),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFAFC[] =
+{
+ ANIMCMD_FRAME(0, 63),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFB04[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFB0C[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFB14[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFB1C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFB24[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFB2C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFB34[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFB3C[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFB44[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_FRAME(1, 18),
+ ANIMCMD_FRAME(0, 18),
+ ANIMCMD_FRAME(1, 18),
+ ANIMCMD_FRAME(0, 18),
+ ANIMCMD_FRAME(1, 18),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFB60[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_FRAME(2, 18),
+ ANIMCMD_FRAME(0, 18),
+ ANIMCMD_FRAME(2, 18),
+ ANIMCMD_FRAME(0, 18),
+ ANIMCMD_FRAME(2, 18),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFB7C[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_FRAME(2, 5),
+ ANIMCMD_FRAME(3, 6),
+ ANIMCMD_FRAME(1, 5),
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_FRAME(2, 5),
+ ANIMCMD_FRAME(3, 5),
+ ANIMCMD_FRAME(1, 5),
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_FRAME(1, 7),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFBBC[] =
+{
+ ANIMCMD_FRAME(0, 6),
+ ANIMCMD_FRAME(1, 6),
+ ANIMCMD_FRAME(2, 6),
+ ANIMCMD_FRAME(3, 6),
+ ANIMCMD_FRAME(1, 6),
+ ANIMCMD_FRAME(0, 6),
+ ANIMCMD_FRAME(1, 6),
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFBE0[] =
+{
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(5, 12),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(6, 12),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFBF4[] =
+{
+ ANIMCMD_FRAME(7, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFBFC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC04[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC0C[] =
+{
+ ANIMCMD_FRAME(0, 63),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC14[] =
+{
+ ANIMCMD_FRAME(0, 63),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC1C[] =
+{
+ ANIMCMD_FRAME(0, 63),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC24[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC2C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC34[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC3C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_FRAME(1, 10),
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(1, 10),
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(1, 10),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC58[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC74[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC7C[] =
+{
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC84[] =
+{
+ ANIMCMD_FRAME(1, 9),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC8C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC94[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFC9C[] =
+{
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFCA4[] =
+{
+ ANIMCMD_FRAME(1, 10),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFCAC[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFCB4[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFCBC[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFCC4[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFCCC[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFCD4[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFCDC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFCE4[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFCEC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFCF4[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFCFC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD04[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD0C[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD14[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD1C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD24[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD2C[] =
+{
+ ANIMCMD_FRAME(2, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD34[] =
+{
+ ANIMCMD_FRAME(3, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD3C[] =
+{
+ ANIMCMD_FRAME(0, 63),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD44[] =
+{
+ ANIMCMD_FRAME(0, 63),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD4C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD54[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD5C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD64[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD6C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD74[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD7C[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD84[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFD8C[] =
+{
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_FRAME(1, 30),
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_FRAME(1, 30),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFDA0[] =
+{
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_FRAME(2, 20),
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_FRAME(2, 20),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFDB4[] =
+{
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFDBC[] =
+{
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gUnknown_082FFDC4[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gUnknown_082FFDCC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFDD0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFDD4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFDD8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFDDC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFDE0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFDE4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFDE8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFDEC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFDF0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFDF4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFDF8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFDFC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE00[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE04[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE08[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE0C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE10[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE14[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE18[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE1C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE20[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE24[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE28[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE2C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE30[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE34[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE38[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE3C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE40[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE44[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE48[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE4C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE50[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE54[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE58[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE5C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE60[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE64[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE68[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE6C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE70[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE74[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE78[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE7C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE80[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE84[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE88[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE8C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE90[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE94[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE98[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFE9C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEA0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEA4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEA8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEAC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEB0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEB4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEB8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEBC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEC0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEC4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEC8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFECC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFED0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFED4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFED8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEDC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEE0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEE4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEE8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEEC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEF0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEF4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEF8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFEFC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF00[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF04[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF08[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF0C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF10[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF14[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF18[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF1C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF20[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF24[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF28[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF2C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF30[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF34[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF38[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF3C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF40[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF44[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF48[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF4C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF50[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF54[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF58[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF5C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF60[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF64[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF68[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF6C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF70[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF74[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF78[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF7C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF80[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF84[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF88[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF8C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF90[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF94[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF98[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFF9C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFA0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFA4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFA8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFAC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFB0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFB4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFB8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFBC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFC0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFC4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFC8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFCC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFD0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFD4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFD8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFDC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFE0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFE4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFE8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFEC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFF0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFF4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFF8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_082FFFFC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300000[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300004[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300008[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830000C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300010[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300014[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300018[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830001C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300020[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300024[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300028[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830002C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300030[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300034[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300038[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830003C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300040[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300044[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300048[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830004C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300050[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300054[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300058[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830005C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300060[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300064[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300068[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830006C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300070[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300074[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300078[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830007C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300080[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300084[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300088[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830008C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300090[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300094[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300098[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830009C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000A0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000A4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000A8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000AC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000B0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000B4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000B8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000BC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000C0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000C4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000C8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000CC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000D0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000D4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000D8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000DC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000E0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000E4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000E8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000EC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000F0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000F4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000F8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083000FC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300100[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300104[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300108[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830010C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300110[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300114[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300118[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830011C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300120[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300124[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300128[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830012C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300130[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300134[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300138[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830013C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300140[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300144[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300148[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830014C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300150[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300154[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300158[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830015C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300160[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300164[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300168[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830016C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300170[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300174[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300178[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830017C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300180[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300184[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300188[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830018C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300190[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300194[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300198[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830019C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001A0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001A4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001A8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001AC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001B0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001B4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001B8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001BC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001C0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001C4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001C8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001CC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083001D0[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_083001D4[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF71C,
+ gUnknown_082FF734,
+ gUnknown_082FF744,
+ gUnknown_082FF750,
+};
+
+const union AnimCmd *const gUnknown_083001E8[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_083001EC[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF758,
+ gUnknown_082FF774,
+ gUnknown_082FF790,
+};
+
+const union AnimCmd *const gUnknown_083001FC[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_08300200[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF79C,
+ gUnknown_082FF7B0,
+};
+
+const union AnimCmd *const gUnknown_0830020C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF7C4,
+};
+
+const union AnimCmd *const gUnknown_08300214[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF7CC,
+};
+
+const union AnimCmd *const gUnknown_0830021C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF7D4,
+};
+
+const union AnimCmd *const gUnknown_08300224[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF7DC,
+ gUnknown_082FF7E4,
+};
+
+const union AnimCmd *const gUnknown_08300230[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF7EC,
+ gUnknown_082FF7F4,
+};
+
+const union AnimCmd *const gUnknown_0830023C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF7FC,
+ gUnknown_082FF804,
+};
+
+const union AnimCmd *const gUnknown_08300248[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF80C,
+ gUnknown_082FF814,
+};
+
+const union AnimCmd *const gUnknown_08300254[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF81C,
+ gUnknown_082FF824,
+};
+
+const union AnimCmd *const gUnknown_08300260[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_08300264[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF82C,
+};
+
+const union AnimCmd *const gUnknown_0830026C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF834,
+ gUnknown_082FF83C,
+};
+
+const union AnimCmd *const gUnknown_08300278[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF844,
+};
+
+const union AnimCmd *const gUnknown_08300280[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF84C,
+};
+
+const union AnimCmd *const gUnknown_08300288[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF854,
+ gUnknown_082FF85C,
+};
+
+const union AnimCmd *const gUnknown_08300294[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300298[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830029C[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_083002A0[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF864,
+};
+
+const union AnimCmd *const gUnknown_083002A8[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF86C,
+};
+
+const union AnimCmd *const gUnknown_083002B0[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF874,
+};
+
+const union AnimCmd *const gUnknown_083002B8[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF87C,
+};
+
+const union AnimCmd *const gUnknown_083002C0[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_083002C4[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF884,
+};
+
+const union AnimCmd *const gUnknown_083002CC[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF88C,
+ gUnknown_082FF894,
+};
+
+const union AnimCmd *const gUnknown_083002D8[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF89C,
+ gUnknown_082FF8A4,
+};
+
+const union AnimCmd *const gUnknown_083002E4[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF8AC,
+ gUnknown_082FF8B4,
+};
+
+const union AnimCmd *const gUnknown_083002F0[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF8BC,
+ gUnknown_082FF8FC,
+ gUnknown_082FF91C,
+ gUnknown_082FF930,
+};
+
+const union AnimCmd *const gUnknown_08300304[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_08300308[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF93C,
+};
+
+const union AnimCmd *const gUnknown_08300310[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF944,
+};
+
+const union AnimCmd *const gUnknown_08300318[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FF94C,
+ gUnknown_082FF9A8,
+ gUnknown_082FFA00,
+ gUnknown_082FFA58,
+};
+
+const union AnimCmd *const gUnknown_0830032C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFA64,
+};
+
+const union AnimCmd *const gUnknown_08300334[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFA6C,
+};
+
+const union AnimCmd *const gUnknown_0830033C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFA74,
+};
+
+const union AnimCmd *const gUnknown_08300344[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_08300348[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFA7C,
+ gUnknown_082FFA84,
+};
+
+const union AnimCmd *const gUnknown_08300354[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300358[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_0830035C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFA8C,
+ gUnknown_082FFA94,
+};
+
+const union AnimCmd *const gUnknown_08300368[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830036C[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_08300370[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFA9C,
+ gUnknown_082FFAA4,
+};
+
+const union AnimCmd *const gUnknown_0830037C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFAAC,
+ gUnknown_082FFAB4,
+};
+
+const union AnimCmd *const gUnknown_08300388[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFABC,
+ gUnknown_082FFAC4,
+};
+
+const union AnimCmd *const gUnknown_08300394[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFACC,
+ gUnknown_082FFAD4,
+};
+
+const union AnimCmd *const gUnknown_083003A0[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFADC,
+};
+
+const union AnimCmd *const gUnknown_083003A8[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFAE4,
+};
+
+const union AnimCmd *const gUnknown_083003B0[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFAEC,
+};
+
+const union AnimCmd *const gUnknown_083003B8[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFAF4,
+};
+
+const union AnimCmd *const gUnknown_083003C0[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFAFC,
+};
+
+const union AnimCmd *const gUnknown_083003C8[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFB04,
+ gUnknown_082FFB0C,
+};
+
+const union AnimCmd *const gUnknown_083003D4[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFB14,
+};
+
+const union AnimCmd *const gUnknown_083003DC[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFB1C,
+ gUnknown_082FFB24,
+};
+
+const union AnimCmd *const gUnknown_083003E8[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFB2C,
+};
+
+const union AnimCmd *const gUnknown_083003F0[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFB34,
+};
+
+const union AnimCmd *const gUnknown_083003F8[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFB3C,
+};
+
+const union AnimCmd *const gUnknown_08300400[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFB44,
+ gUnknown_082FFB60,
+};
+
+const union AnimCmd *const gUnknown_0830040C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300410[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300414[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300418[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830041C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300420[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_08300424[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFB7C,
+ gUnknown_082FFBBC,
+ gUnknown_082FFBE0,
+ gUnknown_082FFBF4,
+};
+
+const union AnimCmd *const gUnknown_08300438[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFBFC,
+ gUnknown_082FFC04,
+};
+
+const union AnimCmd *const gUnknown_08300444[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFC0C,
+};
+
+const union AnimCmd *const gUnknown_0830044C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFC14,
+};
+
+const union AnimCmd *const gUnknown_08300454[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFC1C,
+};
+
+const union AnimCmd *const gUnknown_0830045C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFC24,
+};
+
+const union AnimCmd *const gUnknown_08300464[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFC2C,
+};
+
+const union AnimCmd *const gUnknown_0830046C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFC34,
+};
+
+const union AnimCmd *const gUnknown_08300474[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFC3C,
+ gUnknown_082FFC58,
+};
+
+const union AnimCmd *const gUnknown_08300480[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFC74,
+};
+
+const union AnimCmd *const gUnknown_08300488[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFC7C,
+ gUnknown_082FFC84,
+};
+
+const union AnimCmd *const gUnknown_08300494[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFC8C,
+ gUnknown_082FFC94,
+};
+
+const union AnimCmd *const gUnknown_083004A0[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFC9C,
+ gUnknown_082FFCA4,
+};
+
+const union AnimCmd *const gUnknown_083004AC[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_083004B0[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFCAC,
+};
+
+const union AnimCmd *const gUnknown_083004B8[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFCB4,
+};
+
+const union AnimCmd *const gUnknown_083004C0[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFCBC,
+};
+
+const union AnimCmd *const gUnknown_083004C8[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFCC4,
+};
+
+const union AnimCmd *const gUnknown_083004D0[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFCCC,
+};
+
+const union AnimCmd *const gUnknown_083004D8[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFCD4,
+};
+
+const union AnimCmd *const gUnknown_083004E0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083004E4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083004E8[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_083004EC[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFCDC,
+};
+
+const union AnimCmd *const gUnknown_083004F4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083004F8[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_083004FC[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFCE4,
+};
+
+const union AnimCmd *const gUnknown_08300504[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFCEC,
+ gUnknown_082FFCF4,
+};
+
+const union AnimCmd *const gUnknown_08300510[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFCFC,
+};
+
+const union AnimCmd *const gUnknown_08300518[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830051C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300520[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_08300524[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFD04,
+};
+
+const union AnimCmd *const gUnknown_0830052C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFD0C,
+};
+
+const union AnimCmd *const gUnknown_08300534[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFD14,
+};
+
+const union AnimCmd *const gUnknown_0830053C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFD1C,
+ gUnknown_082FFD24,
+ gUnknown_082FFD2C,
+ gUnknown_082FFD34,
+};
+
+const union AnimCmd *const gUnknown_08300550[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFD3C,
+};
+
+const union AnimCmd *const gUnknown_08300558[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFD44,
+};
+
+const union AnimCmd *const gUnknown_08300560[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300564[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300568[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830056C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300570[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300574[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300578[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_0830057C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFD4C,
+ gUnknown_082FFD54,
+};
+
+const union AnimCmd *const gUnknown_08300588[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_0830058C[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFD5C,
+ gUnknown_082FFD64,
+};
+
+const union AnimCmd *const gUnknown_08300598[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830059C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083005A0[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_083005A4[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFD6C,
+};
+
+const union AnimCmd *const gUnknown_083005AC[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFD74,
+};
+
+const union AnimCmd *const gUnknown_083005B4[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFD7C,
+ gUnknown_082FFD84,
+};
+
+const union AnimCmd *const gUnknown_083005C0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083005C4[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_083005C8[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFD8C,
+ gUnknown_082FFDA0,
+};
+
+const union AnimCmd *const gUnknown_083005D4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083005D8[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const gUnknown_083005DC[] =
+{
+ gAnimCmd_General_Frame0,
+ gUnknown_082FFDC4,
+};
+
+const union AnimCmd *const gUnknown_083005E4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083005E8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083005EC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083005F0[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083005F4[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083005F8[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_083005FC[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300600[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300604[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300608[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830060C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300610[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300614[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300618[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830061C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300620[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300624[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300628[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830062C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300630[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300634[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300638[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830063C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300640[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300644[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300648[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_0830064C[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300650[] = {gAnimCmd_General_Frame0};
+const union AnimCmd *const gUnknown_08300654[] = {gAnimCmd_General_Frame0};
+
+const union AnimCmd *const *const gUnknownAnimationsSpriteAnimsPtrTable[] =
+{
+ gUnknown_082FFDCC,
+ gUnknown_082FFDD0,
+ gUnknown_082FFDD4,
+ gUnknown_082FFDD8,
+ gUnknown_082FFDDC,
+ gUnknown_082FFDE0,
+ gUnknown_082FFDE4,
+ gUnknown_082FFDE8,
+ gUnknown_082FFDEC,
+ gUnknown_082FFDF0,
+ gUnknown_082FFDF4,
+ gUnknown_082FFDF8,
+ gUnknown_082FFDFC,
+ gUnknown_082FFE00,
+ gUnknown_082FFE04,
+ gUnknown_082FFE08,
+ gUnknown_082FFE0C,
+ gUnknown_082FFE10,
+ gUnknown_082FFE14,
+ gUnknown_082FFE18,
+ gUnknown_082FFE1C,
+ gUnknown_082FFE20,
+ gUnknown_082FFE24,
+ gUnknown_082FFE28,
+ gUnknown_082FFE2C,
+ gUnknown_082FFE30,
+ gUnknown_082FFE34,
+ gUnknown_082FFE38,
+ gUnknown_082FFE3C,
+ gUnknown_082FFE40,
+ gUnknown_082FFE44,
+ gUnknown_082FFE48,
+ gUnknown_082FFE4C,
+ gUnknown_082FFE50,
+ gUnknown_082FFE54,
+ gUnknown_082FFE58,
+ gUnknown_082FFE5C,
+ gUnknown_082FFE60,
+ gUnknown_082FFE64,
+ gUnknown_082FFE68,
+ gUnknown_082FFE6C,
+ gUnknown_082FFE70,
+ gUnknown_082FFE74,
+ gUnknown_082FFE78,
+ gUnknown_082FFE7C,
+ gUnknown_082FFE80,
+ gUnknown_082FFE84,
+ gUnknown_082FFE88,
+ gUnknown_082FFE8C,
+ gUnknown_082FFE90,
+ gUnknown_082FFE94,
+ gUnknown_082FFE98,
+ gUnknown_082FFE9C,
+ gUnknown_082FFEA0,
+ gUnknown_082FFEA4,
+ gUnknown_082FFEA8,
+ gUnknown_082FFEAC,
+ gUnknown_082FFEB0,
+ gUnknown_082FFEB4,
+ gUnknown_082FFEB8,
+ gUnknown_082FFEBC,
+ gUnknown_082FFEC0,
+ gUnknown_082FFEC4,
+ gUnknown_082FFEC8,
+ gUnknown_082FFECC,
+ gUnknown_082FFED0,
+ gUnknown_082FFED4,
+ gUnknown_082FFED8,
+ gUnknown_082FFEDC,
+ gUnknown_082FFEE0,
+ gUnknown_082FFEE4,
+ gUnknown_082FFEE8,
+ gUnknown_082FFEEC,
+ gUnknown_082FFEF0,
+ gUnknown_082FFEF4,
+ gUnknown_082FFEF8,
+ gUnknown_082FFEFC,
+ gUnknown_082FFF00,
+ gUnknown_082FFF04,
+ gUnknown_082FFF08,
+ gUnknown_082FFF0C,
+ gUnknown_082FFF10,
+ gUnknown_082FFF14,
+ gUnknown_082FFF18,
+ gUnknown_082FFF1C,
+ gUnknown_082FFF20,
+ gUnknown_082FFF24,
+ gUnknown_082FFF28,
+ gUnknown_082FFF2C,
+ gUnknown_082FFF30,
+ gUnknown_082FFF34,
+ gUnknown_082FFF38,
+ gUnknown_082FFF3C,
+ gUnknown_082FFF40,
+ gUnknown_082FFF44,
+ gUnknown_082FFF48,
+ gUnknown_082FFF4C,
+ gUnknown_082FFF50,
+ gUnknown_082FFF54,
+ gUnknown_082FFF58,
+ gUnknown_082FFF5C,
+ gUnknown_082FFF60,
+ gUnknown_082FFF64,
+ gUnknown_082FFF68,
+ gUnknown_082FFF6C,
+ gUnknown_082FFF70,
+ gUnknown_082FFF74,
+ gUnknown_082FFF78,
+ gUnknown_082FFF7C,
+ gUnknown_082FFF80,
+ gUnknown_082FFF84,
+ gUnknown_082FFF88,
+ gUnknown_082FFF8C,
+ gUnknown_082FFF90,
+ gUnknown_082FFF94,
+ gUnknown_082FFF98,
+ gUnknown_082FFF9C,
+ gUnknown_082FFFA0,
+ gUnknown_082FFFA4,
+ gUnknown_082FFFA8,
+ gUnknown_082FFFAC,
+ gUnknown_082FFFB0,
+ gUnknown_082FFFB4,
+ gUnknown_082FFFB8,
+ gUnknown_082FFFBC,
+ gUnknown_082FFFC0,
+ gUnknown_082FFFC4,
+ gUnknown_082FFFC8,
+ gUnknown_082FFFCC,
+ gUnknown_082FFFD0,
+ gUnknown_082FFFD4,
+ gUnknown_082FFFD8,
+ gUnknown_082FFFDC,
+ gUnknown_082FFFE0,
+ gUnknown_082FFFE4,
+ gUnknown_082FFFE8,
+ gUnknown_082FFFEC,
+ gUnknown_082FFFF0,
+ gUnknown_082FFFF4,
+ gUnknown_082FFFF8,
+ gUnknown_082FFFFC,
+ gUnknown_08300000,
+ gUnknown_08300004,
+ gUnknown_08300008,
+ gUnknown_0830000C,
+ gUnknown_08300010,
+ gUnknown_08300014,
+ gUnknown_08300018,
+ gUnknown_0830001C,
+ gUnknown_08300020,
+ gUnknown_08300024,
+ gUnknown_08300028,
+ gUnknown_0830002C,
+ gUnknown_08300030,
+ gUnknown_08300034,
+ gUnknown_08300038,
+ gUnknown_0830003C,
+ gUnknown_08300040,
+ gUnknown_08300044,
+ gUnknown_08300048,
+ gUnknown_0830004C,
+ gUnknown_08300050,
+ gUnknown_08300054,
+ gUnknown_08300058,
+ gUnknown_0830005C,
+ gUnknown_08300060,
+ gUnknown_08300064,
+ gUnknown_08300068,
+ gUnknown_0830006C,
+ gUnknown_08300070,
+ gUnknown_08300074,
+ gUnknown_08300078,
+ gUnknown_0830007C,
+ gUnknown_08300080,
+ gUnknown_08300084,
+ gUnknown_08300088,
+ gUnknown_0830008C,
+ gUnknown_08300090,
+ gUnknown_08300094,
+ gUnknown_08300098,
+ gUnknown_0830009C,
+ gUnknown_083000A0,
+ gUnknown_083000A4,
+ gUnknown_083000A8,
+ gUnknown_083000AC,
+ gUnknown_083000B0,
+ gUnknown_083000B4,
+ gUnknown_083000B8,
+ gUnknown_083000BC,
+ gUnknown_083000C0,
+ gUnknown_083000C4,
+ gUnknown_083000C8,
+ gUnknown_083000CC,
+ gUnknown_083000D0,
+ gUnknown_083000D4,
+ gUnknown_083000D8,
+ gUnknown_083000DC,
+ gUnknown_083000E0,
+ gUnknown_083000E4,
+ gUnknown_083000E8,
+ gUnknown_083000EC,
+ gUnknown_083000F0,
+ gUnknown_083000F4,
+ gUnknown_083000F8,
+ gUnknown_083000FC,
+ gUnknown_08300100,
+ gUnknown_08300104,
+ gUnknown_08300108,
+ gUnknown_0830010C,
+ gUnknown_08300110,
+ gUnknown_08300114,
+ gUnknown_08300118,
+ gUnknown_0830011C,
+ gUnknown_08300120,
+ gUnknown_08300124,
+ gUnknown_08300128,
+ gUnknown_0830012C,
+ gUnknown_08300130,
+ gUnknown_08300134,
+ gUnknown_08300138,
+ gUnknown_0830013C,
+ gUnknown_08300140,
+ gUnknown_08300144,
+ gUnknown_08300148,
+ gUnknown_0830014C,
+ gUnknown_08300150,
+ gUnknown_08300154,
+ gUnknown_08300158,
+ gUnknown_0830015C,
+ gUnknown_08300160,
+ gUnknown_08300164,
+ gUnknown_08300168,
+ gUnknown_0830016C,
+ gUnknown_08300170,
+ gUnknown_08300174,
+ gUnknown_08300178,
+ gUnknown_0830017C,
+ gUnknown_08300180,
+ gUnknown_08300184,
+ gUnknown_08300188,
+ gUnknown_0830018C,
+ gUnknown_08300190,
+ gUnknown_08300194,
+ gUnknown_08300198,
+ gUnknown_0830019C,
+ gUnknown_083001A0,
+ gUnknown_083001A4,
+ gUnknown_083001A8,
+ gUnknown_083001AC,
+ gUnknown_083001B0,
+ gUnknown_083001B4,
+ gUnknown_083001B8,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001BC,
+ gUnknown_083001C0,
+ gUnknown_083001C4,
+ gUnknown_083001C8,
+ gUnknown_083001CC,
+ gUnknown_083001D0,
+ gUnknown_083001D4,
+ gUnknown_083001E8,
+ gUnknown_083001EC,
+ gUnknown_083001FC,
+ gUnknown_08300200,
+ gUnknown_0830020C,
+ gUnknown_08300214,
+ gUnknown_0830021C,
+ gUnknown_08300224,
+ gUnknown_08300230,
+ gUnknown_0830023C,
+ gUnknown_08300248,
+ gUnknown_08300254,
+ gUnknown_08300260,
+ gUnknown_08300264,
+ gUnknown_0830026C,
+ gUnknown_08300278,
+ gUnknown_08300280,
+ gUnknown_08300288,
+ gUnknown_08300294,
+ gUnknown_08300298,
+ gUnknown_0830029C,
+ gUnknown_083002A0,
+ gUnknown_083002A8,
+ gUnknown_083002B0,
+ gUnknown_083002B8,
+ gUnknown_083002C0,
+ gUnknown_083002C4,
+ gUnknown_083002CC,
+ gUnknown_083002D8,
+ gUnknown_083002E4,
+ gUnknown_083002F0,
+ gUnknown_08300304,
+ gUnknown_08300308,
+ gUnknown_08300310,
+ gUnknown_08300318,
+ gUnknown_0830032C,
+ gUnknown_08300334,
+ gUnknown_0830033C,
+ gUnknown_08300344,
+ gUnknown_08300348,
+ gUnknown_08300354,
+ gUnknown_08300358,
+ gUnknown_0830035C,
+ gUnknown_08300368,
+ gUnknown_0830036C,
+ gUnknown_08300370,
+ gUnknown_0830037C,
+ gUnknown_08300388,
+ gUnknown_08300394,
+ gUnknown_083003A0,
+ gUnknown_083003A8,
+ gUnknown_083003B0,
+ gUnknown_083003B8,
+ gUnknown_083003C0,
+ gUnknown_083003C8,
+ gUnknown_083003D4,
+ gUnknown_083003DC,
+ gUnknown_083003E8,
+ gUnknown_083003F0,
+ gUnknown_083003F8,
+ gUnknown_08300400,
+ gUnknown_0830040C,
+ gUnknown_08300410,
+ gUnknown_08300414,
+ gUnknown_08300418,
+ gUnknown_0830041C,
+ gUnknown_08300420,
+ gUnknown_08300424,
+ gUnknown_08300438,
+ gUnknown_08300444,
+ gUnknown_0830044C,
+ gUnknown_08300454,
+ gUnknown_0830045C,
+ gUnknown_08300464,
+ gUnknown_0830046C,
+ gUnknown_08300474,
+ gUnknown_08300480,
+ gUnknown_08300488,
+ gUnknown_08300494,
+ gUnknown_083004A0,
+ gUnknown_083004AC,
+ gUnknown_083004B0,
+ gUnknown_083004B8,
+ gUnknown_083004C0,
+ gUnknown_083004C8,
+ gUnknown_083004D0,
+ gUnknown_083004D8,
+ gUnknown_083004E0,
+ gUnknown_083004E4,
+ gUnknown_083004E8,
+ gUnknown_083004EC,
+ gUnknown_083004F4,
+ gUnknown_083004F8,
+ gUnknown_083004FC,
+ gUnknown_08300504,
+ gUnknown_08300510,
+ gUnknown_08300518,
+ gUnknown_0830051C,
+ gUnknown_08300520,
+ gUnknown_08300524,
+ gUnknown_0830052C,
+ gUnknown_08300534,
+ gUnknown_0830053C,
+ gUnknown_08300550,
+ gUnknown_08300558,
+ gUnknown_08300560,
+ gUnknown_08300564,
+ gUnknown_08300568,
+ gUnknown_0830056C,
+ gUnknown_08300570,
+ gUnknown_08300574,
+ gUnknown_08300578,
+ gUnknown_0830057C,
+ gUnknown_08300588,
+ gUnknown_0830058C,
+ gUnknown_08300598,
+ gUnknown_0830059C,
+ gUnknown_083005A0,
+ gUnknown_083005A4,
+ gUnknown_083005AC,
+ gUnknown_083005B4,
+ gUnknown_083005C0,
+ gUnknown_083005C4,
+ gUnknown_083005C8,
+ gUnknown_083005D4,
+ gUnknown_083005D8,
+ gUnknown_083005DC,
+ gUnknown_083005E4,
+ gUnknown_083005E8,
+ gUnknown_083005EC,
+ gUnknown_083005EC,
+ gUnknown_083005F0,
+ gUnknown_083005F4,
+ gUnknown_083005F8,
+ gUnknown_083005FC,
+ gUnknown_08300600,
+ gUnknown_08300604,
+ gUnknown_08300608,
+ gUnknown_0830060C,
+ gUnknown_08300610,
+ gUnknown_08300614,
+ gUnknown_08300618,
+ gUnknown_0830061C,
+ gUnknown_08300620,
+ gUnknown_08300624,
+ gUnknown_08300628,
+ gUnknown_0830062C,
+ gUnknown_08300630,
+ gUnknown_08300634,
+ gUnknown_08300638,
+ gUnknown_0830063C,
+ gUnknown_08300640,
+ gUnknown_08300644,
+ gUnknown_08300648,
+ gUnknown_0830064C,
+ gUnknown_08300650,
+ gUnknown_08300654,
+};
diff --git a/src/data/trainer_graphics/back_pic_tables.h b/src/data/trainer_graphics/back_pic_tables.h
index ba7f73ebb..3e74902d8 100644
--- a/src/data/trainer_graphics/back_pic_tables.h
+++ b/src/data/trainer_graphics/back_pic_tables.h
@@ -1,13 +1,13 @@
-const u8 gTrainerBackPicCoords[] =
+const struct MonCoords gTrainerBackPicCoords[] =
{
- 8, 4, 0, 0,
- 8, 4, 0, 0,
- 8, 5, 0, 0,
- 8, 5, 0, 0,
- 8, 4, 0, 0,
- 8, 4, 0, 0,
- 8, 4, 0, 0,
- 8, 4, 0, 0,
+ {8, 4},
+ {8, 4},
+ {8, 5},
+ {8, 5},
+ {8, 4},
+ {8, 4},
+ {8, 4},
+ {8, 4},
};
const struct CompressedSpriteSheet gTrainerBackPicTable[] =
diff --git a/src/data/trainer_graphics/front_pic_tables.h b/src/data/trainer_graphics/front_pic_tables.h
index 7c1e10683..db80c9d4f 100644
--- a/src/data/trainer_graphics/front_pic_tables.h
+++ b/src/data/trainer_graphics/front_pic_tables.h
@@ -1,98 +1,98 @@
-const u8 gTrainerFrontPicCoords[] =
+const struct MonCoords gTrainerFrontPicCoords[] =
{
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 2, 0, 0,
- 8, 2, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 2, 0, 0,
- 8, 1, 0, 0,
- 8, 2, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 2, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 2, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
- 8, 1, 0, 0,
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 2},
+ {8, 2},
+ {8, 1},
+ {8, 1},
+ {8, 2},
+ {8, 1},
+ {8, 2},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 2},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 2},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
+ {8, 1},
};
const struct CompressedSpriteSheet gTrainerFrontPicTable[] =
diff --git a/src/data2b.c b/src/data2b.c
index e7ca473a9..46a158e09 100644
--- a/src/data2b.c
+++ b/src/data2b.c
@@ -1,9 +1,15 @@
#include "global.h"
+#include "data2.h"
#include "graphics.h"
extern const union AnimCmd gAnimCmd_General_Frame0[];
extern const union AnimCmd AnimCmd_82FF540[];
+#include "data/pokemon_graphics/unknown_anims.h"
+#include "data/pokemon_graphics/front_pic_coordinates.h"
+#include "data/pokemon_graphics/still_front_pic_table.h"
+#include "data/pokemon_graphics/back_pic_coordinates.h"
+
#include "data/pokemon_graphics/back_pic_table.h"
#include "data/pokemon_graphics/palette_table.h"
#include "data/pokemon_graphics/shiny_palette_table.h"
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index ab0cd92a2..1c626cc86 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -512,7 +512,7 @@ static void CB2_EggHatch_0(void)
gMain.state++;
break;
case 2:
- copy_decompressed_tile_data_to_vram_autofree(0, gBattleTextboxTiles, 0, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0);
CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0);
LoadCompressedPalette(gBattleTextboxPalette, 0, 0x20);
gMain.state++;
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index 7960d6cba..ae15e79fe 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -1484,7 +1484,7 @@ static void InitMovingBackgroundTask(bool8 isLink)
LoadPalette(sUnknown_085B51E4, 0xA0, 0x20);
- copy_decompressed_tile_data_to_vram_autofree(1, sUnknown_085B4134, FALSE, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(1, sUnknown_085B4134, FALSE, 0, 0);
CopyToBgTilemapBuffer(1, sUnknown_085B482C, 0, 0);
CopyToBgTilemapBuffer(outerBgId, sUnknown_085B4D10, 0, 0);
CopyBgTilemapBufferToVram(1);
diff --git a/src/field_effect.c b/src/field_effect.c
index f047c78a3..13de58aa4 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -1,8 +1,6 @@
-
-// Includes
#include "global.h"
#include "field_effect.h"
-#include "battle_dome_cards.h"
+#include "trainer_pokemon_sprites.h"
#include "decompress.h"
#include "field_camera.h"
#include "field_effect_helpers.h"
@@ -557,7 +555,7 @@ u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority)
#ifdef NONMATCHING
u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y)
{
- u16 spriteId = sub_818D7D8(species, 0, 0x8000, 1, x, y, 0, gMonPaletteTable[species].tag);
+ u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, 0, 0x8000, 1, x, y, 0, gMonPaletteTable[species].tag);
PreservePaletteInWeather(IndexOfSpritePaletteTag(gMonPaletteTable[species].tag) + 0x10);
if (spriteId == 0xFFFF)
return 0x40;
@@ -590,7 +588,7 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y)
movs r1, 0\n\
adds r2, r3, 0\n\
movs r3, 0x1\n\
- bl sub_818D7D8\n\
+ bl CreateMonPicSprite_HandleDeoxys\n\
lsls r0, 16\n\
lsrs r5, r0, 16\n\
ldrh r0, [r4, 0x4]\n\
@@ -619,7 +617,7 @@ _080B5FDE:\n\
u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subpriority)
{
const struct CompressedSpritePalette *spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, d, g);
- u16 spriteId = sub_818D7D8(species, d, g, 1, x, y, 0, spritePalette->tag);
+ u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, d, g, 1, x, y, 0, spritePalette->tag);
PreservePaletteInWeather(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10);
if (spriteId == 0xFFFF)
return 0x40;
@@ -634,7 +632,7 @@ void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId)
{
FreeOamMatrix(sprite->oam.matrixNum);
}
- sub_818D820(spriteId);
+ FreeAndDestroyMonPicSprite(spriteId);
}
#ifdef NONMATCHING
diff --git a/src/field_message_box.c b/src/field_message_box.c
index 8ca291e33..7ed87e837 100755
--- a/src/field_message_box.c
+++ b/src/field_message_box.c
@@ -4,7 +4,9 @@
#include "string_util.h"
#include "task.h"
#include "text.h"
-#include "battle_frontier_1.h"
+
+extern bool32 sub_8196094(void);
+extern void sub_8196080(u8*);
EWRAM_DATA u8 gUnknown_020375BC = 0;
@@ -23,7 +25,7 @@ void sub_8098128(void)
void sub_8098154(u8 taskId)
{
struct Task *task = &gTasks[taskId];
-
+
switch (task->data[0])
{
case 0:
@@ -61,12 +63,12 @@ bool8 ShowFieldMessage(u8 *str)
return FALSE;
textbox_fdecode_auto_and_task_add(str, 1);
gUnknown_020375BC = 2;
- return TRUE;
+ return TRUE;
}
void sub_8098214(u8 taskId)
{
- if (sub_8196094() == 0)
+ if (!sub_8196094())
{
gUnknown_020375BC = 0;
DestroyTask(taskId);
diff --git a/src/field_specials.c b/src/field_specials.c
index 897bcc8d7..84852e6b5 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -52,6 +52,7 @@
#include "constants/species.h"
#include "constants/moves.h"
#include "constants/vars.h"
+#include "constants/battle_frontier.h"
EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE;
EWRAM_DATA u8 gBikeCollisions = 0;
@@ -1645,7 +1646,7 @@ bool8 sub_81398C0(void)
StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_0x8004)]);
return TRUE;
}
-
+
return FALSE;
}
@@ -1667,7 +1668,7 @@ bool8 InMultiBattleRoom(void)
{
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM)
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM) &&
- VarGet(VAR_0x40CE) == 2)
+ VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_MULTIS)
return TRUE;
return FALSE;
}
@@ -1799,7 +1800,7 @@ void ShakeScreenInElevator(void)
if (floorDelta > 8)
floorDelta = 8;
-
+
data[5] = gUnknown_085B2C18[floorDelta];
SetCameraPanningCallback(NULL);
@@ -1830,16 +1831,16 @@ static void sub_8139AF4(u8 taskId)
void sub_8139B60(void)
{
int xPos;
-
+
gUnknown_0203AB5E = AddWindow(&gUnknown_085B2BAC);
SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0);
-
+
xPos = GetStringCenterAlignXOffset(1, gText_ElevatorNowOn, 64);
PrintTextOnWindow(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, TEXT_SPEED_FF, NULL);
-
+
xPos = GetStringCenterAlignXOffset(1, gElevatorFloorsTable[gSpecialVar_0x8005], 64);
PrintTextOnWindow(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, TEXT_SPEED_FF, NULL);
-
+
PutWindowTilemap(gUnknown_0203AB5E);
CopyWindowToVram(gUnknown_0203AB5E, 3);
}
@@ -2167,13 +2168,13 @@ void sub_8139F20(void)
}
break;
case 4:
- if (gSaveBlock2Ptr->frontier.field_D0C[0] >= gSaveBlock2Ptr->frontier.field_D0C[1])
+ if (gSaveBlock2Ptr->frontier.field_D0C[0][0] >= gSaveBlock2Ptr->frontier.field_D0C[0][1])
{
- unk = gSaveBlock2Ptr->frontier.field_D0C[0];
+ unk = gSaveBlock2Ptr->frontier.field_D0C[0][0];
}
else
{
- unk = gSaveBlock2Ptr->frontier.field_D0C[1];
+ unk = gSaveBlock2Ptr->frontier.field_D0C[0][1];
}
break;
case 5:
@@ -2187,13 +2188,13 @@ void sub_8139F20(void)
}
break;
case 6:
- if (gSaveBlock2Ptr->frontier.field_DC8[0] >= gSaveBlock2Ptr->frontier.field_DC8[1])
+ if (gSaveBlock2Ptr->frontier.field_DC8[0][0] >= gSaveBlock2Ptr->frontier.field_DC8[0][1])
{
- unk = gSaveBlock2Ptr->frontier.field_DC8[0];
+ unk = gSaveBlock2Ptr->frontier.field_DC8[0][0];
}
else
{
- unk = gSaveBlock2Ptr->frontier.field_DC8[1];
+ unk = gSaveBlock2Ptr->frontier.field_DC8[0][1];
}
break;
case 7:
@@ -2240,10 +2241,10 @@ void sub_813A080(void)
};
u8 i;
- u16 var = VarGet(VAR_0x40CE);
- u8 chosenLevel = gSaveBlock2Ptr->frontier.chosenLvl;
+ u16 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+ u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
- if (var == 2 && !FlagGet(FLAG_0x152))
+ if (battleMode == 2 && !FlagGet(FLAG_0x152))
{
gSpecialVar_0x8005 = 5;
gSpecialVar_0x8006 = 4;
@@ -2252,7 +2253,7 @@ void sub_813A080(void)
for (i = 0; i < 9; i++)
{
- if (gUnknown_085B2CDC[i] > gSaveBlock2Ptr->frontier.field_CE0[var][chosenLevel])
+ if (gUnknown_085B2CDC[i] > gSaveBlock2Ptr->frontier.field_CE0[battleMode][lvlMode])
{
gSpecialVar_0x8005 = 4;
gSpecialVar_0x8006 = i + 5;
@@ -2662,8 +2663,8 @@ static void sub_813A2DC(u8 taskId)
}
task->data[4] = convert_pixel_width_to_tile_width(unk1);
-
- if (task->data[2] + task->data[4] > 0x1D)
+
+ if (task->data[2] + task->data[4] > 0x1D)
{
int unk2 = 0x1D - task->data[4];
if (unk2 < 0)
@@ -3036,13 +3037,13 @@ void sub_813A878(u8 a0)
{
static const u16 gUnknown_085B3104[] = {0x0000, 0x0001, 0x0002, 0x0100, 0x0101, 0x0400, 0x0401, 0x0200, 0x0201, 0x0300, 0x0500, 0x0600};
- u16 var1 = VarGet(VAR_0x40CE);
+ u16 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
u16 var2 = VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F);
- u16 var3 = VarGet(VAR_FRONTIER_FACILITY);
+ u16 frontierFacilityId = VarGet(VAR_FRONTIER_FACILITY);
if (VarGet(VAR_FRONTIER_GAMBLER_PLACED_BET_F) == 1)
{
- if (gUnknown_085B3104[var2] == (var3 << 8) + var1)
+ if (gUnknown_085B3104[var2] == (frontierFacilityId << 8) + battleMode)
{
if (a0 != 0)
{
@@ -3363,7 +3364,7 @@ void sub_813ADD4(void)
struct Task *task = &gTasks[taskId];
ListMenuGetScrollAndRow(task->data[14], &scrollOffset, &selectedRow);
SetStandardWindowBorderStyle(task->data[13], 0);
-
+
for (i = 0; i < 6; i++)
{
sub_8199F74(task->data[13], 1, gUnknown_085B2CF0[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0);
@@ -3381,7 +3382,7 @@ void sub_813AEB4(void)
u16 temp1 = 0;
u16 temp2 = 0;
gSpecialVar_0x8005 = 0;
-
+
temp1 = VarGet(VAR_TEMP_E);
temp2 = VarGet(VAR_TEMP_D);
@@ -3509,7 +3510,7 @@ static void sub_813B0B4(u8 a0)
u8 eventObjectId;
LoadPalette(&gUnknown_085B3280[a0], 0x1A0, 8);
TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId);
-
+
if (a0 == 0)
{
PlaySE(SE_W109);
@@ -3656,7 +3657,7 @@ bool32 sub_813B374(void)
u16 var = VarGet(VAR_0x4037);
GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0);
-
+
if (var < 9)
{
return FALSE;
@@ -3697,7 +3698,7 @@ bool32 sub_813B3B0(void)
break;
}
}
-
+
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER3))
{
switch (gSaveBlock1Ptr->location.mapNum)
@@ -4159,7 +4160,7 @@ static u16 sub_813BC00(void)
}
}
}
-
+
if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B347C[retVal]) & 1))
{
gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] ^= 1 << gUnknown_085B347C[retVal];
diff --git a/src/fieldmap.c b/src/fieldmap.c
index f57c4b48f..8d1988686 100644
--- a/src/fieldmap.c
+++ b/src/fieldmap.c
@@ -951,7 +951,7 @@ void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles,
if (!tileset->isCompressed)
LoadBgTiles(2, tileset->tiles, numTiles * 32, offset);
else
- copy_decompressed_tile_data_to_vram_autofree(2, tileset->tiles, numTiles * 32, offset, 0);
+ DecompressAndLoadBgGfxUsingHeap(2, tileset->tiles, numTiles * 32, offset, 0);
}
}
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index f5c4ba491..33c85d448 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -5,6 +5,7 @@
#include "sprite.h"
#include "pokemon.h"
#include "text.h"
+#include "text_window.h"
#include "malloc.h"
#include "gpu_regs.h"
#include "main.h"
@@ -26,6 +27,7 @@
#include "event_data.h"
#include "overworld.h"
#include "menu.h"
+#include "trainer_pokemon_sprites.h"
struct HallofFameMon
{
@@ -81,18 +83,10 @@ extern const u8 gText_MainMenuTime[];
extern const u8 gContestConfetti_Gfx[];
extern const u8 gContestConfetti_Pal[];
-extern void NewMenuHelpers_DrawDialogueFrame(u8, u8);
extern void sub_8175620(void);
extern u8 TrySavingData(u8);
-extern u8 sub_818D3E4(u16 species, u32 trainerId, u32 personality, u8 flags, s16 x, s16 y, u8, u16);
extern void sub_8197434(u8, u8);
extern u16 sub_818D97C(u8 playerGender, u8);
-extern u16 sub_818D8AC(u16, u8, s16, s16, u8, u16);
-extern const void* stdpal_get(u8);
-extern void LoadWindowGfx(u8, u8, u16, u8);
-extern u16 sub_818D820(u16);
-extern u16 sub_818D8F0(u16);
-extern u16 sub_818D7D8(u16 species, u32 trainerId, u32 personality, u8 arg3, s16 sp0, s16 sp1, u8 sp2, u16 sp3);
extern void sub_8198204(u8 *dst, const u8 *src, u8, u8, u8);
extern bool8 sub_80F9C30(void);
extern void sub_8198314(void);
@@ -102,8 +96,6 @@ extern void sub_80F9BF4(u16, u16, u8);
extern void sub_81980F0(u8, u8, u8, u8, u16);
extern void sub_80F9BCC(u16, u16, u8);
extern bool8 sub_80F9C1C(void);
-extern u16 SpeciesToPokedexNum(u16 species);
-extern void dp13_810BB8C(void);
extern void sub_81971D0(void);
extern void sub_8197200(void);
extern void sub_8152254(void);
@@ -611,7 +603,7 @@ static void Task_Hof_DisplayMon(u8 taskId)
if (currMon->species == SPECIES_EGG)
field6 += 10;
- spriteId = sub_818D3E4(currMon->species, currMon->tid, currMon->personality, 1, xPos, yPos, currMonId, 0xFFFF);
+ spriteId = CreatePicSprite2(currMon->species, currMon->tid, currMon->personality, 1, xPos, yPos, currMonId, 0xFFFF);
gSprites[spriteId].tDestinationX = field4;
gSprites[spriteId].tDestinationY = field6;
gSprites[spriteId].data[0] = 0;
@@ -723,7 +715,7 @@ static void sub_8173EE4(u8 taskId)
ShowBg(0);
ShowBg(1);
ShowBg(3);
- gTasks[taskId].tPlayerSpriteID = sub_818D8AC(sub_818D97C(gSaveBlock2Ptr->playerGender, 1), 1, 120, 72, 6, 0xFFFF);
+ gTasks[taskId].tPlayerSpriteID = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), 1, 120, 72, 6, 0xFFFF);
AddWindow(&sHof_WindowTemplate);
LoadWindowGfx(1, gSaveBlock2Ptr->optionsWindowFrameType, 0x21D, 0xD0);
LoadPalette(stdpal_get(1), 0xE0, 0x20);
@@ -780,11 +772,11 @@ static void Task_Hof_HandleExit(u8 taskId)
if (spriteId != 0xFF)
{
FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
- sub_818D820(spriteId);
+ FreeAndDestroyMonPicSprite(spriteId);
}
}
- sub_818D8F0(gTasks[taskId].tPlayerSpriteID);
+ FreeAndDestroyTrainerPicSprite(gTasks[taskId].tPlayerSpriteID);
HideBg(0);
HideBg(1);
HideBg(3);
@@ -956,7 +948,7 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId)
if (currMon->species == SPECIES_EGG)
posY += 10;
- spriteId = sub_818D7D8(currMon->species, currMon->tid, currMon->personality, 1, posX, posY, i, 0xFFFF);
+ spriteId = CreateMonPicSprite_HandleDeoxys(currMon->species, currMon->tid, currMon->personality, 1, posX, posY, i, 0xFFFF);
gSprites[spriteId].oam.priority = 1;
gTasks[taskId].tMonSpriteId(i) = spriteId;
}
@@ -1026,7 +1018,7 @@ static void Task_HofPC_HandleInput(u8 taskId)
u8 spriteId = gTasks[taskId].tMonSpriteId(i);
if (spriteId != 0xFF)
{
- sub_818D820(spriteId);
+ FreeAndDestroyMonPicSprite(spriteId);
gTasks[taskId].tMonSpriteId(i) = 0xFF;
}
}
@@ -1087,7 +1079,7 @@ static void Task_HofPC_HandleExit(u8 taskId)
u16 spriteId = gTasks[taskId].tMonSpriteId(i);
if (spriteId != 0xFF)
{
- sub_818D820(spriteId);
+ FreeAndDestroyMonPicSprite(spriteId);
gTasks[taskId].tMonSpriteId(i) = 0xFF;
}
}
@@ -1305,7 +1297,7 @@ static void sub_8174F70(void)
ResetTasks();
ResetSpriteData();
reset_temp_tile_data_buffers();
- dp13_810BB8C();
+ ResetAllPicSprites();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 8;
LoadCompressedObjectPic(&sHallOfFame_ConfettiSpriteSheet);
diff --git a/src/item.c b/src/item.c
index c94f29910..b4a2fd6f0 100644
--- a/src/item.c
+++ b/src/item.c
@@ -10,6 +10,7 @@
#include "item_menu.h"
#include "strings.h"
#include "load_save.h"
+#include "battle_pyramid_bag.h"
extern bool8 InBattlePyramid(void);
extern u16 gUnknown_0203CF30[];
@@ -752,9 +753,8 @@ u16 BagGetQuantityByPocketPosition(u8 pocketId, u16 pocketPos)
static void SwapItemSlots(struct ItemSlot *a, struct ItemSlot *b)
{
- struct ItemSlot temp = *a;
- *a = *b;
- *b = temp;
+ struct ItemSlot temp;
+ SWAP(*a, *b, temp);
}
void CompactItemsInBagPocket(struct BagPocket *bagPocket)
@@ -845,8 +845,8 @@ u16 CountTotalItemQuantityInBag(u16 itemId)
static bool8 CheckPyramidBagHasItem(u16 itemId, u16 count)
{
u8 i;
- u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.chosenLvl];
- u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.chosenLvl];
+ u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
+ u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode];
for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++)
{
@@ -867,8 +867,8 @@ static bool8 CheckPyramidBagHasItem(u16 itemId, u16 count)
static bool8 CheckPyramidBagHasSpace(u16 itemId, u16 count)
{
u8 i;
- u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.chosenLvl];
- u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.chosenLvl];
+ u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
+ u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode];
for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++)
{
@@ -890,8 +890,8 @@ bool8 AddPyramidBagItem(u16 itemId, u16 count)
{
u16 i;
- u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.chosenLvl];
- u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.chosenLvl];
+ u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
+ u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode];
u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u16));
u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u8));
@@ -963,10 +963,10 @@ bool8 RemovePyramidBagItem(u16 itemId, u16 count)
{
u16 i;
- u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.chosenLvl];
- u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.chosenLvl];
+ u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
+ u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode];
- i = gUnknown_0203CF30[3] + gUnknown_0203CF30[4];
+ i = gPyramidBagCursorData.cursorPosition + gPyramidBagCursorData.scrollPosition;
if (items[i] == itemId && quantities[i] >= count)
{
quantities[i] -= count;
diff --git a/src/item_use.c b/src/item_use.c
index 9031338dd..bf7c2a386 100755
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -29,44 +29,26 @@
#include "string_util.h"
#include "task.h"
#include "text.h"
+#include "strings.h"
+#include "pokeblock.h"
+#include "menu.h"
+#include "item_menu.h"
+#include "battle_pyramid_bag.h"
-extern void(**gUnknown_0203CE54)(void);
-extern void(**gUnknown_0203CF2C)(void);
extern void(*gUnknown_0203A0F4)(u8 taskId);
extern void(*gUnknown_085920D8[])(void);
extern void (*gUnknown_03006328)(u8, u16, TaskFunc);
extern void unknown_ItemMenu_Confirm(u8 taskId);
extern void sub_81C5B14(u8 taskId);
-extern u8 gText_DadsAdvice[];
-extern u8 gText_CantDismountBike[];
-extern void sub_8197434(u8 a, u8 b);
extern void ScriptUnfreezeEventObjects(void);
extern void ItemUseOutOfBattle_TMHM(u8 a);
extern void ItemUseOutOfBattle_EvolutionStone(u8 b);
-extern void bag_menu_mail_related(void);
-extern void OpenPokeblockCase(u8 a, void(*b)(void));
-extern void overworld_free_bg_tilemaps(void);
-extern bool32 Overworld_IsBikingAllowed(void);
extern bool8 IsPlayerFacingSurfableFishableWater(void);
extern bool8 sub_81221AC(void);
-extern u8 gText_ItemFinderNothing[];
-extern u8 gText_ItemFinderNearby[];
-extern u8 gText_ItemFinderOnTop[];
-extern u8 gText_CoinCase[];
-extern u8 gText_PowderQty[];
extern u8 gUnknown_085920E4[];
extern u8 Route102_EventScript_274482[];
extern u8 Route102_EventScript_2744C0[];
extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[];
-extern u8 gText_BootedUpHM[];
-extern u8 gText_BootedUpTM[];
-extern u8 gText_TMHMContainedVar1[];
-extern u8 gText_PlayerUsedVar2[];
-extern u8 gText_RepelEffectsLingered[];
-extern u8 gText_UsedVar2WildLured[];
-extern u8 gText_UsedVar2WildRepelled[];
-extern u8 gText_BoxFull[];
-extern u8 gText_WontHaveEffect[];
extern int sub_80247BC(void);
extern struct MapHeader* mapconnection_get_mapheader(struct MapConnection *connection);
extern void SetUpItemUseCallback(u8 taskId);
@@ -86,7 +68,6 @@ extern void sub_81C59BC(void);
extern void sub_81AB9A8(u8);
extern void sub_81ABA88(u8);
extern void sub_80B7CC8(void);
-extern void Overworld_ResetStateAfterDigEscRope(void);
extern u8* sub_806CF78(u16);
extern void sub_81B89F0(void);
extern u8 GetItemEffectType(u16);
@@ -115,8 +96,7 @@ void sub_80FE124(u8 taskId);
void sub_80FE164(u8 taskId);
void DisplayItemMessage(u8 taskId, u8 a, const u8* str, void(*callback)(u8 taskId));
-void DisplayItemMessageInBattlePyramid(u8 taskId, u8* str, void(*callback)(u8 taskId));
-void DisplayItemMessageOnField(u8 taskId, u8* str, void(*callback)(u8 taskId));
+void DisplayItemMessageOnField(u8 taskId, const u8* str, void(*callback)(u8 taskId));
void sub_81C6714(u8 taskId);
void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId);
void StartFishing(u8 a);
@@ -137,12 +117,12 @@ void SetUpItemUseCallback(u8 taskId)
type = ItemId_GetType(gSpecialVar_ItemId) - 1;
if (!InBattlePyramid())
{
- *gUnknown_0203CE54 = gUnknown_085920D8[type];
+ gUnknown_0203CE54->unk0 = gUnknown_085920D8[type];
unknown_ItemMenu_Confirm(taskId);
}
else
{
- *gUnknown_0203CF2C = gUnknown_085920D8[type];
+ gPyramidBagResources->callback2 = gUnknown_085920D8[type];
sub_81C5B14(taskId);
}
}
@@ -221,7 +201,7 @@ void sub_80FD254()
void ItemUseOutOfBattle_Mail(u8 taskId)
{
- *gUnknown_0203CE54 = sub_80FD254;
+ gUnknown_0203CE54->unk0 = sub_80FD254;
unknown_ItemMenu_Confirm(taskId);
}
@@ -617,7 +597,7 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId)
}
else if (gTasks[taskId].data[3] != TRUE)
{
- *gUnknown_0203CE54 = sub_80FDBEC;
+ gUnknown_0203CE54->unk0 = sub_80FDBEC;
unknown_ItemMenu_Confirm(taskId);
}
else
@@ -679,7 +659,7 @@ void sub_80FDD10(u8 taskId)
{
gUnknown_0203A0F4 = sub_80FDD74;
gFieldCallback = MapPostLoadHook_UseItem;
- *gUnknown_0203CE54 = CB2_ReturnToField;
+ gUnknown_0203CE54->unk0 = CB2_ReturnToField;
unknown_ItemMenu_Confirm(taskId);
}
else
@@ -1002,12 +982,12 @@ void sub_80FE54C(u8 taskId)
{
if (!InBattlePyramid())
{
- *gUnknown_0203CE54 = sub_81B89F0;
+ gUnknown_0203CE54->unk0 = sub_81B89F0;
unknown_ItemMenu_Confirm(taskId);
}
else
{
- *gUnknown_0203CF2C = sub_81B89F0;
+ gPyramidBagResources->callback2 = sub_81B89F0;
sub_81C5B14(taskId);
}
}
diff --git a/src/link.c b/src/link.c
index b729f86eb..457e44a01 100644
--- a/src/link.c
+++ b/src/link.c
@@ -1679,7 +1679,7 @@ void CB2_LinkError(void)
static void sub_800B080(void)
{
LoadBgTiles(0, g2BlankTilesGfx, 0x20, 0);
- copy_decompressed_tile_data_to_vram_autofree(1, gWirelessLinkDisplayGfx, FALSE, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(1, gWirelessLinkDisplayGfx, FALSE, 0, 0);
CopyToBgTilemapBuffer(1, gWirelessLinkDisplayTilemap, 0, 0);
CopyBgTilemapBufferToVram(1);
LoadPalette(gWirelessLinkDisplayPal, 0, 0x20);
diff --git a/src/main_menu.c b/src/main_menu.c
index 052035e34..e28faf986 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -1,7 +1,5 @@
-
-// Includes
#include "global.h"
-#include "battle_dome_cards.h"
+#include "trainer_pokemon_sprites.h"
#include "bg.h"
#include "constants/flags.h"
#include "constants/rgb.h"
@@ -1018,7 +1016,7 @@ void task_new_game_prof_birch_speech_1(u8 taskId)
ScanlineEffect_Stop();
ResetSpriteData();
FreeAllSpritePalettes();
- dp13_810BB8C();
+ ResetAllPicSprites();
AddBirchSpeechObjects(taskId);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
gTasks[taskId].data[4] = 0;
@@ -1336,7 +1334,7 @@ void task_new_game_prof_birch_speech_17(u8 taskId)
if (!gPaletteFade.active)
{
FreeAllWindowBuffers();
- sub_818D820(gTasks[taskId].data[9]);
+ FreeAndDestroyMonPicSprite(gTasks[taskId].data[9]);
set_default_player_name(Random() % 20);
DestroyTask(taskId);
DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, new_game_prof_birch_speech_part2_start);
@@ -1515,8 +1513,8 @@ void task_new_game_prof_birch_speech_part2_12(u8 taskId)
if (!gPaletteFade.active)
{
FreeAllWindowBuffers();
- sub_818D820(gTasks[taskId].data[9]);
- dp13_810BB8C();
+ FreeAndDestroyMonPicSprite(gTasks[taskId].data[9]);
+ ResetAllPicSprites();
SetMainCallback2(CB2_NewGame);
DestroyTask(taskId);
}
@@ -1558,7 +1556,7 @@ void new_game_prof_birch_speech_part2_start(void)
ScanlineEffect_Stop();
ResetSpriteData();
FreeAllSpritePalettes();
- dp13_810BB8C();
+ ResetAllPicSprites();
AddBirchSpeechObjects(taskId);
if (gSaveBlock2Ptr->playerGender != MALE)
{
@@ -1613,7 +1611,7 @@ void sub_80318D8(struct Sprite *sprite)
u8 sub_80318F4(u8 a, u8 b)
{
- return sub_818D3E4(SPECIES_LOTAD, 8, 0, 1, a, b, 14, -1);
+ return CreatePicSprite2(SPECIES_LOTAD, 8, 0, 1, a, b, 14, -1);
}
void AddBirchSpeechObjects(u8 taskId)
diff --git a/src/match_call.c b/src/match_call.c
index 99eb6d65a..2879881bf 100644
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -5,9 +5,9 @@
#include "event_data.h"
#include "string_util.h"
#include "battle.h"
-#include "battle_frontier_1.h"
#include "gym_leader_rematch.h"
+extern void sub_8197080(u8 *dest);
extern const u8 gTrainerClassNames[][13];
// Static type declarations
diff --git a/src/menu.c b/src/menu.c
index eda9513ba..8a4b4fce5 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -1801,7 +1801,7 @@ void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size,
return NULL;
}
-void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode)
+void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode)
{
int sizeOut;
void *ptr = malloc_and_decompress(src, &sizeOut);
diff --git a/src/new_game.c b/src/new_game.c
index 8b8436d10..da5e91229 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -23,6 +23,8 @@
#include "overworld.h"
#include "mail.h"
#include "battle_records.h"
+#include "item.h"
+#include "pokedex.h"
extern u8 gDifferentSaveFile;
extern u16 gSaveFileStatus;
@@ -33,13 +35,11 @@ extern u16 GetGeneratedTrainerIdLower(void);
extern void ClearContestWinnerPicsInContestHall(void);
extern void sub_80BB358(void);
extern void ResetBagScrollPositions(void);
-extern void ResetPokedex(void);
extern void ResetGabbyAndTy(void);
extern void ResetSecretBases(void);
extern void ResetLinkContestBoolean(void);
extern void sub_8052DA8(void);
extern void ResetPokemonStorageSystem(void);
-extern void ClearBag(void);
extern void NewGameInitPCItems(void);
extern void ClearDecorationInventories(void);
extern void ResetFanClub(void);
diff --git a/src/overworld.c b/src/overworld.c
index d85af9e4d..1cf830cf7 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -151,7 +151,7 @@ extern void TransferTilesetAnimsBuffer(void);
extern bool32 sub_81D5F48(void);
extern u8 GetCurrentTrainerHillMapId(void);
extern bool8 warp0_in_pokecenter(void);
-extern void dp13_810BB8C(void);
+extern void ResetAllPicSprites(void);
extern void FieldEffectActiveListClear(void);
extern void SetUpFieldTasks(void);
extern void sub_81BE6B8(void);
@@ -2149,7 +2149,7 @@ static void sub_8086988(u32 a1)
ResetSpriteData();
ResetPaletteFade();
ScanlineEffect_Clear();
- dp13_810BB8C();
+ ResetAllPicSprites();
ResetCameraUpdateInfo();
InstallCameraPanAheadCallback();
if (!a1)
diff --git a/src/pokedex.c b/src/pokedex.c
index 0d73a9fe1..2cb3c153f 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -11,7 +11,7 @@
#include "main.h"
#include "sound.h"
#include "task.h"
-#include "battle_dome_cards.h"
+#include "trainer_pokemon_sprites.h"
#include "scanline_effect.h"
#include "malloc.h"
#include "gpu_regs.h"
@@ -821,7 +821,7 @@ const u8 sText_TenDashes[] = _("----------");
void ResetPokedex(void)
{
u16 i;
-
+
gUnknown_02039B50 = 0;
gUnknown_02039B52 = 64;
gUnknown_030060B0 = 0;
@@ -910,7 +910,7 @@ void sub_80BB534(void)
{
u8 *addr;
u32 size;
-
+
switch (gMain.state)
{
case 0:
@@ -929,7 +929,7 @@ void sub_80BB534(void)
ResetPaletteFade();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 8;
- dp13_810BB8C();
+ ResetAllPicSprites();
gMain.state++;
break;
case 2:
@@ -984,7 +984,7 @@ void sub_80BB78C(u8 taskId)
void sub_80BB7D4(u8 taskId)
{
SetGpuReg(REG_OFFSET_BG0VOFS, gUnknown_02039B4C->menuY);
-
+
if (gUnknown_02039B4C->menuY)
{
gUnknown_02039B4C->menuY -= 8;
@@ -1377,7 +1377,7 @@ bool8 sub_80BC514(u8 a)
SetBgTilemapBuffer(2, AllocZeroed(0x800));
SetBgTilemapBuffer(1, AllocZeroed(0x800));
SetBgTilemapBuffer(0, AllocZeroed(0x800));
- copy_decompressed_tile_data_to_vram_autofree(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
CopyToBgTilemapBuffer(1, gUnknown_08DC2C5C, 0, 0);
CopyToBgTilemapBuffer(3, gUnknown_08DC2DAC, 0, 0);
if (a == 0)
@@ -1467,7 +1467,7 @@ void sub_80BC844(u8 a)
void sub_80BC890(void)
{
void* tilemapBuffer;
-
+
FreeAllWindowBuffers();
tilemapBuffer = GetBgTilemapBuffer(0);
if (tilemapBuffer)
@@ -1487,7 +1487,7 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
{
u16 vars[3]; //I have no idea why three regular variables are stored in an array, but whatever.
s16 i;
-
+
gUnknown_02039B4C->pokemonListCount = 0;
switch (dexMode)
@@ -1633,7 +1633,7 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode)
void sub_80BCE2C(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top)
{
u8 color[3];
-
+
color[0] = 0;
color[1] = 15;
color[2] = 3;
@@ -1731,7 +1731,7 @@ void sub_80BD154(u16 a, u8 left, u8 top, u16 unused)
{
u8 text[6];
u16 r6;
-
+
memcpy(text, gUnknown_0855D2B8, 6);
r6 = gUnknown_02039B4C->unk0[a].dexNum;
if (gUnknown_02039B4C->dexMode == DEX_MODE_HOENN)
@@ -1753,7 +1753,7 @@ void sub_80BD1F4(u16 a, u8 x, u8 y, u16 unused)
u8 sub_80BD23C(u16 num, u8 left, u8 top)
{
const u8* str;
-
+
num = NationalPokedexNumToSpecies(num);
if (num)
str = gSpeciesNames[num];
@@ -1773,7 +1773,7 @@ void sub_80BD2B4(u16 a, u16 b)
u8 i;
u16 unk;
u8 spriteId;
-
+
gPaletteFade.bufferTransferDisabled = TRUE;
for (i = 0; i < 4; i++)
@@ -1803,13 +1803,13 @@ void sub_80BD2B4(u16 a, u16 b)
gSprites[spriteId].callback = sub_80BE4E0;
gSprites[spriteId].data[5] = 32;
}
-
+
sub_80BCE84(0, a, b);
SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_02039B4C->unk62D);
gUnknown_02039B4C->unk630 = 0;
gUnknown_02039B4C->unk632 = 0;
-
+
gPaletteFade.bufferTransferDisabled = FALSE;
}
@@ -1897,7 +1897,7 @@ u16 sub_80BD69C(u16 a, u16 b)
u8 i;
u16 r6;
u8 r10 = 0;
-
+
if ((gMain.heldKeys & DPAD_UP) && (a > 0))
{
r10 = 1;
@@ -1917,7 +1917,7 @@ u16 sub_80BD69C(u16 a, u16 b)
else if ((gMain.newKeys & DPAD_LEFT) && (a > 0))
{
r6 = a;
-
+
for (i = 0; i < 7; i++)
a = sub_80C0E0C(1, a, 0, gUnknown_02039B4C->pokemonListCount - 1);
gUnknown_02039B4C->unk62C += 16 * (a - r6);
@@ -1935,13 +1935,13 @@ u16 sub_80BD69C(u16 a, u16 b)
sub_80BD2B4(a, 0xE);
PlaySE(SE_Z_PAGE);
}
-
+
if (r10 == 0)
{
gUnknown_02039B4C->unk638 = 0;
return a;
}
-
+
r5 = gUnknown_0855D28C[gUnknown_02039B4C->unk638 / 4];
r3 = gUnknown_0855D291[gUnknown_02039B4C->unk638 / 4];
gUnknown_02039B4C->unk62E = r3;
@@ -2030,7 +2030,7 @@ u8 sub_80BDA40(void)
{
if (gUnknown_02039B4C->unk61E[i] != 0xFFFF)
{
- sub_818D820(gUnknown_02039B4C->unk61E[i]);
+ FreeAndDestroyMonPicSprite(gUnknown_02039B4C->unk61E[i]);
gUnknown_02039B4C->unk61E[i] |= 0xFFFF;
}
}
@@ -2109,7 +2109,7 @@ void sub_80BDB7C(u8 a)
if (a == 0)
{
u32 _a;
-
+
if (!IsNationalPokedexEnabled())
{
CreateSprite(&gUnknown_0855D1F4, 32, 40, 1);
@@ -2160,22 +2160,22 @@ void sub_80BDB7C(u8 a)
else
{
u16 r6;
-
+
CreateSprite(&gUnknown_0855D1F4, 32, 40, 1);
spriteId = CreateSprite(&gUnknown_0855D1F4, 32, 76, 1);
StartSpriteAnim(&gSprites[spriteId], 1);
CreateSprite(&gUnknown_0855D20C, 17, 45, 1);
-
+
spriteId = CreateSprite(&gUnknown_0855D20C, 17, 55, 1);
StartSpriteAnim(&gSprites[spriteId], 1);
CreateSprite(&gUnknown_0855D20C, 17, 81, 1);
-
+
spriteId = CreateSprite(&gUnknown_0855D20C, 17, 91, 1);
StartSpriteAnim(&gSprites[spriteId], 1);
-
+
r6 = GetHoennPokedexCount(0);
_a = 0;
@@ -2197,9 +2197,9 @@ void sub_80BDB7C(u8 a)
spriteId = CreateSprite(&gUnknown_0855D23C, 56, 45, 1);
r5 = (r6 % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], r5);
-
+
_a = 0;
-
+
spriteId = CreateSprite(&gUnknown_0855D23C, 40, 55, 1);
r5 = gUnknown_02039B4C->unk61A / 100;
StartSpriteAnim(&gSprites[spriteId], r5);
@@ -2207,21 +2207,21 @@ void sub_80BDB7C(u8 a)
_a = 1;
else
gSprites[spriteId].invisible = TRUE;
-
+
spriteId = CreateSprite(&gUnknown_0855D23C, 48, 55, 1);
r5 = (gUnknown_02039B4C->unk61A % 100) / 10;
if (r5 != 0 || _a != 0)
StartSpriteAnim(&gSprites[spriteId], r5);
else
gSprites[spriteId].invisible = TRUE;
-
+
spriteId = CreateSprite(&gUnknown_0855D23C, 56, 55, 1);
r5 = (gUnknown_02039B4C->unk61A % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], r5);
-
+
r6 = GetHoennPokedexCount(1);
_a = 0;
-
+
spriteId = CreateSprite(&gUnknown_0855D23C, 40, 81, 1);
r5 = r6 / 100;
StartSpriteAnim(&gSprites[spriteId], r5);
@@ -2229,20 +2229,20 @@ void sub_80BDB7C(u8 a)
_a = 1;
else
gSprites[spriteId].invisible = TRUE;
-
+
spriteId = CreateSprite(&gUnknown_0855D23C, 48, 81, 1);
r5 = (r6 % 100) / 10;
if (r5 != 0 || _a != 0)
StartSpriteAnim(&gSprites[spriteId], r5);
else
gSprites[spriteId].invisible = TRUE;
-
+
spriteId = CreateSprite(&gUnknown_0855D23C, 56, 81, 1);
r5 = (r6 % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], r5);
-
+
_a = 0;
-
+
spriteId = CreateSprite(&gUnknown_0855D23C, 40, 91, 1);
r5 = gUnknown_02039B4C->unk61C / 100;
StartSpriteAnim(&gSprites[spriteId], r5);
@@ -2250,14 +2250,14 @@ void sub_80BDB7C(u8 a)
_a = 1;
else
gSprites[spriteId].invisible = TRUE;
-
+
spriteId = CreateSprite(&gUnknown_0855D23C, 48, 91, 1);
r5 = (gUnknown_02039B4C->unk61C % 100) / 10;
if (r5 != 0 || _a != 0)
StartSpriteAnim(&gSprites[spriteId], r5);
else
gSprites[spriteId].invisible = TRUE;
-
+
spriteId = CreateSprite(&gUnknown_0855D23C, 56, 91, 1);
r5 = (gUnknown_02039B4C->unk61C % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], r5);
@@ -2313,7 +2313,7 @@ void sub_80BE4E0(struct Sprite *sprite)
if (gUnknown_02039B4C->unk64A != 0 && gUnknown_02039B4C->unk64A != 3)
{
- sub_818D820(gUnknown_02039B4C->unk61E[data1]);
+ FreeAndDestroyMonPicSprite(gUnknown_02039B4C->unk61E[data1]);
gUnknown_02039B4C->unk61E[data1] = 0xFFFF;
}
else
@@ -2339,7 +2339,7 @@ void sub_80BE4E0(struct Sprite *sprite)
if ((sprite->data[5] <= -64 || sprite->data[5] >= 64) && sprite->data[0] != 0)
{
- sub_818D820(gUnknown_02039B4C->unk61E[data1]);
+ FreeAndDestroyMonPicSprite(gUnknown_02039B4C->unk61E[data1]);
gUnknown_02039B4C->unk61E[data1] = 0xFFFF;
}
}
@@ -2449,14 +2449,14 @@ void sub_80BE8DC(const u8* str, u8 left, u8 top)
color[0] = 0;
color[1] = 15;
color[2] = 3;
-
+
AddTextPrinterParameterized2(0, 1, left, top, 0, 0, color, -1, str);
}
u8 sub_80BE91C(struct PokedexListItem* item, u8 b)
{
u8 taskId;
-
+
gUnknown_02039B54 = item;
taskId = CreateTask(sub_80BEA24, 0);
gTasks[taskId].data[0] = 0;
@@ -2473,7 +2473,7 @@ u8 sub_80BE91C(struct PokedexListItem* item, u8 b)
SetBgTilemapBuffer(0, AllocZeroed(0x800));
InitWindows(gUnknown_0856E640);
DeactivateAllTextPrinters();
-
+
return taskId;
}
@@ -2518,7 +2518,7 @@ void sub_80BEA24(u8 taskId)
}
break;
case 1:
- copy_decompressed_tile_data_to_vram_autofree(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
CopyToBgTilemapBuffer(3, gUnknown_08DC3080, 0, 0);
FillWindowPixelBuffer(0, 0);
PutWindowTilemap(0);
@@ -2703,7 +2703,7 @@ void sub_80BEFD0(u8 taskId)
{
if (!gPaletteFade.active)
{
- sub_818D820(gTasks[taskId].data[4]);
+ FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]);
switch (gUnknown_02039B4C->unk64E)
{
case 1:
@@ -2724,7 +2724,7 @@ void sub_80BF038(u8 taskId)
{
if (!gPaletteFade.active)
{
- sub_818D820(gTasks[taskId].data[4]);
+ FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]);
gTasks[taskId].func = sub_80BEA24;
}
}
@@ -2733,7 +2733,7 @@ void sub_80BF070(u8 taskId)
{
if (!gPaletteFade.active)
{
- sub_818D820(gTasks[taskId].data[4]);
+ FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]);
sub_80BEDB0();
DestroyTask(taskId);
}
@@ -2813,7 +2813,7 @@ void sub_80BF250(u8 taskId)
}
break;
case 1:
- copy_decompressed_tile_data_to_vram_autofree(3, &gPokedexMenu_Gfx, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(3, &gPokedexMenu_Gfx, 0x2000, 0, 0);
CopyToBgTilemapBuffer(3, &gUnknown_08DC3198, 0, 0);
FillWindowPixelBuffer(0, 0);
PutWindowTilemap(0);
@@ -2960,7 +2960,7 @@ void sub_80BF790(u8 taskId)
if (!gPaletteFade.active)
{
sub_8145914();
- sub_818D820(gTasks[taskId].data[4]);
+ FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]);
switch (gUnknown_02039B4C->unk64E)
{
default:
@@ -3007,7 +3007,7 @@ void sub_80BF82C(u8 taskId)
}
break;
case 1:
- copy_decompressed_tile_data_to_vram_autofree(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
CopyToBgTilemapBuffer(3, gUnknown_08DC2E6C, 0, 0);
FillWindowPixelBuffer(0, 0);
PutWindowTilemap(0);
@@ -3109,8 +3109,8 @@ void sub_80BFC78(u8 taskId)
{
if (!gPaletteFade.active)
{
- sub_818D820(gTasks[taskId].data[4]);
- sub_818D8F0(gTasks[taskId].data[5]);
+ FreeAndDestroyMonPicSprite(gTasks[taskId].data[4]);
+ FreeAndDestroyTrainerPicSprite(gTasks[taskId].data[5]);
switch (gUnknown_02039B4C->unk64E)
{
default:
@@ -3334,7 +3334,7 @@ void sub_80BFE38(u8 taskId)
{
u8 spriteId;
u16 dexNum = gTasks[taskId].data[1];
-
+
switch (gTasks[taskId].data[0])
{
case 0:
@@ -3354,7 +3354,7 @@ void sub_80BFE38(u8 taskId)
}
break;
case 1:
- copy_decompressed_tile_data_to_vram_autofree(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0);
CopyToBgTilemapBuffer(3, gUnknown_08DC3080, 0, 0);
FillWindowPixelBuffer(0, 0);
PutWindowTilemap(0);
@@ -3440,7 +3440,7 @@ void blockset_load_palette_to_gpu(u8 taskId)
buffer = GetBgTilemapBuffer(3);
if (buffer)
Free(buffer);
-
+
species = NationalPokedexNumToSpecies(gTasks[taskId].data[1]);
otId = ((u16)gTasks[taskId].data[13] << 16) | (u16)gTasks[taskId].data[12];
personality = ((u16)gTasks[taskId].data[15] << 16) | (u16)gTasks[taskId].data[14];
@@ -3472,7 +3472,7 @@ void sub_80C020C(u32 num, u32 value, u32 c, u32 d)
const u8 *text;
const u8 *text2;
const u8 *text3;
-
+
if (d)
sub_80BE8DC(gText_PokedexRegistration, GetStringCenterAlignXOffset(1, gText_PokedexRegistration, 0xF0), 0);
if (value == 0)
@@ -4064,7 +4064,7 @@ void sub_80C0A88(u8 windowId, const u8 *str, u8 left, u8 top)
color[0] = 0;
color[1] = 15;
color[2] = 3;
-
+
AddTextPrinterParameterized2(windowId, 1, left, top, 0, 0, color, -1, str);
}
@@ -4107,7 +4107,7 @@ void sub_80C0BF0(u8 windowId, const u8* str, u8 left, u8 top)
u8 str2[11];
u8 i;
u8 count;
-
+
for (i = 0; i < 11; i++)
str2[i] = CHAR_SPACE;
for (count = 0; str[count] != CHAR_SPACE && count < 11; count++)
@@ -4232,12 +4232,12 @@ u32 sub_80C0E68(u16 a)
u16 sub_80C0E9C(u16 num, s16 x, s16 y, u16 paletteSlot)
{
num = NationalPokedexNumToSpecies(num);
- return sub_818D7D8(num, 8, sub_80C0E68(num), TRUE, x, y, paletteSlot, 0xFFFF);
+ return CreateMonPicSprite_HandleDeoxys(num, 8, sub_80C0E68(num), TRUE, x, y, paletteSlot, 0xFFFF);
}
u16 sub_80C0EF8(u16 species, s16 x, s16 y, s8 paletteSlot)
{
- return sub_818D8AC(species, TRUE, x, y, paletteSlot, 0xFFFF);
+ return CreateTrainerPicSprite(species, TRUE, x, y, paletteSlot, 0xFFFF);
}
int sub_80C0F30(u8 dexMode, u8 sortMode, u8 abcGroup, u8 bodyColor, u8 type1, u8 type2)
@@ -4364,7 +4364,7 @@ u8 sub_80C1258(void)
void sub_80C1270(const u8 *str, u32 left, u32 top)
{
u8 color[3];
-
+
color[0] = 0;
color[1] = 15;
color[2] = 2;
@@ -4397,8 +4397,8 @@ void sub_80C12E0(u8 taskId)
InitWindows(gUnknown_0856F008);
DeactivateAllTextPrinters();
PutWindowTilemap(0);
- copy_decompressed_tile_data_to_vram_autofree(3, gPokedexSearchMenu_Gfx, 0x2000, 0, 0);
-
+ DecompressAndLoadBgGfxUsingHeap(3, gPokedexSearchMenu_Gfx, 0x2000, 0, 0);
+
if (!IsNationalPokedexEnabled())
CopyToBgTilemapBuffer(3, gPokedexSearch2_Tilemap, 0, 0);
else
@@ -4450,7 +4450,7 @@ void sub_80C12E0(u8 taskId)
void sub_80C152C(void)
{
void* tilemapBuffer;
-
+
FreeAllWindowBuffers();
tilemapBuffer = GetBgTilemapBuffer(0);
if (tilemapBuffer)
@@ -4992,12 +4992,12 @@ void sub_80C2064(u8 a, u8 b)
void sub_80C20F8(u8 taskId)
{
u16 var;
-
+
sub_80C12B0(0x28, 0x10, 0x60, 0x50);
var = gTasks[taskId].data[6] + gTasks[taskId].data[7];
sub_80C1270(gUnknown_0856EE5C[var].text2, 0x2D, 0x11);
-
+
var = gTasks[taskId].data[8] + gTasks[taskId].data[9];
sub_80C1270(gUnknown_0856EEB4[var].text2, 0x2D, 0x21);
diff --git a/src/pokemon.c b/src/pokemon.c
index 3aa88e991..9022f69ea 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -13,6 +13,7 @@
#include "constants/hold_effects.h"
#include "constants/battle_move_effects.h"
#include "constants/songs.h"
+#include "constants/battle_frontier.h"
#include "string_util.h"
#include "text.h"
#include "link.h"
@@ -80,8 +81,7 @@ extern void set_unknown_box_id(u8);
extern void sub_803FA70(u8 battlerId);
extern u8 sav1_map_get_name(void);
extern const u8 *sub_81A1650(u8, u8 language);
-extern u8 BattleFrontierGetOpponentLvl(u8);
-extern u16 FacilityClassToPicIndex(u16);
+extern u8 GetFrontierEnemyMonLevel(u8);
extern bool8 InBattlePyramid(void);
extern bool8 InBattlePike(void);
extern bool8 sub_806F104(void);
@@ -955,7 +955,7 @@ const u16 gHoennToNationalOrder[] = // Assigns Hoenn Dex Pokémon (Using Nationa
NATIONAL_DEX_BLAZIKEN, // HOENN_DEX_BLAZIKEN
NATIONAL_DEX_MUDKIP, // HOENN_DEX_MUDKIP
NATIONAL_DEX_MARSHTOMP, // HOENN_DEX_MARSHTOMP
- NATIONAL_DEX_SWAMPERT, // HOENN_DEX_SWAMPERT
+ NATIONAL_DEX_SWAMPERT, // HOENN_DEX_SWAMPERT
NATIONAL_DEX_POOCHYENA, // HOENN_DEX_POOCHYENA
NATIONAL_DEX_MIGHTYENA, // HOENN_DEX_MIGHTYENA
NATIONAL_DEX_ZIGZAGOON, // HOENN_DEX_ZIGZAGOON
@@ -2819,8 +2819,8 @@ void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lv
u8 language;
u8 value;
- if (gSaveBlock2Ptr->frontier.chosenLvl != 0)
- level = BattleFrontierGetOpponentLvl(gSaveBlock2Ptr->frontier.chosenLvl);
+ if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50)
+ level = GetFrontierEnemyMonLevel(gSaveBlock2Ptr->frontier.lvlMode);
else if (lvl50)
level = 50;
else
@@ -2884,7 +2884,7 @@ void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u
CreateMon(mon,
src->mons[monId].species,
- BattleFrontierGetOpponentLvl(src->field_0_1 - 1),
+ GetFrontierEnemyMonLevel(src->field_0_1 - 1),
0x1F,
TRUE,
personality,
@@ -7118,9 +7118,9 @@ u16 FacilityClassToPicIndex(u16 facilityClass)
u16 PlayerGenderToFrontTrainerPicId(u8 playerGender)
{
if (playerGender != MALE)
- return FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_BRENDAN);
- else
return FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_MAY);
+ else
+ return FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_BRENDAN);
}
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality)
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 8b21e214f..552c32d38 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -1635,8 +1635,8 @@ void sub_80E8260(struct UnkRecordMixingStruct2 *dst)
dst->field_0[0][i].field_4 = gSaveBlock2Ptr->frontier.field_CF0[i];
dst->field_0[1][i].field_4 = gSaveBlock2Ptr->frontier.field_CF4[i];
dst->field_0[2][i].field_4 = gSaveBlock2Ptr->frontier.field_CF8[i];
- dst->field_0[3][i].field_4 = gSaveBlock2Ptr->frontier.field_D14[i];
- dst->field_0[4][i].field_4 = gSaveBlock2Ptr->frontier.field_DD0[i];
+ dst->field_0[3][i].field_4 = gSaveBlock2Ptr->frontier.field_D14[0][i];
+ dst->field_0[4][i].field_4 = gSaveBlock2Ptr->frontier.field_DD0[0][i];
dst->field_0[5][i].field_4 = gSaveBlock2Ptr->frontier.field_DDE[i];
dst->field_0[6][i].field_4 = gSaveBlock2Ptr->frontier.field_DEA[i];
dst->field_0[7][i].field_4 = gSaveBlock2Ptr->frontier.field_E08[i];
diff --git a/src/recorded_battle.c b/src/recorded_battle.c
index 45b07ca7a..e19f3047f 100644
--- a/src/recorded_battle.c
+++ b/src/recorded_battle.c
@@ -1293,7 +1293,7 @@ static bool32 AllocTryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst)
static void CB2_RecordedBattleEnd(void)
{
- gSaveBlock2Ptr->frontier.chosenLvl = sUnknown_0203C7AD;
+ gSaveBlock2Ptr->frontier.lvlMode = sUnknown_0203C7AD;
gBattleOutcome = 0;
gBattleTypeFlags = 0;
gTrainerBattleOpponent_A = 0;
@@ -1353,7 +1353,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src)
gTrainerBattleOpponent_B = src->opponentB;
gPartnerTrainerId = src->partnerId;
gUnknown_0203C7B4 = src->field_4FA;
- sUnknown_0203C7AD = gSaveBlock2Ptr->frontier.chosenLvl;
+ sUnknown_0203C7AD = gSaveBlock2Ptr->frontier.lvlMode;
sFrontierFacility = src->field_4FD;
sUnknown_0203C7AF = src->field_4FE;
sBattleStyle = src->battleStyle;
@@ -1375,7 +1375,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src)
sUnknown_0203CCDC[i] = src->field_50E[i];
}
- gSaveBlock2Ptr->frontier.chosenLvl = src->field_4FC;
+ gSaveBlock2Ptr->frontier.lvlMode = src->field_4FC;
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c
index 55e3fe32b..993dc0f4f 100644
--- a/src/rom_8011DC0.c
+++ b/src/rom_8011DC0.c
@@ -18,6 +18,7 @@
#include "constants/maps.h"
#include "constants/species.h"
#include "constants/rgb.h"
+#include "constants/battle_frontier.h"
#include "trade.h"
#include "trainer_card.h"
#include "overworld.h"
@@ -468,7 +469,7 @@ void sub_8012780(u8 taskId)
switch (data->state)
{
case 0:
- if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.chosenLvl == 1)
+ if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN)
gSpecialVar_0x8004++;
gUnknown_02022C2C = gUnknown_082F00C4[gSpecialVar_0x8004];
gUnknown_02022C2D = gUnknown_082F00C4[gSpecialVar_0x8004] >> 8;
@@ -1050,7 +1051,7 @@ void sub_80134E8(u8 taskId)
switch (data->state)
{
case 0:
- if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.chosenLvl == 1)
+ if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN)
gSpecialVar_0x8004++;
gUnknown_02022C2C = gUnknown_082F0530[gSpecialVar_0x8004];
sub_8010F84(gUnknown_02022C2C, 0, 0);
diff --git a/src/start_menu.c b/src/start_menu.c
index 60271317a..4a58c146e 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -33,6 +33,7 @@
#include "international_string_util.h"
#include "constants/songs.h"
#include "field_player_avatar.h"
+#include "battle_pyramid_bag.h"
// Menu actions
enum
@@ -73,12 +74,11 @@ EWRAM_DATA static u8 sSaveDialogTimer = 0;
EWRAM_DATA static bool8 sSavingComplete = FALSE;
EWRAM_DATA static u8 sSaveInfoWindowId = 0;
-// Extern variables
+// Extern variables.
extern u8 gDifferentSaveFile;
-extern u16 gSaveFileStatus;
extern u8 gUnknown_03005DB4;
-// Extern functions in uncompiled files
+// Extern functions in not decompiled files.
extern void sub_80AF688(void);
extern void var_800D_set_xB(void);
extern void sub_808B864(void);
@@ -89,7 +89,6 @@ extern void CB2_PokeNav(void);
extern void sub_80C4DDC(void (*)(void));
extern void sub_80C51C4(void (*)(void));
extern void sub_80C4E74(u8, void (*)(void));
-extern void sub_81C4EFC(void);
extern void ScriptUnfreezeEventObjects(void);
extern void sub_81A9EC8(void);
extern void save_serialize_map(void);
@@ -781,7 +780,7 @@ static bool8 StartMenuBattlePyramidBagCallback(void)
play_some_sound();
RemoveExtraStartMenuWindows();
overworld_free_bg_tilemaps();
- SetMainCallback2(sub_81C4EFC); // Display battle pyramid bag
+ SetMainCallback2(CB2_PyramidBagMenuFromStartMenu);
return TRUE;
}
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 36e2b121a..c1e7eea40 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -20,6 +20,7 @@
#include "international_string_util.h"
#include "trig.h"
#include "scanline_effect.h"
+#include "trainer_pokemon_sprites.h"
#define STARTER_MON_COUNT 3
@@ -48,12 +49,6 @@ extern const u8 gStarterChoose_LabelCoords[][2];
extern const u8 gUnknown_085B1E0C[];
extern const u8 gUnknown_085B1E28[][2];
-extern void clear_scheduled_bg_copies_to_vram(void);
-extern void dp13_810BB8C(void);
-extern void do_scheduled_bg_tilemap_copies_to_vram(void);
-extern u16 sub_818D820(u16);
-extern u8 sub_818D3E4(u16 species, u32 trainerId, u32 personality, u8 flags, s16 x, s16 y, u8, u16);
-
// this file's functions
static void MainCallback2_StarterChoose(void);
static void sub_8134604(void);
@@ -132,7 +127,7 @@ void CB2_ChooseStarter(void)
ResetSpriteData();
ResetPaletteFade();
FreeAllSpritePalettes();
- dp13_810BB8C();
+ ResetAllPicSprites();
LoadPalette(GetOverworldTextboxPalettePtr(), 0xE0, 0x20);
LoadPalette(gBirchBagGrassPal, 0, 0x40);
@@ -263,7 +258,7 @@ static void Task_StarterChoose5(u8 taskId)
case 0: // YES
// Return the starter choice and exit.
gSpecialVar_Result = gTasks[taskId].tStarterSelection;
- dp13_810BB8C();
+ ResetAllPicSprites();
SetMainCallback2(gMain.savedCallback);
break;
case 1: // NO
@@ -271,7 +266,7 @@ static void Task_StarterChoose5(u8 taskId)
PlaySE(SE_SELECT);
spriteId = gTasks[taskId].tPkmnSpriteId;
FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
- sub_818D820(spriteId);
+ FreeAndDestroyMonPicSprite(spriteId);
spriteId = gTasks[taskId].tCircleSpriteId;
FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
@@ -349,7 +344,7 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y)
{
u8 spriteId;
- spriteId = sub_818D3E4(species, 8, 0, 1, x, y, 0xE, 0xFFFF);
+ spriteId = CreatePicSprite2(species, 8, 0, 1, x, y, 0xE, 0xFFFF);
gSprites[spriteId].oam.priority = 0;
return spriteId;
}
diff --git a/src/battle_dome_cards.c b/src/trainer_pokemon_sprites.c
index 5e659a2e8..085e66214 100644
--- a/src/battle_dome_cards.c
+++ b/src/trainer_pokemon_sprites.c
@@ -1,5 +1,3 @@
-
-// Includes
#include "global.h"
#include "sprite.h"
#include "window.h"
@@ -7,7 +5,10 @@
#include "constants/species.h"
#include "palette.h"
#include "decompress.h"
-#include "battle_dome_cards.h"
+#include "trainer_pokemon_sprites.h"
+#include "data2.h"
+#include "pokemon.h"
+#include "constants/trainers.h"
extern const struct CompressedSpriteSheet gMonFrontPicTable[NUM_SPECIES];
extern const struct CompressedSpriteSheet gMonBackPicTable[NUM_SPECIES];
@@ -19,11 +20,10 @@ extern const union AffineAnimCmd *const gUnknown_082FF694[];
extern const union AnimCmd *const gPlayerMonSpriteAnimsTable[];
extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[NUM_SPECIES];
extern const union AnimCmd *const *const gUnknown_0830536C[];
-extern const u8 gFacilityClassToPicIndex[];
// Static type declarations
-struct BattleDomeCard
+struct PicData
{
u8 *frames;
struct SpriteFrameImage *images;
@@ -33,15 +33,16 @@ struct BattleDomeCard
};
// Static RAM declarations
+#define PICS_COUNT 8
-static EWRAM_DATA struct SpriteTemplate gUnknown_0203CCEC = {};
-static EWRAM_DATA struct BattleDomeCard gUnknown_0203CD04[8] = {};
+static EWRAM_DATA struct SpriteTemplate sCreatingSpriteTemplate = {};
+static EWRAM_DATA struct PicData sSpritePics[PICS_COUNT] = {};
// Static ROM declarations
// .rodata
-static const struct BattleDomeCard gUnknown_0860B058 = {};
+static const struct PicData sDummyPicData = {};
static const struct OamData gUnknown_0860B064 =
{
.size = 3
@@ -53,80 +54,67 @@ static const struct OamData gUnknown_0860B06C =
// .text
-static void nullsub_122(struct Sprite *sprite)
+static void DummyPicSpriteCallback(struct Sprite *sprite)
{
}
-bool16 dp13_810BB8C(void)
+bool16 ResetAllPicSprites(void)
{
int i;
- for (i = 0; i < 8; i ++)
- {
- gUnknown_0203CD04[i] = gUnknown_0860B058;
- }
+ for (i = 0; i < PICS_COUNT; i ++)
+ sSpritePics[i] = sDummyPicData;
+
return FALSE;
}
-static bool16 load_pokemon_image_TODO(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer, bool8 ignoreDeoxys)
+static bool16 DecompressPic(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer, bool8 ignoreDeoxys)
{
if (!isTrainer)
{
if (isFrontPic)
{
if (!ignoreDeoxys)
- {
LoadSpecialPokePic(&gMonFrontPicTable[species], dest, species, personality, isFrontPic);
- }
else
- {
LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], dest, species, personality, isFrontPic);
- }
}
else
{
if (!ignoreDeoxys)
- {
LoadSpecialPokePic(&gMonBackPicTable[species], dest, species, personality, isFrontPic);
- }
else
- {
LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], dest, species, personality, isFrontPic);
- }
}
}
else
{
if (isFrontPic)
- {
DecompressPicFromTable(&gTrainerFrontPicTable[species], dest, species);
- }
else
- {
DecompressPicFromTable(&gTrainerBackPicTable[species], dest, species);
- }
}
return FALSE;
}
-static bool16 sub_818D09C(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer)
+static bool16 DecompressPic_HandleDeoxys(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer)
{
- return load_pokemon_image_TODO(species, personality, isFrontPic, dest, isTrainer, FALSE);
+ return DecompressPic(species, personality, isFrontPic, dest, isTrainer, FALSE);
}
-static void sub_818D0C4(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
+static void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
{
if (!isTrainer)
{
if (paletteTag == 0xFFFF)
{
- gUnknown_0203CCEC.paletteTag |= 0xFFFF;
+ sCreatingSpriteTemplate.paletteTag |= 0xFFFF;
LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20);
}
else
{
- gUnknown_0203CCEC.paletteTag = paletteTag;
+ sCreatingSpriteTemplate.paletteTag = paletteTag;
LoadCompressedObjectPalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality));
}
}
@@ -134,42 +122,34 @@ static void sub_818D0C4(u16 species, u32 otId, u32 personality, u8 paletteSlot,
{
if (paletteTag == 0xFFFF)
{
- gUnknown_0203CCEC.paletteTag |= 0xFFFF;
+ sCreatingSpriteTemplate.paletteTag |= 0xFFFF;
LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, 0x100 + paletteSlot * 0x10, 0x20);
}
else
{
- gUnknown_0203CCEC.paletteTag = paletteTag;
+ sCreatingSpriteTemplate.paletteTag = paletteTag;
LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]);
}
}
}
-static void sub_818D180(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer)
+static void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer)
{
if (!isTrainer)
- {
LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), paletteSlot * 0x10, 0x20);
- }
else
- {
LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, paletteSlot * 0x10, 0x20);
- }
}
-static void uns_builder_assign_animtable1(bool8 isTrainer)
+static void AssignSpriteAnimsTable(bool8 isTrainer)
{
if (!isTrainer)
- {
- gUnknown_0203CCEC.anims = gPlayerMonSpriteAnimsTable;
- }
+ sCreatingSpriteTemplate.anims = gPlayerMonSpriteAnimsTable;
else
- {
- gUnknown_0203CCEC.anims = gUnknown_0830536C[0];
- }
+ sCreatingSpriteTemplate.anims = gUnknown_0830536C[0];
}
-static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys)
+static u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys)
{
u8 i;
u8 *framePics;
@@ -177,14 +157,14 @@ static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 persona
int j;
u8 spriteId;
- for (i = 0; i < 8; i ++)
+ for (i = 0; i < PICS_COUNT; i ++)
{
- if (!gUnknown_0203CD04[i].active)
+ if (!sSpritePics[i].active)
{
break;
}
}
- if (i == 8)
+ if (i == PICS_COUNT)
{
return 0xFFFF;
}
@@ -199,7 +179,7 @@ static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 persona
Free(framePics);
return 0xFFFF;
}
- if (load_pokemon_image_TODO(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys))
+ if (DecompressPic(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys))
{
// debug trap?
return 0xFFFF;
@@ -209,32 +189,32 @@ static u16 oamt_spawn_poke_or_trainer_picture(u16 species, u32 otId, u32 persona
images[j].data = framePics + 0x800 * j;
images[j].size = 0x800;
}
- gUnknown_0203CCEC.tileTag = 0xFFFF;
- gUnknown_0203CCEC.oam = &gUnknown_0860B064;
- uns_builder_assign_animtable1(isTrainer);
- gUnknown_0203CCEC.images = images;
- gUnknown_0203CCEC.affineAnims = gDummySpriteAffineAnimTable;
- gUnknown_0203CCEC.callback = nullsub_122;
- sub_818D0C4(species, otId, personality, paletteSlot, paletteTag, isTrainer);
- spriteId = CreateSprite(&gUnknown_0203CCEC, x, y, 0);
+ sCreatingSpriteTemplate.tileTag = 0xFFFF;
+ sCreatingSpriteTemplate.oam = &gUnknown_0860B064;
+ AssignSpriteAnimsTable(isTrainer);
+ sCreatingSpriteTemplate.images = images;
+ sCreatingSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
+ sCreatingSpriteTemplate.callback = DummyPicSpriteCallback;
+ LoadPicPaletteByTagOrSlot(species, otId, personality, paletteSlot, paletteTag, isTrainer);
+ spriteId = CreateSprite(&sCreatingSpriteTemplate, x, y, 0);
if (paletteTag == 0xFFFF)
{
gSprites[spriteId].oam.paletteNum = paletteSlot;
}
- gUnknown_0203CD04[i].frames = framePics;
- gUnknown_0203CD04[i].images = images;
- gUnknown_0203CD04[i].paletteTag = paletteTag;
- gUnknown_0203CD04[i].spriteId = spriteId;
- gUnknown_0203CD04[i].active = TRUE;
+ sSpritePics[i].frames = framePics;
+ sSpritePics[i].images = images;
+ sSpritePics[i].paletteTag = paletteTag;
+ sSpritePics[i].spriteId = spriteId;
+ sSpritePics[i].active = TRUE;
return spriteId;
}
-static u16 sub_818D384(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
+static u16 CreatePicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
{
- return oamt_spawn_poke_or_trainer_picture(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE);
+ return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE);
}
-u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
+u16 CreatePicSprite2(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
{
u8 *framePics;
struct SpriteFrameImage *images;
@@ -243,14 +223,14 @@ u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y,
u8 spriteId;
u8 flags2;
- for (i = 0; i < 8; i ++)
+ for (i = 0; i < PICS_COUNT; i ++)
{
- if (!gUnknown_0203CD04[i].active)
+ if (!sSpritePics[i].active)
{
break;
}
}
- if (i == 8)
+ if (i == PICS_COUNT)
{
return 0xFFFF;
}
@@ -274,7 +254,7 @@ u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y,
Free(framePics);
return 0xFFFF;
}
- if (load_pokemon_image_TODO(species, personality, flags, framePics, FALSE, FALSE))
+ if (DecompressPic(species, personality, flags, framePics, FALSE, FALSE))
{
// debug trap?
return 0xFFFF;
@@ -284,76 +264,76 @@ u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y,
images[j].data = framePics + 0x800 * j;
images[j].size = 0x800;
}
- gUnknown_0203CCEC.tileTag = 0xFFFF;
- gUnknown_0203CCEC.anims = gMonAnimationsSpriteAnimsPtrTable[species];
- gUnknown_0203CCEC.images = images;
+ sCreatingSpriteTemplate.tileTag = 0xFFFF;
+ sCreatingSpriteTemplate.anims = gMonAnimationsSpriteAnimsPtrTable[species];
+ sCreatingSpriteTemplate.images = images;
if (flags2 == 0x01)
{
- gUnknown_0203CCEC.affineAnims = gUnknown_082FF694;
- gUnknown_0203CCEC.oam = &gUnknown_0860B06C;
+ sCreatingSpriteTemplate.affineAnims = gUnknown_082FF694;
+ sCreatingSpriteTemplate.oam = &gUnknown_0860B06C;
}
else if (flags2 == 0x00)
{
- gUnknown_0203CCEC.affineAnims = gUnknown_082FF618;
- gUnknown_0203CCEC.oam = &gUnknown_0860B06C;
+ sCreatingSpriteTemplate.affineAnims = gUnknown_082FF618;
+ sCreatingSpriteTemplate.oam = &gUnknown_0860B06C;
}
else
{
- gUnknown_0203CCEC.oam = &gUnknown_0860B064;
- gUnknown_0203CCEC.affineAnims = gDummySpriteAffineAnimTable;
+ sCreatingSpriteTemplate.oam = &gUnknown_0860B064;
+ sCreatingSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
}
- gUnknown_0203CCEC.callback = nullsub_122;
- sub_818D0C4(species, otId, personality, paletteSlot, paletteTag, FALSE);
- spriteId = CreateSprite(&gUnknown_0203CCEC, x, y, 0);
+ sCreatingSpriteTemplate.callback = DummyPicSpriteCallback;
+ LoadPicPaletteByTagOrSlot(species, otId, personality, paletteSlot, paletteTag, FALSE);
+ spriteId = CreateSprite(&sCreatingSpriteTemplate, x, y, 0);
if (paletteTag == 0xFFFF)
{
gSprites[spriteId].oam.paletteNum = paletteSlot;
}
- gUnknown_0203CD04[i].frames = framePics;
- gUnknown_0203CD04[i].images = images;
- gUnknown_0203CD04[i].paletteTag = paletteTag;
- gUnknown_0203CD04[i].spriteId = spriteId;
- gUnknown_0203CD04[i].active = TRUE;
+ sSpritePics[i].frames = framePics;
+ sSpritePics[i].images = images;
+ sSpritePics[i].paletteTag = paletteTag;
+ sSpritePics[i].spriteId = spriteId;
+ sSpritePics[i].active = TRUE;
return spriteId;
}
-static u16 sub_818D5B0(u16 spriteId)
+static u16 FreeAndDestroyPicSpriteInternal(u16 spriteId)
{
u8 i;
u8 *framePics;
struct SpriteFrameImage *images;
- for (i = 0; i < 8; i ++)
+ for (i = 0; i < PICS_COUNT; i ++)
{
- if (gUnknown_0203CD04[i].spriteId == spriteId)
+ if (sSpritePics[i].spriteId == spriteId)
{
break;
}
}
- if (i == 8)
+ if (i == PICS_COUNT)
{
return 0xFFFF;
}
- framePics = gUnknown_0203CD04[i].frames;
- images = gUnknown_0203CD04[i].images;
- if (gUnknown_0203CD04[i].paletteTag != 0xFFFF)
+ framePics = sSpritePics[i].frames;
+ images = sSpritePics[i].images;
+ if (sSpritePics[i].paletteTag != 0xFFFF)
{
FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum));
}
DestroySprite(&gSprites[spriteId]);
Free(framePics);
Free(images);
- gUnknown_0203CD04[i] = gUnknown_0860B058;
+ sSpritePics[i] = sDummyPicData;
return 0;
}
static u16 sub_818D65C(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId, bool8 isTrainer)
{
- if (sub_818D09C(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE))
+ if (DecompressPic_HandleDeoxys(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE))
{
return 0xFFFF;
}
- sub_818D180(species, otId, personality, paletteSlot, isTrainer);
+ LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer);
return 0;
}
@@ -362,29 +342,29 @@ static u16 sub_818D6CC(u16 species, u32 otId, u32 personality, bool8 isFrontPic,
u8 *framePics;
framePics = Alloc(4 * 0x800);
- if (framePics && !sub_818D09C(species, personality, isFrontPic, framePics, isTrainer))
+ if (framePics && !DecompressPic_HandleDeoxys(species, personality, isFrontPic, framePics, isTrainer))
{
BlitBitmapRectToWindow(windowId, framePics, 0, 0, 0x40, 0x40, destX, destY, 0x40, 0x40);
- sub_818D180(species, otId, personality, paletteSlot, isTrainer);
+ LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer);
Free(framePics);
return 0;
}
return 0xFFFF;
}
-static u16 sub_818D778(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys)
+static u16 CreateMonPicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys)
{
- return oamt_spawn_poke_or_trainer_picture(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys);
+ return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys);
}
-u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
+u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
{
- return sub_818D778(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE);
+ return CreateMonPicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE);
}
-u16 sub_818D820(u16 spriteId)
+u16 FreeAndDestroyMonPicSprite(u16 spriteId)
{
- return sub_818D5B0(spriteId);
+ return FreeAndDestroyPicSpriteInternal(spriteId);
}
u16 sub_818D834(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
@@ -397,14 +377,14 @@ u16 sub_818D864(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 de
return sub_818D6CC(species, otId, personality, isFrontPic, destX, destY, paletteSlot, windowId, FALSE);
}
-u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
+u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
{
- return sub_818D384(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE);
+ return CreatePicSprite_HandleDeoxys(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE);
}
-u16 sub_818D8F0(u16 spriteId)
+u16 FreeAndDestroyTrainerPicSprite(u16 spriteId)
{
- return sub_818D5B0(spriteId);
+ return FreeAndDestroyPicSpriteInternal(spriteId);
}
u16 sub_818D904(u16 species, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
@@ -417,17 +397,17 @@ u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteS
return sub_818D6CC(species, 0, 0, isFrontPic, destX, destY, paletteSlot, windowId, TRUE);
}
-u8 sub_818D97C(u8 a0, u8 a1)
+u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass)
{
- if (a1 == 1)
+ if (getClass == TRUE)
{
- switch (a0)
+ switch (gender)
{
- default:
- return gFacilityClassToPicIndex[0x3F];
- case 0:
- return gFacilityClassToPicIndex[0x3C];
+ default:
+ return gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_MAY];
+ case MALE:
+ return gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_BRENDAN];
}
}
- return a0;
+ return gender;
}
diff --git a/src/unk_text_util_2.c b/src/unk_text_util_2.c
index ca8246128..4821ed776 100644
--- a/src/unk_text_util_2.c
+++ b/src/unk_text_util_2.c
@@ -4,6 +4,7 @@
#include "text.h"
#include "sound.h"
+ALIGNED(4)
static const u8 sUnknown_08616124[] = {1, 2, 4};
static const u16 sFont6BrailleGlyphs[] = INCBIN_U16("data/graphics/fonts/font6.fwjpnfont");
diff --git a/sym_ewram.txt b/sym_ewram.txt
index b54d52f90..bf2632e91 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -607,15 +607,14 @@ gUnknown_0203ABB8: @ 203ABB8
.space 0x4 /*unused var?*/
.include "src/mystery_event_script.o"
-
.include "src/learn_move.o"
.include "src/decoration_inventory.o"
.include "src/roamer.o"
-gUnknown_0203BC88: @ 203BC88
+gFacilityTrainers: @ 203BC88
.space 0x4
-gUnknown_0203BC8C: @ 203BC8C
+gFacilityTrainerMons: @ 203BC8C
.space 0x4
.include "src/use_pokeblock.o"
@@ -633,20 +632,9 @@ gUnknown_0203BC8C: @ 203BC8C
.include "src/pokeblock_feed.o"
.include "src/intro_credits_graphics.o"
.include "src/recorded_battle.o"
- .include "src/battle_dome_cards.o"
+ .include "src/trainer_pokemon_sprites.o"
.include "src/lilycove_lady.o"
-
-gUnknown_0203CD70: @ 203CD70
- .space 0x4
-
-gUnknown_0203CD74: @ 203CD74
- .space 0x4
-
-gUnknown_0203CD78: @ 203CD78
- .space 0x4
-
-gUnknown_0203CD7C: @ 203CD7C
- .space 0x4
+ .include "src/battle_dome.o"
gUnknown_0203CD80: @ 203CD80
.space 0x8
@@ -741,7 +729,7 @@ gUnknown_0203CF00: @ 203CF00
.include "src/fldeff_groundshake.o"
.include "src/pokemon_summary_screen.o"
.include "src/unk_pokedex_area_screen_helper.o"
- .include "src/battle_pyramid.o"
+ .include "src/battle_pyramid_bag.o"
gUnknown_0203CF3C: @ 203CF3C
.space 0x4
diff --git a/tools/gbafix/.gitignore b/tools/gbafix/.gitignore
new file mode 100644
index 000000000..23abdd29c
--- /dev/null
+++ b/tools/gbafix/.gitignore
@@ -0,0 +1 @@
+gbafix
diff --git a/tools/gbafix/COPYING b/tools/gbafix/COPYING
new file mode 100644
index 000000000..94a9ed024
--- /dev/null
+++ b/tools/gbafix/COPYING
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/tools/gbafix/Makefile b/tools/gbafix/Makefile
new file mode 100644
index 000000000..f12c8cc4f
--- /dev/null
+++ b/tools/gbafix/Makefile
@@ -0,0 +1,10 @@
+CC = gcc
+.PHONY: clean
+
+SRCS = gbafix.c
+
+gbafix: $(SRCS)
+ $(CC) $(SRCS) -o $@ $(LDFLAGS)
+
+clean:
+ $(RM) gbafix gbafix.exe
diff --git a/tools/gbafix/gbafix.c b/tools/gbafix/gbafix.c
new file mode 100644
index 000000000..60e4ccb4f
--- /dev/null
+++ b/tools/gbafix/gbafix.c
@@ -0,0 +1,281 @@
+/*
+ "$Id: gbafix.c,v 1.2 2008-07-30 17:12:51 wntrmute Exp $"
+
+ DevkitPro GBA ROM fix utility
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+
+ Please report all bugs and problems through the bug tracker at
+ "http://sourceforge.net/tracker/?group_id=114505&atid=668551".
+
+ "$Header: /lvm/shared/ds/ds/cvs/devkitpro-cvsbackup/tools/gba/gbatools/gbafix.c,v 1.2 2008-07-30 17:12:51 wntrmute Exp $"
+
+*/
+//---------------------------------------------------------------------------------
+// gbafix.c
+//---------------------------------------------------------------------------------
+/*
+ Gameboy Advance ROM fixer (by Dark Fader / BlackThunder / WinterMute / Diegoisawesome)
+ Validates header of GBA roms.
+
+ History
+ -------
+ v1.05 - added debug offset argument, (Diegoisawesome)
+ v1.04 - converted to plain C, (WinterMute)
+ v1.03 - header.fixed, header.device_type
+ v1.02 - redefined the options (rgbfix style), checksum=0
+ v1.01 - fix in parameters
+ v1.00 - logo, complement
+*/
+
+#pragma pack(1)
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+
+#define VER "1.05"
+#define ARGV argv[arg]
+#define VALUE (ARGV+2)
+#define NUMBER strtoul(VALUE, NULL, 0)
+
+typedef struct
+{
+ uint32_t start_code; // B instruction
+ uint8_t logo[0xA0-0x04]; // logo data
+ uint8_t title[0xC]; // game title name
+ uint32_t game_code; //
+ uint16_t maker_code; //
+ uint8_t fixed; // 0x96
+ uint8_t unit_code; // 0x00
+ uint8_t device_type; // 0x00
+ uint8_t unused[7]; //
+ uint8_t game_version; // 0x00
+ uint8_t complement; // 800000A0..800000BC
+ uint16_t checksum; // 0x0000
+} Header;
+
+
+Header header;
+
+unsigned short checksum_without_header = 0;
+
+const Header good_header =
+{
+ // start_code
+ 0xEA00002E,
+ // logo
+ { 0x24,0xFF,0xAE,0x51,0x69,0x9A,0xA2,0x21,0x3D,0x84,0x82,0x0A,0x84,0xE4,0x09,0xAD,
+ 0x11,0x24,0x8B,0x98,0xC0,0x81,0x7F,0x21,0xA3,0x52,0xBE,0x19,0x93,0x09,0xCE,0x20,
+ 0x10,0x46,0x4A,0x4A,0xF8,0x27,0x31,0xEC,0x58,0xC7,0xE8,0x33,0x82,0xE3,0xCE,0xBF,
+ 0x85,0xF4,0xDF,0x94,0xCE,0x4B,0x09,0xC1,0x94,0x56,0x8A,0xC0,0x13,0x72,0xA7,0xFC,
+ 0x9F,0x84,0x4D,0x73,0xA3,0xCA,0x9A,0x61,0x58,0x97,0xA3,0x27,0xFC,0x03,0x98,0x76,
+ 0x23,0x1D,0xC7,0x61,0x03,0x04,0xAE,0x56,0xBF,0x38,0x84,0x00,0x40,0xA7,0x0E,0xFD,
+ 0xFF,0x52,0xFE,0x03,0x6F,0x95,0x30,0xF1,0x97,0xFB,0xC0,0x85,0x60,0xD6,0x80,0x25,
+ 0xA9,0x63,0xBE,0x03,0x01,0x4E,0x38,0xE2,0xF9,0xA2,0x34,0xFF,0xBB,0x3E,0x03,0x44,
+ 0x78,0x00,0x90,0xCB,0x88,0x11,0x3A,0x94,0x65,0xC0,0x7C,0x63,0x87,0xF0,0x3C,0xAF,
+ 0xD6,0x25,0xE4,0x8B,0x38,0x0A,0xAC,0x72,0x21,0xD4,0xF8,0x07 } ,
+ // title
+ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
+ // game code
+ 0x00000000,
+ // maker code
+ 0x3130,
+ // fixed
+ 0x96,
+ // unit_code
+ 0x00,
+ // device type
+ 0x00,
+ // unused
+ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
+ // game version
+ 0x00,
+ // complement
+ 0x00,
+ // checksum
+ 0x0000
+};
+
+//---------------------------------------------------------------------------------
+char HeaderComplement()
+/*---------------------------------------------------------------------------------
+ Calculate Header complement check
+---------------------------------------------------------------------------------*/
+{
+ int n;
+ char c = 0;
+ char *p = (char *)&header + 0xA0;
+ for (n=0; n<0xBD-0xA0; n++)
+ {
+ c += *p++;
+ }
+ return -(0x19+c);
+}
+
+
+//---------------------------------------------------------------------------------
+int main(int argc, char *argv[])
+//---------------------------------------------------------------------------------
+{
+ int arg;
+ char *argfile = 0;
+ FILE *infile;
+
+ int size,bit;
+
+ // show syntax
+ if (argc <= 1)
+ {
+ printf("GBA ROM fixer v"VER" by Dark Fader / BlackThunder / WinterMute / Diegoisawesome \n");
+ printf("Syntax: gbafix <rom.gba> [-p] [-t[title]] [-c<game_code>] [-m<maker_code>] [-r<version>] [-d<debug>]\n");
+ printf("\n");
+ printf("parameters:\n");
+ printf(" -p Pad to next exact power of 2. No minimum size!\n");
+ printf(" -t[<title>] Patch title. Stripped filename if none given.\n");
+ printf(" -c<game_code> Patch game code (four characters)\n");
+ printf(" -m<maker_code> Patch maker code (two characters)\n");
+ printf(" -r<version> Patch game version (number)\n");
+ printf(" -d<debug> Enable debugging handler and set debug entry point (0 or 1)\n");
+ return -1;
+ }
+
+ // get filename
+ for (arg=1; arg<argc; arg++)
+ {
+ if ((ARGV[0] != '-')) { argfile=ARGV; break; }
+ }
+
+ // check filename
+ if (!argfile)
+ {
+ printf("Filename needed!\n");
+ return -1;
+ }
+
+ // read file
+ infile = fopen(argfile, "r+b");
+ if (!infile) { printf("Error opening input file!\n"); return -1; }
+ fseek(infile, 0, SEEK_SET);
+ fread(&header, sizeof(header), 1, infile);
+
+ // fix some data
+ memcpy(header.logo, good_header.logo, sizeof(header.logo));
+ memcpy(&header.fixed, &good_header.fixed, sizeof(header.fixed));
+ memcpy(&header.device_type, &good_header.device_type, sizeof(header.device_type));
+
+ // parse command line
+ for (arg=1; arg<argc; arg++)
+ {
+ if ((ARGV[0] == '-'))
+ {
+ switch (ARGV[1])
+ {
+ case 'p': // pad
+ {
+ fseek(infile, 0, SEEK_END);
+ size = ftell(infile);
+ for (bit=31; bit>=0; bit--) if (size & (1<<bit)) break;
+ if (size != (1<<bit))
+ {
+ int todo = (1<<(bit+1)) - size;
+ while (todo--) fputc(0xFF, infile);
+ }
+ fseek(infile, 0, SEEK_SET);
+ break;
+ }
+
+ case 't': // title
+ {
+ char title[256];
+ memset(title, 0, sizeof(title));
+ if (VALUE[0])
+ {
+ strncpy(title, VALUE, sizeof(header.title));
+ }
+ else
+ {
+ // use filename
+ char s[256], *begin=s, *t; strcpy(s, argfile);
+ t = strrchr(s, '\\'); if (t) begin = t+1;
+ t = strrchr(s, '/'); if (t) begin = t+1;
+ t = strrchr(s, '.'); if (t) *t = 0;
+ strncpy(title, begin, sizeof(header.title));
+ printf("%s\n",begin);
+ }
+ memcpy(header.title, title, sizeof(header.title)); // copy
+ break;
+ }
+
+ case 'c': // game code
+ {
+ //if (!VALUE[0]) { printf("Need value for %s\n", ARGV); break; }
+ //header.game_code = NUMBER;
+ header.game_code = VALUE[0] | VALUE[1]<<8 | VALUE[2]<<16 | VALUE[3]<<24;
+ break;
+ }
+
+ case 'm': // maker code
+ {
+ //if (!VALUE[0]) { printf("Need value for %s\n", ARGV); break; }
+ //header.maker_code = (unsigned short)NUMBER;
+ header.maker_code = VALUE[0] | VALUE[1]<<8;
+ break;
+ }
+
+ case 'v': // ignored, compatability with other gbafix
+ {
+ break;
+ }
+
+ case 'r': // version
+ {
+ if (!VALUE[0]) { printf("Need value for %s\n", ARGV); break; }
+ header.game_version = (unsigned char)NUMBER;
+ break;
+ }
+
+ case 'd': // debug
+ {
+ if (!VALUE[0]) { printf("Need value for %s\n", ARGV); break; }
+ header.logo[0x9C-0x04] = 0xA5; // debug enable
+ header.device_type = (unsigned char)((NUMBER & 1) << 7); // debug handler entry point
+ break;
+ }
+
+ default:
+ {
+ printf("Invalid option: %s\n", ARGV);
+ }
+ }
+ }
+ }
+
+ // update complement check & total checksum
+ header.complement = 0;
+ header.checksum = 0; // must be 0
+ header.complement = HeaderComplement();
+ //header.checksum = checksum_without_header + HeaderChecksum();
+
+ fseek(infile, 0, SEEK_SET);
+ fwrite(&header, sizeof(header), 1, infile);
+ fclose(infile);
+
+ printf("ROM fixed!\n");
+
+ return 0;
+}