summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--INSTALL.md76
-rw-r--r--Makefile5
-rw-r--r--asm/battle_frontier_2.s2
-rw-r--r--asm/contest.s7744
-rw-r--r--asm/contest_ai.s34
-rw-r--r--asm/contest_link_80F57C4.s98
-rw-r--r--asm/contest_link_80FC4F4.s34
-rw-r--r--asm/contest_link_81D9DE4.s18
-rw-r--r--asm/field_player_avatar.s1274
-rw-r--r--asm/field_specials.s8075
-rw-r--r--asm/pokemon_storage_system.s1533
-rw-r--r--asm/pokenav.s10
-rw-r--r--asm/rom_8011DC0.s6
-rw-r--r--asm/roulette.s8
-rw-r--r--asm/script_menu.s2
-rw-r--r--asm/script_pokemon_util_80F87D8.s46
-rw-r--r--asm/trade.s2
-rw-r--r--common_syms/contest.txt1
-rw-r--r--common_syms/field_specials.txt1
-rw-r--r--data/contest.s2
-rw-r--r--data/event_scripts.s19
-rw-r--r--data/field_player_avatar.s58
-rw-r--r--data/field_specials.s547
-rw-r--r--data/graphics.s4
-rw-r--r--data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc8
-rw-r--r--data/maps/AncientTomb/scripts.inc4
-rw-r--r--data/maps/AquaHideout_B1F/scripts.inc6
-rw-r--r--data/maps/BattleFrontier_BattleTowerElevator/scripts.inc2
-rw-r--r--data/maps/BattleFrontier_OutsideEast/scripts.inc4
-rw-r--r--data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/BirthIsland_Exterior/scripts.inc4
-rw-r--r--data/maps/DesertRuins/scripts.inc4
-rw-r--r--data/maps/DewfordTown_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/EverGrandeCity_HallOfFame/scripts.inc4
-rw-r--r--data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc2
-rw-r--r--data/maps/FallarborTown_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/FarawayIsland_Interior/scripts.inc6
-rw-r--r--data/maps/FortreeCity_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/InsideOfTruck/scripts.inc4
-rw-r--r--data/maps/IslandCave/scripts.inc4
-rw-r--r--data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/LilycoveCity/scripts.inc4
-rw-r--r--data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc4
-rw-r--r--data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc2
-rw-r--r--data/maps/LilycoveCity_Harbor/scripts.inc4
-rw-r--r--data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc132
-rw-r--r--data/maps/MarineCave_End/scripts.inc4
-rw-r--r--data/maps/MauvilleCity_GameCorner/scripts.inc26
-rw-r--r--data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/NavelRock_Bottom/scripts.inc4
-rw-r--r--data/maps/NavelRock_Top/scripts.inc4
-rw-r--r--data/maps/NewMauville_Inside/scripts.inc8
-rw-r--r--data/maps/OldaleTown_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/PacifidlogTown_House2/scripts.inc8
-rw-r--r--data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc8
-rw-r--r--data/maps/Route103/scripts.inc4
-rw-r--r--data/maps/Route104/scripts.inc4
-rw-r--r--data/maps/Route110/events.inc4
-rw-r--r--data/maps/Route110/scripts.inc14
-rw-r--r--data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc10
-rw-r--r--data/maps/Route116/scripts.inc4
-rw-r--r--data/maps/Route116_TunnelersRestHouse/scripts.inc2
-rw-r--r--data/maps/Route119/scripts.inc6
-rw-r--r--data/maps/Route120/scripts.inc6
-rw-r--r--data/maps/RustboroCity/scripts.inc6
-rw-r--r--data/maps/RustboroCity_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/RusturfTunnel/events.inc4
-rw-r--r--data/maps/RusturfTunnel/scripts.inc8
-rw-r--r--data/maps/SSTidalCorridor/scripts.inc40
-rw-r--r--data/maps/SkyPillar_Top/scripts.inc4
-rw-r--r--data/maps/SlateportCity_Harbor/scripts.inc2
-rw-r--r--data/maps/SlateportCity_House1/scripts.inc2
-rw-r--r--data/maps/SlateportCity_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc2
-rw-r--r--data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/SouthernIsland_Interior/scripts.inc4
-rw-r--r--data/maps/TerraCave_End/scripts.inc4
-rw-r--r--data/maps/TrainerHill_Elevator/scripts.inc2
-rw-r--r--data/maps/VerdanturfTown/scripts.inc4
-rw-r--r--data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc2
-rw-r--r--data/maps/VerdanturfTown_WandasHouse/scripts.inc2
-rw-r--r--data/pokemon_storage_system.s12
-rw-r--r--data/pokemon_summary_screen.s3
-rw-r--r--data/scripts/field_move_scripts.inc2
-rw-r--r--data/specials.inc42
-rw-r--r--data/text/move_descriptions.inc1421
-rw-r--r--graphics/misc/deoxys1.pal19
-rw-r--r--graphics/misc/deoxys10.pal19
-rw-r--r--graphics/misc/deoxys11.pal19
-rw-r--r--graphics/misc/deoxys2.pal19
-rw-r--r--graphics/misc/deoxys3.pal19
-rw-r--r--graphics/misc/deoxys4.pal19
-rw-r--r--graphics/misc/deoxys5.pal19
-rw-r--r--graphics/misc/deoxys6.pal19
-rw-r--r--graphics/misc/deoxys7.pal19
-rw-r--r--graphics/misc/deoxys8.pal19
-rw-r--r--graphics/misc/deoxys9.pal19
-rw-r--r--graphics/unknown/unknown_5B3280.pal179
-rw-r--r--include/battle_anim.h2
-rw-r--r--include/battle_tower.h1
-rw-r--r--include/cable_club.h3
-rw-r--r--include/constants/flags.h24
-rw-r--r--include/constants/heal_locations.h27
-rw-r--r--include/constants/vars.h22
-rw-r--r--include/contest.h405
-rw-r--r--include/contest_effect.h22
-rw-r--r--include/contest_link_80F57C4.h1
-rw-r--r--include/contest_link_80FC4F4.h8
-rw-r--r--include/data/pokemon/level_up_learnset_pointers.h826
-rw-r--r--include/data/pokemon/level_up_learnsets.h822
-rw-r--r--include/data2.h6
-rw-r--r--include/decoration.h1
-rw-r--r--include/event_object_movement.h3
-rw-r--r--include/event_scripts.h4
-rw-r--r--include/field_effect.h5
-rw-r--r--include/field_player_avatar.h18
-rw-r--r--include/field_region_map.h6
-rw-r--r--include/field_screen.h1
-rw-r--r--include/gba/types.h11
-rw-r--r--include/global.h34
-rw-r--r--include/heal_location.h17
-rw-r--r--include/match_call.h2
-rw-r--r--include/menu.h3
-rw-r--r--include/party_menu.h3
-rw-r--r--include/pc_screen_effect.h16
-rw-r--r--include/pokemon_storage_system.h74
-rw-r--r--include/rom_8011DC0.h1
-rw-r--r--include/rotating_gate.h1
-rw-r--r--include/script_menu.h3
-rw-r--r--include/script_pokemon_util_80F87D8.h7
-rw-r--r--include/strings.h304
-rw-r--r--include/tv.h2
-rw-r--r--include/wallclock.h3
-rw-r--r--ld_script.txt8
-rw-r--r--src/battle_script_commands.c2
-rw-r--r--src/battle_setup.c2
-rw-r--r--src/clock.c2
-rw-r--r--src/contest.c2761
-rw-r--r--src/credits.c2
-rw-r--r--src/data/heal_locations.h25
-rw-r--r--src/data/text/move_descriptions.h714
-rw-r--r--src/data/text/move_names.h3
-rw-r--r--src/field_player_avatar.c581
-rw-r--r--src/field_region_map.c2
-rw-r--r--src/field_special_scene.c2
-rw-r--r--src/field_specials.c4329
-rw-r--r--src/heal_location.c74
-rw-r--r--src/main_menu.c2
-rw-r--r--src/match_call.c4
-rw-r--r--src/menu.c3
-rw-r--r--src/overworld.c6
-rw-r--r--src/pokemon.c6
-rw-r--r--src/pokemon_storage_system.c523
-rw-r--r--src/pokemon_summary_screen.c7
-rw-r--r--src/region_map.c112
-rw-r--r--src/rotating_gate.c6
-rw-r--r--src/scrcmd.c2
-rw-r--r--src/tv.c4
-rw-r--r--src/wallclock.c4
-rw-r--r--sym_common.txt7
-rw-r--r--sym_ewram.txt106
-rw-r--r--tools/aif2pcm/Makefile2
-rw-r--r--tools/aif2pcm/main.c4
-rw-r--r--tools/bin2c/Makefile2
-rw-r--r--tools/gbagfx/Makefile2
-rw-r--r--tools/mid2agb/Makefile2
-rw-r--r--tools/preproc/Makefile2
-rw-r--r--tools/ramscrgen/Makefile2
-rw-r--r--tools/rsfont/Makefile2
-rw-r--r--tools/scaninc/Makefile2
174 files changed, 11579 insertions, 22323 deletions
diff --git a/INSTALL.md b/INSTALL.md
index cd8f4b185..bb5e9849d 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -8,16 +8,22 @@ Make sure that there is an environment variable called DEVKITARM with the path o
Then get the compiler from https://github.com/pret/agbcc and run the following commands.
- ./build.sh
- ./install.sh PATH_OF_POKEEMERALD_DIRECTORY
+```
+./build.sh
+./install.sh PATH_OF_POKEEMERALD_DIRECTORY
+```
Then in the pokeemerald directory, build the tools.
- ./build_tools.sh
+```
+./build_tools.sh
+```
Finally, build the rom.
- make
+```
+make
+```
# Windows
@@ -26,3 +32,65 @@ Install [**devkitARM**](http://devkitpro.org/wiki/Getting_Started/devkitARM).
Then get the compiled tools from https://github.com/pret/pokeruby-tools. Copy the `tools/` folder over the `tools/` folder in your pokeemerald directory.
You can then build pokeemerald using `make` in the MSYS environment provided with devkitARM.
+
+# Mac
+
+Installing pokeemerald on a Mac requires macOS >= 10.12 (Sierra or higher).
+
+Download a [devkitPRO pacman](https://github.com/devkitPro/pacman/releases/tag/v1.0.0)
+
+Run the following commands in Terminal:
+
+
+```
+xcode-select --install
+
+sudo dkp-pacman -S devkitARM
+
+export DEVKITPRO=/opt/devkitpro
+echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc
+export DEVKITARM=$DEVKITPRO/devkitARM
+echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc
+echo "if [ -f ~/.bashrc ]; then . ~/.bashrc; fi" >> ~/.bash_profile
+
+git clone https://github.com/pret/pokeemerald
+git clone https://github.com/pret/agbcc
+
+cd agbcc/
+./build.sh
+./install.sh ../pokeemerald
+
+cd ../pokeemerald
+./build_tools.sh
+```
+
+And build the ROM with `make`.
+
+# Faster builds
+
+After the first build, subsequent builds are faster. You can further speed up the build:
+
+## Parallel build
+
+This significantly speeds up the build on modern machines.
+
+By default `make` only runs a single thread. You can tell `make` to run on multiple threads with `make -j`. See the manfile for usage (`man make`).
+
+The optimal value for `-j` is the number of logical cores on your machine. You can run `nproc` to see the exact number.
+
+```
+$ nproc
+8
+```
+
+If you have 8 cores, run: `make -j8`
+
+`-j` on its own will spawn a new thread for each job. A clean build will have thousands of jobs, which will be slower than not using -j at all.
+
+## Disable the dependency scanning
+
+If you've only changed `.c` or `.s` files, you can turn off the dependency scanning temporarily. Changes to any other files will be ignored, and the build will either fail or not reflect those changes.
+
+`make NODEP=1`
+
+
diff --git a/Makefile b/Makefile
index eb15d11ab..9637d98a8 100644
--- a/Makefile
+++ b/Makefile
@@ -25,14 +25,13 @@ ASFLAGS := -mcpu=arm7tdmi
CC1 := tools/agbcc/bin/agbcc
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
-CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef
+CPPFLAGS := -I tools/agbcc/include -I tools/agbcc -iquote include -nostdinc -undef
LDFLAGS = -Map ../../$(MAP)
LIB := -L ../../tools/agbcc/lib -lgcc -lc
-SHA1 := sha1sum -c
-
+SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
GFX := tools/gbagfx/gbagfx
AIF := tools/aif2pcm/aif2pcm
MID := $(abspath tools/mid2agb/mid2agb)
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s
index 2ab474037..38e0d2e62 100644
--- a/asm/battle_frontier_2.s
+++ b/asm/battle_frontier_2.s
@@ -11843,7 +11843,7 @@ sub_81A0784: @ 81A0784
movs r1, 0
adds r2, r4, 0
adds r3, r5, 0
- bl sub_8198A50
+ bl CreateWindowTemplate
ldr r0, [sp, 0x10]
ldr r1, [sp, 0x14]
str r0, [sp, 0x18]
diff --git a/asm/contest.s b/asm/contest.s
index 453ecb04c..6504e7bf1 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -5,7588 +5,6 @@
.text
- thumb_func_start TaskDummy1
-TaskDummy1: @ 80D7668
- bx lr
- thumb_func_end TaskDummy1
-
- thumb_func_start ResetLinkContestBoolean
-ResetLinkContestBoolean: @ 80D766C
- ldr r1, =gUnknown_02039F2A
- movs r0, 0
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end ResetLinkContestBoolean
-
- thumb_func_start sub_80D7678
-sub_80D7678: @ 80D7678
- push {r4,lr}
- movs r0, 0
- movs r1, 0x40
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldr r4, =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- movs r1, 0xFE
- lsls r1, 7
- movs r0, 0
- bl SetGpuRegBits
- 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 r0, =gBattle_BG1_Y
- strh r1, [r0]
- ldr r0, =gBattle_BG2_X
- strh r1, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r1, [r0]
- ldr r0, =gBattle_BG3_X
- strh r1, [r0]
- ldr r0, =gBattle_BG3_Y
- strh r1, [r0]
- ldr r0, =gBattle_WIN0H
- strh r1, [r0]
- ldr r0, =gBattle_WIN0V
- strh r1, [r0]
- ldr r0, =gBattle_WIN1H
- strh r1, [r0]
- ldr r0, =gBattle_WIN1V
- strh r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D7678
-
- thumb_func_start LoadContestBgAfterMoveAnim
-LoadContestBgAfterMoveAnim: @ 80D7724
- push {r4,r5,lr}
- ldr r0, =gUnknown_08C17AB0
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, =gUnknown_08C1850C
- ldr r1, =0x06002000
- bl LZDecompressVram
- ldr r1, =gUnknown_08C16FA8
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- ldr r0, =gUnknown_08C16E90
- movs r2, 0x80
- lsls r2, 2
- movs r1, 0
- bl LoadCompressedPalette
- bl sub_80D782C
- movs r4, 0
- movs r5, 0xA0
-_080D775E:
- ldr r0, =0x0201a004
- adds r0, r5, r0
- ldr r1, =gUnknown_02039F26
- adds r1, r4, r1
- ldrb r1, [r1]
- adds r1, 0x5
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- adds r5, 0x20
- adds r4, 0x1
- cmp r4, 0x3
- ble _080D775E
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end LoadContestBgAfterMoveAnim
-
- thumb_func_start sub_80D779C
-sub_80D779C: @ 80D779C
- push {r4,lr}
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_08587F34
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- movs r0, 0x3
- movs r1, 0x6
- movs r2, 0x1
- bl SetBgAttribute
- movs r4, 0
-_080D77BA:
- lsls r0, r4, 24
- lsrs r0, 24
- ldr r1, =gContestResources
- ldr r1, [r1]
- lsls r2, r4, 2
- adds r1, 0x24
- adds r1, r2
- ldr r1, [r1]
- bl SetBgTilemapBuffer
- adds r4, 0x1
- cmp r4, 0x3
- ble _080D77BA
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D779C
-
- thumb_func_start sub_80D77E4
-sub_80D77E4: @ 80D77E4
- push {lr}
- ldr r0, =gUnknown_08587F44
- bl InitWindows
- bl DeactivateAllTextPrinters
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D7818
- ldr r2, =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _080D7822
- .pool
-_080D7818:
- ldr r0, =gTextFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
-_080D7822:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D77E4
-
- thumb_func_start sub_80D782C
-sub_80D782C: @ 80D782C
- push {r4,r5,lr}
- ldr r0, =gUnknown_08587C30
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- movs r5, 0xA
- movs r4, 0xFA
- lsls r4, 16
-_080D7848:
- lsrs r1, r4, 16
- ldr r0, =gPlttBufferUnfaded + 0x1E2
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0x80
- lsls r0, 9
- adds r4, r0
- adds r5, 0x1
- cmp r5, 0xD
- ble _080D7848
- ldr r0, =0x00007e3f
- movs r1, 0xF3
- movs r2, 0x2
- bl FillPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D782C
-
- thumb_func_start sub_80D787C
-sub_80D787C: @ 80D787C
- push {r4-r7,lr}
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x5C
- bl memset
- movs r5, 0
- movs r2, 0xFF
-_080D7890:
- ldr r0, [r4]
- ldr r1, [r0]
- adds r1, 0x2
- adds r1, r5
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x3
- ble _080D7890
- movs r4, 0
- ldr r6, =gContestResources
- movs r5, 0x3
-_080D78AA:
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r0, r4, r0
- movs r1, 0
- movs r2, 0x1C
- bl memset
- adds r4, 0x1C
- subs r5, 0x1
- cmp r5, 0
- bge _080D78AA
- ldr r4, =gContestResources
- movs r7, 0x4
- negs r7, r7
- movs r6, 0xFF
- movs r3, 0
- movs r5, 0x3
-_080D78CC:
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- adds r1, r3, r1
- ldrb r2, [r1, 0xB]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1, 0xB]
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- adds r1, r3, r1
- ldrb r0, [r1, 0x13]
- orrs r0, r6
- strb r0, [r1, 0x13]
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- adds r1, r3, r1
- ldrb r0, [r1, 0x14]
- orrs r0, r6
- strb r0, [r1, 0x14]
- adds r3, 0x1C
- subs r5, 0x1
- cmp r5, 0
- bge _080D78CC
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- movs r1, 0
- movs r2, 0x14
- bl memset
- ldr r0, [r4]
- ldr r0, [r0, 0xC]
- movs r1, 0
- movs r2, 0x44
- bl memset
- ldr r2, [r4]
- ldr r1, [r2, 0x10]
- movs r0, 0
- str r0, [r1]
- ldr r0, [r2, 0x14]
- movs r1, 0
- movs r2, 0x10
- bl memset
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080D7938
- movs r0, 0
- bl sub_80DCE58
-_080D7938:
- movs r5, 0
- adds r2, r4, 0
- movs r6, 0xFF
- movs r3, 0
- ldr r4, =gUnknown_02039F26
-_080D7942:
- ldr r0, [r2]
- ldr r1, [r0, 0x4]
- adds r1, r3, r1
- ldrb r0, [r1, 0x19]
- orrs r0, r6
- strb r0, [r1, 0x19]
- ldr r0, [r2]
- ldr r1, [r0]
- adds r1, 0x14
- adds r1, r5
- adds r0, r5, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080D7942
- bl sub_80DD590
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x1C]
- movs r1, 0
- movs r2, 0x40
- bl memset
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D787C
-
- thumb_func_start sub_80D7988
-sub_80D7988: @ 80D7988
- push {r4,r5,lr}
- ldr r4, =gContestResources
- movs r0, 0x40
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0x5C
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1]
- movs r0, 0x70
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x4]
- movs r0, 0x14
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x8]
- movs r0, 0x44
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0xC]
- movs r0, 0x10
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x10]
- movs r0, 0x10
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x14]
- movs r0, 0x14
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x18]
- movs r0, 0x40
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x1C]
- movs r0, 0xC
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x20]
- movs r5, 0x80
- lsls r5, 5
- adds r0, r5, 0
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x24]
- adds r0, r5, 0
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x28]
- adds r0, r5, 0
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x2C]
- adds r0, r5, 0
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x30]
- movs r5, 0x80
- lsls r5, 4
- adds r0, r5, 0
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x34]
- adds r0, r5, 0
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x38]
- movs r0, 0x80
- lsls r0, 6
- bl AllocZeroed
- ldr r2, [r4]
- str r0, [r2, 0x3C]
- ldr r1, =gUnknown_0202305C
- str r0, [r1]
- ldr r1, =gUnknown_02023060
- ldr r0, [r2, 0x28]
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D7988
-
- thumb_func_start sub_80D7A5C
-sub_80D7A5C: @ 80D7A5C
- push {r4,r5,lr}
- ldr r5, =gContestResources
- ldr r0, [r5]
- ldr r0, [r0]
- bl Free
- ldr r0, [r5]
- movs r4, 0
- str r4, [r0]
- ldr r0, [r0, 0x4]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x4]
- ldr r0, [r0, 0x8]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x8]
- ldr r0, [r0, 0xC]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0xC]
- ldr r0, [r0, 0x10]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x10]
- ldr r0, [r0, 0x14]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x14]
- ldr r0, [r0, 0x18]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x18]
- ldr r0, [r0, 0x1C]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x1C]
- ldr r0, [r0, 0x20]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x20]
- ldr r0, [r0, 0x24]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x24]
- ldr r0, [r0, 0x28]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x28]
- ldr r0, [r0, 0x2C]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x2C]
- ldr r0, [r0, 0x30]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x30]
- ldr r0, [r0, 0x34]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x34]
- ldr r0, [r0, 0x38]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x38]
- ldr r0, [r0, 0x3C]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x3C]
- bl Free
- str r4, [r5]
- ldr r0, =gUnknown_0202305C
- str r4, [r0]
- ldr r0, =gUnknown_02023060
- str r4, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D7A5C
-
- thumb_func_start sub_80D7B24
-sub_80D7B24: @ 80D7B24
- push {r4-r6,lr}
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r6, r0, r1
- ldrb r5, [r6]
- cmp r5, 0x1
- beq _080D7BD4
- cmp r5, 0x1
- bgt _080D7B44
- cmp r5, 0
- beq _080D7B4E
- b _080D7C56
- .pool
-_080D7B44:
- cmp r5, 0x2
- beq _080D7BDA
- cmp r5, 0x3
- beq _080D7C04
- b _080D7C56
-_080D7B4E:
- ldr r0, =gUnknown_02039F38
- strb r5, [r0]
- bl sub_80D7988
- bl AllocateMonSpritesGfx
- ldr r4, =gMonSpritesGfxPtr
- ldr r0, [r4]
- ldr r0, [r0]
- bl Free
- ldr r0, [r4]
- str r5, [r0]
- movs r0, 0x80
- lsls r0, 7
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1]
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80D779C
- bl sub_80D77E4
- bl sub_80D7678
- bl ScanlineEffect_Clear
- bl ResetPaletteFade
- ldr r2, =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- ldr r1, =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, =0x02000000
- movs r1, 0xD0
- lsls r1, 9
- adds r0, r1
- strb r5, [r0]
- bl ClearBattleMonForms
- bl sub_80D787C
- b _080D7BF6
- .pool
-_080D7BD4:
- movs r0, 0x2
- strb r0, [r6]
- b _080D7C56
-_080D7BDA:
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0]
- adds r0, 0x59
- bl sub_80D7E44
- lsls r0, 24
- cmp r0, 0
- beq _080D7C56
- ldr r0, [r4]
- ldr r0, [r0]
- adds r0, 0x59
- movs r1, 0
- strb r1, [r0]
-_080D7BF6:
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _080D7C56
- .pool
-_080D7C04:
- bl sub_80DE224
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- movs r0, 0x2
- bl BeginFastPaletteFade
- ldr r2, =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, =vblank_cb_battle
- bl SetVBlankCallback
- ldr r0, =sub_80D7C7C
- movs r1, 0xA
- bl CreateTask
- ldr r1, =gContestResources
- ldr r1, [r1]
- ldr r1, [r1]
- strb r0, [r1, 0x8]
- ldr r0, =sub_80D823C
- bl SetMainCallback2
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D7C56
- bl sub_800E0E8
- movs r0, 0x8
- movs r1, 0x8
- bl CreateWirelessStatusIndicatorSprite
-_080D7C56:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D7B24
-
- thumb_func_start sub_80D7C7C
-sub_80D7C7C: @ 80D7C7C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080D7CA2
- ldr r0, =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0x8]
- ldr r0, =sub_80D7CB4
- str r0, [r1]
-_080D7CA2:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D7C7C
-
- thumb_func_start sub_80D7CB4
-sub_80D7CB4: @ 80D7CB4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D7D90
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D7D3A
- ldr r2, =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r4, r0, r2
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- adds r6, r1, 0
- cmp r0, 0x1
- beq _080D7D04
- cmp r0, 0x1
- bgt _080D7CF4
- cmp r0, 0
- beq _080D7CFA
- b _080D7D3A
- .pool
-_080D7CF4:
- cmp r0, 0x2
- beq _080D7D28
- b _080D7D3A
-_080D7CFA:
- bl sub_80DBF68
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D7D04:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _080D7D9E
- bl sub_800ADF8
- ldr r0, =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080D7D9E
- .pool
-_080D7D28:
- bl sub_800A520
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D7D9E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D7D3A:
- ldr r2, =gPaletteFade
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080D7D9E
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080D7D62
- bl sub_80DBF68
-_080D7D62:
- ldr r0, =sub_80D7DAC
- movs r1, 0
- bl CreateTask
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- ldr r1, =TaskDummy1
- str r1, [r0]
- b _080D7D9E
- .pool
-_080D7D90:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80D80C8
- str r0, [r1]
-_080D7D9E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D7CB4
-
- thumb_func_start sub_80D7DAC
-sub_80D7DAC: @ 80D7DAC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =sub_80FC998
- ldr r2, =sub_80D7DC8
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D7DAC
-
- thumb_func_start sub_80D7DC8
-sub_80D7DC8: @ 80D7DC8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
- ldr r0, =sub_80D7DE8
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_80D7DC8
-
- thumb_func_start sub_80D7DE8
-sub_80D7DE8: @ 80D7DE8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r5
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bgt _080D7E2A
- bl GetMultiplayerId
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0]
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- ldr r1, =sub_80D80C8
- str r1, [r0]
- ldr r1, =gRngValue
- ldr r0, =gUnknown_030060B8
- ldr r0, [r0]
- str r0, [r1]
-_080D7E2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D7DE8
-
- thumb_func_start sub_80D7E44
-sub_80D7E44: @ 80D7E44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x40
- mov r10, r0
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _080D7E5A
- b _080D80A4
-_080D7E5A:
- lsls r0, 2
- ldr r1, =_080D7E68
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080D7E68:
- .4byte _080D7E84
- .4byte _080D7EC8
- .4byte _080D7ED8
- .4byte _080D7F28
- .4byte _080D7F40
- .4byte _080D7F7C
- .4byte _080D8004
-_080D7E84:
- ldr r2, =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- movs r4, 0x80
- lsls r4, 8
- movs r0, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl RequestDma3Fill
- ldr r1, =0x06008000
- movs r0, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl RequestDma3Fill
- ldr r1, =0x06010000
- movs r0, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl RequestDma3Fill
- b _080D80AE
- .pool
-_080D7EC8:
- ldr r0, =gUnknown_08C17AB0
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _080D80AE
- .pool
-_080D7ED8:
- ldr r0, =gUnknown_08C1850C
- ldr r4, =0x06002000
- adds r1, r4, 0
- bl LZDecompressVram
- ldr r3, =0x02018000
- movs r5, 0x80
- lsls r5, 6
- ldr r1, =0x040000d4
- ldr r6, =0x84000400
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x84
- lsls r7, 24
-_080D7EF4:
- str r4, [r1]
- str r3, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r4, r2
- adds r3, r2
- subs r5, r2
- cmp r5, r2
- bhi _080D7EF4
- str r4, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r5, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- b _080D80AE
- .pool
-_080D7F28:
- ldr r1, =gUnknown_08C16FA8
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- b _080D80AE
- .pool
-_080D7F40:
- ldr r1, =gUnknown_08C17170
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r1, [r0, 0x2C]
- ldr r2, =0x0201aa04
- ldr r0, =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, =0x84000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080D80AE
- .pool
-_080D7F7C:
- ldr r0, =gUnknown_08C16E90
- movs r2, 0x80
- lsls r2, 2
- movs r1, 0
- bl LoadCompressedPalette
- ldr r5, =gPlttBufferUnfaded + 0x100
- ldr r6, =0x04000008
- adds r0, r5, 0
- mov r1, sp
- adds r2, r6, 0
- bl CpuSet
- ldr r0, =gUnknown_02039F25
- mov r9, r0
- ldrb r0, [r0]
- adds r0, 0x5
- lsls r0, 5
- ldr r1, =0xffffff00
- adds r1, r5
- mov r8, r1
- add r0, r8
- add r4, sp, 0x20
- adds r1, r4, 0
- adds r2, r6, 0
- bl CpuSet
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl CpuSet
- mov r2, r9
- ldrb r1, [r2]
- adds r1, 0x5
- lsls r1, 5
- add r1, r8
- mov r0, sp
- adds r2, r6, 0
- bl CpuSet
- ldr r1, =0x0201a004
- ldr r0, =0x040000d4
- mov r2, r8
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, =0x84000080
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_80D782C
- b _080D80AE
- .pool
-_080D8004:
- bl sub_80DD04C
- bl sub_80DBF90
- bl sub_80DB2BC
- bl sub_80DB120
- ldr r1, =gContestResources
- ldr r1, [r1]
- ldr r1, [r1]
- movs r4, 0
- strb r0, [r1, 0x12]
- bl sub_80DC2BC
- bl sub_80DC4F0
- bl sub_80DC594
- bl sub_80DC5E8
- bl sub_80DC7EC
- ldr r1, =gBattlerPositions
- strb r4, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r3, 0x3
- strb r3, [r1, 0x2]
- movs r2, 0x2
- strb r2, [r1, 0x3]
- ldr r0, =gBattleTypeFlags
- str r4, [r0]
- ldr r4, =gBattlerAttacker
- strb r2, [r4]
- ldr r0, =gBattlerTarget
- strb r3, [r0]
- bl sub_80DB0C4
- ldr r2, =gBattlerSpriteIds
- ldrb r1, [r4]
- adds r1, r2
- strb r0, [r1]
- bl sub_80DEA20
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- b _080D80AE
- .pool
-_080D80A4:
- movs r0, 0
- mov r1, r10
- strb r0, [r1]
- movs r0, 0x1
- b _080D80B8
-_080D80AE:
- mov r2, r10
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r0, 0
-_080D80B8:
- add sp, 0x40
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80D7E44
-
- thumb_func_start sub_80D80C8
-sub_80D80C8: @ 80D80C8
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, =gPaletteFade
- ldrb r2, [r1, 0x8]
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r1, 0x8]
- ldrb r1, [r1, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080D80F8
- ldr r0, =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0x8]
- strh r2, [r1, 0xA]
- ldr r0, =sub_80D8108
- str r0, [r1]
-_080D80F8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D80C8
-
- thumb_func_start sub_80D8108
-sub_80D8108: @ 80D8108
- push {r4,r5,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, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _080D8208
- lsls r0, 2
- ldr r1, =_080D8138
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080D8138:
- .4byte _080D814C
- .4byte _080D8176
- .4byte _080D8194
- .4byte _080D81B0
- .4byte _080D8208
-_080D814C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0xA]
- adds r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080D822C
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r0, 0x61
- movs r1, 0
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D822C
-_080D8176:
- ldr r1, =gBattle_BG1_Y
- ldrh r0, [r1]
- adds r0, 0x7
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA0
- ble _080D822C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- b _080D81FA
- .pool
-_080D8194:
- bl sub_80DE350
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080D822C
- .pool
-_080D81B0:
- movs r0, 0x8
- bl GetGpuReg
- mov r1, sp
- strh r0, [r1]
- movs r0, 0xC
- bl GetGpuReg
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r3, sp
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- ldrb r0, [r4]
- ands r1, r0
- strb r1, [r4]
- mov r0, sp
- ldrh r1, [r0]
- movs r0, 0x8
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0xC
- bl SetGpuReg
- bl sub_80DDB0C
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
-_080D81FA:
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080D822C
- .pool
-_080D8208:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0]
- ldrb r1, [r0, 0x6]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080D822C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- ldr r1, =sub_80D833C
- str r1, [r0]
-_080D822C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D8108
-
- thumb_func_start sub_80D823C
-sub_80D823C: @ 80D823C
- push {r4,r5,lr}
- bl AnimateSprites
- bl RunTasks
- bl BuildOamBuffer
- bl UpdatePaletteFade
- movs r4, 0
-_080D8250:
- ldr r5, =gUnknown_02039F38
- ldrb r0, [r5]
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D8266
- lsls r0, r4, 24
- lsrs r0, 24
- bl CopyBgTilemapBufferToVram
-_080D8266:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080D8250
- movs r0, 0
- strb r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D823C
-
- thumb_func_start vblank_cb_battle
-vblank_cb_battle: @ 80D827C
- 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
- 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
- ldr r0, =gBattle_BG3_X
- ldrh r1, [r0]
- movs r0, 0x1C
- bl SetGpuReg
- ldr r0, =gBattle_BG3_Y
- ldrh r1, [r0]
- movs r0, 0x1E
- bl SetGpuReg
- ldr r0, =gBattle_WIN0H
- ldrh r1, [r0]
- movs r0, 0x40
- bl SetGpuReg
- ldr r0, =gBattle_WIN0V
- ldrh r1, [r0]
- movs r0, 0x44
- bl SetGpuReg
- ldr r0, =gBattle_WIN1H
- ldrh r1, [r0]
- movs r0, 0x42
- bl SetGpuReg
- ldr r0, =gBattle_WIN1V
- ldrh r1, [r0]
- movs r0, 0x46
- bl SetGpuReg
- bl TransferPlttBuffer
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl ScanlineEffect_InitHBlankDmaTransfer
- pop {r0}
- bx r0
- .pool
- thumb_func_end vblank_cb_battle
-
- thumb_func_start sub_80D833C
-sub_80D833C: @ 80D833C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _080D840C
- ldr r0, =gBattle_BG0_Y
- strh r1, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r1, [r0]
- bl sub_80DCD48
- ldr r1, =gPlttBufferUnfaded
- ldr r2, =0x0201a204
- ldr r0, =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, =0x84000100
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, =gStringVar1
- ldr r1, =gContestResources
- ldr r1, [r1]
- ldr r1, [r1]
- ldrb r1, [r1, 0x1]
- adds r1, 0x1
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r0, =gUnknown_02039F25
- ldrb r0, [r0]
- bl sub_80DBCA8
- lsls r0, 24
- cmp r0, 0
- bne _080D83CC
- ldr r0, =gDisplayedStringBattle
- ldr r1, =gText_0827D507
- bl StringCopy
- b _080D83D4
- .pool
-_080D83CC:
- ldr r0, =gDisplayedStringBattle
- ldr r1, =gText_0827D531
- bl StringCopy
-_080D83D4:
- bl sub_80DB89C
- ldr r4, =gStringVar4
- ldr r1, =gDisplayedStringBattle
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80DEC30
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080D841A
- .pool
-_080D840C:
- bl sub_80DED4C
- cmp r0, 0
- bne _080D841A
- strh r0, [r4, 0x8]
- ldr r0, =sub_80D8424
- str r0, [r4]
-_080D841A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D833C
-
- thumb_func_start sub_80D8424
-sub_80D8424: @ 80D8424
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080D843C
- cmp r1, 0x2
- bne _080D8482
-_080D843C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_02039F25
- ldrb r0, [r0]
- bl sub_80DBCA8
- lsls r0, 24
- cmp r0, 0
- bne _080D8474
- movs r0, 0x1
- bl sub_80DC490
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80D8490
- b _080D8480
- .pool
-_080D8474:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80D8894
-_080D8480:
- str r0, [r1]
-_080D8482:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D8424
-
- thumb_func_start sub_80D8490
-sub_80D8490: @ 80D8490
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, =gBattle_BG0_Y
- movs r1, 0xA0
- strh r1, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r1, [r0]
- movs r6, 0
- ldr r0, =gUnknown_02039F25
- mov r8, r0
- ldr r2, =gUnknown_02039E00 + 30
- mov r10, r2
- ldr r7, =gContestResources
-_080D84B8:
- lsls r1, r6, 1
- mov r0, r8
- ldrb r2, [r0]
- lsls r0, r2, 6
- adds r1, r0
- add r1, r10
- ldrh r4, [r1]
- add r5, sp, 0x4
- ldr r0, [r7]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x8]
- cmp r0, 0
- beq _080D853C
- adds r0, r2, 0
- bl sub_80DE1E8
- lsls r0, 24
- cmp r0, 0
- beq _080D853C
- ldr r0, [r7]
- mov r2, r8
- ldrb r1, [r2]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x8]
- adds r1, r4, 0
- bl AreMovesContestCombo
- lsls r0, 24
- cmp r0, 0
- beq _080D853C
- ldr r0, [r7]
- mov r2, r8
- ldrb r1, [r2]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D853C
- add r0, sp, 0x4
- ldr r1, =gText_ColorLightShadowDarkGrey
- b _080D8566
- .pool
-_080D853C:
- cmp r4, 0
- beq _080D856C
- ldr r0, [r7]
- mov r2, r8
- ldrb r1, [r2]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x8]
- cmp r0, r4
- bne _080D856C
- ldr r0, =gContestMoves
- lsls r1, r4, 3
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- beq _080D856C
- add r0, sp, 0x4
- ldr r1, =gText_ColorBlue
-_080D8566:
- bl StringCopy
- adds r5, r0, 0
-_080D856C:
- movs r0, 0xD
- adds r1, r4, 0
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
- adds r4, r6, 0x5
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x7
- str r0, [sp]
- adds r0, r4, 0
- add r1, sp, 0x4
- movs r2, 0x5
- movs r3, 0x1
- bl sub_80DEBD0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _080D84B8
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- bl sub_80D880C
- ldr r2, =gUnknown_02039E00
- ldr r0, [r4]
- ldr r0, [r0]
- ldrb r1, [r0]
- lsls r1, 1
- ldr r0, =gUnknown_02039F25
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- bl prints_contest_move_description
- ldr r1, =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80D8610
- str r1, [r0]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D8490
-
- thumb_func_start sub_80D8610
-sub_80D8610: @ 80D8610
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- ldr r3, =gMain
- ldr r1, =gUnknown_02039E00
- ldr r0, =gUnknown_02039F25
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, 0x1E
- adds r1, r0, r1
- movs r2, 0x3
-_080D8628:
- ldrh r0, [r1]
- cmp r0, 0
- beq _080D8634
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080D8634:
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080D8628
- ldrh r0, [r3, 0x2E]
- movs r5, 0x1
- ands r5, r0
- cmp r5, 0
- beq _080D8670
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80D8894
- str r0, [r1]
- b _080D87FA
- .pool
-_080D8670:
- ldrh r0, [r3, 0x30]
- cmp r0, 0x20
- bne _080D8678
- b _080D87FA
-_080D8678:
- cmp r0, 0x20
- bgt _080D8682
- cmp r0, 0x2
- beq _080D868E
- b _080D87FA
-_080D8682:
- cmp r0, 0x40
- beq _080D8730
- cmp r0, 0x80
- bne _080D868C
- b _080D879C
-_080D868C:
- b _080D87FA
-_080D868E:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80DC490
- ldr r0, =gStringVar1
- ldr r1, =gContestResources
- ldr r1, [r1]
- ldr r1, [r1]
- ldrb r1, [r1, 0x1]
- adds r1, 0x1
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r0, =gUnknown_02039F25
- ldrb r0, [r0]
- bl sub_80DBCA8
- lsls r0, 24
- cmp r0, 0
- bne _080D86DC
- ldr r0, =gDisplayedStringBattle
- ldr r1, =gText_0827D507
- bl StringCopy
- b _080D86E4
- .pool
-_080D86DC:
- ldr r0, =gDisplayedStringBattle
- ldr r1, =gText_0827D531
- bl StringCopy
-_080D86E4:
- bl sub_80DB89C
- ldr r4, =gStringVar4
- ldr r1, =gDisplayedStringBattle
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_80DEC30
- ldr r0, =gBattle_BG0_Y
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r1, [r0]
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80D8424
- str r1, [r0]
- b _080D87FA
- .pool
-_080D8730:
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- bl sub_80D883C
- ldr r0, [r4]
- ldr r1, [r0]
- ldrb r0, [r1]
- cmp r0, 0
- bne _080D8754
- subs r0, r6, 0x1
- b _080D8756
- .pool
-_080D8754:
- subs r0, 0x1
-_080D8756:
- strb r0, [r1]
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- bl sub_80D880C
- ldr r2, =gUnknown_02039E00
- ldr r0, [r4]
- ldr r0, [r0]
- ldrb r1, [r0]
- lsls r1, 1
- ldr r0, =gUnknown_02039F25
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- bl prints_contest_move_description
- cmp r6, 0x1
- bls _080D87FA
- movs r0, 0x5
- bl PlaySE
- b _080D87FA
- .pool
-_080D879C:
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- bl sub_80D883C
- ldr r0, [r4]
- ldr r1, [r0]
- ldrb r2, [r1]
- subs r0, r6, 0x1
- cmp r2, r0
- bne _080D87C0
- strb r5, [r1]
- b _080D87C4
- .pool
-_080D87C0:
- adds r0, r2, 0x1
- strb r0, [r1]
-_080D87C4:
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- bl sub_80D880C
- ldr r2, =gUnknown_02039E00
- ldr r0, [r4]
- ldr r0, [r0]
- ldrb r1, [r0]
- lsls r1, 1
- ldr r0, =gUnknown_02039F25
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- bl prints_contest_move_description
- cmp r6, 0x1
- bls _080D87FA
- movs r0, 0x5
- bl PlaySE
-_080D87FA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D8610
-
- thumb_func_start sub_80D880C
-sub_80D880C: @ 80D880C
- push {lr}
- sub sp, 0x10
- adds r3, r0, 0
- lsls r3, 25
- movs r0, 0xF8
- lsls r0, 21
- adds r3, r0
- lsrs r3, 24
- movs r0, 0x2
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0x1
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0x37
- movs r2, 0
- bl sub_80DECB8
- add sp, 0x10
- pop {r0}
- bx r0
- thumb_func_end sub_80D880C
-
- thumb_func_start sub_80D883C
-sub_80D883C: @ 80D883C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r4, 24
- asrs r4, 23
- adds r3, r4, 0
- adds r3, 0x1F
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x2
- mov r8, r0
- str r0, [sp]
- movs r5, 0x1
- str r5, [sp, 0x4]
- movs r6, 0x11
- str r6, [sp, 0x8]
- str r5, [sp, 0xC]
- movs r1, 0xB
- movs r2, 0
- bl sub_80DECB8
- adds r4, 0x20
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- str r5, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0xB
- movs r2, 0
- adds r3, r4, 0
- bl sub_80DECB8
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D883C
-
- thumb_func_start sub_80D8894
-sub_80D8894: @ 80D8894
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D890C
- ldr r4, =gUnknown_02039F25
- ldrb r0, [r4]
- bl sub_80DB8B8
- ldr r1, =gContestResources
- ldr r1, [r1]
- ldrb r2, [r4]
- ldr r3, [r1, 0x4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r3
- strh r0, [r1, 0x6]
- ldr r4, =sub_80FC9F8
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =sub_80D892C
- adds r1, r4, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =TaskDummy1
- str r1, [r0]
- bl sub_80DBF68
- movs r0, 0
- bl sub_80DC490
- b _080D891E
- .pool
-_080D890C:
- bl sub_80DB918
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80D895C
- str r0, [r1]
-_080D891E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D8894
-
- thumb_func_start sub_80D892C
-sub_80D892C: @ 80D892C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r2, =gTasks
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0]
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, =sub_80D895C
- str r1, [r0]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D892C
-
- thumb_func_start sub_80D895C
-sub_80D895C: @ 80D895C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- bl sub_80DB89C
- ldr r0, =gBattle_BG0_Y
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r1, [r0]
- movs r0, 0
- bl sub_80DC490
- movs r6, 0
- movs r5, 0xA0
- lsls r5, 19
-_080D897C:
- lsrs r4, r5, 24
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0x80
- lsls r0, 17
- adds r5, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _080D897C
- movs r0, 0
- bl sub_80DED60
- ldr r1, =gPlttBufferFaded
- ldr r0, =0x0201a604
- movs r2, 0x80
- lsls r2, 3
- ldr r4, =0x040000d4
- str r1, [r4]
- str r0, [r4, 0x4]
- lsrs r1, r2, 2
- movs r3, 0x84
- lsls r3, 24
- orrs r1, r3
- str r1, [r4, 0x8]
- ldr r1, [r4, 0x8]
- ldr r1, =0xfffffc00
- adds r0, r1
- movs r1, 0
- bl LoadPalette
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- ldr r1, =sub_80D8A04
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D895C
-
- thumb_func_start sub_80D8A04
-sub_80D8A04: @ 80D8A04
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D8A42
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080D8A42
- bl sub_80DDBE8
- movs r0, 0x1
- bl sub_80DE69C
- ldr r0, =sub_80D8A50
- str r0, [r4]
-_080D8A42:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D8A04
-
- thumb_func_start sub_80D8A50
-sub_80D8A50: @ 80D8A50
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0, 0x6]
- movs r0, 0x90
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _080D8A76
- ldr r0, =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80D8A88
- str r0, [r1]
-_080D8A76:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D8A50
-
- thumb_func_start sub_80D8A88
-sub_80D8A88: @ 80D8A88
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gTasks
- lsls r3, r6, 2
- adds r1, r3, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080D8B18
- ldr r2, =gContestResources
- ldr r0, [r2]
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x10]
- ldr r0, [r2]
- ldr r1, [r0]
- ldr r0, =gRngValue
- ldr r0, [r0]
- str r0, [r1, 0x18]
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r7, r3, 0
- cmp r0, 0
- beq _080D8B08
- bl sub_80DA8A4
- lsls r0, 24
- cmp r0, 0
- beq _080D8B08
- movs r4, 0
- ldr r1, =gUnknown_02039F30
- ldrb r0, [r1]
- cmp r0, 0x3
- bgt _080D8B08
- adds r5, r1, 0
-_080D8ADE:
- ldrb r0, [r5]
- adds r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80DB8B8
- ldr r1, =gContestResources
- ldr r1, [r1]
- ldrb r2, [r5]
- adds r2, r4
- ldr r3, [r1, 0x4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r3
- strh r0, [r1, 0x6]
- adds r4, 0x1
- ldrb r0, [r5]
- adds r0, r4, r0
- cmp r0, 0x3
- ble _080D8ADE
-_080D8B08:
- ldr r1, =gTasks
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, =sub_80D8B38
- str r1, [r0]
-_080D8B18:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80D8A88
-
- thumb_func_start sub_80D8B38
-sub_80D8B38: @ 80D8B38
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, =gContestResources
- ldr r0, [r2]
- ldr r0, [r0]
- ldrb r6, [r0, 0x11]
- ldr r1, =gTasks
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r4, 0x8
- ldrsh r0, [r0, r4]
- mov r9, r2
- adds r4, r1, 0
- cmp r0, 0x3B
- bls _080D8B6E
- bl _080DA100
-_080D8B6E:
- lsls r0, 2
- ldr r1, =_080D8B84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080D8B84:
- .4byte _080D8C74
- .4byte _080D8D30
- .4byte _080D8D56
- .4byte _080D8DC4
- .4byte _080D8E7C
- .4byte _080D8EC8
- .4byte _080D8F84
- .4byte _080D8FB8
- .4byte _080D9010
- .4byte _080D908C
- .4byte _080D9FC0
- .4byte _080D9FEC
- .4byte _080D9238
- .4byte _080D926C
- .4byte _080D9774
- .4byte _080D9864
- .4byte _080D98D4
- .4byte _080D9904
- .4byte _080D99EC
- .4byte _080D999E
- .4byte _080DA024
- .4byte _080DA0A0
- .4byte _080DA0C2
- .4byte _080D90B4
- .4byte _080D9180
- .4byte _080D9388
- .4byte _080D939E
- .4byte _080D947C
- .4byte _080D94A0
- .4byte _080D9508
- .4byte _080D95EC
- .4byte _080DA038
- .4byte _080DA080
- .4byte _080D9EBC
- .4byte _080D9F48
- .4byte _080D929A
- .4byte _080D92D0
- .4byte _080D92F6
- .4byte _080D9334
- .4byte _080D955C
- .4byte _080D95C4
- .4byte _080D9A2C
- .4byte _080DA100
- .4byte _080D9DAC
- .4byte _080DA100
- .4byte _080D9830
- .4byte _080D997C
- .4byte _080D921A
- .4byte _080D91A4
- .4byte _080D91F4
- .4byte _080D935C
- .4byte _080D9690
- .4byte _080D971C
- .4byte _080D9BAA
- .4byte _080D9C68
- .4byte _080D9F68
- .4byte _080D9F84
- .4byte _080D9DD4
- .4byte _080D9E60
- .4byte _080D9EA0
-_080D8C74:
- bl sub_80DCD48
- movs r7, 0
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r1, [r0]
- ldr r0, [r0, 0x8]
- ldrb r1, [r1, 0x10]
- mov r5, r8
- lsls r5, 2
- mov r10, r5
- ldrb r2, [r0]
- cmp r1, r2
- beq _080D8C9C
- adds r2, r0, 0
-_080D8C92:
- adds r7, 0x1
- adds r0, r2, r7
- ldrb r0, [r0]
- cmp r1, r0
- bne _080D8C92
-_080D8C9C:
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r0, [r0]
- strb r7, [r0, 0x11]
- ldr r0, [r4]
- ldr r2, [r0]
- ldrb r6, [r2, 0x11]
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080D8D14
- ldrb r0, [r2, 0x7]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x7]
- bl sub_80DA8A4
- lsls r0, 24
- cmp r0, 0
- beq _080D8CD4
- ldr r0, [r4]
- ldr r0, [r0]
- ldrb r0, [r0, 0x11]
- bl sub_80DD080
-_080D8CD4:
- ldr r4, =sub_80FCC88
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =sub_80DA110
- adds r1, r4, 0
- bl SetTaskFuncWithFollowupFunc
- bl sub_80DBF68
- ldr r1, =gTasks
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- bl _080DA100
- .pool
-_080D8D14:
- adds r0, r6, 0
- bl sub_80DD080
- ldr r0, =gTasks
- mov r1, r10
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D8D30:
- mov r3, r9
- ldr r0, [r3]
- ldr r0, [r0]
- ldrb r1, [r0, 0x7]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080D8D44
- bl _080DA100
-_080D8D44:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x8]
- bl _080DA100
-_080D8D56:
- adds r0, r6, 0
- bl sub_80DF080
- bl sub_80DF750
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r2, r0, r1
- ldrb r1, [r2, 0xC]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- bne _080D8D86
- ldrb r1, [r2, 0xB]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _080D8DA4
-_080D8D86:
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1F
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D8DA4:
- bl sub_80DB89C
- ldr r0, =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- strh r6, [r1, 0x1C]
- movs r0, 0x3
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D8DC4:
- mov r4, r8
- lsls r4, 2
- mov r10, r4
- ldr r1, =gBattleMonForms
- movs r2, 0
- adds r0, r1, 0x3
-_080D8DD0:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _080D8DD0
- movs r7, 0x4
- mov r5, r9
- ldr r0, [r5]
- ldr r0, [r0, 0x18]
- movs r1, 0
- movs r2, 0x14
- bl memset
- ldr r0, [r5]
- ldr r0, [r0]
- ldrb r0, [r0, 0x11]
- bl sub_80DE9DC
- ldr r4, =gUnknown_02039E00
- ldr r0, [r5]
- ldr r0, [r0]
- ldrb r3, [r0, 0x11]
- lsls r2, r3, 6
- adds r0, r2, r4
- ldrh r0, [r0]
- adds r1, r4, 0
- adds r1, 0x3C
- adds r1, r2, r1
- ldr r1, [r1]
- adds r4, 0x38
- adds r2, r4
- ldr r2, [r2]
- bl sub_80DB174
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r3, r0, r2
- movs r1, 0x78
- strh r1, [r3, 0x24]
- adds r2, 0x1C
- adds r0, r2
- ldr r1, =sub_80DA134
- str r1, [r0]
- ldr r0, =gTasks
- mov r4, r10
- add r4, r8
- lsls r4, 3
- adds r4, r0
- strh r5, [r4, 0xC]
- ldr r1, =gBattlerSpriteIds
- ldr r0, =gBattlerAttacker
- ldrb r0, [r0]
- adds r0, r1
- strb r5, [r0]
- mov r1, r9
- ldr r0, [r1]
- ldr r0, [r0]
- ldrb r0, [r0, 0x11]
- bl sub_80DC9EC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80DCBE8
- strh r7, [r4, 0x8]
- bl _080DA100
- .pool
-_080D8E7C:
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r2, r0, r4
- ldrb r5, [r2, 0xC]
- ldr r1, =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, =SpriteCallbackDummy
- cmp r1, r0
- beq _080D8EA0
- bl _080DA100
-_080D8EA0:
- mov r3, r9
- ldr r0, [r3]
- ldr r1, [r0, 0x14]
- lsls r0, r6, 2
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D8EB8
- bl _080DA100
-_080D8EB8:
- movs r0, 0x5
- strh r0, [r2, 0x8]
- bl _080DA100
- .pool
-_080D8EC8:
- mov r5, r9
- ldr r0, [r5]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 3
- subs r0, r6
- lsls r5, r0, 2
- adds r1, r5, r1
- ldrb r1, [r1, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D8EF2
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- movs r1, 0x21
- strh r1, [r0, 0x8]
- bl _080DA100
-_080D8EF2:
- bl sub_80DB89C
- ldr r0, =gStringVar1
- lsls r1, r6, 6
- ldr r2, =gUnknown_02039E00 + 2
- adds r1, r2
- bl StringCopy
- mov r2, r9
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r3, r5, r0
- ldrh r1, [r3, 0x6]
- movs r0, 0xB1
- lsls r0, 1
- cmp r1, r0
- bhi _080D8F38
- ldr r0, =gStringVar2
- adds r2, r1, 0
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- b _080D8F48
- .pool
-_080D8F38:
- ldr r0, =gStringVar2
- ldr r2, =gUnknown_08587F1C
- ldrb r1, [r3, 0xA]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
-_080D8F48:
- ldr r4, =gStringVar4
- ldr r1, =gText_0827D55A
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80DEC30
- ldr r1, =gTasks
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x6
- strh r1, [r0, 0x8]
- bl _080DA100
- .pool
-_080D8F84:
- bl sub_80DED4C
- adds r1, r0, 0
- cmp r1, 0
- beq _080D8F92
- bl _080DA100
-_080D8F92:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0]
- adds r0, 0x5A
- strb r1, [r0]
- ldr r1, =gTasks
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x7
- strh r1, [r0, 0x8]
- bl _080DA100
- .pool
-_080D8FB8:
- mov r5, r9
- ldr r1, [r5]
- ldr r0, [r1]
- ldrb r2, [r0, 0x11]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x6]
- bl sub_80DE834
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, [r5]
- ldr r0, [r0]
- ldrb r0, [r0, 0x11]
- bl sub_80DE864
- ldr r0, [r5]
- ldr r0, [r0]
- ldrb r0, [r0, 0x11]
- bl sub_80DE9DC
- adds r0, r4, 0
- bl sub_80DEAA8
- adds r0, r4, 0
- bl DoMoveAnim
- ldr r1, =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- strh r1, [r0, 0x8]
- bl _080DA100
- .pool
-_080D9010:
- ldr r0, =gAnimScriptCallback
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, =gAnimScriptActive
- ldrb r4, [r0]
- cmp r4, 0
- beq _080D9024
- bl _080DA100
-_080D9024:
- adds r0, r6, 0
- bl sub_80DE9B0
- ldr r0, =gContestResources
- ldr r1, [r0]
- ldr r0, [r1]
- adds r0, 0x5A
- ldrb r0, [r0]
- cmp r0, 0
- beq _080D9060
- ldr r0, =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- strh r4, [r1, 0x1C]
- movs r0, 0x9
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D9060:
- ldr r1, [r1, 0x4]
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080D907A
- adds r0, r6, 0
- bl sub_80DC674
-_080D907A:
- bl sub_80DE12C
- ldr r0, =gTasks
- mov r4, r8
- lsls r1, r4, 2
- b _080D9192
- .pool
-_080D908C:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r2, r0, r4
- ldrh r0, [r2, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r2, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- bgt _080D90A8
- bl _080DA100
-_080D90A8:
- movs r0, 0
- strh r0, [r2, 0x1C]
- movs r0, 0x7
- strh r0, [r2, 0x8]
- bl _080DA100
-_080D90B4:
- mov r0, r8
- lsls r2, r0, 2
- adds r0, r2, r0
- lsls r0, 3
- adds r7, r0, r4
- movs r0, 0
- strh r0, [r7, 0xA]
- mov r1, r9
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- mov r12, r0
- lsls r1, r6, 3
- subs r0, r1, r6
- lsls r5, r0, 2
- mov r0, r12
- adds r3, r5, r0
- ldrb r0, [r3, 0x13]
- mov r10, r2
- str r1, [sp, 0x4]
- cmp r0, 0xFF
- beq _080D90FA
- ldrb r1, [r3, 0x13]
- adds r0, r6, 0
- bl sub_80DD45C
- mov r1, r9
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r0, r5, r0
- movs r1, 0xFF
- strb r1, [r0, 0x13]
- movs r0, 0x18
- strh r0, [r7, 0x8]
- bl _080DA100
-_080D90FA:
- ldrb r0, [r3, 0x14]
- cmp r0, 0xFF
- beq _080D9178
- movs r7, 0
- cmp r7, r6
- beq _080D910E
- mov r2, r12
- ldrb r0, [r2, 0x13]
- cmp r0, 0xFF
- bne _080D912C
-_080D910E:
- adds r7, 0x1
- cmp r7, 0x3
- bgt _080D912C
- cmp r7, r6
- beq _080D910E
- mov r3, r9
- ldr r0, [r3]
- ldr r1, [r0, 0x4]
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0xFF
- beq _080D910E
-_080D912C:
- cmp r7, 0x4
- bne _080D9168
- mov r4, r9
- ldr r0, [r4]
- ldr r0, [r0, 0x4]
- ldr r5, [sp, 0x4]
- subs r4, r5, r6
- lsls r4, 2
- adds r0, r4, r0
- ldrb r1, [r0, 0x14]
- adds r0, r6, 0
- bl sub_80DD45C
- mov r1, r9
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r4, r0
- movs r0, 0xFF
- strb r0, [r4, 0x14]
- ldr r1, =gTasks
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x18
- strh r1, [r0, 0x8]
- bl _080DA100
- .pool
-_080D9168:
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r4
- movs r1, 0x30
- strh r1, [r0, 0x8]
- bl _080DA100
-_080D9178:
- movs r0, 0x30
- strh r0, [r7, 0x8]
- bl _080DA100
-_080D9180:
- bl sub_80DED4C
- cmp r0, 0
- beq _080D918C
- bl _080DA100
-_080D918C:
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
-_080D9192:
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x17
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D91A4:
- mov r3, r9
- ldr r0, [r3]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x11]
- movs r3, 0x3
- ands r3, r0
- cmp r3, 0x1
- bne _080D91C4
- movs r0, 0x5
- bl sub_80DD720
- b _080D91DA
-_080D91C4:
- cmp r3, 0x2
- bne _080D91D0
- movs r0, 0x6
- bl sub_80DD720
- b _080D91DA
-_080D91D0:
- cmp r3, 0x3
- bne _080D9208
- movs r0, 0x7
- bl sub_80DD720
-_080D91DA:
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x31
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D91F4:
- mov r3, r9
- ldr r0, [r3]
- ldr r0, [r0]
- ldrb r1, [r0, 0x6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D9208
- bl _080DA100
-_080D9208:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2F
- strh r1, [r0, 0x8]
- bl _080DA100
-_080D921A:
- movs r0, 0x1
- bl sub_80DE008
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0xC
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D9238:
- mov r3, r9
- ldr r0, [r3]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r1
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- movs r0, 0
- adds r2, r6, 0
- bl sub_80DC028
- ldr r1, =gTasks
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0xD
- strh r1, [r0, 0x8]
- bl _080DA100
- .pool
-_080D926C:
- mov r0, r9
- ldr r1, [r0]
- ldr r0, [r1]
- ldrb r0, [r0, 0x11]
- ldr r1, [r1, 0x14]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080D9288
- bl _080DA100
-_080D9288:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- movs r1, 0x23
- strh r1, [r0, 0x8]
- bl _080DA100
-_080D929A:
- mov r2, r9
- ldr r0, [r2]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0x10
- bne _080D92B8
- movs r0, 0x8
- bl sub_80DD720
-_080D92B8:
- ldr r0, =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x24
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D92D0:
- mov r5, r9
- ldr r0, [r5]
- ldr r0, [r0]
- ldrb r1, [r0, 0x6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D92E4
- bl _080DA100
-_080D92E4:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- movs r1, 0x25
- strh r1, [r0, 0x8]
- bl _080DA100
-_080D92F6:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_80DB5B8
- lsls r0, 24
- cmp r0, 0
- beq _080D9320
- ldr r1, =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- movs r1, 0x26
- strh r1, [r0, 0x8]
- bl _080DA100
- .pool
-_080D9320:
- ldr r0, =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- b _080D9354
- .pool
-_080D9334:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r4
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bgt _080D9350
- bl _080DA100
-_080D9350:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_080D9354:
- movs r0, 0x32
- strh r0, [r1, 0x8]
- bl _080DA100
-_080D935C:
- adds r0, r6, 0
- bl sub_80DB798
- lsls r0, 24
- cmp r0, 0
- beq _080D936E
- movs r0, 0x63
- bl PlaySE
-_080D936E:
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x19
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D9388:
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- movs r1, 0
- strh r1, [r0, 0xA]
- movs r1, 0x1A
- strh r1, [r0, 0x8]
- bl _080DA100
-_080D939E:
- movs r3, 0
- movs r5, 0
- str r5, [sp]
- mov r0, r8
- lsls r1, r0, 2
- adds r0, r1, r0
- lsls r0, 3
- adds r0, r4
- movs r2, 0xA
- ldrsh r7, [r0, r2]
- mov r10, r1
- cmp r7, 0x3
- bgt _080D9418
- ldr r5, =gUnknown_02039F26
- ldr r2, =gContestResources
-_080D93BC:
- movs r3, 0
- str r3, [sp]
- adds r0, r3, 0
- cmp r0, r6
- beq _080D93E4
- ldrb r0, [r5]
- cmp r0, r7
- bne _080D93E4
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- ldrb r0, [r0, 0x13]
- cmp r0, 0xFF
- beq _080D93E4
- movs r1, 0x1
- str r1, [sp]
- b _080D940C
- .pool
-_080D93E4:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _080D940C
- cmp r3, r6
- beq _080D93E4
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, r7
- bne _080D93E4
- ldr r0, [r2]
- ldr r1, [r0, 0x4]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0xFF
- beq _080D93E4
- movs r0, 0x1
- str r0, [sp]
-_080D940C:
- ldr r1, [sp]
- cmp r1, 0
- bne _080D9422
- adds r7, 0x1
- cmp r7, 0x3
- ble _080D93BC
-_080D9418:
- ldr r2, [sp]
- lsls r0, r2, 24
- asrs r2, r0, 24
- cmp r2, 0
- beq _080D9464
-_080D9422:
- mov r5, r10
- add r5, r8
- lsls r5, 3
- adds r5, r4
- ldr r0, =gUnknown_02039F26
- adds r0, r3, r0
- ldrb r0, [r0]
- strh r0, [r5, 0xA]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r4, r9
- ldr r1, [r4]
- ldr r1, [r1, 0x4]
- lsls r4, r3, 3
- subs r4, r3
- lsls r4, 2
- adds r1, r4, r1
- ldrb r1, [r1, 0x13]
- bl sub_80DD45C
- mov r1, r9
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r4, r0
- movs r0, 0xFF
- strb r0, [r4, 0x13]
- movs r0, 0x1B
- strh r0, [r5, 0x8]
- bl _080DA100
- .pool
-_080D9464:
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r4
- strh r2, [r0, 0xA]
- strh r2, [r0, 0x1C]
- movs r1, 0x33
- strh r1, [r0, 0x8]
- bl sub_80DB884
- bl _080DA100
-_080D947C:
- bl sub_80DED4C
- cmp r0, 0
- beq _080D9488
- bl _080DA100
-_080D9488:
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1C
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D94A0:
- movs r7, 0
- mov r3, r8
- lsls r0, r3, 2
- adds r1, r0, r3
- lsls r1, 3
- adds r1, r4
- movs r4, 0xA
- ldrsh r2, [r1, r4]
- ldr r1, =gUnknown_02039F26
- mov r10, r0
- adds r5, r1, 0
- ldrb r0, [r5]
- cmp r2, r0
- beq _080D94CA
- adds r1, r2, 0
- adds r2, r5, 0
-_080D94C0:
- adds r7, 0x1
- adds r0, r7, r2
- ldrb r0, [r0]
- cmp r1, r0
- bne _080D94C0
-_080D94CA:
- mov r1, r9
- ldr r0, [r1]
- ldr r1, [r0, 0x4]
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0xE]
- ldrh r0, [r0, 0x2]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- negs r1, r1
- lsls r2, r7, 24
- lsrs r2, 24
- bl sub_80DC028
- ldr r1, =gTasks
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1D
- strh r1, [r0, 0x8]
- bl _080DA100
- .pool
-_080D9508:
- movs r7, 0
- mov r2, r8
- lsls r0, r2, 2
- adds r1, r0, r2
- lsls r1, 3
- adds r1, r4
- movs r5, 0xA
- ldrsh r3, [r1, r5]
- ldr r1, =gUnknown_02039F26
- mov r10, r0
- adds r5, r1, 0
- ldrb r0, [r5]
- cmp r3, r0
- beq _080D952E
-_080D9524:
- adds r7, 0x1
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r3, r0
- bne _080D9524
-_080D952E:
- mov r1, r9
- ldr r0, [r1]
- ldr r1, [r0, 0x14]
- lsls r0, r7, 2
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080D9546
- bl _080DA100
-_080D9546:
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r4
- movs r1, 0x27
- strh r1, [r0, 0x8]
- bl _080DA100
- .pool
-_080D955C:
- movs r7, 0
- mov r2, r8
- lsls r0, r2, 2
- adds r1, r0, r2
- lsls r1, 3
- adds r1, r4
- movs r3, 0xA
- ldrsh r2, [r1, r3]
- ldr r1, =gUnknown_02039F26
- mov r10, r0
- adds r5, r1, 0
- ldrb r4, [r5]
- cmp r2, r4
- beq _080D9586
- adds r1, r2, 0
- adds r2, r5, 0
-_080D957C:
- adds r7, 0x1
- adds r0, r7, r2
- ldrb r0, [r0]
- cmp r1, r0
- bne _080D957C
-_080D9586:
- lsls r0, r7, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_80DB5B8
- lsls r0, 24
- cmp r0, 0
- beq _080D95B4
- ldr r1, =gTasks
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- movs r1, 0x28
- strh r1, [r0, 0x8]
- bl _080DA100
- .pool
-_080D95B4:
- ldr r0, =gTasks
- mov r1, r10
- add r1, r8
- lsls r1, 3
- adds r1, r0
- b _080D95E4
- .pool
-_080D95C4:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r4
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bgt _080D95E0
- bl _080DA100
-_080D95E0:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_080D95E4:
- movs r0, 0x1E
- strh r0, [r1, 0x8]
- bl _080DA100
-_080D95EC:
- movs r7, 0
- ldr r2, =gUnknown_02039F26
- ldrb r3, [r2]
- mov r0, r8
- lsls r1, r0, 2
- adds r0, r1, r0
- lsls r0, 3
- adds r4, r0, r4
- movs r5, 0xA
- ldrsh r0, [r4, r5]
- mov r10, r1
- adds r5, r2, 0
- cmp r3, r0
- beq _080D961E
- adds r3, r5, 0
- adds r2, r4, 0
-_080D960C:
- adds r7, 0x1
- cmp r7, 0x3
- bgt _080D961E
- adds r0, r7, r3
- ldrb r1, [r0]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- cmp r1, r0
- bne _080D960C
-_080D961E:
- lsls r4, r7, 24
- lsrs r0, r4, 24
- bl sub_80DB798
- lsls r0, 24
- adds r6, r4, 0
- cmp r0, 0
- beq _080D963C
- movs r0, 0x63
- bl PlaySE
- b _080D9642
- .pool
-_080D963C:
- movs r0, 0x64
- bl PlaySE
-_080D9642:
- ldr r5, =gContestResources
- ldr r0, [r5]
- ldr r1, [r0, 0x4]
- lsls r0, r7, 3
- subs r0, r7
- lsls r4, r0, 2
- adds r1, r4, r1
- ldrb r1, [r1, 0x15]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D9670
- lsrs r0, r6, 24
- bl sub_80DC674
- ldr r0, [r5]
- ldr r1, [r0, 0x4]
- adds r1, r4, r1
- ldrb r2, [r1, 0x15]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x15]
-_080D9670:
- ldr r0, =gTasks
- mov r1, r10
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- movs r0, 0x1A
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D9690:
- mov r5, r8
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- mov r10, r2
- cmp r0, 0x9
- bgt _080D96AE
- bl _080DA100
-_080D96AE:
- movs r0, 0
- strh r0, [r4, 0x1C]
- mov r1, r9
- ldr r0, [r1]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r2, r0, r1
- ldrb r1, [r2, 0xC]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- bne _080D96D4
- ldrb r1, [r2, 0x11]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080D96F6
-_080D96D4:
- bl sub_80DB89C
- ldr r0, =gStringVar1
- lsls r1, r6, 6
- ldr r2, =gUnknown_02039E00 + 2
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gText_0827E793
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80DEC30
-_080D96F6:
- ldr r0, =gTasks
- mov r1, r10
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x34
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D971C:
- bl sub_80DED4C
- cmp r0, 0
- beq _080D9728
- bl _080DA100
-_080D9728:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x15]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080D975C
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x11
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D975C:
- ldr r0, =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0xE
- strh r0, [r1, 0x8]
- bl _080DA100
- .pool
-_080D9774:
- mov r4, r9
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x16]
- lsls r4, r0, 24
- lsrs r5, r4, 24
- cmp r5, 0
- beq _080D97DC
- bl sub_80DB89C
- asrs r0, r4, 24
- cmp r0, 0x1
- bne _080D97A0
- ldr r0, =gText_0827E32E
- b _080D97A6
- .pool
-_080D97A0:
- cmp r0, 0x2
- bne _080D97B4
- ldr r0, =gText_0827E35B
-_080D97A6:
- movs r1, 0x1
- bl sub_80DEC30
- b _080D97BC
- .pool
-_080D97B4:
- ldr r0, =gText_0827E38D
- movs r1, 0x1
- bl sub_80DEC30
-_080D97BC:
- movs r0, 0x3
- bl sub_80DD720
- ldr r1, =gTasks
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- b _080D9812
- .pool
-_080D97DC:
- bl sub_80DB89C
- ldr r0, =gStringVar1
- lsls r1, r6, 6
- ldr r2, =gUnknown_02039E00 + 2
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gText_0827E2FE
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80DEC30
- movs r0, 0x2
- bl sub_80DD720
- ldr r1, =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1C]
-_080D9812:
- movs r1, 0x2D
- strh r1, [r0, 0x8]
- bl _080DA100
- .pool
-_080D9830:
- mov r3, r9
- ldr r0, [r3]
- ldr r2, [r0]
- ldrb r1, [r2, 0x6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D9844
- bl _080DA100
-_080D9844:
- ldrb r0, [r2, 0x11]
- bl sub_80DC9B4
- ldr r1, =gTasks
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0xF
- strh r1, [r0, 0x8]
- bl _080DA100
- .pool
-_080D9864:
- bl sub_80DED4C
- cmp r0, 0
- beq _080D9870
- bl _080DA100
-_080D9870:
- ldr r1, =gTasks
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- bgt _080D988E
- bl _080DA100
-_080D988E:
- ldr r7, =gContestResources
- ldr r0, [r7]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 3
- subs r0, r6
- lsls r5, r0, 2
- adds r2, r5, r1
- ldrb r1, [r2, 0x15]
- movs r0, 0x10
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- bne _080D98C2
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- ldrb r1, [r2, 0x17]
- adds r2, r6, 0
- bl sub_80DC028
- ldr r0, [r7]
- ldr r1, [r0, 0x4]
- adds r1, r5, r1
- ldrh r0, [r1, 0x2]
- ldrb r2, [r1, 0x17]
- adds r0, r2
- strh r0, [r1, 0x2]
-_080D98C2:
- mov r3, r8
- strh r3, [r4, 0x8]
- bl _080DA100
- .pool
-_080D98D4:
- mov r5, r9
- ldr r0, [r5]
- ldr r1, [r0, 0x14]
- lsls r0, r6, 2
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080D98F0
- bl _080DA100
-_080D98F0:
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- strh r1, [r0, 0x1C]
- movs r1, 0x11
- strh r1, [r0, 0x8]
- bl _080DA100
-_080D9904:
- mov r3, r9
- ldr r0, [r3]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x15]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D996C
- bl sub_80DB89C
- ldr r0, =gStringVar1
- lsls r1, r6, 6
- ldr r2, =gUnknown_02039E00 + 2
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gText_0827E6E3
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80DEC30
- ldr r0, =gTasks
- mov r5, r8
- lsls r4, r5, 2
- add r4, r8
- lsls r4, 3
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x1C]
- bl sub_80DD720
- movs r0, 0x2E
- strh r0, [r4, 0x8]
- b _080DA100
- .pool
-_080D996C:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- movs r1, 0x29
- strh r1, [r0, 0x8]
- b _080DA100
-_080D997C:
- mov r2, r9
- ldr r0, [r2]
- ldr r0, [r0]
- ldrb r1, [r0, 0x6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D998E
- b _080DA100
-_080D998E:
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- movs r1, 0x13
- strh r1, [r0, 0x8]
- b _080DA100
-_080D999E:
- bl sub_80DED4C
- cmp r0, 0
- beq _080D99A8
- b _080DA100
-_080D99A8:
- ldr r5, =gContestResources
- ldr r0, [r5]
- ldr r1, [r0, 0x4]
- lsls r4, r6, 3
- subs r4, r6
- lsls r4, 2
- adds r1, r4, r1
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- ldrb r1, [r1, 0x18]
- negs r1, r1
- adds r2, r6, 0
- bl sub_80DC028
- ldr r0, [r5]
- ldr r0, [r0, 0x4]
- adds r4, r0
- ldrb r1, [r4, 0x18]
- ldrh r0, [r4, 0x2]
- subs r0, r1
- strh r0, [r4, 0x2]
- ldr r1, =gTasks
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x12
- strh r1, [r0, 0x8]
- b _080DA100
- .pool
-_080D99EC:
- bl sub_80DCD48
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r1, [r0, 0x14]
- lsls r0, r6, 2
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _080D9A0A
- b _080DA100
-_080D9A0A:
- ldr r0, =gTasks
- mov r5, r8
- lsls r4, r5, 2
- add r4, r8
- lsls r4, 3
- adds r4, r0
- strh r3, [r4, 0x1C]
- bl sub_80DB89C
- movs r0, 0x29
- strh r0, [r4, 0x8]
- b _080DA100
- .pool
-_080D9A2C:
- mov r1, r9
- ldr r0, [r1]
- ldr r2, [r0, 0x10]
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D9A56
- ldr r0, [r2]
- lsls r0, 20
- lsrs r0, 29
- cmp r6, r0
- beq _080D9A56
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- movs r1, 0x39
- strh r1, [r0, 0x8]
- b _080DA100
-_080D9A56:
- mov r3, r9
- ldr r1, [r3]
- ldr r0, [r1, 0x10]
- ldrb r0, [r0]
- str r0, [sp]
- ldr r1, [r1, 0x4]
- lsls r2, r6, 3
- subs r0, r2, r6
- lsls r0, 2
- adds r5, r0, r1
- ldrb r1, [r5, 0x11]
- movs r0, 0x10
- ands r0, r1
- str r2, [sp, 0x4]
- cmp r0, 0
- beq _080D9A94
- movs r4, 0x1
- str r4, [sp]
- ldr r0, =gStringVar3
- ldrh r2, [r5, 0x6]
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- b _080D9AAE
- .pool
-_080D9A94:
- ldr r0, =gStringVar3
- ldr r3, =gUnknown_08587F08
- ldr r2, =gContestMoves
- ldrh r1, [r5, 0x6]
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0x1]
- lsls r1, 29
- lsrs r1, 27
- adds r1, r3
- ldr r1, [r1]
- bl StringCopy
-_080D9AAE:
- ldr r5, [sp]
- lsls r0, r5, 24
- cmp r0, 0
- ble _080D9AD2
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- ldr r2, [sp, 0x4]
- subs r0, r2, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x15]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D9AD2
- movs r3, 0
- str r3, [sp]
-_080D9AD2:
- bl sub_80DB89C
- ldr r0, =gStringVar1
- lsls r1, r6, 6
- ldr r2, =gUnknown_02039E00 + 2
- adds r1, r2
- bl StringCopy
- ldr r4, =gContestResources
- ldr r0, [r4]
- ldr r1, [r0]
- ldrb r0, [r1, 0x13]
- ldr r5, [sp]
- lsls r2, r5, 24
- asrs r3, r2, 24
- adds r0, r3, r0
- strb r0, [r1, 0x13]
- ldr r0, [r4]
- ldr r1, [r0]
- movs r0, 0x13
- ldrsb r0, [r1, r0]
- adds r5, r2, 0
- cmp r0, 0
- bge _080D9B06
- movs r0, 0
- strb r0, [r1, 0x13]
-_080D9B06:
- cmp r3, 0
- bne _080D9B30
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
- b _080D9F58
- .pool
-_080D9B30:
- cmp r3, 0
- bge _080D9B48
- ldr r0, =gStringVar4
- ldr r1, =gText_0827E73C
- bl StringExpandPlaceholders
- b _080D9B74
- .pool
-_080D9B48:
- cmp r3, 0
- ble _080D9B6C
- ldr r0, [r4]
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bgt _080D9B6C
- ldr r0, =gStringVar4
- ldr r1, =gText_0827E717
- bl StringExpandPlaceholders
- b _080D9B74
- .pool
-_080D9B6C:
- ldr r0, =gStringVar4
- ldr r1, =gText_0827E76A
- bl StringExpandPlaceholders
-_080D9B74:
- ldr r0, =gStringVar4
- movs r1, 0x1
- bl sub_80DEC30
- ldr r1, =gTasks
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0
- strh r0, [r1, 0x1C]
- strh r0, [r1, 0x1E]
- cmp r5, 0
- bge _080D9BA4
- movs r0, 0x35
- strh r0, [r1, 0x8]
- b _080DA100
- .pool
-_080D9BA4:
- movs r0, 0x36
- strh r0, [r1, 0x8]
- b _080DA100
-_080D9BAA:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r4
- movs r0, 0x1C
- ldrsh r3, [r4, r0]
- cmp r3, 0x1
- beq _080D9BE8
- cmp r3, 0x1
- bgt _080D9BC6
- cmp r3, 0
- beq _080D9BD0
- b _080DA100
-_080D9BC6:
- cmp r3, 0x2
- beq _080D9C0C
- cmp r3, 0x3
- beq _080D9C46
- b _080DA100
-_080D9BD0:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x1
- bl sub_80DDED0
- ldr r0, =0x00000187
- bl PlayFanfare
- b _080D9C3E
- .pool
-_080D9BE8:
- mov r1, r9
- ldr r0, [r1]
- ldr r0, [r0]
- ldrb r0, [r0, 0x7]
- ands r3, r0
- cmp r3, 0
- beq _080D9BF8
- b _080DA100
-_080D9BF8:
- bl sub_80DED4C
- cmp r0, 0
- beq _080D9C02
- b _080DA100
-_080D9C02:
- movs r0, 0x1
- negs r0, r0
- bl sub_80DDCDC
- b _080D9C3E
-_080D9C0C:
- mov r2, r9
- ldr r0, [r2]
- ldr r0, [r0]
- ldrb r1, [r0, 0x6]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080D9C22
- b _080DA100
-_080D9C22:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- bgt _080D9C32
- b _080DA100
-_080D9C32:
- strh r2, [r4, 0x1E]
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
- bl sub_80DDED0
-_080D9C3E:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- b _080DA100
-_080D9C46:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080D9C58
- b _080DA100
-_080D9C58:
- strh r0, [r4, 0x1C]
- strh r0, [r4, 0x1E]
- movs r0, 0x2B
- strh r0, [r4, 0x8]
- b _080DA100
- .pool
-_080D9C68:
- mov r3, r8
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r4
- movs r5, 0x1C
- ldrsh r0, [r0, r5]
- mov r10, r1
- cmp r0, 0x4
- bls _080D9C7E
- b _080DA100
-_080D9C7E:
- lsls r0, 2
- ldr r1, =_080D9C8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080D9C8C:
- .4byte _080D9CA0
- .4byte _080D9CB0
- .4byte _080D9CD4
- .4byte _080D9D3E
- .4byte _080D9D84
-_080D9CA0:
- bl sub_80DED4C
- cmp r0, 0
- beq _080D9CAA
- b _080DA100
-_080D9CAA:
- movs r0, 0x1
- movs r1, 0x1
- b _080D9D68
-_080D9CB0:
- mov r1, r9
- ldr r0, [r1]
- ldr r0, [r0]
- ldrb r1, [r0, 0x7]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D9CC2
- b _080DA100
-_080D9CC2:
- bl sub_80DDE0C
- movs r0, 0xDF
- bl PlaySE
- movs r0, 0x1
- bl sub_80DDCDC
- b _080D9D6C
-_080D9CD4:
- mov r3, r9
- ldr r2, [r3]
- ldr r0, [r2]
- ldrb r1, [r0, 0x6]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _080D9CEA
- b _080DA100
-_080D9CEA:
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r5, r0, r4
- ldrh r0, [r5, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- bgt _080D9D02
- b _080DA100
-_080D9D02:
- strh r3, [r5, 0x1E]
- ldr r0, [r2, 0x4]
- lsls r4, r6, 3
- subs r4, r6
- lsls r4, 2
- adds r0, r4, r0
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- ldr r1, [r2, 0x10]
- ldrb r1, [r1, 0x2]
- lsls r1, 24
- asrs r1, 24
- adds r2, r6, 0
- bl sub_80DC028
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r1, 0x4]
- adds r4, r0
- ldr r0, [r1, 0x10]
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- ldrh r3, [r4, 0x2]
- adds r0, r3
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- b _080DA100
-_080D9D3E:
- mov r4, r9
- ldr r2, [r4]
- ldr r1, [r2, 0x14]
- lsls r0, r6, 2
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080D9D54
- b _080DA100
-_080D9D54:
- ldr r0, [r2]
- ldrb r1, [r0, 0x6]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080D9D62
- b _080DA100
-_080D9D62:
- movs r1, 0x1
- negs r1, r1
- movs r0, 0x1
-_080D9D68:
- bl sub_80DDED0
-_080D9D6C:
- ldr r0, =gTasks
- mov r1, r10
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
- b _080DA100
- .pool
-_080D9D84:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _080D9D96
- b _080DA100
-_080D9D96:
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r4
- strh r3, [r0, 0x1C]
- strh r3, [r0, 0x1E]
- movs r1, 0x2B
- strh r1, [r0, 0x8]
- b _080DA100
- .pool
-_080D9DAC:
- mov r5, r9
- ldr r0, [r5]
- ldr r1, [r0, 0x14]
- lsls r0, r6, 2
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080D9DC2
- b _080DA100
-_080D9DC2:
- bl sub_80DB89C
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
- b _080D9F58
- .pool
-_080D9DD4:
- bl sub_80DB89C
- ldr r0, =gStringVar3
- ldr r5, =gContestResources
- ldr r1, [r5]
- ldr r1, [r1, 0x10]
- ldr r1, [r1]
- lsls r1, 20
- lsrs r1, 29
- lsls r1, 6
- ldr r4, =gUnknown_02039E00 + 2
- adds r1, r4
- bl StringCopy
- ldr r0, =gStringVar1
- lsls r1, r6, 6
- adds r1, r4
- bl StringCopy
- ldr r0, =gStringVar2
- ldr r1, [r5]
- ldr r2, [r1, 0x4]
- lsls r1, r6, 3
- subs r1, r6
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r1, 0x6]
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gText_0827E7EA
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80DEC30
- ldr r1, =gTasks
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3A
- strh r1, [r0, 0x8]
- b _080DA100
- .pool
-_080D9E60:
- bl sub_80DED4C
- cmp r0, 0
- beq _080D9E6A
- b _080DA100
-_080D9E6A:
- bl sub_80DB89C
- ldr r4, =gStringVar4
- ldr r1, =gText_0827E817
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80DEC30
- ldr r1, =gTasks
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3B
- strh r1, [r0, 0x8]
- b _080DA100
- .pool
-_080D9EA0:
- bl sub_80DED4C
- cmp r0, 0
- beq _080D9EAA
- b _080DA100
-_080D9EAA:
- bl sub_80DB89C
- ldr r0, =gTasks
- mov r5, r8
- lsls r1, r5, 2
- b _080D9F58
- .pool
-_080D9EBC:
- mov r1, r9
- ldr r0, [r1]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 3
- subs r0, r6
- lsls r4, r0, 2
- adds r2, r4, r1
- ldrb r1, [r2, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D9EDC
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x15]
-_080D9EDC:
- adds r0, r6, 0
- bl sub_80DC9B4
- ldr r0, =gStringVar1
- lsls r1, r6, 6
- ldr r2, =gUnknown_02039E00 + 2
- adds r1, r2
- bl StringCopy
- ldr r0, =gStringVar2
- mov r2, r9
- ldr r1, [r2]
- ldr r1, [r1, 0x4]
- adds r1, r4, r1
- ldrh r2, [r1, 0x6]
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gText_0827E58A
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80DEC30
- ldr r1, =gTasks
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x22
- strh r1, [r0, 0x8]
- b _080DA100
- .pool
-_080D9F48:
- bl sub_80DED4C
- cmp r0, 0
- beq _080D9F52
- b _080DA100
-_080D9F52:
- ldr r0, =gTasks
- mov r4, r8
- lsls r1, r4, 2
-_080D9F58:
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x37
- strh r0, [r1, 0x8]
- b _080DA100
- .pool
-_080D9F68:
- bl sub_80DDBE8
- ldr r0, =gTasks
- mov r5, r8
- lsls r1, r5, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x38
- strh r0, [r1, 0x8]
- b _080DA100
- .pool
-_080D9F84:
- mov r1, r9
- ldr r0, [r1]
- ldr r2, [r0]
- ldrb r1, [r2, 0x6]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080D9F9A
- b _080DA100
-_080D9F9A:
- movs r0, 0x13
- ldrsb r0, [r2, r0]
- cmp r0, 0x4
- ble _080D9FA8
- strb r1, [r2, 0x13]
- bl sub_80DD940
-_080D9FA8:
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0xA
- strh r0, [r1, 0x8]
- b _080DA100
- .pool
-_080D9FC0:
- mov r3, r8
- lsls r2, r3, 2
- add r2, r8
- lsls r2, 3
- adds r2, r4
- ldrb r5, [r2, 0xC]
- ldr r1, =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_80DA164
- str r1, [r0]
- movs r0, 0xB
- strh r0, [r2, 0x8]
- b _080DA100
- .pool
-_080D9FEC:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r4
- ldrb r5, [r4, 0xC]
- ldr r1, =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r6, r0, r1
- adds r0, r6, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _080DA100
- adds r0, r6, 0
- bl FreeSpriteOamMatrix
- adds r0, r6, 0
- bl DestroySprite
- movs r0, 0x14
- strh r0, [r4, 0x8]
- b _080DA100
- .pool
-_080DA024:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- movs r1, 0
- strh r1, [r0, 0x1C]
- movs r1, 0x15
- strh r1, [r0, 0x8]
- b _080DA100
-_080DA038:
- bl sub_80DB89C
- ldr r0, =gStringVar1
- lsls r1, r6, 6
- ldr r2, =gUnknown_02039E00 + 2
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gText_0827D56F
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80DEC30
- ldr r1, =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x20
- strh r1, [r0, 0x8]
- b _080DA100
- .pool
-_080DA080:
- bl sub_80DED4C
- cmp r0, 0
- bne _080DA100
- ldr r0, =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x15
- strh r0, [r1, 0x8]
- b _080DA100
- .pool
-_080DA0A0:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r4
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080DA100
- movs r0, 0
- strh r0, [r1, 0x1C]
- movs r0, 0x16
- strh r0, [r1, 0x8]
- b _080DA100
-_080DA0C2:
- mov r1, r9
- ldr r0, [r1]
- ldr r1, [r0]
- ldrb r0, [r1, 0x10]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1, 0x10]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080DA0F4
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- strh r2, [r0, 0x8]
- strh r2, [r0, 0xA]
- strh r2, [r0, 0xC]
- ldr r1, =sub_80DA198
- str r1, [r0]
- b _080DA100
- .pool
-_080DA0F4:
- mov r5, r8
- lsls r0, r5, 2
- add r0, r8
- lsls r0, 3
- adds r0, r4
- strh r2, [r0, 0x8]
-_080DA100:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D8B38
-
- thumb_func_start sub_80DA110
-sub_80DA110: @ 80DA110
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gContestResources
- ldr r1, [r1]
- ldr r3, [r1]
- ldrb r2, [r3, 0x7]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r3, 0x7]
- bl DestroyTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA110
-
- thumb_func_start sub_80DA134
-sub_80DA134: @ 80DA134
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x24]
- movs r3, 0x24
- ldrsh r2, [r1, r3]
- cmp r2, 0
- beq _080DA148
- subs r0, 0x2
- strh r0, [r1, 0x24]
- b _080DA15C
-_080DA148:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080DA15C
- strh r2, [r1, 0x2E]
- ldr r0, =SpriteCallbackDummy
- str r0, [r1, 0x1C]
-_080DA15C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA134
-
- thumb_func_start sub_80DA164
-sub_80DA164: @ 80DA164
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x24]
- subs r0, 0x6
- strh r0, [r2, 0x24]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r3, 0x24
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080DA18E
- ldr r0, =SpriteCallbackDummy
- str r0, [r2, 0x1C]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080DA18E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA164
-
- thumb_func_start sub_80DA198
-sub_80DA198: @ 80DA198
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080DA22E
- cmp r0, 0x1
- bgt _080DA1C0
- cmp r0, 0
- beq _080DA1C6
- b _080DA250
- .pool
-_080DA1C0:
- cmp r0, 0x2
- beq _080DA248
- b _080DA250
-_080DA1C6:
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080DA224
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r2, [r0]
- ldrb r0, [r2, 0x7]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x7]
- bl sub_80DA8A4
- lsls r0, 24
- cmp r0, 0
- beq _080DA1F4
- bl sub_80DB944
- bl sub_80DBA18
-_080DA1F4:
- ldr r4, =sub_80FCC88
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =sub_80DA110
- adds r1, r4, 0
- bl SetTaskFuncWithFollowupFunc
- bl sub_80DBF68
- strh r6, [r5, 0x8]
- b _080DA250
- .pool
-_080DA224:
- bl sub_80DB944
- bl sub_80DBA18
- b _080DA23E
-_080DA22E:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0]
- ldrb r1, [r0, 0x7]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080DA250
-_080DA23E:
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _080DA250
- .pool
-_080DA248:
- movs r0, 0
- strh r0, [r5, 0x8]
- ldr r0, =sub_80DA25C
- str r0, [r5]
-_080DA250:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA198
-
- thumb_func_start sub_80DA25C
-sub_80DA25C: @ 80DA25C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80DE008
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- ldr r1, =sub_80DA28C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA25C
-
- thumb_func_start sub_80DA28C
-sub_80DA28C: @ 80DA28C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080DA2D2
- cmp r5, 0x1
- bgt _080DA2B4
- cmp r5, 0
- beq _080DA2BA
- b _080DA312
- .pool
-_080DA2B4:
- cmp r5, 0x2
- beq _080DA304
- b _080DA312
-_080DA2BA:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080DA312
- movs r0, 0x2
- bl sub_80DE69C
- strh r5, [r4, 0xA]
- b _080DA2F6
-_080DA2D2:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0]
- ldrb r1, [r0, 0x7]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080DA312
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080DA312
- strh r1, [r4, 0xA]
-_080DA2F6:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DA312
- .pool
-_080DA304:
- bl sub_80DC3AC
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- ldr r0, =sub_80DA31C
- str r0, [r4]
-_080DA312:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA28C
-
- thumb_func_start sub_80DA31C
-sub_80DA31C: @ 80DA31C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80DC3C4
- lsls r0, 24
- cmp r0, 0
- beq _080DA33A
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80DA348
- str r0, [r1]
-_080DA33A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA31C
-
- thumb_func_start sub_80DA348
-sub_80DA348: @ 80DA348
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =0x0201a204
- ldr r3, =gPlttBufferUnfaded
- ldr r1, =0x040000d4
- str r2, [r1]
- str r3, [r1, 0x4]
- ldr r2, =0x84000100
- str r2, [r1, 0x8]
- ldr r1, [r1, 0x8]
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- movs r0, 0x2
- strh r0, [r1, 0xA]
- ldr r0, =sub_80DA38C
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_80DA348
-
- thumb_func_start sub_80DA38C
-sub_80DA38C: @ 80DA38C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080DA3BE
- movs r0, 0
- strh r0, [r1, 0x8]
- ldrh r0, [r1, 0xA]
- subs r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _080DA3BE
- ldr r0, =sub_80DA3CC
- str r0, [r1]
-_080DA3BE:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA38C
-
- thumb_func_start sub_80DA3CC
-sub_80DA3CC: @ 80DA3CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r2
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080DA448
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r5, =gUnknown_02039F25
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0, 0x1A]
- bl sub_80DB89C
- ldr r0, =gStringVar1
- ldrb r1, [r5]
- lsls r1, 6
- ldr r2, =gUnknown_02039E00 + 2
- adds r1, r2
- bl StringCopy
- ldr r5, =gStringVar4
- ldr r0, =gUnknown_08587D90
- lsls r4, 2
- adds r4, r0
- ldr r1, [r4]
- adds r0, r5, 0
- bl StringExpandPlaceholders
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80DEC30
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _080DA45A
- .pool
-_080DA448:
- bl sub_80DED4C
- cmp r0, 0
- bne _080DA45A
- strh r0, [r6, 0x8]
- ldr r0, =sub_80DA464
- str r0, [r6]
- bl sub_80DCD48
-_080DA45A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA3CC
-
- thumb_func_start sub_80DA464
-sub_80DA464: @ 80DA464
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080DA48E
- movs r0, 0
- strh r0, [r4, 0x8]
- bl sub_80DC3AC
- ldr r0, =sub_80DA49C
- str r0, [r4]
-_080DA48E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA464
-
- thumb_func_start sub_80DA49C
-sub_80DA49C: @ 80DA49C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80DC3C4
- lsls r0, 24
- cmp r0, 0
- beq _080DA4BE
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, =sub_80DA4CC
- str r1, [r0]
-_080DA4BE:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA49C
-
- thumb_func_start sub_80DA4CC
-sub_80DA4CC: @ 80DA4CC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80DE224
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80DE424
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA4CC
-
- thumb_func_start sub_80DA4F4
-sub_80DA4F4: @ 80DA4F4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80DE350
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80DA51C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA4F4
-
- thumb_func_start sub_80DA51C
-sub_80DA51C: @ 80DA51C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x8
- bl GetGpuReg
- mov r1, sp
- strh r0, [r1]
- movs r0, 0xC
- bl GetGpuReg
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r3, sp
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- ldrb r0, [r4]
- ands r1, r0
- strb r1, [r4]
- mov r0, sp
- ldrh r1, [r0]
- movs r0, 0x8
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0xC
- bl SetGpuReg
- ldr r2, =gContestResources
- ldr r0, [r2]
- ldr r1, [r0]
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- strb r0, [r1, 0x1]
- ldr r0, [r2]
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x5
- bne _080DA590
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80DA5E8
- b _080DA5A0
- .pool
-_080DA590:
- bl sub_80DDB0C
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80DA5B4
-_080DA5A0:
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA51C
-
- thumb_func_start sub_80DA5B4
-sub_80DA5B4: @ 80DA5B4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0]
- ldrb r1, [r0, 0x6]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080DA5D8
- ldr r0, =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80D833C
- str r0, [r1]
-_080DA5D8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA5B4
-
- thumb_func_start sub_80DA5E8
-sub_80DA5E8: @ 80DA5E8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gBattle_BG0_Y
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r1, [r0]
- ldr r4, =gContestResources
- movs r3, 0
- ldr r2, =gUnknown_02039F10
- movs r1, 0x3
-_080DA600:
- ldr r0, [r4]
- ldr r0, [r0, 0x4]
- adds r0, r3, r0
- ldrh r0, [r0, 0x4]
- strh r0, [r2]
- adds r3, 0x1C
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080DA600
- bl sub_80DBD18
- bl sub_80DB89C
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080DA65C
- ldr r0, =gContestResources
- ldr r2, [r0]
- ldr r0, =gUnknown_02039F25
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x8]
- bl BravoTrainerPokemonProfile_BeforeInterview1
- b _080DA668
- .pool
-_080DA65C:
- bl sub_80DF250
- bl sub_80DF4F8
- bl sub_80DF750
-_080DA668:
- ldr r1, =gUnknown_030060B8
- ldr r0, =gRngValue
- ldr r0, [r0]
- str r0, [r1]
- ldr r4, =gStringVar4
- ldr r1, =gText_0827D597
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80DEC30
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, =sub_80DA6B4
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA5E8
-
- thumb_func_start sub_80DA6B4
-sub_80DA6B4: @ 80DA6B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80DED4C
- adds r4, r0, 0
- cmp r4, 0
- bne _080DA6EA
- bl sub_80DE224
- ldr r0, =gBattle_BG1_X
- strh r4, [r0]
- ldr r1, =gBattle_BG1_Y
- movs r0, 0xA0
- strh r0, [r1]
- movs r0, 0x62
- movs r1, 0
- bl PlaySE12WithPanning
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- ldr r1, =sub_80DA700
- str r1, [r0]
-_080DA6EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA6B4
-
- thumb_func_start sub_80DA700
-sub_80DA700: @ 80DA700
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, =gBattle_BG1_Y
- ldrh r0, [r1]
- subs r0, 0x7
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bge _080DA718
- movs r0, 0
- strh r0, [r1]
-_080DA718:
- ldrh r2, [r1]
- cmp r2, 0
- bne _080DA72E
- ldr r0, =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80DA740
- str r0, [r1]
- strh r2, [r1, 0x8]
-_080DA72E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA700
-
- thumb_func_start sub_80DA740
-sub_80DA740: @ 80DA740
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x31
- ble _080DA794
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, =gUnknown_02039F2A
- ldrb r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080DA780
- ldr r0, =sub_80DA7A0
- b _080DA792
- .pool
-_080DA780:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, =sub_80DA830
-_080DA792:
- str r0, [r4]
-_080DA794:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA740
-
- thumb_func_start sub_80DA7A0
-sub_80DA7A0: @ 80DA7A0
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =sub_80FCACC
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =sub_80DA7EC
- adds r1, r5, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =TaskDummy1
- str r1, [r0]
- bl sub_80DBF68
- movs r0, 0
- bl sub_80DC490
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA7A0
-
- thumb_func_start sub_80DA7EC
-sub_80DA7EC: @ 80DA7EC
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, =gTasks
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0]
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, =sub_80DA830
- str r1, [r0]
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA7EC
-
- thumb_func_start sub_80DA830
-sub_80DA830: @ 80DA830
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080DA860
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, =gFieldCallback
- ldr r1, =sub_80DA874
- str r1, [r0]
- bl FreeAllWindowBuffers
- bl sub_80D7A5C
- bl FreeMonSpritesGfx
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
-_080DA860:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA830
-
- thumb_func_start sub_80DA874
-sub_80DA874: @ 80DA874
- push {lr}
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80DA874
-
- thumb_func_start sub_80DA884
-sub_80DA884: @ 80DA884
- push {lr}
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080DA898
- ldr r1, =gUnknown_02039F25
- movs r0, 0x3
- strb r0, [r1]
-_080DA898:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA884
-
- thumb_func_start sub_80DA8A4
-sub_80DA8A4: @ 80DA8A4
- push {lr}
- ldr r0, =gUnknown_02039F25
- ldr r1, =gUnknown_02039F2B
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080DA8C0
- movs r0, 0
- b _080DA8C2
- .pool
-_080DA8C0:
- movs r0, 0x1
-_080DA8C2:
- pop {r1}
- bx r1
- thumb_func_end sub_80DA8A4
-
- thumb_func_start sub_80DA8C8
-sub_80DA8C8: @ 80DA8C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- mov r0, sp
- bl StringCopy
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DA8F2
- mov r0, sp
- bl sub_80DF9D4
-_080DA8F2:
- ldr r5, =gUnknown_02039F25
- ldrb r0, [r5]
- lsls r0, 6
- ldr r4, =gUnknown_02039E00 + 13
- adds r0, r4
- mov r1, sp
- movs r2, 0x8
- bl memcpy
- ldr r0, [r6]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080DA928
- ldrb r0, [r5]
- lsls r0, 6
- adds r0, r4, r0
- movs r1, 0xD8
- b _080DA930
- .pool
-_080DA928:
- ldrb r0, [r5]
- lsls r0, 6
- adds r0, r4, r0
- movs r1, 0xD9
-_080DA930:
- strb r1, [r0, 0x8]
- ldr r7, =gUnknown_02039E00
- ldr r6, =gUnknown_02039F25
- ldrb r0, [r6]
- lsls r0, 6
- adds r1, r7, 0
- adds r1, 0x18
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- ldrb r0, [r6]
- lsls r0, 6
- adds r0, r7
- adds r0, 0x2C
- strb r1, [r0]
- movs r0, 0x64
- mov r1, r8
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r1, r7
- strh r0, [r1]
- adds r0, r5, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- mov r0, sp
- bl StringGetEnd10
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DA994
- adds r0, r5, 0
- movs r1, 0x3
- bl GetMonData
- adds r1, r0, 0
- mov r0, sp
- bl sub_80DF9E0
-_080DA994:
- ldrb r0, [r6]
- lsls r0, 6
- adds r4, r7, 0x2
- adds r0, r4
- mov r1, sp
- movs r2, 0xB
- bl memcpy
- ldrb r0, [r6]
- lsls r0, 6
- adds r0, r4
- mov r1, sp
- bl StringCopy
- adds r0, r5, 0
- movs r1, 0x16
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r1, r7
- adds r1, 0x26
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x17
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r1, r7
- adds r1, 0x27
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x18
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r1, r7
- adds r1, 0x28
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x21
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r1, r7
- adds r1, 0x29
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x2F
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r1, r7
- adds r1, 0x2A
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r1, r7
- adds r1, 0x2B
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0xD
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r1, r7
- strh r0, [r1, 0x1E]
- adds r0, r5, 0
- movs r1, 0xE
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r1, r7
- strh r0, [r1, 0x20]
- adds r0, r5, 0
- movs r1, 0xF
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r1, r7
- strh r0, [r1, 0x22]
- adds r0, r5, 0
- movs r1, 0x10
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r1, r7
- strh r0, [r1, 0x24]
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r2, r7, 0
- adds r2, 0x38
- adds r1, r2
- str r0, [r1]
- adds r0, r5, 0
- movs r1, 0x1
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 6
- adds r2, r7, 0
- adds r2, 0x3C
- adds r1, r2
- str r0, [r1]
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r6]
- lsls r0, 6
- adds r1, r0, r7
- adds r0, r1, 0
- adds r0, 0x26
- ldrb r3, [r0]
- adds r0, 0x1
- ldrb r5, [r0]
- adds r0, 0x1
- ldrb r6, [r0]
- adds r0, 0x1
- ldrb r7, [r0]
- adds r0, 0x1
- ldrb r4, [r0]
- cmp r2, 0xFE
- bne _080DAAC4
- adds r3, 0x14
- b _080DAB12
- .pool
-_080DAAC4:
- cmp r2, 0xFF
- bne _080DAAD4
- lsls r0, r5, 16
- movs r1, 0xA0
- lsls r1, 13
- adds r0, r1
- lsrs r5, r0, 16
- b _080DAB12
-_080DAAD4:
- movs r0, 0x80
- lsls r0, 1
- cmp r2, r0
- bne _080DAAE8
- lsls r0, r6, 16
- movs r1, 0xA0
- lsls r1, 13
- adds r0, r1
- lsrs r6, r0, 16
- b _080DAB12
-_080DAAE8:
- ldr r0, =0x00000101
- cmp r2, r0
- bne _080DAB00
- lsls r0, r7, 16
- movs r1, 0xA0
- lsls r1, 13
- adds r0, r1
- lsrs r7, r0, 16
- b _080DAB12
- .pool
-_080DAB00:
- movs r0, 0x81
- lsls r0, 1
- cmp r2, r0
- bne _080DAB12
- lsls r0, r4, 16
- movs r1, 0xA0
- lsls r1, 13
- adds r0, r1
- lsrs r4, r0, 16
-_080DAB12:
- cmp r3, 0xFF
- ble _080DAB18
- movs r3, 0xFF
-_080DAB18:
- lsls r0, r5, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080DAB22
- movs r5, 0xFF
-_080DAB22:
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080DAB2C
- movs r6, 0xFF
-_080DAB2C:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080DAB36
- movs r7, 0xFF
-_080DAB36:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080DAB40
- movs r4, 0xFF
-_080DAB40:
- ldr r2, =gUnknown_02039E00
- ldr r1, =gUnknown_02039F25
- ldrb r0, [r1]
- lsls r0, 6
- adds r0, r2
- adds r0, 0x26
- strb r3, [r0]
- ldrb r0, [r1]
- lsls r0, 6
- adds r0, r2
- adds r0, 0x27
- strb r5, [r0]
- ldrb r0, [r1]
- lsls r0, 6
- adds r0, r2
- adds r0, 0x28
- strb r6, [r0]
- ldrb r0, [r1]
- lsls r0, 6
- adds r0, r2
- adds r0, 0x29
- strb r7, [r0]
- ldrb r0, [r1]
- lsls r0, 6
- adds r0, r2
- adds r0, 0x2A
- strb r4, [r0]
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DA8C8
-
- thumb_func_start sub_80DAB8C
-sub_80DAB8C: @ 80DAB8C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x64
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- movs r6, 0
- movs r7, 0
- bl sub_80DA884
- ldr r0, =0x00000864
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080DABC0
- ldr r0, =gUnknown_02039F2A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080DABC0
- movs r7, 0x1
-_080DABC0:
- movs r5, 0
- ldr r2, =gUnknown_085880A4
- ldr r3, =gUnknown_085898A4
-_080DABC6:
- ldrb r0, [r2, 0x1C]
- lsls r0, 30
- lsrs r0, 30
- cmp r8, r0
- bne _080DAC3A
- cmp r7, 0x1
- bne _080DABEC
- ldrb r0, [r3]
- cmp r0, 0x1
- beq _080DAC3A
- b _080DABF2
- .pool
-_080DABEC:
- ldrb r0, [r3]
- cmp r0, 0x2
- beq _080DAC3A
-_080DABF2:
- cmp r4, 0
- bne _080DABFE
- ldrb r0, [r2, 0x1C]
- lsls r0, 29
- cmp r0, 0
- blt _080DAC2E
-_080DABFE:
- cmp r4, 0x1
- bne _080DAC0A
- ldrb r0, [r2, 0x1C]
- lsls r0, 28
- cmp r0, 0
- blt _080DAC2E
-_080DAC0A:
- cmp r4, 0x2
- bne _080DAC16
- ldrb r0, [r2, 0x1C]
- lsls r0, 27
- cmp r0, 0
- blt _080DAC2E
-_080DAC16:
- cmp r4, 0x3
- bne _080DAC22
- ldrb r0, [r2, 0x1C]
- lsls r0, 26
- cmp r0, 0
- blt _080DAC2E
-_080DAC22:
- cmp r4, 0x4
- bne _080DAC3A
- ldrb r0, [r2, 0x1C]
- lsls r0, 25
- cmp r0, 0
- bge _080DAC3A
-_080DAC2E:
- adds r0, r6, 0
- adds r1, r0, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- add r0, sp
- strb r5, [r0]
-_080DAC3A:
- adds r2, 0x40
- adds r3, 0x1
- adds r5, 0x1
- cmp r5, 0x5F
- bls _080DABC6
- mov r0, sp
- adds r1, r0, r6
- movs r0, 0xFF
- strb r0, [r1]
- movs r5, 0
- ldr r7, =gUnknown_085880A4
-_080DAC50:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, =gUnknown_02039E00
- lsls r2, r5, 6
- adds r2, r1
- mov r1, sp
- adds r4, r1, r0
- ldrb r1, [r4]
- lsls r1, 6
- adds r1, r7
- adds r0, r2, 0
- movs r2, 0x40
- bl memcpy
- ldrb r0, [r4]
- adds r2, r5, 0x1
- subs r1, r6, 0x1
- cmp r0, 0xFF
- beq _080DAC92
- adds r3, r4, 0
-_080DAC86:
- ldrb r0, [r3, 0x1]
- strb r0, [r3]
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _080DAC86
-_080DAC92:
- lsls r0, r1, 24
- lsrs r6, r0, 24
- adds r5, r2, 0
- cmp r5, 0x2
- ble _080DAC50
- ldr r0, =gUnknown_02039F24
- ldrb r0, [r0]
- bl sub_80DA8C8
- add sp, 0x64
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DAB8C
-
- thumb_func_start sub_80DACBC
-sub_80DACBC: @ 80DACBC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x64
- mov r8, r2
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- movs r7, 0
- ldr r0, =gUnknown_02039F30
- ldrb r1, [r0]
- mov r9, r0
- cmp r1, 0x4
- bne _080DACDE
- b _080DADF6
-_080DACDE:
- movs r5, 0
- ldr r3, =gUnknown_085880A4
- ldr r6, =gUnknown_085898A4
-_080DACE4:
- ldrb r0, [r3, 0x1C]
- lsls r0, 30
- lsrs r0, 30
- cmp r2, r0
- bne _080DAD56
- mov r0, r8
- cmp r0, 0x1
- bne _080DAD08
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _080DAD56
- b _080DAD0E
- .pool
-_080DAD08:
- ldrb r0, [r6]
- cmp r0, 0x2
- beq _080DAD56
-_080DAD0E:
- cmp r4, 0
- bne _080DAD1A
- ldrb r0, [r3, 0x1C]
- lsls r0, 29
- cmp r0, 0
- blt _080DAD4A
-_080DAD1A:
- cmp r4, 0x1
- bne _080DAD26
- ldrb r0, [r3, 0x1C]
- lsls r0, 28
- cmp r0, 0
- blt _080DAD4A
-_080DAD26:
- cmp r4, 0x2
- bne _080DAD32
- ldrb r0, [r3, 0x1C]
- lsls r0, 27
- cmp r0, 0
- blt _080DAD4A
-_080DAD32:
- cmp r4, 0x3
- bne _080DAD3E
- ldrb r0, [r3, 0x1C]
- lsls r0, 26
- cmp r0, 0
- blt _080DAD4A
-_080DAD3E:
- cmp r4, 0x4
- bne _080DAD56
- ldrb r0, [r3, 0x1C]
- lsls r0, 25
- cmp r0, 0
- bge _080DAD56
-_080DAD4A:
- adds r0, r7, 0
- adds r1, r0, 0x1
- lsls r1, 24
- lsrs r7, r1, 24
- add r0, sp
- strb r5, [r0]
-_080DAD56:
- adds r3, 0x40
- adds r6, 0x1
- adds r5, 0x1
- cmp r5, 0x5F
- bls _080DACE4
- mov r3, sp
- adds r1, r3, r7
- movs r0, 0xFF
- strb r0, [r1]
- movs r5, 0
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x4
- subs r0, r1
- cmp r5, r0
- bge _080DADF6
- ldr r3, =gUnknown_02039E00
- mov r8, r3
- mov r6, r9
- movs r0, 0x2
- add r0, r8
- mov r9, r0
-_080DAD82:
- bl sub_80F903C
- lsls r0, 16
- lsrs r0, 16
- adds r1, r7, 0
- bl __modsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldrb r0, [r6]
- adds r0, r5
- lsls r0, 6
- add r0, r8
- ldr r2, =gUnknown_085880A4
- mov r3, sp
- adds r4, r3, r1
- ldrb r1, [r4]
- lsls r1, 6
- adds r1, r2
- movs r2, 0x40
- bl memcpy
- ldrb r0, [r6]
- adds r0, r5
- lsls r0, 6
- mov r1, r8
- adds r1, 0xD
- adds r0, r1
- bl sub_80DF9D4
- ldrb r0, [r6]
- adds r0, r5
- lsls r0, 6
- add r0, r9
- movs r1, 0x2
- bl sub_80DF9E0
- ldrb r0, [r4]
- adds r3, r5, 0x1
- subs r1, r7, 0x1
- cmp r0, 0xFF
- beq _080DADE6
- adds r2, r4, 0
-_080DADDA:
- ldrb r0, [r2, 0x1]
- strb r0, [r2]
- adds r2, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080DADDA
-_080DADE6:
- lsls r0, r1, 24
- lsrs r7, r0, 24
- adds r5, r3, 0
- ldrb r1, [r6]
- movs r0, 0x4
- subs r0, r1
- cmp r5, r0
- blt _080DAD82
-_080DADF6:
- add sp, 0x64
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DACBC
-
- thumb_func_start sub_80DAE0C
-sub_80DAE0C: @ 80DAE0C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _080DAE1E
- movs r0, 0x3
- b _080DAE9A
-_080DAE1E:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080DAE2E
- movs r0, 0x4
- b _080DAE9A
-_080DAE2E:
- ldr r0, =gSpecialVar_ContestCategory
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080DAE82
- lsls r0, 2
- ldr r1, =_080DAE48
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080DAE48:
- .4byte _080DAE5C
- .4byte _080DAE62
- .4byte _080DAE68
- .4byte _080DAE6E
- .4byte _080DAE74
-_080DAE5C:
- adds r0, r4, 0
- movs r1, 0x32
- b _080DAE78
-_080DAE62:
- adds r0, r4, 0
- movs r1, 0x33
- b _080DAE78
-_080DAE68:
- adds r0, r4, 0
- movs r1, 0x34
- b _080DAE78
-_080DAE6E:
- adds r0, r4, 0
- movs r1, 0x35
- b _080DAE78
-_080DAE74:
- adds r0, r4, 0
- movs r1, 0x36
-_080DAE78:
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- b _080DAE86
-_080DAE82:
- movs r0, 0
- b _080DAE9A
-_080DAE86:
- ldr r0, =gSpecialVar_ContestRank
- adds r2, r1, 0
- ldrh r1, [r0]
- movs r0, 0x2
- cmp r2, r1
- bhi _080DAE9A
- movs r0, 0
- cmp r2, r1
- bcc _080DAE9A
- movs r0, 0x1
-_080DAE9A:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80DAE0C
-
- thumb_func_start sub_80DAEA4
-sub_80DAEA4: @ 80DAEA4
- push {r4,r5,lr}
- movs r5, 0
-_080DAEA8:
- ldr r0, =gUnknown_02039F26
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0
- bl FillWindowPixelBuffer
- lsls r4, r5, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80DAF04
- adds r0, r4, 0
- bl sub_80DAF88
- adds r5, 0x1
- cmp r5, 0x3
- ble _080DAEA8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DAEA4
-
- thumb_func_start sub_80DAED4
-sub_80DAED4: @ 80DAED4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r0, =gDisplayedStringBattle
- ldr r1, =gText_ColorTransparent
- bl StringCopy
- adds r1, r0, 0
- subs r0, r1, 0x1
- strb r4, [r0]
- adds r0, r1, 0
- adds r1, r5, 0
- bl StringCopy
- adds r1, r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80DAED4
-
- thumb_func_start sub_80DAF04
-sub_80DAF04: @ 80DAF04
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r0, r1, 24
- movs r2, 0xA0
- lsls r2, 20
- adds r1, r2
- lsrs r1, 24
- bl sub_80DAF1C
- pop {r0}
- bx r0
- thumb_func_end sub_80DAF04
-
- thumb_func_start sub_80DAF1C
-sub_80DAF1C: @ 80DAF1C
- push {r4,r5,lr}
- sub sp, 0x24
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gText_Slash
- add r0, sp, 0x4
- bl StringCopy
- lsls r1, r5, 6
- ldr r0, =gUnknown_02039E00 + 13
- adds r1, r0
- add r0, sp, 0x4
- bl StringAppend
- add r0, sp, 0x4
- adds r1, r4, 0
- bl sub_80DAED4
- ldr r4, =gDisplayedStringBattle
- movs r0, 0x7
- adds r1, r4, 0
- movs r2, 0x60
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- cmp r2, 0x37
- ble _080DAF5C
- movs r2, 0x37
-_080DAF5C:
- ldr r0, =gUnknown_02039F26
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0x7
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_80DEBD0
- add sp, 0x24
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DAF1C
-
- thumb_func_start sub_80DAF88
-sub_80DAF88: @ 80DAF88
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r0, r1, 24
- movs r2, 0xA0
- lsls r2, 20
- adds r1, r2
- lsrs r1, 24
- bl sub_80DAFA0
- pop {r0}
- bx r0
- thumb_func_end sub_80DAF88
-
- thumb_func_start sub_80DAFA0
-sub_80DAFA0: @ 80DAFA0
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r4, 6
- ldr r2, =gUnknown_02039E00 + 2
- adds r0, r2
- bl sub_80DAED4
- ldr r0, =gUnknown_02039F26
- adds r4, r0
- ldrb r0, [r4]
- ldr r1, =gDisplayedStringBattle
- movs r2, 0x7
- str r2, [sp]
- movs r2, 0x5
- movs r3, 0x1
- bl sub_80DEBD0
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DAFA0
-
- thumb_func_start sub_80DAFE0
-sub_80DAFE0: @ 80DAFE0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, 0x4
- bhi _080DB06C
- lsls r0, 2
- ldr r1, =_080DAFFC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080DAFFC:
- .4byte _080DB010
- .4byte _080DB028
- .4byte _080DB040
- .4byte _080DB050
- .4byte _080DB06C
-_080DB010:
- ldr r0, =gUnknown_02039E00
- lsls r2, 6
- adds r1, r2, r0
- adds r3, r1, 0
- adds r3, 0x26
- ldrb r5, [r3]
- adds r3, 0x4
- ldrb r4, [r3]
- adds r1, 0x27
- b _080DB07E
- .pool
-_080DB028:
- ldr r0, =gUnknown_02039E00
- lsls r2, 6
- adds r1, r2, r0
- adds r3, r1, 0
- adds r3, 0x27
- ldrb r5, [r3]
- subs r3, 0x1
- ldrb r4, [r3]
- adds r1, 0x28
- b _080DB07E
- .pool
-_080DB040:
- ldr r1, =gUnknown_02039E00
- lsls r2, 6
- adds r3, r2, r1
- adds r0, r3, 0
- adds r0, 0x28
- b _080DB05A
- .pool
-_080DB050:
- ldr r1, =gUnknown_02039E00
- lsls r2, 6
- adds r3, r2, r1
- adds r0, r3, 0
- adds r0, 0x29
-_080DB05A:
- ldrb r5, [r0]
- subs r0, 0x1
- ldrb r4, [r0]
- adds r0, 0x2
- ldrb r3, [r0]
- adds r0, r1, 0
- b _080DB080
- .pool
-_080DB06C:
- ldr r0, =gUnknown_02039E00
- lsls r2, 6
- adds r1, r2, r0
- adds r3, r1, 0
- adds r3, 0x2A
- ldrb r5, [r3]
- subs r3, 0x1
- ldrb r4, [r3]
- adds r1, 0x26
-_080DB07E:
- ldrb r3, [r1]
-_080DB080:
- adds r1, r2, r0
- adds r1, 0x2B
- adds r0, r4, r3
- ldrb r1, [r1]
- adds r0, r1
- asrs r0, 1
- adds r0, r5, r0
- lsls r0, 16
- lsrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80DAFE0
-
- thumb_func_start sub_80DB09C
-sub_80DB09C: @ 80DB09C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r5, =gUnknown_02039F00
-_080DB0A6:
- lsls r0, r4, 24
- lsrs r0, 24
- adds r1, r6, 0
- bl sub_80DAFE0
- strh r0, [r5]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _080DB0A6
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DB09C
-
- thumb_func_start sub_80DB0C4
-sub_80DB0C4: @ 80DB0C4
- push {r4,r5,lr}
- ldr r0, =gUnknown_08587C00
- bl LoadCompressedObjectPic
- ldr r0, =gContest2Pal
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, =gSpriteTemplate_8587BE8
- movs r1, 0x70
- movs r2, 0x24
- movs r3, 0x1E
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r5, r2, r4
- ldrb r3, [r5, 0x5]
- movs r1, 0xF
- ands r1, r3
- movs r3, 0x10
- orrs r1, r3
- strb r1, [r5, 0x5]
- adds r4, 0x1C
- adds r2, r4
- ldr r1, =SpriteCallbackDummy
- str r1, [r2]
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80DB0C4
-
- thumb_func_start sub_80DB120
-sub_80DB120: @ 80DB120
- push {lr}
- ldr r0, =gUnknown_08587C08
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_08587C10
- bl LoadCompressedObjectPalette
- ldr r0, =gSpriteTemplate_8587C18
- movs r1, 0x60
- movs r2, 0xA
- movs r3, 0x1D
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- movs r1, 0x3E
- adds r1, r2
- mov r12, r1
- ldrb r1, [r1]
- movs r3, 0x4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- ldrh r1, [r2, 0x4]
- lsls r1, 22
- lsrs r1, 22
- strh r1, [r2, 0x2E]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80DB120
-
- thumb_func_start sub_80DB174
-sub_80DB174: @ 80DB174
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r1, 0
- adds r6, r2, 0
- adds r4, r3, 0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r5, 0
- bl sub_80DE84C
- adds r5, r0, 0
- ldr r0, =gUnknown_02039F25
- ldrb r0, [r0]
- cmp r4, r0
- bne _080DB1B8
- lsls r0, r5, 3
- ldr r1, =gMonBackPicTable
- adds r0, r1
- ldr r1, =gMonSpritesGfxPtr
- ldr r1, [r1]
- ldr r1, [r1, 0x4]
- adds r2, r5, 0
- adds r3, r6, 0
- bl HandleLoadSpecialPokePic_2
- b _080DB1CC
- .pool
-_080DB1B8:
- lsls r0, r5, 3
- ldr r1, =gMonBackPicTable
- adds r0, r1
- ldr r1, =gMonSpritesGfxPtr
- ldr r1, [r1]
- ldr r1, [r1, 0x4]
- adds r2, r5, 0
- adds r3, r6, 0
- bl HandleLoadSpecialPokePic_DontHandleDeoxys
-_080DB1CC:
- adds r0, r5, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl GetFrontSpritePalFromSpeciesAndPersonality
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r5, 0
- movs r1, 0
- bl SetMultiuseSpriteTemplateToPokemon
- ldr r4, =gMultiuseSpriteTemplate
- movs r0, 0x2
- adds r1, r5, 0
- movs r2, 0
- bl sub_80A600C
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- movs r1, 0x70
- movs r3, 0x1E
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gSprites
- mov r8, r0
- lsls r0, r7, 4
- adds r0, r7
- lsls r6, r0, 2
- mov r0, r8
- adds r4, r6, r0
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- movs r1, 0xD
- negs r1, r1
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x5]
- movs r0, 0x2
- bl sub_80A82E4
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- mov r0, r8
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, =SpriteCallbackDummy
- str r1, [r0]
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- strh r0, [r4, 0x2E]
- strh r5, [r4, 0x32]
- adds r0, r5, 0
- bl IsSpeciesNotUnown
- lsls r0, 24
- cmp r0, 0
- beq _080DB278
- mov r0, r8
- adds r0, 0x10
- adds r0, r6, r0
- ldr r1, =gUnknown_082FF6C0
- b _080DB280
- .pool
-_080DB278:
- mov r0, r8
- adds r0, 0x10
- adds r0, r6, r0
- ldr r1, =gUnknown_082FF694
-_080DB280:
- str r1, [r0]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAffineAnim
- adds r0, r7, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80DB174
-
- thumb_func_start IsSpeciesNotUnown
-IsSpeciesNotUnown: @ 80DB2A8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC9
- beq _080DB2B6
- movs r0, 0x1
- b _080DB2B8
-_080DB2B6:
- movs r0, 0
-_080DB2B8:
- pop {r1}
- bx r1
- thumb_func_end IsSpeciesNotUnown
-
- thumb_func_start sub_80DB2BC
-sub_80DB2BC: @ 80DB2BC
- push {r4-r6,lr}
- ldr r5, =gContestResources
- ldr r0, [r5]
- ldr r0, [r0, 0x24]
- movs r4, 0xA0
- lsls r4, 3
- adds r1, r0, r4
- movs r6, 0xA0
- lsls r6, 1
- adds r2, r6, 0
- bl CpuSet
- ldr r0, [r5]
- ldr r0, [r0, 0x2C]
- adds r4, r0, r4
- adds r1, r4, 0
- adds r2, r6, 0
- bl CpuSet
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DB2BC
-
- thumb_func_start sub_80DB2EC
-sub_80DB2EC: @ 80DB2EC
- push {lr}
- lsls r0, 16
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r2, =gContestEffects
- ldr r1, =gContestMoves
- lsrs r0, 13
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _080DB354
- lsls r0, 2
- ldr r1, =_080DB320
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080DB320:
- .4byte _080DB344
- .4byte _080DB344
- .4byte _080DB34C
- .4byte _080DB34C
- .4byte _080DB354
- .4byte _080DB354
- .4byte _080DB354
- .4byte _080DB354
- .4byte _080DB344
-_080DB344:
- ldr r0, =0x00009082
- b _080DB356
- .pool
-_080DB34C:
- ldr r0, =0x00009088
- b _080DB356
- .pool
-_080DB354:
- ldr r0, =0x00009086
-_080DB356:
- lsls r1, r3, 12
- movs r2, 0x90
- lsls r2, 8
- adds r1, r2
- lsls r0, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80DB2EC
-
- thumb_func_start prints_contest_move_description
-prints_contest_move_description: @ 80DB370
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, =gContestMoves
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 29
- ldr r7, =0x00004040
- cmp r0, 0
- beq _080DB3A4
- adds r7, 0x5
- cmp r0, 0x1
- beq _080DB3A4
- adds r7, 0x5
- cmp r0, 0x2
- beq _080DB3A4
- adds r7, 0x40
- cmp r0, 0x3
- bne _080DB3A4
- subs r7, 0x20
-_080DB3A4:
- movs r6, 0x5
- str r6, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- movs r5, 0x11
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r0, 0
- adds r1, r7, 0
- movs r2, 0xB
- movs r3, 0x1F
- bl sub_80DECB8
- adds r1, r7, 0
- adds r1, 0x10
- str r6, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r0, 0
- movs r2, 0xB
- movs r3, 0x20
- bl sub_80DECB8
- ldr r2, =gContestEffects
- ldr r0, =gContestMoves
- mov r3, r8
- lsls r1, r3, 3
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x1]
- adds r7, r1, 0
- cmp r0, 0xFF
- bne _080DB3FC
- movs r6, 0
- b _080DB408
- .pool
-_080DB3FC:
- ldrb r0, [r2, 0x1]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r6, r0, 24
-_080DB408:
- cmp r6, 0x8
- bls _080DB40E
- movs r6, 0x8
-_080DB40E:
- ldr r1, =0x00005035
- movs r0, 0x8
- str r0, [sp]
- movs r5, 0x1
- str r5, [sp, 0x4]
- movs r4, 0x11
- str r4, [sp, 0x8]
- movs r0, 0
- movs r2, 0x15
- movs r3, 0x1F
- bl sub_80DED10
- ldr r1, =0x00005012
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0
- movs r2, 0x15
- movs r3, 0x1F
- bl sub_80DED10
- ldr r1, =gContestEffects
- ldr r0, =gContestMoves
- adds r0, r7, r0
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFF
- bne _080DB460
- movs r6, 0
- b _080DB46C
- .pool
-_080DB460:
- ldrb r0, [r1, 0x2]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r6, r0, 24
-_080DB46C:
- cmp r6, 0x8
- bls _080DB472
- movs r6, 0x8
-_080DB472:
- ldr r1, =0x00005036
- movs r0, 0x8
- str r0, [sp]
- movs r5, 0x1
- str r5, [sp, 0x4]
- movs r4, 0x11
- str r4, [sp, 0x8]
- movs r0, 0
- movs r2, 0x15
- movs r3, 0x20
- bl sub_80DED10
- ldr r1, =0x00005014
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0
- movs r2, 0x15
- movs r3, 0x20
- bl sub_80DED10
- movs r0, 0xA
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r1, =gContestEffectDescriptionPointers
- ldr r0, =gContestMoves
- adds r0, r7, r0
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0xA
- bl sub_80DEB70
- ldr r1, =gText_Slash
- movs r0, 0x9
- bl sub_80DEB70
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end prints_contest_move_description
-
- thumb_func_start sub_80DB4E0
-sub_80DB4E0: @ 80DB4E0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, =gUnknown_02039F26
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x2
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- bl sub_80DBCA8
- lsls r0, 24
- cmp r0, 0
- bne _080DB560
- cmp r5, 0
- beq _080DB560
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80DB2EC
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x2
- mov r8, r0
- str r0, [sp]
- movs r5, 0x1
- str r5, [sp, 0x4]
- movs r6, 0x11
- str r6, [sp, 0x8]
- str r5, [sp, 0xC]
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0x14
- adds r3, r7, 0
- bl sub_80DECB8
- adds r4, 0x10
- lsls r4, 16
- lsrs r4, 16
- adds r3, r7, 0x1
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- str r5, [sp, 0xC]
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0x14
- bl sub_80DECB8
- b _080DB576
- .pool
-_080DB560:
- movs r0, 0x2
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0x14
- adds r3, r7, 0
- bl sub_80DED10
-_080DB576:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80DB4E0
-
- thumb_func_start sub_80DB584
-sub_80DB584: @ 80DB584
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_080DB58A:
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- adds r0, r5, r0
- ldrh r0, [r0, 0x6]
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_80DB4E0
- adds r5, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _080DB58A
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80DB584
-
- thumb_func_start sub_80DB5B0
-sub_80DB5B0: @ 80DB5B0
- ldr r0, =0x00002034
- bx lr
- .pool
- thumb_func_end sub_80DB5B0
-
- thumb_func_start sub_80DB5B8
-sub_80DB5B8: @ 80DB5B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r10, r8
- ldr r0, =gContestResources
- mov r9, r0
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r7, r0, 2
- adds r3, r7, r1
- ldrb r0, [r3, 0x10]
- movs r5, 0x30
- ands r5, r0
- cmp r5, 0
- bne _080DB5F4
- movs r0, 0
- b _080DB68A
- .pool
-_080DB5F4:
- ldr r0, =gUnknown_02039F26
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x2
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0xD
- ldrsb r0, [r3, r0]
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r4, r0, 24
- cmp r5, 0x10
- bne _080DB648
- bl sub_80DB5B0
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x1
- str r0, [sp]
- lsls r0, r4, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- movs r2, 0x13
- adds r3, r6, 0
- bl sub_80DED10
- mov r1, r8
- cmp r1, 0
- beq _080DB688
- movs r0, 0x5B
- b _080DB672
- .pool
-_080DB648:
- adds r3, r6, r4
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x3
- subs r0, r4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0x13
- bl sub_80DED10
- mov r0, r10
- cmp r0, 0
- beq _080DB688
- movs r0, 0x26
-_080DB672:
- bl PlaySE
- mov r1, r9
- ldr r0, [r1]
- ldr r1, [r0, 0x4]
- adds r1, r7, r1
- ldrb r2, [r1, 0x10]
- movs r0, 0x31
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x10]
-_080DB688:
- movs r0, 0x1
-_080DB68A:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80DB5B8
-
- thumb_func_start sub_80DB69C
-sub_80DB69C: @ 80DB69C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r7, 0
- movs r0, 0x1
- mov r10, r0
- movs r1, 0x11
- mov r9, r1
- movs r0, 0
- mov r8, r0
-_080DB6B6:
- ldr r0, =gUnknown_02039F26
- adds r0, r7, r0
- ldrb r0, [r0]
- lsls r4, r0, 2
- adds r4, r0
- adds r4, 0x2
- lsls r4, 24
- lsrs r4, 24
- bl sub_80DB5B0
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- add r0, r8
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- mov r1, r10
- str r1, [sp]
- asrs r6, r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r9
- str r0, [sp, 0x8]
- movs r0, 0
- adds r1, r5, 0
- movs r2, 0x13
- adds r3, r4, 0
- bl sub_80DED10
- adds r4, r6
- lsls r4, 24
- lsrs r4, 24
- mov r1, r10
- str r1, [sp]
- movs r0, 0x3
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r9
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0x13
- adds r3, r4, 0
- bl sub_80DED10
- movs r1, 0x1C
- add r8, r1
- adds r7, 0x1
- cmp r7, 0x3
- ble _080DB6B6
- 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_80DB69C
-
- thumb_func_start sub_80DB748
-sub_80DB748: @ 80DB748
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0
- cmp r1, 0x4
- bhi _080DB78A
- lsls r0, r1, 2
- ldr r1, =_080DB764
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080DB764:
- .4byte _080DB778
- .4byte _080DB77C
- .4byte _080DB780
- .4byte _080DB784
- .4byte _080DB788
-_080DB778:
- movs r0, 0x80
- b _080DB78A
-_080DB77C:
- movs r0, 0x84
- b _080DB78A
-_080DB780:
- movs r0, 0x86
- b _080DB78A
-_080DB784:
- movs r0, 0x88
- b _080DB78A
-_080DB788:
- movs r0, 0x82
-_080DB78A:
- movs r1, 0x90
- lsls r1, 8
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80DB748
-
- thumb_func_start sub_80DB798
-sub_80DB798: @ 80DB798
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- mov r9, r1
- movs r1, 0
- mov r8, r1
- ldr r1, =gUnknown_02039F26
- adds r1, r0, r1
- ldrb r2, [r1]
- lsls r1, r2, 2
- adds r1, r2
- adds r1, 0x2
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r1, =gContestResources
- ldr r1, [r1]
- ldr r2, [r1, 0x4]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldr r0, [r2, 0x10]
- ldr r1, =0x00ff0003
- ands r0, r1
- cmp r0, 0
- bne _080DB7DC
- ldrb r0, [r2, 0xF]
- cmp r0, 0
- beq _080DB7EC
-_080DB7DC:
- movs r0, 0
- b _080DB80E
- .pool
-_080DB7EC:
- ldrb r1, [r2, 0xC]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- beq _080DB7FA
- movs r0, 0x1
- b _080DB80E
-_080DB7FA:
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- bne _080DB80C
- ldrb r1, [r2, 0xB]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080DB81A
-_080DB80C:
- movs r0, 0x2
-_080DB80E:
- bl sub_80DB748
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- b _080DB81E
-_080DB81A:
- movs r0, 0
- mov r9, r0
-_080DB81E:
- mov r1, r9
- cmp r1, 0
- beq _080DB85E
- movs r6, 0x2
- str r6, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- movs r5, 0x11
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r0, 0
- mov r1, r8
- movs r2, 0x14
- adds r3, r7, 0
- bl sub_80DECB8
- mov r1, r8
- adds r1, 0x10
- lsls r1, 16
- lsrs r1, 16
- adds r3, r7, 0x1
- lsls r3, 24
- lsrs r3, 24
- str r6, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r0, 0
- movs r2, 0x14
- bl sub_80DECB8
- b _080DB874
-_080DB85E:
- movs r0, 0x2
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0x14
- adds r3, r7, 0
- bl sub_80DED10
-_080DB874:
- mov r0, r9
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80DB798
-
thumb_func_start sub_80DB884
sub_80DB884: @ 80DB884
push {r4,lr}
@@ -7613,7 +31,7 @@ sub_80DB89C: @ 80DB89C
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0
- bl sub_80DED60
+ bl Contest_SetBgCopyFlags
pop {r0}
bx r0
thumb_func_end sub_80DB89C
@@ -7632,7 +50,7 @@ sub_80DB8B8: @ 80DB8B8
movs r0, 0
b _080DB90A
_080DB8D0:
- ldr r0, =gUnknown_02039F25
+ ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
cmp r4, r0
beq _080DB8F4
@@ -7640,13 +58,13 @@ _080DB8D0:
bl sub_81562C4
bl sub_8156324
lsls r0, 24
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
lsrs r0, 23
lsls r1, r4, 6
b _080DB902
.pool
_080DB8F4:
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
@@ -8197,7 +615,7 @@ sub_80DBCE0: @ 80DBCE0
strh r0, [r1]
ldr r2, =gUnknown_02039F08
adds r2, r4, r2
- ldr r1, =gUnknown_02039F00
+ ldr r1, =gContestMonConditions
adds r4, r1
ldrh r4, [r4]
adds r0, r4
@@ -8307,7 +725,7 @@ _080DBDB8:
mov r4, sp
ldr r6, =gUnknown_02039F08
ldr r2, [sp, 0x64]
- ldr r5, =gUnknown_02039F00
+ ldr r5, =gContestMonConditions
ldr r3, [sp, 0x68]
_080DBDD2:
mov r7, r9
@@ -8415,7 +833,7 @@ _080DBE90:
ble _080DBE06
movs r6, 0
mov r9, r6
- ldr r2, =gUnknown_02039F20
+ ldr r2, =gContestFinalStandings
ldr r1, [sp, 0x6C]
_080DBEA2:
ldr r0, [r1]
@@ -8442,7 +860,7 @@ _080DBEA2:
thumb_func_start sub_80DBED4
sub_80DBED4: @ 80DBED4
push {lr}
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -8450,8 +868,8 @@ sub_80DBED4: @ 80DBED4
beq _080DBF0E
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
- ldr r1, =gUnknown_02039F20
- ldr r0, =gUnknown_02039F25
+ ldr r1, =gContestFinalStandings
+ ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -8524,7 +942,7 @@ sub_80DBF68: @ 80DBF68
bl sub_80DB89C
ldr r0, =gUnknown_0827E8DA
movs r1, 0
- bl sub_80DEC30
+ bl Contest_StartTextPrinter
pop {r0}
bx r0
.pool
@@ -8548,7 +966,7 @@ _080DBF9A:
movs r0, 0
movs r1, 0
movs r2, 0x16
- bl sub_80DED10
+ bl ContestBG_FillBoxWithTile
movs r0, 0xA0
lsls r0, 19
adds r5, r0
@@ -8885,7 +1303,7 @@ _080DC226:
str r0, [sp, 0x8]
movs r0, 0
adds r1, r6, 0
- bl sub_80DED10
+ bl ContestBG_FillBoxWithTile
mov r3, r8
cmp r3, 0
ble _080DC284
@@ -10211,7 +2629,7 @@ sub_80DCCD8: @ 80DCCD8
thumb_func_start sub_80DCD08
sub_80DCD08: @ 80DCD08
push {lr}
- ldr r0, =0x02000000
+ ldr r0, =gHeap
movs r1, 0xD0
lsls r1, 9
adds r2, r0, r1
@@ -10250,7 +2668,7 @@ sub_80DCD48: @ 80DCD48
ldrb r0, [r0]
cmp r0, 0
beq _080DCE44
- ldr r0, =0x02000000
+ ldr r0, =gHeap
movs r1, 0xD0
lsls r1, 9
adds r0, r1
@@ -10314,7 +2732,7 @@ _080DCDBC:
add r1, sp, 0x4
movs r2, 0x37
movs r3, 0x1
- bl sub_80DEBD0
+ bl Contest_PrintTextToBg0WindowAt
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -10357,7 +2775,7 @@ _080DCE14:
add r1, sp, 0x4
movs r2, 0x5
movs r3, 0x1
- bl sub_80DEBD0
+ bl Contest_PrintTextToBg0WindowAt
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -10440,7 +2858,7 @@ _080DCECC:
movs r4, 0
cmp r4, r5
bge _080DCF48
- ldr r7, =gUnknown_02039F00
+ ldr r7, =gContestMonConditions
mov r9, r7
lsls r0, r5, 1
adds r1, r0, 0
@@ -10639,7 +3057,7 @@ sub_80DD04C: @ 80DD04C
movs r4, 0
movs r5, 0xA0
_080DD052:
- ldr r0, =0x0201a004
+ ldr r0, =gHeap+0x1A004
adds r0, r5, r0
ldr r1, =gUnknown_02039F26
adds r1, r4, r1
@@ -11173,7 +3591,7 @@ sub_80DD45C: @ 80DD45C
lsrs r6, r1, 24
ldr r0, =gStringVar1
lsls r1, r4, 6
- ldr r2, =gUnknown_02039E00 + 2
+ ldr r2, =gContestMons + 2
adds r1, r2
bl StringCopy
ldr r0, =gStringVar2
@@ -11253,7 +3671,7 @@ _080DD52C:
bl sub_80DB89C
adds r0, r4, 0
movs r1, 0x1
- bl sub_80DEC30
+ bl Contest_StartTextPrinter
pop {r4-r6}
pop {r0}
bx r0
@@ -12351,7 +4769,7 @@ sub_80DDE30: @ 80DDE30
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080DDE78
- ldr r0, =0x02019000
+ ldr r0, =gHeap+0x19000
ldr r1, =0x06002000
movs r2, 0x80
lsls r2, 5
@@ -12360,7 +4778,7 @@ sub_80DDE30: @ 80DDE30
b _080DDE8C
.pool
_080DDE78:
- ldr r0, =0x02018000
+ ldr r0, =gHeap+0x18000
ldr r1, =0x06002000
movs r2, 0x80
lsls r2, 5
@@ -12747,7 +5165,7 @@ _080DE146:
adds r1, r4, 0
movs r2, 0x14
adds r3, r6, 0
- bl sub_80DECB8
+ bl ContestBG_FillBoxWithIncrementingTile
adds r4, 0x10
lsls r4, 16
lsrs r4, 16
@@ -12766,7 +5184,7 @@ _080DE146:
adds r1, r4, 0
movs r2, 0x14
adds r3, r5, 0
- bl sub_80DECB8
+ bl ContestBG_FillBoxWithIncrementingTile
movs r0, 0x63
bl PlaySE
_080DE1CA:
@@ -12907,7 +5325,7 @@ sub_80DE224: @ 80DE224
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x1
- bl sub_80DED60
+ bl Contest_SetBgCopyFlags
movs r5, 0
ldr r7, =gSprites
movs r6, 0x4
@@ -12970,7 +5388,7 @@ sub_80DE350: @ 80DE350
mov r0, sp
bl CpuSet
movs r0, 0x1
- bl sub_80DED60
+ bl Contest_SetBgCopyFlags
movs r0, 0xA
bl GetGpuReg
add r3, sp, 0x4
@@ -13165,7 +5583,7 @@ _080DE4E2:
b _080DE5B4
.pool
_080DE52C:
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r0, [r0]
ands r1, r0
cmp r1, 0
@@ -13594,7 +6012,7 @@ sub_80DE864: @ 80DE864
bl sub_80DE834
lsls r0, 16
lsrs r5, r0, 16
- ldr r1, =gUnknown_02039E00
+ ldr r1, =gContestMons
lsls r0, r7, 6
adds r0, r1
ldrh r0, [r0]
@@ -13675,7 +6093,7 @@ _080DE920:
lsls r0, 2
adds r0, r1
ldrb r4, [r0, 0x1B]
- ldr r5, =gUnknown_02039E00
+ ldr r5, =gContestMons
lsls r4, 6
adds r0, r4, r5
ldrh r0, [r0]
@@ -13767,7 +6185,7 @@ sub_80DE9DC: @ 80DE9DC
ldr r0, [r6]
ldr r0, [r0, 0x18]
strb r4, [r0, 0x5]
- ldr r5, =gUnknown_02039E00
+ ldr r5, =gContestMons
lsls r4, 6
adds r0, r4, r5
ldrh r0, [r0]
@@ -13919,8 +6337,8 @@ _080DEB64:
.pool
thumb_func_end sub_80DEAA8
- thumb_func_start sub_80DEB70
-sub_80DEB70: @ 80DEB70
+ thumb_func_start Contest_PrintTextToBg0WindowStd
+Contest_PrintTextToBg0WindowStd: @ 80DEB70
push {r4,lr}
sub sp, 0x10
adds r4, r0, 0
@@ -13960,15 +6378,15 @@ sub_80DEB70: @ 80DEB70
adds r0, r4, 0
bl PutWindowTilemap
movs r0, 0
- bl sub_80DED60
+ bl Contest_SetBgCopyFlags
add sp, 0x10
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_80DEB70
+ thumb_func_end Contest_PrintTextToBg0WindowStd
- thumb_func_start sub_80DEBD0
-sub_80DEBD0: @ 80DEBD0
+ thumb_func_start Contest_PrintTextToBg0WindowAt
+Contest_PrintTextToBg0WindowAt: @ 80DEBD0
push {r4,r5,lr}
sub sp, 0x10
adds r5, r0, 0
@@ -14008,15 +6426,15 @@ sub_80DEBD0: @ 80DEBD0
adds r0, r5, 0
bl PutWindowTilemap
movs r0, 0
- bl sub_80DED60
+ bl Contest_SetBgCopyFlags
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_80DEBD0
+ thumb_func_end Contest_PrintTextToBg0WindowAt
- thumb_func_start sub_80DEC30
-sub_80DEC30: @ 80DEC30
+ thumb_func_start Contest_StartTextPrinter
+Contest_StartTextPrinter: @ 80DEC30
push {r4,r5,lr}
sub sp, 0x10
str r0, [sp]
@@ -14057,7 +6475,7 @@ sub_80DEC30: @ 80DEC30
bl AddTextPrinter
b _080DECA4
_080DEC80:
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
adds r0, r5, 0
ands r0, r1
@@ -14078,15 +6496,15 @@ _080DECA4:
movs r0, 0x4
bl PutWindowTilemap
movs r0, 0
- bl sub_80DED60
+ bl Contest_SetBgCopyFlags
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_80DEC30
+ thumb_func_end Contest_StartTextPrinter
- thumb_func_start sub_80DECB8
-sub_80DECB8: @ 80DECB8
+ thumb_func_start ContestBG_FillBoxWithIncrementingTile
+ContestBG_FillBoxWithIncrementingTile: @ 80DECB8
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -14121,17 +6539,17 @@ sub_80DECB8: @ 80DECB8
mov r0, r8
bl WriteSequenceToBgTilemapBuffer
mov r0, r8
- bl sub_80DED60
+ bl Contest_SetBgCopyFlags
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_80DECB8
+ thumb_func_end ContestBG_FillBoxWithIncrementingTile
- thumb_func_start sub_80DED10
-sub_80DED10: @ 80DED10
+ thumb_func_start ContestBG_FillBoxWithTile
+ContestBG_FillBoxWithTile: @ 80DED10
push {r4-r6,lr}
sub sp, 0x10
ldr r4, [sp, 0x20]
@@ -14156,15 +6574,15 @@ sub_80DED10: @ 80DED10
str r6, [sp, 0x8]
movs r4, 0
str r4, [sp, 0xC]
- bl sub_80DECB8
+ bl ContestBG_FillBoxWithIncrementingTile
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_80DED10
+ thumb_func_end ContestBG_FillBoxWithTile
- thumb_func_start sub_80DED4C
-sub_80DED4C: @ 80DED4C
+ thumb_func_start Contest_RunTextPrinters
+Contest_RunTextPrinters: @ 80DED4C
push {lr}
bl RunTextPrinters
movs r0, 0x4
@@ -14173,11 +6591,11 @@ sub_80DED4C: @ 80DED4C
lsrs r0, 16
pop {r1}
bx r1
- thumb_func_end sub_80DED4C
+ thumb_func_end Contest_RunTextPrinters
- thumb_func_start sub_80DED60
-sub_80DED60: @ 80DED60
- ldr r2, =gUnknown_02039F38
+ thumb_func_start Contest_SetBgCopyFlags
+Contest_SetBgCopyFlags: @ 80DED60
+ ldr r2, =sContestBgCopyFlags
movs r1, 0x1
lsls r1, r0
ldrb r0, [r2]
@@ -14185,7 +6603,7 @@ sub_80DED60: @ 80DED60
strb r1, [r2]
bx lr
.pool
- thumb_func_end sub_80DED60
+ thumb_func_end Contest_SetBgCopyFlags
thumb_func_start ResetContestLinkResults
ResetContestLinkResults: @ 80DED74
@@ -14236,7 +6654,7 @@ sub_80DEDA8: @ 80DEDA8
lsrs r0, 24
mov r8, r0
movs r5, 0
- ldr r1, =gUnknown_02039F20
+ ldr r1, =gContestFinalStandings
ldrb r0, [r1]
cmp r0, 0
beq _080DEDE6
@@ -14252,7 +6670,7 @@ _080DEDE6:
ldr r0, [sp]
cmp r0, 0xFF
bne _080DEE00
- ldr r0, =gUnknown_02039F25
+ ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
cmp r5, r0
beq _080DEE00
@@ -14316,7 +6734,7 @@ _080DEE54:
ldr r6, =0x00002e90
adds r2, r0, r6
adds r2, r7
- ldr r4, =gUnknown_02039E00
+ ldr r4, =gContestMons
lsls r5, 6
adds r1, r4, 0
adds r1, 0x38
@@ -14351,7 +6769,7 @@ _080DEE54:
adds r5, r4
adds r1, r5, 0
bl StringCopy
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -14404,7 +6822,7 @@ _080DEF34:
.pool
_080DEF50:
ldr r6, =gUnknown_02039F3C
- ldr r4, =gUnknown_02039E00
+ ldr r4, =gContestMons
lsls r5, 6
adds r0, r4, 0
adds r0, 0x38
@@ -14820,7 +7238,7 @@ sub_80DF250: @ 80DF250
mov r7, sp
adds r7, 0x2
str r7, [sp, 0x24]
- ldr r5, =gUnknown_02039F20
+ ldr r5, =gContestFinalStandings
movs r2, 0
movs r3, 0x80
lsls r3, 17
@@ -14896,11 +7314,11 @@ _080DF2EE:
strb r0, [r2, 0xD]
_080DF30A:
movs r5, 0
- ldr r2, =gUnknown_02039F00
+ ldr r2, =gContestMonConditions
add r2, r10
movs r6, 0
ldrsh r1, [r2, r6]
- ldr r7, =gUnknown_02039F00
+ ldr r7, =gContestMonConditions
movs r3, 0
ldrsh r0, [r7, r3]
cmp r1, r0
@@ -14921,7 +7339,7 @@ _080DF322:
_080DF336:
cmp r5, 0x4
bne _080DF354
- ldr r1, =gUnknown_02039F20
+ ldr r1, =gContestFinalStandings
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
@@ -14939,12 +7357,12 @@ _080DF354:
mov r12, r3
mov r8, r3
movs r5, 0
- ldr r0, =gUnknown_02039F00
+ ldr r0, =gContestMonConditions
add r0, r10
movs r7, 0
ldrsh r6, [r0, r7]
str r6, [sp, 0x34]
- ldr r2, =gUnknown_02039F00
+ ldr r2, =gContestMonConditions
ldr r0, =gUnknown_02039F18
mov r1, r10
adds r6, r1, r0
@@ -15156,8 +7574,8 @@ sub_80DF4F8: @ 80DF4F8
mov r5, r8
push {r5-r7}
sub sp, 0xC
- ldr r1, =gUnknown_02039F20
- ldr r0, =gUnknown_02039F25
+ ldr r1, =gContestFinalStandings
+ ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -15187,7 +7605,7 @@ _080DF528:
lsls r2, r7, 1
lsls r4, r7, 4
mov r8, r4
- ldr r1, =gUnknown_02039F00
+ ldr r1, =gContestMonConditions
adds r0, r2, r1
movs r6, 0
ldrsh r5, [r0, r6]
@@ -15417,7 +7835,7 @@ sub_80DF704: @ 80DF704
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r0, =0x02000000
+ ldr r0, =gHeap
movs r1, 0xD0
lsls r1, 9
adds r2, r0, r1
@@ -15468,7 +7886,7 @@ sub_80DF750: @ 80DF750
bne _080DF766
b _080DF924
_080DF766:
- ldr r0, =0x02000000
+ ldr r0, =gHeap
movs r1, 0xD0
lsls r1, 9
adds r0, r1
@@ -15493,7 +7911,7 @@ _080DF784:
lsrs r7, r0, 24
cmp r7, 0x3
bls _080DF784
- ldr r0, =0x02000000
+ ldr r0, =gHeap
movs r1, 0xD0
lsls r1, 9
adds r0, r1
@@ -15518,7 +7936,7 @@ _080DF7AE:
add r1, sp, 0x4
movs r2, 0x5
movs r3, 0x1
- bl sub_80DEBD0
+ bl Contest_PrintTextToBg0WindowAt
ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x1C]
@@ -15576,7 +7994,7 @@ _080DF80A:
mov r1, r9
movs r2, 0x5
movs r3, 0x1
- bl sub_80DEBD0
+ bl Contest_PrintTextToBg0WindowAt
ldrb r0, [r4]
mov r1, sp
adds r1, r5
@@ -15585,7 +8003,7 @@ _080DF80A:
str r2, [sp]
movs r2, 0x37
movs r3, 0x1
- bl sub_80DEBD0
+ bl Contest_PrintTextToBg0WindowAt
mov r1, r8
lsls r0, r1, 24
lsrs r7, r0, 24
@@ -15664,7 +8082,7 @@ _080DF8CC:
mov r1, r9
movs r2, 0x5
movs r3, 0x1
- bl sub_80DEBD0
+ bl Contest_PrintTextToBg0WindowAt
ldrb r0, [r4]
mov r1, sp
adds r1, r5
@@ -15673,7 +8091,7 @@ _080DF8CC:
str r2, [sp]
movs r2, 0x37
movs r3, 0x1
- bl sub_80DEBD0
+ bl Contest_PrintTextToBg0WindowAt
mov r1, r8
lsls r0, r1, 24
lsrs r7, r0, 24
diff --git a/asm/contest_ai.s b/asm/contest_ai.s
index 3438107eb..ff48661f0 100644
--- a/asm/contest_ai.s
+++ b/asm/contest_ai.s
@@ -39,7 +39,7 @@ _081562DE:
strb r1, [r0]
ldr r0, [r2]
ldr r2, [r0, 0xC]
- ldr r1, =gUnknown_02039E00
+ ldr r1, =gContestMons
adds r0, r2, 0
adds r0, 0x41
ldrb r0, [r0]
@@ -144,7 +144,7 @@ sub_81563B0: @ 81563B0
beq _081564A0
adds r7, r5, 0
ldr r6, =gAIScriptPtr
- ldr r0, =gUnknown_02039E00 + 30
+ ldr r0, =gContestMons + 30
mov r8, r0
_081563CC:
ldr r0, [r7]
@@ -1167,7 +1167,7 @@ sub_8156B88: @ 8156B88
ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
- ldr r1, =gUnknown_02039F00
+ ldr r1, =gContestMonConditions
adds r0, r2, 0
adds r0, 0x41
ldrb r0, [r0]
@@ -1436,7 +1436,7 @@ _08156D9C:
thumb_func_start sub_8156DA0
sub_8156DA0: @ 8156DA0
push {r4,lr}
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0, 0xC]
@@ -1615,7 +1615,7 @@ _08156EFC:
thumb_func_start sub_8156F04
sub_8156F04: @ 8156F04
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
ldr r0, =gContestResources
ldr r0, [r0]
ldr r3, [r0, 0xC]
@@ -1714,7 +1714,7 @@ _08156FC8:
thumb_func_start sub_8156FCC
sub_8156FCC: @ 8156FCC
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
ldr r0, =gContestResources
ldr r0, [r0]
ldr r3, [r0, 0xC]
@@ -1818,7 +1818,7 @@ _0815709C:
thumb_func_start sub_81570A0
sub_81570A0: @ 81570A0
push {r4-r7,lr}
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
ldr r5, =gContestResources
ldr r0, [r5]
ldr r1, [r0, 0xC]
@@ -1923,7 +1923,7 @@ _0815716C:
thumb_func_start sub_8157174
sub_8157174: @ 8157174
push {r4-r7,lr}
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
ldr r5, =gContestResources
ldr r0, [r5]
ldr r1, [r0, 0xC]
@@ -2028,7 +2028,7 @@ _08157240:
thumb_func_start sub_8157248
sub_8157248: @ 8157248
push {r4,lr}
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
ldr r0, =gContestResources
ldr r0, [r0]
ldr r4, [r0, 0xC]
@@ -2208,7 +2208,7 @@ _081573B0:
thumb_func_start sub_81573B4
sub_81573B4: @ 81573B4
push {r4,lr}
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
ldr r0, =gContestResources
ldr r0, [r0]
ldr r4, [r0, 0xC]
@@ -2388,7 +2388,7 @@ _0815751C:
thumb_func_start sub_8157520
sub_8157520: @ 8157520
push {r4,r5,lr}
- ldr r3, =gUnknown_02039E00
+ ldr r3, =gContestMons
ldr r5, =gContestResources
ldr r4, [r5]
ldr r1, [r4, 0xC]
@@ -2575,7 +2575,7 @@ _08157684:
sub_8157688: @ 8157688
push {r4-r6,lr}
movs r3, 0
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
@@ -2711,7 +2711,7 @@ _08157788:
sub_8157790: @ 8157790
push {r4-r6,lr}
movs r3, 0
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
@@ -2846,7 +2846,7 @@ _08157890:
sub_8157898: @ 8157898
push {r4-r6,lr}
movs r5, 0
- ldr r3, =gUnknown_02039E00
+ ldr r3, =gContestMons
ldr r6, =gContestResources
ldr r4, [r6]
ldr r1, [r4, 0xC]
@@ -3729,7 +3729,7 @@ sub_8157F5C: @ 8157F5C
ldr r1, =gContestResources
ldr r1, [r1]
ldr r3, [r1, 0xC]
- ldr r2, =gUnknown_02039F00
+ ldr r2, =gContestMonConditions
lsrs r0, 23
adds r0, r2
adds r1, r3, 0
@@ -5030,7 +5030,7 @@ sub_8158948: @ 8158948
push {r4-r6,lr}
movs r5, 0
movs r4, 0
- ldr r6, =gUnknown_02039E00 + 30
+ ldr r6, =gContestMons + 30
_08158950:
lsls r1, r4, 1
ldr r0, =gContestResources
@@ -5156,7 +5156,7 @@ sub_8158A34: @ 8158A34
lsls r0, 8
orrs r5, r0
movs r4, 0
- ldr r0, =gUnknown_02039E00
+ ldr r0, =gContestMons
mov r12, r0
ldr r2, =gContestResources
ldr r0, [r2]
diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s
index 36f444955..9eefa154f 100644
--- a/asm/contest_link_80F57C4.s
+++ b/asm/contest_link_80F57C4.s
@@ -276,10 +276,10 @@ sub_80F5A74: @ 80F5A74
lsrs r0, 24
adds r5, r0, 0
lsls r1, r5, 6
- ldr r0, =gUnknown_02039E00
+ ldr r0, =gContestMons
adds r7, r1, r0
ldr r6, =gDisplayedStringBattle
- ldr r0, =gUnknown_02039F25
+ ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
cmp r5, r0
bne _080F5A96
@@ -398,7 +398,7 @@ sub_80F5B00: @ 80F5B00
movs r1, 0x14
bl CreateTask
bl sub_80F7880
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -503,7 +503,7 @@ sub_80F5CE4: @ 80F5CE4
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r3, =gUnknown_02039F2A
+ ldr r3, =gIsLinkContest
ldrb r1, [r3]
movs r0, 0x1
ands r0, r1
@@ -535,8 +535,8 @@ _080F5D20:
b _080F5E2E
_080F5D2A:
bl sub_80DBED4
- ldr r1, =gUnknown_02039F20
- ldr r0, =gUnknown_02039F25
+ ldr r1, =gContestFinalStandings
+ ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -648,7 +648,7 @@ _080F5E2E:
lsls r0, 3
adds r4, r0, r1
strh r2, [r4, 0x8]
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r5, 0x1
adds r0, r5, 0
@@ -663,8 +663,8 @@ _080F5E2E:
_080F5E78:
movs r0, 0x24
bl IncrementGameStat
- ldr r1, =gUnknown_02039F20
- ldr r0, =gUnknown_02039F25
+ ldr r1, =gContestFinalStandings
+ ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -1160,7 +1160,7 @@ _080F6298:
adds r1, r0
lsls r1, 3
adds r1, r7
- ldr r0, =gUnknown_02039F20
+ ldr r0, =gContestFinalStandings
adds r0, r4, r0
ldrb r0, [r0]
strh r0, [r1, 0x8]
@@ -1201,7 +1201,7 @@ _080F62F2:
adds r0, 0x1
strh r0, [r4, 0x8]
movs r4, 0
- ldr r1, =gUnknown_02039F20
+ ldr r1, =gContestFinalStandings
ldrb r0, [r1]
cmp r0, 0
beq _080F631C
@@ -1236,10 +1236,10 @@ _080F6334:
movs r0, 0
strh r0, [r2, 0xA]
movs r4, 0
- ldr r1, =gUnknown_02039F20
+ ldr r1, =gContestFinalStandings
ldrb r0, [r1]
ldr r7, =gStringVar1
- ldr r2, =gUnknown_02039E00 + 13
+ ldr r2, =gContestMons + 13
mov r8, r2
cmp r0, 0
beq _080F636E
@@ -1355,12 +1355,12 @@ _080F6454:
adds r0, r3, 0
strh r0, [r1]
movs r2, 0
- ldr r1, =gUnknown_02039F20
+ ldr r1, =gContestFinalStandings
ldrb r0, [r1]
lsls r4, r7, 2
mov r10, r4
- ldr r3, =gUnknown_02039E00
- ldr r4, =gUnknown_02039F25
+ ldr r3, =gContestMons
+ ldr r4, =gContestPlayerMonIndex
mov r9, r4
ldr r4, =gMonFrontPicTable
mov r12, r4
@@ -1623,14 +1623,14 @@ sub_80F66B4: @ 80F66B4
ands r0, r1
cmp r0, 0
beq _080F6702
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
adds r0, r2, 0
ands r0, r1
lsls r6, r7, 2
cmp r0, 0
bne _080F66F2
- ldr r5, =gUnknown_02039E00
+ ldr r5, =gContestMons
movs r4, 0x3
_080F66DA:
ldrh r0, [r5]
@@ -1664,7 +1664,7 @@ sub_80F671C: @ 80F671C
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -1710,7 +1710,7 @@ sub_80F677C: @ 80F677C
ldrb r0, [r0]
cmp r0, 0
bne _080F67AC
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1739,14 +1739,14 @@ task_repel: @ 80F67C4
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080F67E6
- ldr r1, =gUnknown_02039F20
- ldr r0, =gUnknown_02039F25
+ ldr r1, =gContestFinalStandings
+ ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -1980,7 +1980,7 @@ sub_80F69B8: @ 80F69B8
lsrs r5, r2, 24
lsls r3, 24
lsrs r6, r3, 24
- ldr r0, =gUnknown_02039F25
+ ldr r0, =gContestPlayerMonIndex
movs r2, 0
ldrb r0, [r0]
cmp r4, r0
@@ -2059,7 +2059,7 @@ sub_80F6A64: @ 80F6A64
lsls r1, 24
lsrs r6, r1, 24
movs r5, 0
- ldr r4, =gUnknown_02039E00
+ ldr r4, =gContestMons
_080F6A74:
ldrh r0, [r4]
lsls r1, r5, 24
@@ -2088,7 +2088,7 @@ sub_80F6A9C: @ 80F6A9C
movs r5, 0xA0
lsls r5, 16
_080F6AA6:
- ldr r1, =gUnknown_02039E00
+ ldr r1, =gContestMons
lsls r0, r4, 6
adds r0, r1
ldrh r0, [r0]
@@ -2119,7 +2119,7 @@ _080F6AA6:
thumb_func_start sub_80F6AE8
sub_80F6AE8: @ 80F6AE8
push {r4,lr}
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -2955,7 +2955,7 @@ sub_80F71C8: @ 80F71C8
sub sp, 0xC
movs r5, 0x5
movs r4, 0x1
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
adds r0, r4, 0
ands r0, r1
@@ -3104,7 +3104,7 @@ sub_80F7310: @ 80F7310
lsls r0, 24
lsls r1, 24
lsrs r5, r1, 24
- ldr r1, =gUnknown_02039F00
+ ldr r1, =gContestMonConditions
lsrs r0, 23
adds r0, r1
movs r1, 0
@@ -3322,7 +3322,7 @@ sub_80F74BC: @ 80F74BC
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
- ldr r1, =gUnknown_02039F20
+ ldr r1, =gContestFinalStandings
ldrb r0, [r1]
ldr r6, =gUnknown_0203A034
cmp r0, 0
@@ -3729,7 +3729,7 @@ sub_80F77E0: @ 80F77E0
adds r1, r2
strh r4, [r1, 0x8]
strh r5, [r1, 0xA]
- ldr r0, =gUnknown_02039E00
+ ldr r0, =gContestMons
lsls r4, 6
adds r4, r0
ldrh r0, [r4]
@@ -3765,7 +3765,7 @@ sub_80F7824: @ 80F7824
strh r0, [r4, 0x1C]
ldrh r0, [r4, 0xC]
ldrb r2, [r4, 0x1E]
- ldr r1, =gUnknown_02039E00
+ ldr r1, =gContestMons
lsls r3, r5, 6
adds r1, 0x38
adds r3, r1
@@ -3847,7 +3847,7 @@ _080F78E4:
mov r8, r5
mov r10, r5
_080F78EA:
- ldr r0, =gUnknown_02039F00
+ ldr r0, =gContestMonConditions
mov r1, r8
lsls r7, r1, 1
adds r0, r7, r0
@@ -3987,7 +3987,7 @@ _080F79CC:
negs r0, r0
_080F7A02:
strb r0, [r1, 0x12]
- ldr r0, =gUnknown_02039F20
+ ldr r0, =gContestFinalStandings
add r0, r8
ldrb r0, [r0]
cmp r0, 0
@@ -4721,8 +4721,8 @@ _080F7FEE:
sub_80F7FFC: @ 80F7FFC
push {r4-r7,lr}
sub sp, 0x4
- ldr r1, =gUnknown_02039F20
- ldr r0, =gUnknown_02039F25
+ ldr r1, =gContestFinalStandings
+ ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -4994,7 +4994,7 @@ sub_80F8264: @ 80F8264
ldr r0, =gSpecialVar_0x8006
ldrh r1, [r0]
lsls r1, 6
- ldr r0, =gUnknown_02039E00 + 13
+ ldr r0, =gContestMons + 13
adds r1, r0
adds r0, r4, 0
bl StringCopy
@@ -5013,7 +5013,7 @@ sub_80F8290: @ 80F8290
ldr r1, =gSpecialVar_0x8006
ldrh r1, [r1]
lsls r1, 6
- ldr r2, =gUnknown_02039E00 + 2
+ ldr r2, =gContestMons + 2
adds r1, r2
bl StringCopy
pop {r0}
@@ -5027,7 +5027,7 @@ sub_80F82B4: @ 80F82B4
movs r1, 0
movs r2, 0
ldr r5, =gSpecialVar_0x8004
- ldr r4, =gUnknown_02039F00
+ ldr r4, =gContestMonConditions
ldr r0, =gSpecialVar_0x8006
ldrh r0, [r0]
lsls r0, 1
@@ -5060,7 +5060,7 @@ _080F82DC:
thumb_func_start sub_80F82FC
sub_80F82FC: @ 80F82FC
ldr r2, =gSpecialVar_0x8004
- ldr r1, =gUnknown_02039F00
+ ldr r1, =gContestMonConditions
ldr r0, =gSpecialVar_0x8006
ldrh r0, [r0]
lsls r0, 1
@@ -5075,7 +5075,7 @@ sub_80F82FC: @ 80F82FC
sub_80F831C: @ 80F831C
push {lr}
movs r1, 0
- ldr r2, =gUnknown_02039F20
+ ldr r2, =gContestFinalStandings
ldrb r0, [r2]
ldr r3, =gSpecialVar_0x8005
cmp r0, 0
@@ -5101,10 +5101,10 @@ _080F833C:
sub_80F834C: @ 80F834C
push {r4,lr}
movs r1, 0
- ldr r2, =gUnknown_02039F20
+ ldr r2, =gContestFinalStandings
ldrb r0, [r2]
ldr r4, =gStringVar3
- ldr r3, =gUnknown_02039E00 + 13
+ ldr r3, =gContestMons + 13
cmp r0, 0
beq _080F836E
_080F835C:
@@ -5134,10 +5134,10 @@ _080F836E:
sub_80F8390: @ 80F8390
push {r4,lr}
movs r1, 0
- ldr r2, =gUnknown_02039F20
+ ldr r2, =gContestFinalStandings
ldrb r0, [r2]
ldr r4, =gStringVar1
- ldr r3, =gUnknown_02039E00 + 2
+ ldr r3, =gContestMons + 2
cmp r0, 0
beq _080F83B2
_080F83A0:
@@ -5216,7 +5216,7 @@ sub_80F840C: @ 80F840C
thumb_func_start sub_80F8438
sub_80F8438: @ 80F8438
ldr r2, =gSpecialVar_0x8004
- ldr r1, =gUnknown_02039E00
+ ldr r1, =gContestMons
ldr r0, =gSpecialVar_0x8006
ldrh r0, [r0]
lsls r0, 6
@@ -5272,7 +5272,7 @@ sub_80F8484: @ 80F8484
thumb_func_start sub_80F84B0
sub_80F84B0: @ 80F84B0
ldr r0, =gSpecialVar_0x8004
- ldr r1, =gUnknown_02039F25
+ ldr r1, =gContestPlayerMonIndex
ldrb r1, [r1]
strh r1, [r0]
bx lr
@@ -5314,7 +5314,7 @@ sub_80F8508: @ 80F8508
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
@@ -5578,7 +5578,7 @@ sub_80F8714: @ 80F8714
b _080F877E
.pool
_080F8748:
- ldr r5, =gUnknown_02039E00 + 2
+ ldr r5, =gContestMons + 2
movs r4, 0x3
_080F874C:
adds r0, r5, 0
diff --git a/asm/contest_link_80FC4F4.s b/asm/contest_link_80FC4F4.s
index 621e26038..5934c3623 100644
--- a/asm/contest_link_80FC4F4.s
+++ b/asm/contest_link_80FC4F4.s
@@ -11,7 +11,7 @@ sub_80FC4F4: @ 80FC4F4
adds r2, r0, 0
lsls r4, r1, 16
lsrs r4, 16
- ldr r5, =0x0201c000
+ ldr r5, =gDecompressionBuffer
adds r0, r5, 0
adds r1, r2, 0
adds r2, r4, 0
@@ -139,12 +139,12 @@ sub_80FC5DC: @ 80FC5DC
cmp r0, 0
beq _080FC650
bl GetMultiplayerId
- ldr r1, =gUnknown_02039F25
+ ldr r1, =gContestPlayerMonIndex
strb r0, [r1]
bl GetLinkPlayerCount
ldr r4, =gUnknown_02039F30
strb r0, [r4]
- ldr r1, =gUnknown_02039F2A
+ ldr r1, =gIsLinkContest
movs r0, 0x1
strb r0, [r1]
ldr r0, =gWirelessCommType
@@ -182,7 +182,7 @@ _080FC63A:
ldrb r6, [r6]
cmp r3, r6
bge _080FC64A
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
@@ -201,7 +201,7 @@ _080FC650:
sub_80FC670: @ 80FC670
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
@@ -285,10 +285,10 @@ _080FC6FE:
cmp r0, 0
beq _080FC7F4
ldr r0, =gBlockSendBuffer
- ldr r1, =gUnknown_02039F25
+ ldr r1, =gContestPlayerMonIndex
ldrb r1, [r1]
lsls r1, 6
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
adds r1, r2
movs r2, 0x40
bl memcpy
@@ -298,10 +298,10 @@ _080FC6FE:
.pool
_080FC738:
ldr r0, =gBlockSendBuffer
- ldr r1, =gUnknown_02039F25
+ ldr r1, =gContestPlayerMonIndex
ldrb r1, [r1]
lsls r1, 6
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
adds r1, r2
movs r2, 0x40
bl memcpy
@@ -321,7 +321,7 @@ _080FC758:
ldr r6, =gLinkPlayers
_080FC770:
lsls r4, r5, 6
- ldr r0, =gUnknown_02039E00
+ ldr r0, =gContestMons
adds r4, r0
lsls r1, r5, 8
ldr r0, =gBlockRecvBuffer
@@ -434,7 +434,7 @@ _080FC858:
adds r1, r4, 0
movs r2, 0x4
bl memcpy
- ldr r0, =gUnknown_030060B8
+ ldr r0, =gContestRngValue
adds r1, r4, 0
movs r2, 0x4
bl memcpy
@@ -603,7 +603,7 @@ _080FC9C4:
lsls r0, 24
cmp r0, 0
beq _080FC9F0
- ldr r0, =gUnknown_02039F25
+ ldr r0, =gContestPlayerMonIndex
movs r1, 0x1
bl sub_80FC4F4
cmp r0, 0x1
@@ -659,7 +659,7 @@ _080FCA30:
beq _080FCAB2
ldr r0, =gContestResources
ldr r2, [r0]
- ldr r0, =gUnknown_02039F25
+ ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
lsls r1, r0, 3
subs r1, r0
@@ -860,7 +860,7 @@ _080FCC08:
lsls r0, 24
cmp r0, 0
beq _080FCC82
- ldr r0, =gUnknown_02039F20
+ ldr r0, =gContestFinalStandings
movs r1, 0x4
_080FCC16:
bl sub_80FC4F4
@@ -881,7 +881,7 @@ _080FCC38:
lsls r0, 24
cmp r0, 0
beq _080FCC82
- ldr r0, =gUnknown_02039F20
+ ldr r0, =gContestFinalStandings
ldr r1, =gUnknown_02039F2B
ldrb r1, [r1]
lsls r1, 8
@@ -1262,7 +1262,7 @@ _080FCF80:
lsls r0, 24
cmp r0, 0
beq _080FCFBE
- ldr r0, =gUnknown_02039F00
+ ldr r0, =gContestMonConditions
movs r1, 0x8
bl sub_80FC4F4
cmp r0, 0x1
@@ -1274,7 +1274,7 @@ _080FCF9C:
lsls r0, 24
cmp r0, 0
beq _080FCFBE
- ldr r0, =gUnknown_02039F00
+ ldr r0, =gContestMonConditions
ldr r1, =gUnknown_02039F2B
ldrb r1, [r1]
lsls r1, 8
diff --git a/asm/contest_link_81D9DE4.s b/asm/contest_link_81D9DE4.s
index 12eb159f7..35191e10f 100644
--- a/asm/contest_link_81D9DE4.s
+++ b/asm/contest_link_81D9DE4.s
@@ -88,8 +88,8 @@ _081D9EA4:
_081D9EB4:
bl GetMonData
strb r0, [r4]
- ldr r5, =gUnknown_02039E00
- ldr r4, =gUnknown_02039F25
+ ldr r5, =gContestMons
+ ldr r4, =gContestPlayerMonIndex
ldrb r0, [r4]
lsls r0, 6
adds r0, r5
@@ -266,7 +266,7 @@ _081DA02A:
lsls r0, 24
cmp r0, 0
bne _081DA0B8
- ldr r0, =gUnknown_02039E00
+ ldr r0, =gContestMons
adds r1, r0, 0
adds r1, 0x2C
ldrb r2, [r1]
@@ -438,10 +438,10 @@ _081DA1A4:
lsls r0, 24
cmp r0, 0
beq _081DA224
- ldr r0, =gUnknown_02039F25
+ ldr r0, =gContestPlayerMonIndex
ldrb r0, [r0]
lsls r0, 6
- ldr r1, =gUnknown_02039E00
+ ldr r1, =gContestMons
adds r0, r1
movs r1, 0x40
bl sub_80FC4F4
@@ -466,7 +466,7 @@ _081DA1D4:
ldr r6, =gLinkPlayers
_081DA1EC:
lsls r4, r5, 6
- ldr r0, =gUnknown_02039E00
+ ldr r0, =gContestMons
adds r4, r0
lsls r1, r5, 8
ldr r0, =gBlockRecvBuffer
@@ -558,7 +558,7 @@ _081DA2AC:
adds r1, r4, 0
movs r2, 0x4
bl memcpy
- ldr r0, =gUnknown_030060B8
+ ldr r0, =gContestRngValue
adds r1, r4, 0
movs r2, 0x4
bl memcpy
@@ -823,7 +823,7 @@ _081DA4CC:
ldr r0, =gUnknown_02039F30
ldrb r2, [r0]
lsls r0, r2, 6
- ldr r1, =gUnknown_02039E00
+ ldr r1, =gContestMons
adds r0, r1
movs r1, 0x4
subs r1, r2
@@ -847,7 +847,7 @@ _081DA50C:
ldr r4, =gUnknown_02039F30
ldrb r3, [r4]
lsls r0, r3, 6
- ldr r5, =gUnknown_02039E00
+ ldr r5, =gContestMons
adds r0, r5
ldr r1, =gBlockRecvBuffer
movs r2, 0x4
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index c0becc6da..a1f115376 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -5,1279 +5,6 @@
.text
- thumb_func_start MovementType_Player
-@ void MovementType_Player(struct obj *object)
-MovementType_Player: @ 808A998
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gEventObjects
- adds r0, r2
- ldr r2, =EventObjectCB2_NoMovement2
- bl UpdateEventObjectCurrentMovement
- pop {r0}
- bx r0
- .pool
- thumb_func_end MovementType_Player
-
- thumb_func_start EventObjectCB2_NoMovement2
-EventObjectCB2_NoMovement2: @ 808A9BC
- movs r0, 0
- bx lr
- thumb_func_end EventObjectCB2_NoMovement2
-
- thumb_func_start player_step
-@ void player_step(int dpad_direction, int buttons_new, int buttons_held)
-player_step: @ 808A9C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- ldr r4, =gPlayerAvatar
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl sub_808C280
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- bne _0808AA26
- adds r0, r7, 0
- adds r1, r6, 0
- bl Bike_TryAcroBikeHistoryUpdate
- adds r0, r5, 0
- mov r1, r8
- bl TryInterruptEventObjectSpecialAnim
- lsls r0, 24
- cmp r0, 0
- bne _0808AA26
- adds r0, r5, 0
- bl npc_clear_strange_bits
- bl DoPlayerAvatarTransition
- bl TryDoMetatileBehaviorForcedMovment
- lsls r0, 24
- cmp r0, 0
- bne _0808AA26
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- bl MovePlayerAvatarUsingKeypadInput
- bl PlayerAllowForcedMovementIfMovingSameDirection
-_0808AA26:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end player_step
-
- thumb_func_start TryInterruptEventObjectSpecialAnim
-@ bool8 TryInterruptEventObjectSpecialAnim(struct npc_state *eventObject, u8 direction)
-TryInterruptEventObjectSpecialAnim: @ 808AA38
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- adds r6, r5, 0
- bl EventObjectIsMovementOverridden
- lsls r0, 24
- cmp r0, 0
- beq _0808AA92
- adds r0, r4, 0
- bl EventObjectClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- bne _0808AA92
- adds r0, r4, 0
- bl EventObjectGetHeldMovementActionId
- lsls r0, 24
- movs r1, 0xE7
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x3
- bhi _0808AA70
- cmp r5, 0
- bne _0808AA74
-_0808AA70:
- movs r0, 0x1
- b _0808AA94
-_0808AA74:
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- cmp r0, r5
- beq _0808AA84
-_0808AA7C:
- adds r0, r4, 0
- bl EventObjectClearHeldMovement
- b _0808AA92
-_0808AA84:
- adds r0, r6, 0
- bl sub_808B028
- lsls r0, 24
- cmp r0, 0
- beq _0808AA7C
- b _0808AA70
-_0808AA92:
- movs r0, 0
-_0808AA94:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end TryInterruptEventObjectSpecialAnim
-
- thumb_func_start npc_clear_strange_bits
-@ void npc_clear_strange_bits(struct npc_state *eventObject)
-npc_clear_strange_bits: @ 808AA9C
- ldrb r2, [r0, 0x1]
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- movs r2, 0x5
- negs r2, r2
- ands r1, r2
- adds r2, 0x2
- ands r1, r2
- strb r1, [r0, 0x1]
- ldr r2, =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bx lr
- .pool
- thumb_func_end npc_clear_strange_bits
-
- thumb_func_start MovePlayerAvatarUsingKeypadInput
-@ void MovePlayerAvatarUsingKeypadInput(int dpad_direction, int buttons_new, int buttons_held)
-MovePlayerAvatarUsingKeypadInput: @ 808AAC0
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _0808AAE8
- adds r0, r3, 0
- adds r1, r4, 0
- bl MovePlayerOnBike
- b _0808AAF0
- .pool
-_0808AAE8:
- adds r0, r3, 0
- adds r1, r2, 0
- bl MovePlayerNotOnBike
-_0808AAF0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end MovePlayerAvatarUsingKeypadInput
-
- thumb_func_start PlayerAllowForcedMovementIfMovingSameDirection
-@ void PlayerAllowForcedMovementIfMovingSameDirection()
-PlayerAllowForcedMovementIfMovingSameDirection: @ 808AAF8
- push {lr}
- ldr r2, =gPlayerAvatar
- ldrb r0, [r2, 0x2]
- cmp r0, 0x2
- bne _0808AB0A
- ldrb r1, [r2]
- movs r0, 0xDF
- ands r0, r1
- strb r0, [r2]
-_0808AB0A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end PlayerAllowForcedMovementIfMovingSameDirection
-
- thumb_func_start TryDoMetatileBehaviorForcedMovment
-@ bool8 TryDoMetatileBehaviorForcedMovment()
-TryDoMetatileBehaviorForcedMovment: @ 808AB14
- push {r4,lr}
- ldr r4, =gUnknown_08497444
- bl GetForcedMovementByMetatileBehavior
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end TryDoMetatileBehaviorForcedMovment
-
- thumb_func_start GetForcedMovementByMetatileBehavior
-@ u8 GetForcedMovementByMetatileBehavior()
-GetForcedMovementByMetatileBehavior: @ 808AB38
- push {r4-r6,lr}
- ldr r3, =gPlayerAvatar
- ldrb r1, [r3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0808AB8A
- ldr r2, =gEventObjects
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r5, [r0, 0x1E]
- movs r4, 0
- ldr r6, =gUnknown_084973FC
-_0808AB58:
- lsls r0, r4, 2
- adds r0, r6
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _0808AB80
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _0808AB8C
- .pool
-_0808AB80:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x11
- bls _0808AB58
-_0808AB8A:
- movs r0, 0
-_0808AB8C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetForcedMovementByMetatileBehavior
-
- thumb_func_start ForcedMovement_None
-ForcedMovement_None: @ 808AB94
- push {r4,lr}
- ldr r4, =gPlayerAvatar
- ldrb r1, [r4]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0808ABCE
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r0, r1
- ldrb r2, [r0, 0x1]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldrb r1, [r0, 0x18]
- lsls r1, 28
- lsrs r1, 28
- bl SetEventObjectDirection
- ldrb r1, [r4]
- movs r0, 0xBF
- ands r0, r1
- strb r0, [r4]
-_0808ABCE:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_None
-
- thumb_func_start DoForcedMovement
-DoForcedMovement: @ 808ABE0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, =gPlayerAvatar
- adds r0, r5, 0
- bl CheckForPlayerAvatarCollision
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldrb r0, [r6]
- movs r1, 0x40
- mov r10, r1
- movs r1, 0
- mov r8, r1
- mov r1, r10
- orrs r0, r1
- strb r0, [r6]
- cmp r4, 0
- beq _0808AC3C
- bl ForcedMovement_None
- cmp r4, 0x4
- bhi _0808AC24
- movs r0, 0
- b _0808AC48
- .pool
-_0808AC24:
- cmp r7, 0x6
- bne _0808AC2E
- adds r0, r5, 0
- bl PlayerJumpLedge
-_0808AC2E:
- ldrb r0, [r6]
- mov r1, r10
- orrs r0, r1
- strb r0, [r6]
- movs r0, 0x2
- strb r0, [r6, 0x2]
- b _0808AC46
-_0808AC3C:
- movs r0, 0x2
- strb r0, [r6, 0x2]
- adds r0, r5, 0
- bl _call_via_r9
-_0808AC46:
- movs r0, 0x1
-_0808AC48:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end DoForcedMovement
-
- thumb_func_start DoForcedMovementInCurrentDirection
-DoForcedMovementInCurrentDirection: @ 808AC58
- push {lr}
- adds r1, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r2, [r0, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gEventObjects
- adds r0, r2
- ldrb r2, [r0, 0x1]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r0, 0x1]
- ldrb r0, [r0, 0x18]
- lsrs r0, 4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end DoForcedMovementInCurrentDirection
-
- thumb_func_start ForcedMovement_Slip
-ForcedMovement_Slip: @ 808AC8C
- push {lr}
- ldr r0, =PlayerGoSpeed2
- bl DoForcedMovementInCurrentDirection
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_Slip
-
- thumb_func_start ForcedMovement_WalkSouth
-ForcedMovement_WalkSouth: @ 808ACA0
- push {lr}
- ldr r1, =PlayerGoSpeed1
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_WalkSouth
-
- thumb_func_start ForcedMovement_WalkNorth
-ForcedMovement_WalkNorth: @ 808ACB8
- push {lr}
- ldr r1, =PlayerGoSpeed1
- movs r0, 0x2
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_WalkNorth
-
- thumb_func_start ForcedMovement_WalkWest
-ForcedMovement_WalkWest: @ 808ACD0
- push {lr}
- ldr r1, =PlayerGoSpeed1
- movs r0, 0x3
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_WalkWest
-
- thumb_func_start ForcedMovement_WalkEast
-ForcedMovement_WalkEast: @ 808ACE8
- push {lr}
- ldr r1, =PlayerGoSpeed1
- movs r0, 0x4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_WalkEast
-
- thumb_func_start ForcedMovement_PushedSouthByCurrent
-ForcedMovement_PushedSouthByCurrent: @ 808AD00
- push {lr}
- ldr r1, =PlayerGoSpeed3
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_PushedSouthByCurrent
-
- thumb_func_start ForcedMovement_PushedNorthByCurrent
-ForcedMovement_PushedNorthByCurrent: @ 808AD18
- push {lr}
- ldr r1, =PlayerGoSpeed3
- movs r0, 0x2
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_PushedNorthByCurrent
-
- thumb_func_start ForcedMovement_PushedWestByCurrent
-ForcedMovement_PushedWestByCurrent: @ 808AD30
- push {lr}
- ldr r1, =PlayerGoSpeed3
- movs r0, 0x3
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_PushedWestByCurrent
-
- thumb_func_start ForcedMovement_PushedEastByCurrent
-ForcedMovement_PushedEastByCurrent: @ 808AD48
- push {lr}
- ldr r1, =PlayerGoSpeed3
- movs r0, 0x4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_PushedEastByCurrent
-
- thumb_func_start ForcedMovement_Slide
-ForcedMovement_Slide: @ 808AD60
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gPlayerAvatar
- ldrb r3, [r2, 0x5]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- ldr r3, =gEventObjects
- adds r2, r3
- ldrb r3, [r2, 0x1]
- movs r4, 0x4
- orrs r3, r4
- movs r4, 0x2
- orrs r3, r4
- strb r3, [r2, 0x1]
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_Slide
-
- thumb_func_start ForcedMovement_SlideSouth
-ForcedMovement_SlideSouth: @ 808AD98
- push {lr}
- ldr r1, =PlayerGoSpeed2
- movs r0, 0x1
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_SlideSouth
-
- thumb_func_start ForcedMovement_SlideNorth
-ForcedMovement_SlideNorth: @ 808ADB0
- push {lr}
- ldr r1, =PlayerGoSpeed2
- movs r0, 0x2
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_SlideNorth
-
- thumb_func_start ForcedMovement_SlideWest
-ForcedMovement_SlideWest: @ 808ADC8
- push {lr}
- ldr r1, =PlayerGoSpeed2
- movs r0, 0x3
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_SlideWest
-
- thumb_func_start ForcedMovement_SlideEast
-ForcedMovement_SlideEast: @ 808ADE0
- push {lr}
- ldr r1, =PlayerGoSpeed2
- movs r0, 0x4
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end ForcedMovement_SlideEast
-
- thumb_func_start ForcedMovement_0xBB
-ForcedMovement_0xBB: @ 808ADF8
- push {lr}
- bl sub_808C4D8
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ForcedMovement_0xBB
-
- thumb_func_start ForcedMovement_0xBC
-ForcedMovement_0xBC: @ 808AE04
- push {lr}
- bl sub_808C5B0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end ForcedMovement_0xBC
-
- thumb_func_start ForcedMovement_MuddySlope
-ForcedMovement_MuddySlope: @ 808AE10
- push {r4,lr}
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r4, r0, r1
- ldrb r1, [r4, 0x18]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x20
- bne _0808AE36
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bgt _0808AE60
-_0808AE36:
- movs r0, 0
- bl Bike_UpdateBikeCounterSpeed
- ldrb r0, [r4, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r1, =PlayerGoSpeed2
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- b _0808AE62
- .pool
-_0808AE60:
- movs r0, 0
-_0808AE62:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ForcedMovement_MuddySlope
-
- thumb_func_start MovePlayerNotOnBike
-@ void MovePlayerNotOnBike(u8 direction, u8 heldKeys)
-MovePlayerNotOnBike: @ 808AE68
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r6, =gUnknown_08497490
- adds r0, r4, 0
- bl CheckMovementInputNotOnBike
- lsls r0, 24
- lsrs r0, 22
- adds r0, r6
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl _call_via_r2
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end MovePlayerNotOnBike
-
- thumb_func_start CheckMovementInputNotOnBike
-@ u8 CheckMovementInputNotOnBike(u8 direction)
-CheckMovementInputNotOnBike: @ 808AE98
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0808AEB0
- ldr r0, =gPlayerAvatar
- strb r4, [r0, 0x2]
- movs r0, 0
- b _0808AED2
- .pool
-_0808AEB0:
- bl GetPlayerMovementDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _0808AECC
- ldr r1, =gPlayerAvatar
- ldrb r0, [r1, 0x2]
- cmp r0, 0x2
- beq _0808AECC
- movs r0, 0x1
- b _0808AED0
- .pool
-_0808AECC:
- ldr r1, =gPlayerAvatar
- movs r0, 0x2
-_0808AED0:
- strb r0, [r1, 0x2]
-_0808AED2:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CheckMovementInputNotOnBike
-
- thumb_func_start PlayerNotOnBikeNotMoving
-@ void PlayerNotOnBikeNotMoving(u8 direction, u8 heldKeys)
-PlayerNotOnBikeNotMoving: @ 808AEDC
- push {lr}
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- bl PlayerFaceDirection
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeNotMoving
-
- thumb_func_start PlayerNotOnBikeTurningInPlace
-@ void PlayerNotOnBikeTurningInPlace(u8 direction, u8 heldKeys)
-PlayerNotOnBikeTurningInPlace: @ 808AEF0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl PlayerTurnInPlace
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeTurningInPlace
-
- thumb_func_start PlayerNotOnBikeMoving
-@ void PlayerNotOnBikeMoving(u8 direction, u8 heldKeys)
-PlayerNotOnBikeMoving: @ 808AF00
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- adds r0, r5, 0
- bl CheckForPlayerAvatarCollision
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0808AF4E
- cmp r4, 0x6
- bne _0808AF24
- adds r0, r5, 0
- bl PlayerJumpLedge
- b _0808AFB6
-_0808AF24:
- cmp r4, 0x4
- bne _0808AF3C
- adds r0, r5, 0
- bl IsPlayerCollidingWithFarawayIslandMew
- lsls r0, 24
- cmp r0, 0
- beq _0808AF3C
- adds r0, r5, 0
- bl PlayerNotOnBikeCollideWithFarawayIslandMew
- b _0808AFB6
-_0808AF3C:
- subs r0, r4, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _0808AFB6
- adds r0, r5, 0
- bl PlayerNotOnBikeCollide
- b _0808AFB6
-_0808AF4E:
- ldr r4, =gPlayerAvatar
- ldrb r1, [r4]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0808AF68
- adds r0, r5, 0
- bl PlayerGoSpeed2
- b _0808AFB6
- .pool
-_0808AF68:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0808AFB0
- movs r0, 0x2
- ands r6, r0
- cmp r6, 0
- beq _0808AFB0
- movs r0, 0x8C
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0808AFB0
- ldr r2, =gEventObjects
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- bl IsRunningDisallowed
- cmp r0, 0
- bne _0808AFB0
- adds r0, r5, 0
- bl PlayerRun
- ldrb r1, [r4]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r4]
- b _0808AFB6
- .pool
-_0808AFB0:
- adds r0, r5, 0
- bl PlayerGoSpeed1
-_0808AFB6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeMoving
-
- thumb_func_start CheckForPlayerAvatarCollision
-CheckForPlayerAvatarCollision: @ 808AFBC
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- bl MoveCoords
- add r0, sp, 0x4
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- add r1, sp, 0x4
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- str r0, [sp]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CheckForEventObjectCollision
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CheckForPlayerAvatarCollision
-
- thumb_func_start sub_808B028
-sub_808B028: @ 808B028
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- bl MoveCoords
- add r0, sp, 0x4
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- add r1, sp, 0x4
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- str r0, [sp]
- adds r0, r4, 0
- adds r3, r6, 0
- bl sub_808B164
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808B028
-
- thumb_func_start CheckForEventObjectCollision
-@ u8 CheckForEventObjectCollision(struct npc_state *eventObject, u16 x, u16 y, u8 direction, u8 metatileBehavior)
-CheckForEventObjectCollision: @ 808B094
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- lsls r1, 16
- lsls r2, 16
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- lsrs r7, r1, 16
- asrs r5, r1, 16
- lsrs r1, r2, 16
- mov r9, r1
- asrs r4, r2, 16
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl GetCollisionAtCoords
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- cmp r0, 0x3
- bne _0808B0E4
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_808B1BC
- lsls r0, 24
- cmp r0, 0
- beq _0808B0E4
- movs r0, 0x5
- b _0808B152
-_0808B0E4:
- lsls r5, r7, 16
- asrs r0, r5, 16
- mov r8, r0
- mov r1, r9
- lsls r4, r1, 16
- asrs r7, r4, 16
- adds r1, r7, 0
- adds r2, r6, 0
- bl ShouldJumpLedge
- lsls r0, 24
- cmp r0, 0
- beq _0808B108
- movs r0, 0x2B
- bl IncrementGameStat
- movs r0, 0x6
- b _0808B152
-_0808B108:
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0808B124
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_808B238
- lsls r0, 24
- cmp r0, 0
- beq _0808B124
- movs r0, 0x7
- b _0808B152
-_0808B124:
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808B14E
- asrs r5, 16
- asrs r4, 16
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CheckForRotatingGatePuzzleCollision
- cmp r0, 0
- beq _0808B142
- movs r0, 0x8
- b _0808B152
-_0808B142:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r10
- mov r3, sp
- bl check_acro_bike_metatile
-_0808B14E:
- mov r0, sp
- ldrb r0, [r0]
-_0808B152:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckForEventObjectCollision
-
- thumb_func_start sub_808B164
-sub_808B164: @ 808B164
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, [sp, 0x18]
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r4, 24
- lsrs r7, r4, 24
- lsls r1, 16
- asrs r5, r1, 16
- lsls r2, 16
- asrs r4, r2, 16
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl GetCollisionAtCoords
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- cmp r0, 0
- bne _0808B1AE
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CheckForRotatingGatePuzzleCollisionWithoutAnimation
- cmp r0, 0
- beq _0808B1A2
- movs r0, 0x8
- b _0808B1B2
-_0808B1A2:
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- mov r3, sp
- bl check_acro_bike_metatile
-_0808B1AE:
- mov r0, sp
- ldrb r0, [r0]
-_0808B1B2:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808B164
-
- thumb_func_start sub_808B1BC
-@ bool8 sub_808B1BC(u16 x, u16 y, u8 direction)
-sub_808B1BC: @ 808B1BC
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0808B20C
- lsls r5, r3, 16
- asrs r0, r5, 16
- lsls r4, 16
- asrs r1, r4, 16
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0808B20C
- lsrs r0, r5, 16
- lsrs r1, r4, 16
- movs r2, 0x3
- bl GetEventObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bne _0808B20C
- adds r0, r6, 0
- bl sub_808C750
- movs r0, 0x1
- b _0808B20E
- .pool
-_0808B20C:
- movs r0, 0
-_0808B20E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808B1BC
-
- thumb_func_start ShouldJumpLedge
-@ bool8 ShouldJumpLedge(s16 x, s16 y, u8 direction)
-ShouldJumpLedge: @ 808B214
- push {lr}
- lsls r2, 24
- lsrs r2, 24
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl GetLedgeJumpDirection
- lsls r0, 24
- cmp r0, 0
- bne _0808B230
- movs r0, 0
- b _0808B232
-_0808B230:
- movs r0, 0x1
-_0808B232:
- pop {r1}
- bx r1
- thumb_func_end ShouldJumpLedge
-
- thumb_func_start sub_808B238
-sub_808B238: @ 808B238
- push {r4-r7,lr}
- sub sp, 0x4
- mov r3, sp
- strh r0, [r3]
- mov r5, sp
- adds r5, 0x2
- strh r1, [r5]
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r0, =0x00000889
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0808B2D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl GetEventObjectIdByXY
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x10
- beq _0808B2D8
- ldr r0, =gEventObjects
- lsls r1, r6, 3
- adds r1, r6
- lsls r1, 2
- adds r4, r1, r0
- ldrb r0, [r4, 0x5]
- cmp r0, 0x57
- bne _0808B2D8
- ldrh r1, [r4, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- strh r0, [r5]
- adds r0, r7, 0
- mov r1, sp
- adds r2, r5, 0
- bl MoveCoords
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r7, 0
- bl GetCollisionAtCoords
- lsls r0, 24
- cmp r0, 0
- bne _0808B2D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsNonAnimDoor
- lsls r0, 24
- cmp r0, 0
- bne _0808B2D8
- adds r0, r6, 0
- adds r1, r7, 0
- bl task_add_bump_boulder
- movs r0, 0x1
- b _0808B2DA
- .pool
-_0808B2D8:
- movs r0, 0
-_0808B2DA:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808B238
-
- thumb_func_start check_acro_bike_metatile
-@ void check_acro_bike_metatile(s16 x, s16 y, u8 metatileBehavior, u8 *returnValue)
-check_acro_bike_metatile: @ 808B2E4
- push {r4-r7,lr}
- adds r6, r3, 0
- lsls r2, 24
- lsrs r5, r2, 24
- movs r4, 0
- ldr r7, =gUnknown_0849749C
-_0808B2F0:
- lsls r0, r4, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _0808B314
- ldr r0, =gUnknown_084974B0
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r6]
- b _0808B31E
- .pool
-_0808B314:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0808B2F0
-_0808B31E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end check_acro_bike_metatile
-
thumb_func_start IsPlayerCollidingWithFarawayIslandMew
@ bool8 IsPlayerCollidingWithFarawayIslandMew(u8 direction)
IsPlayerCollidingWithFarawayIslandMew: @ 808B324
@@ -3305,6 +2032,7 @@ sub_808C228: @ 808C228
thumb_func_end sub_808C228
thumb_func_start sub_808C280
+@ void sub_808C280(struct EventObject *playerEventObj);
sub_808C280: @ 808C280
push {r4-r7,lr}
mov r7, r9
diff --git a/asm/field_specials.s b/asm/field_specials.s
deleted file mode 100644
index cea228a2a..000000000
--- a/asm/field_specials.s
+++ /dev/null
@@ -1,8075 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start Special_ShowDiploma
-Special_ShowDiploma: @ 8137CB4
- push {lr}
- ldr r0, =CB2_ShowDiploma
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .pool
- thumb_func_end Special_ShowDiploma
-
- thumb_func_start Special_ViewWallClock
-Special_ViewWallClock: @ 8137CC8
- push {lr}
- ldr r0, =gMain
- ldr r1, =CB2_ReturnToField
- str r1, [r0, 0x8]
- ldr r0, =Cb2_ViewWallClock
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .pool
- thumb_func_end Special_ViewWallClock
-
- thumb_func_start ResetCyclingRoadChallengeData
-ResetCyclingRoadChallengeData: @ 8137CEC
- ldr r0, =gBikeCyclingChallenge
- movs r1, 0
- strb r1, [r0]
- ldr r0, =0x0203ab55
- strb r1, [r0]
- ldr r1, =gUnknown_0203AB58
- movs r0, 0
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end ResetCyclingRoadChallengeData
-
- thumb_func_start Special_BeginCyclingRoadChallenge
-Special_BeginCyclingRoadChallenge: @ 8137D0C
- ldr r1, =gBikeCyclingChallenge
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, =0x0203ab55
- movs r0, 0
- strb r0, [r1]
- ldr r1, =gUnknown_0203AB58
- ldr r0, =gMain
- ldr r0, [r0, 0x20]
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end Special_BeginCyclingRoadChallenge
-
- thumb_func_start GetPlayerAvatarBike
-GetPlayerAvatarBike: @ 8137D34
- push {lr}
- movs r0, 0x4
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _08137D46
- movs r0, 0x1
- b _08137D58
-_08137D46:
- movs r0, 0x2
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _08137D56
- movs r0, 0
- b _08137D58
-_08137D56:
- movs r0, 0x2
-_08137D58:
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarBike
-
- thumb_func_start DetermineCyclingRoadResults
-DetermineCyclingRoadResults: @ 8137D5C
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r6, 0x63
- bhi _08137D88
- ldr r4, =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, =gText_SpaceTimes
- adds r0, r4, 0
- bl StringAppend
- b _08137D90
- .pool
-_08137D88:
- ldr r0, =gStringVar1
- ldr r1, =gText_99TimesPlus
- bl StringCopy
-_08137D90:
- ldr r0, =0x00000e0f
- cmp r7, r0
- bhi _08137DF0
- ldr r4, =gStringVar2
- adds r0, r7, 0
- movs r1, 0x3C
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0xAD
- strb r0, [r4, 0x2]
- adds r5, r4, 0x3
- adds r0, r7, 0
- movs r1, 0x3C
- bl __umodsi3
- movs r1, 0x64
- muls r0, r1
- movs r1, 0x3C
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, =gText_SpaceSeconds
- adds r0, r4, 0
- bl StringAppend
- b _08137DF8
- .pool
-_08137DF0:
- ldr r0, =gStringVar2
- ldr r1, =gText_1MinutePlus
- bl StringCopy
-_08137DF8:
- movs r4, 0
- cmp r6, 0
- bne _08137E0C
- movs r4, 0x5
- b _08137E2A
- .pool
-_08137E0C:
- cmp r6, 0x3
- bhi _08137E14
- movs r4, 0x4
- b _08137E2A
-_08137E14:
- cmp r6, 0x9
- bhi _08137E1C
- movs r4, 0x3
- b _08137E2A
-_08137E1C:
- cmp r6, 0x13
- bhi _08137E24
- movs r4, 0x2
- b _08137E2A
-_08137E24:
- cmp r6, 0x63
- bhi _08137E2A
- movs r4, 0x1
-_08137E2A:
- adds r0, r7, 0
- movs r1, 0x3C
- bl __udivsi3
- cmp r0, 0xA
- bhi _08137E3A
- adds r0, r4, 0x5
- b _08137E58
-_08137E3A:
- cmp r0, 0xF
- bhi _08137E42
- adds r0, r4, 0x4
- b _08137E58
-_08137E42:
- cmp r0, 0x14
- bhi _08137E4A
- adds r0, r4, 0x3
- b _08137E58
-_08137E4A:
- cmp r0, 0x28
- bhi _08137E52
- adds r0, r4, 0x2
- b _08137E58
-_08137E52:
- cmp r0, 0x3B
- bhi _08137E5C
- adds r0, r4, 0x1
-_08137E58:
- lsls r0, 24
- lsrs r4, r0, 24
-_08137E5C:
- ldr r0, =gSpecialVar_Result
- strh r4, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DetermineCyclingRoadResults
-
- thumb_func_start FinishCyclingRoadChallenge
-FinishCyclingRoadChallenge: @ 8137E6C
- push {r4,r5,lr}
- ldr r0, =gMain
- ldr r1, =gUnknown_0203AB58
- ldr r4, [r0, 0x20]
- ldr r0, [r1]
- subs r4, r0
- ldr r5, =0x0203ab55
- ldrb r1, [r5]
- adds r0, r4, 0
- bl DetermineCyclingRoadResults
- ldrb r1, [r5]
- adds r0, r4, 0
- bl RecordCyclingRoadResults
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FinishCyclingRoadChallenge
-
- thumb_func_start RecordCyclingRoadResults
-RecordCyclingRoadResults: @ 8137E9C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r6, =0x00004028
- adds r0, r6, 0
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r7, =0x00004029
- adds r0, r7, 0
- bl VarGet
- lsls r0, 16
- adds r4, r0
- cmp r4, r5
- bhi _08137ECC
- cmp r4, 0
- bne _08137EE6
-_08137ECC:
- lsls r1, r5, 16
- lsrs r1, 16
- adds r0, r6, 0
- bl VarSet
- lsrs r1, r5, 16
- adds r0, r7, 0
- bl VarSet
- ldr r0, =0x00004027
- mov r1, r8
- bl VarSet
-_08137EE6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end RecordCyclingRoadResults
-
- thumb_func_start GetRecordedCyclingRoadResults
-GetRecordedCyclingRoadResults: @ 8137EFC
- push {r4,lr}
- ldr r0, =0x00004028
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, =0x00004029
- bl VarGet
- lsls r0, 16
- adds r4, r0
- cmp r4, 0
- beq _08137F3C
- ldr r0, =0x00004027
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl DetermineCyclingRoadResults
- movs r0, 0x1
- b _08137F3E
- .pool
-_08137F3C:
- movs r0, 0
-_08137F3E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetRecordedCyclingRoadResults
-
- thumb_func_start UpdateCyclingRoadState
-UpdateCyclingRoadState: @ 8137F44
- push {r4,lr}
- ldr r0, =gUnknown_020322DC
- ldrh r1, [r0]
- ldr r0, =0x00000c1d
- cmp r1, r0
- beq _08137F7C
- ldr r4, =0x000040a9
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- beq _08137F6E
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bne _08137F7C
-_08137F6E:
- adds r0, r4, 0
- movs r1, 0
- bl VarSet
- movs r0, 0
- bl Overworld_SetSavedMusic
-_08137F7C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end UpdateCyclingRoadState
-
- thumb_func_start SetSSTidalFlag
-SetSSTidalFlag: @ 8137F90
- push {lr}
- ldr r0, =0x0000088d
- bl FlagSet
- ldr r0, =0x0000404a
- bl GetVarPointer
- movs r1, 0
- strh r1, [r0]
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetSSTidalFlag
-
- thumb_func_start ResetSSTidalFlag
-ResetSSTidalFlag: @ 8137FB0
- push {lr}
- ldr r0, =0x0000088d
- bl FlagClear
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetSSTidalFlag
-
- thumb_func_start CountSSTidalStep
-CountSSTidalStep: @ 8137FC0
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =0x0000088d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08137FE6
- ldr r0, =0x0000404a
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, r4, r1
- strh r1, [r0]
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xCC
- bhi _08137FF4
-_08137FE6:
- movs r0, 0
- b _08137FF6
- .pool
-_08137FF4:
- movs r0, 0x1
-_08137FF6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CountSSTidalStep
-
- thumb_func_start GetSSTidalLocation
-GetSSTidalLocation: @ 8137FFC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r5, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- ldr r0, =0x0000404a
- bl GetVarPointer
- adds r4, r0, 0
- ldr r0, =0x000040b4
- bl GetVarPointer
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x9
- bhi _081380C2
- lsls r0, 2
- ldr r1, =_08138038
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08138038:
- .4byte _08138060
- .4byte _08138070
- .4byte _08138064
- .4byte _08138068
- .4byte _08138068
- .4byte _0813806C
- .4byte _08138098
- .4byte _08138060
- .4byte _08138064
- .4byte _0813806C
-_08138060:
- movs r0, 0x1
- b _081380CE
-_08138064:
- movs r0, 0x4
- b _081380CE
-_08138068:
- movs r0, 0x2
- b _081380CE
-_0813806C:
- movs r0, 0x3
- b _081380CE
-_08138070:
- ldrh r0, [r4]
- cmp r0, 0x3B
- bhi _08138080
- movs r0, 0x31
- strb r0, [r5]
- ldrh r0, [r4]
- adds r0, 0x13
- b _081380C0
-_08138080:
- cmp r0, 0x8B
- bhi _0813808E
- movs r0, 0x30
- strb r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x3C
- b _081380C0
-_0813808E:
- movs r0, 0x2F
- strb r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x8C
- b _081380C0
-_08138098:
- ldrh r0, [r4]
- cmp r0, 0x41
- bhi _081380A8
- movs r0, 0x2F
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0x41
- b _081380BE
-_081380A8:
- cmp r0, 0x91
- bhi _081380B6
- movs r0, 0x30
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0x91
- b _081380BE
-_081380B6:
- movs r0, 0x31
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0xE0
-_081380BE:
- subs r0, r1
-_081380C0:
- strh r0, [r6]
-_081380C2:
- movs r0, 0
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x14
- strh r0, [r7]
- movs r0, 0
-_081380CE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetSSTidalLocation
-
- thumb_func_start is_tile_that_overrides_player_control
-is_tile_that_overrides_player_control: @ 81380D8
- push {lr}
- movs r0, 0x88
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0813810A
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x1
- blt _0813810A
- cmp r0, 0x3
- ble _081380F6
- cmp r0, 0x6
- bne _0813810A
-_081380F6:
- ldr r0, =0x000040f2
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xF9
- bhi _08138118
-_0813810A:
- movs r0, 0
- b _0813811A
- .pool
-_08138118:
- movs r0, 0x1
-_0813811A:
- pop {r1}
- bx r1
- thumb_func_end is_tile_that_overrides_player_control
-
- thumb_func_start sub_8138120
-sub_8138120: @ 8138120
- push {lr}
- movs r0, 0x8A
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08138152
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x1
- blt _08138152
- cmp r0, 0x3
- ble _0813813E
- cmp r0, 0x6
- bne _08138152
-_0813813E:
- ldr r0, =0x000040f3
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x9
- bhi _08138160
-_08138152:
- movs r0, 0
- b _08138162
- .pool
-_08138160:
- movs r0, 0x1
-_08138162:
- pop {r1}
- bx r1
- thumb_func_end sub_8138120
-
- thumb_func_start sub_8138168
-sub_8138168: @ 8138168
- push {lr}
- movs r0, 0x72
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0813819A
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x1
- blt _0813819A
- cmp r0, 0x3
- ble _08138186
- cmp r0, 0x6
- bne _0813819A
-_08138186:
- ldr r0, =0x000040f5
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x9
- bhi _081381A8
-_0813819A:
- movs r0, 0
- b _081381AA
- .pool
-_081381A8:
- movs r0, 0x1
-_081381AA:
- pop {r1}
- bx r1
- thumb_func_end sub_8138168
-
- thumb_func_start sub_81381B0
-sub_81381B0: @ 81381B0
- push {lr}
- movs r0, 0x80
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _081381E2
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x1
- blt _081381E2
- cmp r0, 0x3
- ble _081381CE
- cmp r0, 0x6
- bne _081381E2
-_081381CE:
- ldr r0, =0x000040f4
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xF9
- bhi _081381F0
-_081381E2:
- movs r0, 0
- b _081381F2
- .pool
-_081381F0:
- movs r0, 0x1
-_081381F2:
- pop {r1}
- bx r1
- thumb_func_end sub_81381B0
-
- thumb_func_start sub_81381F8
-sub_81381F8: @ 81381F8
- push {lr}
- movs r0, 0x75
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0813822A
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x1
- blt _0813822A
- cmp r0, 0x3
- ble _08138216
- cmp r0, 0x6
- bne _0813822A
-_08138216:
- ldr r0, =0x000040f6
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xF9
- bhi _08138238
-_0813822A:
- movs r0, 0
- b _0813823A
- .pool
-_08138238:
- movs r0, 0x1
-_0813823A:
- pop {r1}
- bx r1
- thumb_func_end sub_81381F8
-
- thumb_func_start GetLinkPartnerNames
-GetLinkPartnerNames: @ 8138240
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r7, r0, 24
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0813828A
- ldr r0, =gTVStringVarPtrs
- mov r8, r0
-_08138262:
- cmp r7, r4
- beq _08138280
- lsls r0, r6, 2
- add r0, r8
- ldr r0, [r0]
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r2, =gLinkPlayers + 8
- adds r1, r2
- bl StringCopy
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08138280:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _08138262
-_0813828A:
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetLinkPartnerNames
-
- thumb_func_start SpawnLinkPartnerEventObject
-SpawnLinkPartnerEventObject: @ 81382A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r7, 0
- movs r0, 0
- mov r9, r0
- mov r8, r0
- ldr r1, =gUnknown_085B2B5C
- add r0, sp, 0x8
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0xC
- ldr r1, =gUnknown_085B2B60
- adds r0, r4, 0
- movs r2, 0x8
- bl memcpy
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x2
- beq _08138310
- cmp r0, 0x2
- bgt _081382F4
- cmp r0, 0x1
- beq _0813833C
- b _08138350
- .pool
-_081382F4:
- cmp r1, 0x3
- beq _081382FE
- cmp r1, 0x4
- beq _08138324
- b _08138350
-_081382FE:
- movs r7, 0x2
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldrh r0, [r1]
- subs r0, 0x1
- b _0813832C
- .pool
-_08138310:
- movs r7, 0x1
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0]
- mov r9, r1
- ldrh r0, [r0, 0x2]
- subs r0, 0x1
- b _0813834A
- .pool
-_08138324:
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldrh r0, [r1]
- adds r0, 0x1
-_0813832C:
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldrh r1, [r1, 0x2]
- mov r8, r1
- b _08138350
- .pool
-_0813833C:
- movs r7, 0x3
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r3, [r0]
- mov r9, r3
- ldrh r0, [r0, 0x2]
- adds r0, 0x1
-_0813834A:
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_08138350:
- movs r6, 0
- b _08138410
- .pool
-_08138358:
- cmp r10, r6
- beq _0813840A
- ldr r0, =gLinkPlayers
- lsls r2, r6, 3
- subs r1, r2, r6
- lsls r1, 2
- adds r1, r0
- ldrb r3, [r1]
- adds r4, r0, 0
- cmp r3, 0x1
- blt _0813838C
- cmp r3, 0x2
- ble _0813837C
- cmp r3, 0x3
- beq _08138388
- b _0813838C
- .pool
-_0813837C:
- ldrb r0, [r1, 0x13]
- movs r5, 0xEC
- cmp r0, 0
- bne _0813839C
- movs r5, 0xEB
- b _0813839C
-_08138388:
- ldrb r0, [r1, 0x13]
- b _08138394
-_0813838C:
- subs r0, r2, r6
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x13]
-_08138394:
- movs r5, 0x69
- cmp r0, 0
- bne _0813839C
- movs r5, 0x64
-_0813839C:
- mov r0, sp
- adds r0, r7
- adds r0, 0x8
- ldrb r1, [r0]
- movs r4, 0xF0
- subs r4, r6
- lsls r4, 24
- lsrs r4, 24
- lsls r2, r7, 1
- mov r0, sp
- adds r0, r2
- adds r0, 0xC
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- mov r3, r9
- lsls r3, 16
- asrs r3, 16
- mov r12, r3
- add r0, r12
- adds r3, r0, 0x7
- lsls r3, 16
- asrs r3, 16
- mov r12, r3
- mov r0, sp
- adds r0, 0xD
- adds r0, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- mov r3, r8
- lsls r0, r3, 16
- asrs r0, 16
- adds r0, r2
- adds r0, 0x7
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r5, 0
- adds r2, r4, 0
- mov r3, r12
- bl SpawnSpecialEventObjectParameterized
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_813842C
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x4
- bne _0813840A
- movs r7, 0
-_0813840A:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08138410:
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r6, r0
- bcc _08138358
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SpawnLinkPartnerEventObject
-
- thumb_func_start sub_813842C
-sub_813842C: @ 813842C
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- movs r1, 0xC0
- lsls r1, 19
- adds r2, r1
- lsrs r5, r2, 24
- lsrs r4, r0, 24
- movs r2, 0xA8
- lsls r2, 21
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x1
- bls _08138454
- cmp r4, 0x64
- beq _08138454
- cmp r4, 0x69
- bne _081384E6
-_08138454:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- adds r0, r3, 0
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x10
- beq _081384E6
- ldr r1, =gEventObjects
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- lsls r3, r5, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- cmp r4, 0x69
- beq _081384D8
- cmp r4, 0x69
- bgt _081384A8
- cmp r4, 0x64
- beq _081384C4
- b _081384E6
- .pool
-_081384A8:
- cmp r4, 0xEB
- beq _081384B2
- cmp r4, 0xEC
- beq _081384BC
- b _081384E6
-_081384B2:
- ldr r0, =gEventObjectPalette33
- b _081384C6
- .pool
-_081384BC:
- ldr r0, =gEventObjectPalette34
- b _081384C6
- .pool
-_081384C4:
- ldr r0, =gEventObjectPalette8
-_081384C6:
- movs r2, 0x80
- lsls r2, 1
- adds r1, r3, r2
- movs r2, 0x20
- bl LoadPalette
- b _081384E6
- .pool
-_081384D8:
- ldr r0, =gEventObjectPalette17
- movs r2, 0x80
- lsls r2, 1
- adds r1, r3, r2
- movs r2, 0x20
- bl LoadPalette
-_081384E6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813842C
-
- thumb_func_start MauvilleGymSpecial1
-MauvilleGymSpecial1: @ 81384F0
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, =gUnknown_085B2B68
-_081384F6:
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r4, r0
- bne _0813851C
- lsls r1, r4, 2
- adds r1, r5
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- ldr r2, =0x00000206
- bl MapGridSetMetatileIdAt
- b _0813852A
- .pool
-_0813851C:
- lsls r1, r4, 2
- adds r1, r5
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- ldr r2, =0x00000205
- bl MapGridSetMetatileIdAt
-_0813852A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081384F6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end MauvilleGymSpecial1
-
- thumb_func_start MauvilleGymSpecial2
-MauvilleGymSpecial2: @ 8138540
- push {r4-r6,lr}
- movs r5, 0xC
-_08138544:
- movs r4, 0x7
- adds r6, r5, 0x1
-_08138548:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- ldr r1, =0xfffffde6
- adds r0, r1
- cmp r0, 0x37
- bls _0813855A
- b _08138734
-_0813855A:
- lsls r0, 2
- ldr r1, =_0813856C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0813856C:
- .4byte _081386F2
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _0813864C
- .4byte _08138652
- .4byte _0813868C
- .4byte _08138694
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _0813865C
- .4byte _08138662
- .4byte _0813869C
- .4byte _081386A4
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _0813866C
- .4byte _08138672
- .4byte _081386AC
- .4byte _081386B4
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _0813867C
- .4byte _08138684
- .4byte _081386BC
- .4byte _081386C4
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _081386CC
- .4byte _081386DC
- .4byte _081386EC
- .4byte _08138714
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _081386D4
- .4byte _081386E4
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _08138734
- .4byte _0813872A
- .4byte _0813871C
-_0813864C:
- movs r2, 0x8C
- lsls r2, 2
- b _08138720
-_08138652:
- ldr r2, =0x00000231
- b _08138720
- .pool
-_0813865C:
- movs r2, 0x8E
- lsls r2, 2
- b _08138720
-_08138662:
- ldr r2, =0x00000239
- b _08138720
- .pool
-_0813866C:
- movs r2, 0x88
- lsls r2, 2
- b _08138720
-_08138672:
- ldr r2, =0x00000221
- b _08138720
- .pool
-_0813867C:
- ldr r2, =0x00000e28
- b _08138720
- .pool
-_08138684:
- ldr r2, =0x00000e29
- b _08138720
- .pool
-_0813868C:
- ldr r2, =0x00000232
- b _08138720
- .pool
-_08138694:
- ldr r2, =0x00000233
- b _08138720
- .pool
-_0813869C:
- ldr r2, =0x0000023a
- b _08138720
- .pool
-_081386A4:
- ldr r2, =0x0000023b
- b _08138720
- .pool
-_081386AC:
- ldr r2, =0x00000222
- b _08138720
- .pool
-_081386B4:
- ldr r2, =0x00000223
- b _08138720
- .pool
-_081386BC:
- ldr r2, =0x00000e2a
- b _08138720
- .pool
-_081386C4:
- ldr r2, =0x00000e2b
- b _08138720
- .pool
-_081386CC:
- ldr r2, =0x00000e42
- b _08138720
- .pool
-_081386D4:
- ldr r2, =0x0000021a
- b _08138720
- .pool
-_081386DC:
- ldr r2, =0x00000e43
- b _08138720
- .pool
-_081386E4:
- ldr r2, =0x0000021a
- b _08138720
- .pool
-_081386EC:
- movs r2, 0xE4
- lsls r2, 4
- b _08138720
-_081386F2:
- subs r1, r5, 0x1
- adds r0, r4, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x90
- lsls r1, 2
- cmp r0, r1
- bne _0813870C
- ldr r2, =0x00000e48
- b _08138720
- .pool
-_0813870C:
- ldr r2, =0x00000e49
- b _08138720
- .pool
-_08138714:
- ldr r2, =0x00000e41
- b _08138720
- .pool
-_0813871C:
- movs r2, 0xE5
- lsls r2, 4
-_08138720:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _08138734
-_0813872A:
- ldr r2, =0x00000251
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08138734:
- adds r4, 0x1
- cmp r4, 0xF
- bgt _0813873C
- b _08138548
-_0813873C:
- adds r5, r6, 0
- cmp r5, 0x17
- bgt _08138744
- b _08138544
-_08138744:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end MauvilleGymSpecial2
-
- thumb_func_start MauvilleGymSpecial3
-MauvilleGymSpecial3: @ 8138750
- push {r4-r6,lr}
- ldr r4, =gUnknown_085B2B68
- movs r5, 0x3
-_08138756:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- ldr r2, =0x00000206
- bl MapGridSetMetatileIdAt
- adds r4, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _08138756
- movs r5, 0xC
-_0813876A:
- movs r4, 0x7
- adds r6, r5, 0x1
-_0813876E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- ldr r1, =0xfffffde0
- adds r0, r1
- cmp r0, 0x30
- bls _08138780
- b _081388CA
-_08138780:
- lsls r0, 2
- ldr r1, =_0813879C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0813879C:
- .4byte _08138860
- .4byte _08138866
- .4byte _08138880
- .4byte _08138888
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _08138870
- .4byte _08138876
- .4byte _08138890
- .4byte _08138898
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388A0
- .4byte _081388A8
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388B0
- .4byte _081388B0
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388CA
- .4byte _081388C0
-_08138860:
- movs r2, 0x8C
- lsls r2, 2
- b _081388B2
-_08138866:
- ldr r2, =0x00000231
- b _081388B2
- .pool
-_08138870:
- movs r2, 0x8E
- lsls r2, 2
- b _081388B2
-_08138876:
- ldr r2, =0x00000239
- b _081388B2
- .pool
-_08138880:
- ldr r2, =0x00000232
- b _081388B2
- .pool
-_08138888:
- ldr r2, =0x00000233
- b _081388B2
- .pool
-_08138890:
- ldr r2, =0x0000023a
- b _081388B2
- .pool
-_08138898:
- ldr r2, =0x0000023b
- b _081388B2
- .pool
-_081388A0:
- ldr r2, =0x00000e42
- b _081388B2
- .pool
-_081388A8:
- ldr r2, =0x00000e43
- b _081388B2
- .pool
-_081388B0:
- ldr r2, =0x0000021a
-_081388B2:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _081388CA
- .pool
-_081388C0:
- ldr r2, =0x00000251
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_081388CA:
- adds r4, 0x1
- cmp r4, 0xF
- bgt _081388D2
- b _0813876E
-_081388D2:
- adds r5, r6, 0
- cmp r5, 0x17
- bgt _081388DA
- b _0813876A
-_081388DA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end MauvilleGymSpecial3
-
- thumb_func_start PetalburgGymSpecial1
-PetalburgGymSpecial1: @ 81388E4
- push {lr}
- ldr r0, =gUnknown_0203AB5C
- movs r1, 0
- strb r1, [r0]
- ldr r0, =gUnknown_0203AB5D
- strb r1, [r0]
- movs r0, 0x2C
- bl PlaySE
- ldr r0, =Task_PetalburgGym
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end PetalburgGymSpecial1
-
- thumb_func_start Task_PetalburgGym
-Task_PetalburgGym: @ 8138910
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gUnknown_085B2B78
- ldr r5, =gUnknown_0203AB5D
- ldrb r1, [r5]
- adds r0, r1, r0
- ldr r4, =gUnknown_0203AB5C
- ldrb r2, [r4]
- ldrb r0, [r0]
- cmp r0, r2
- bne _0813896C
- ldr r0, =gSpecialVar_0x8004
- ldrb r0, [r0]
- ldr r2, =gUnknown_085B2B7E
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- bl PetalburgGymFunc
- movs r0, 0
- strb r0, [r4]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _08138970
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- b _08138970
- .pool
-_0813896C:
- adds r0, r2, 0x1
- strb r0, [r4]
-_08138970:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end Task_PetalburgGym
-
- thumb_func_start PetalburgGymFunc
-PetalburgGymFunc: @ 8138978
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r2, r1, 16
- movs r7, 0
- subs r0, 0x1
- cmp r0, 0x7
- bhi _08138A40
- lsls r0, 2
- ldr r1, =_081389A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081389A0:
- .4byte _081389C0
- .4byte _081389D2
- .4byte _081389E4
- .4byte _081389F6
- .4byte _08138A04
- .4byte _08138A1A
- .4byte _08138A26
- .4byte _08138A34
-_081389C0:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x68
- b _08138A14
-_081389D2:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x4E
- b _08138A14
-_081389E4:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x5B
- b _08138A14
-_081389F6:
- movs r7, 0x1
- mov r1, sp
- movs r0, 0x7
- strh r0, [r1]
- add r1, sp, 0x8
- movs r0, 0x27
- b _08138A3E
-_08138A04:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x34
-_08138A14:
- strh r0, [r1]
- strh r0, [r1, 0x2]
- b _08138A40
-_08138A1A:
- movs r7, 0x1
- mov r0, sp
- strh r7, [r0]
- add r1, sp, 0x8
- movs r0, 0x41
- b _08138A3E
-_08138A26:
- movs r7, 0x1
- mov r1, sp
- movs r0, 0x7
- strh r0, [r1]
- add r1, sp, 0x8
- movs r0, 0xD
- b _08138A3E
-_08138A34:
- movs r7, 0x1
- mov r0, sp
- strh r7, [r0]
- add r1, sp, 0x8
- movs r0, 0x1A
-_08138A3E:
- strh r0, [r1]
-_08138A40:
- movs r6, 0
- cmp r6, r7
- bcs _08138A92
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- adds r1, r2, 0
- orrs r1, r0
- lsls r1, 16
- mov r9, r1
- adds r1, r2, 0
- adds r1, 0x8
- orrs r1, r0
- lsls r1, 16
- mov r8, r1
-_08138A5E:
- lsls r1, r6, 1
- mov r3, sp
- adds r5, r3, r1
- ldrh r0, [r5]
- adds r0, 0x7
- add r4, sp, 0x8
- adds r4, r1
- ldrh r1, [r4]
- adds r1, 0x7
- mov r3, r9
- lsrs r2, r3, 16
- bl MapGridSetMetatileIdAt
- ldrh r0, [r5]
- adds r0, 0x7
- ldrh r1, [r4]
- adds r1, 0x8
- mov r3, r8
- lsrs r2, r3, 16
- bl MapGridSetMetatileIdAt
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r7
- bcc _08138A5E
-_08138A92:
- bl DrawWholeMapView
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PetalburgGymFunc
-
- thumb_func_start PetalburgGymSpecial2
-PetalburgGymSpecial2: @ 8138AA4
- push {lr}
- ldr r0, =gSpecialVar_0x8004
- ldrb r0, [r0]
- ldr r1, =gUnknown_085B2B7E
- ldrh r1, [r1, 0x8]
- bl PetalburgGymFunc
- pop {r0}
- bx r0
- .pool
- thumb_func_end PetalburgGymSpecial2
-
- thumb_func_start ShowFieldMessageStringVar4
-ShowFieldMessageStringVar4: @ 8138AC0
- push {lr}
- ldr r0, =gStringVar4
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .pool
- thumb_func_end ShowFieldMessageStringVar4
-
- thumb_func_start StorePlayerCoordsInVars
-StorePlayerCoordsInVars: @ 8138AD0
- ldr r1, =gSpecialVar_0x8004
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, =gSpecialVar_0x8005
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end StorePlayerCoordsInVars
-
- thumb_func_start GetPlayerTrainerIdOnesDigit
-GetPlayerTrainerIdOnesDigit: @ 8138AF0
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0xB]
- lsls r1, 8
- ldrb r0, [r0, 0xA]
- orrs r0, r1
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetPlayerTrainerIdOnesDigit
-
- thumb_func_start GetPlayerBigGuyGirlString
-GetPlayerBigGuyGirlString: @ 8138B10
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08138B34
- ldr r0, =gStringVar1
- ldr r1, =gText_BigGuy
- bl StringCopy
- b _08138B3C
- .pool
-_08138B34:
- ldr r0, =gStringVar1
- ldr r1, =gText_BigGirl
- bl StringCopy
-_08138B3C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end GetPlayerBigGuyGirlString
-
- thumb_func_start GetRivalSonDaughterString
-GetRivalSonDaughterString: @ 8138B48
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08138B6C
- ldr r0, =gStringVar1
- ldr r1, =gText_Daughter
- bl StringCopy
- b _08138B74
- .pool
-_08138B6C:
- ldr r0, =gStringVar1
- ldr r1, =gText_Son
- bl StringCopy
-_08138B74:
- pop {r0}
- bx r0
- .pool
- thumb_func_end GetRivalSonDaughterString
-
- thumb_func_start sub_8138B80
-sub_8138B80: @ 8138B80
- ldr r0, =gBattleOutcome
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_8138B80
-
- thumb_func_start CableCarWarp
-CableCarWarp: @ 8138B8C
- push {lr}
- sub sp, 0x4
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- beq _08138BB0
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0x6
- bl Overworld_SetWarpDestination
- b _08138BC2
- .pool
-_08138BB0:
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0x1
- movs r3, 0x6
- bl Overworld_SetWarpDestination
-_08138BC2:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end CableCarWarp
-
- thumb_func_start SetFlagInVar
-SetFlagInVar: @ 8138BC8
- push {lr}
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl FlagSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetFlagInVar
-
- thumb_func_start GetWeekCount
-GetWeekCount: @ 8138BDC
- push {lr}
- ldr r0, =gLocalTime
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x7
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _08138BF6
- adds r0, r1, 0
-_08138BF6:
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetWeekCount
-
- thumb_func_start GetLeadMonFriendshipScore
-GetLeadMonFriendshipScore: @ 8138C04
- push {r4,lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xFF
- bne _08138C2C
- movs r0, 0x6
- b _08138C7E
- .pool
-_08138C2C:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xC7
- bls _08138C3C
- movs r0, 0x5
- b _08138C7E
-_08138C3C:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x95
- bls _08138C4C
- movs r0, 0x4
- b _08138C7E
-_08138C4C:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x63
- bls _08138C5C
- movs r0, 0x3
- b _08138C7E
-_08138C5C:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x31
- bls _08138C6C
- movs r0, 0x2
- b _08138C7E
-_08138C6C:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0
- bne _08138C7C
- movs r0, 0
- b _08138C7E
-_08138C7C:
- movs r0, 0x1
-_08138C7E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonFriendshipScore
-
- thumb_func_start CB2_FieldShowRegionMap
-CB2_FieldShowRegionMap: @ 8138C84
- push {lr}
- ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl sub_817018C
- pop {r0}
- bx r0
- .pool
- thumb_func_end CB2_FieldShowRegionMap
-
- thumb_func_start FieldShowRegionMap
-FieldShowRegionMap: @ 8138C94
- push {lr}
- ldr r0, =CB2_FieldShowRegionMap
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldShowRegionMap
-
- thumb_func_start DoPCTurnOnEffect
-DoPCTurnOnEffect: @ 8138CA4
- push {r4,lr}
- ldr r4, =Task_PCTurnOnEffect
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08138CD8
- adds r0, r4, 0
- movs r1, 0x8
- 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 r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_08138CD8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DoPCTurnOnEffect
-
- thumb_func_start Task_PCTurnOnEffect
-Task_PCTurnOnEffect: @ 8138CE8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08138D06
- adds r0, r1, 0
- bl PCTurnOnEffect_0
-_08138D06:
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_PCTurnOnEffect
-
- thumb_func_start PCTurnOnEffect_0
-PCTurnOnEffect_0: @ 8138D10
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r6, 0
- movs r5, 0
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _08138D7C
- strh r5, [r4, 0xE]
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _08138D44
- cmp r0, 0x3
- bgt _08138D3A
- cmp r0, 0x2
- beq _08138D40
- b _08138D4C
-_08138D3A:
- cmp r1, 0x4
- beq _08138D48
- b _08138D4C
-_08138D40:
- movs r6, 0
- b _08138D4A
-_08138D44:
- movs r6, 0xFF
- b _08138D4A
-_08138D48:
- movs r6, 0x1
-_08138D4A:
- movs r5, 0xFF
-_08138D4C:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- lsls r1, r6, 24
- asrs r1, 24
- lsls r2, r5, 24
- asrs r2, 24
- bl PCTurnOnEffect_1
- bl DrawWholeMapView
- ldrh r0, [r4, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08138D7C
- ldrb r0, [r4, 0xA]
- bl DestroyTask
-_08138D7C:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end PCTurnOnEffect_0
-
- thumb_func_start PCTurnOnEffect_1
-PCTurnOnEffect_1: @ 8138D88
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r3, 0
- lsls r0, 16
- cmp r0, 0
- beq _08138DC4
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _08138DAC
- movs r3, 0x4
- b _08138DE6
- .pool
-_08138DAC:
- cmp r0, 0x1
- bne _08138DB8
- ldr r3, =0x0000025a
- b _08138DE6
- .pool
-_08138DB8:
- cmp r0, 0x2
- bne _08138DE6
- ldr r3, =0x00000259
- b _08138DE6
- .pool
-_08138DC4:
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _08138DD4
- movs r3, 0x5
- b _08138DE6
- .pool
-_08138DD4:
- cmp r0, 0x1
- bne _08138DE0
- ldr r3, =0x0000027f
- b _08138DE6
- .pool
-_08138DE0:
- cmp r0, 0x2
- bne _08138DE6
- ldr r3, =0x0000027e
-_08138DE6:
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r5, 0
- ldrsh r0, [r2, r5]
- lsls r1, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r5, 0x2
- ldrsh r1, [r2, r5]
- lsls r2, r4, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r4, 0xC0
- lsls r4, 4
- adds r2, r4, 0
- orrs r3, r2
- adds r2, r3, 0
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PCTurnOnEffect_1
-
- thumb_func_start DoPCTurnOffEffect
-DoPCTurnOffEffect: @ 8138E20
- push {lr}
- bl PCTurnOffEffect
- pop {r0}
- bx r0
- thumb_func_end DoPCTurnOffEffect
-
- thumb_func_start PCTurnOffEffect
-PCTurnOffEffect: @ 8138E2C
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
- movs r4, 0
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _08138E56
- cmp r0, 0x3
- bgt _08138E4C
- cmp r0, 0x2
- beq _08138E52
- b _08138E5E
-_08138E4C:
- cmp r1, 0x4
- beq _08138E5A
- b _08138E5E
-_08138E52:
- movs r6, 0
- b _08138E5C
-_08138E56:
- movs r6, 0xFF
- b _08138E5C
-_08138E5A:
- movs r6, 0x1
-_08138E5C:
- movs r5, 0xFF
-_08138E5E:
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _08138E70
- movs r4, 0x4
- b _08138E82
- .pool
-_08138E70:
- cmp r0, 0x1
- bne _08138E7C
- ldr r4, =0x0000025a
- b _08138E82
- .pool
-_08138E7C:
- cmp r0, 0x2
- bne _08138E82
- ldr r4, =0x00000259
-_08138E82:
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r6, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- lsls r2, r5, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r3, 0xC0
- lsls r3, 4
- adds r2, r3, 0
- orrs r4, r2
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PCTurnOffEffect
-
- thumb_func_start DoLotteryCornerComputerEffect
-DoLotteryCornerComputerEffect: @ 8138EC0
- push {r4,lr}
- ldr r4, =Task_LotteryCornerComputerEffect
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08138EF4
- adds r0, r4, 0
- movs r1, 0x8
- 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 r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_08138EF4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DoLotteryCornerComputerEffect
-
- thumb_func_start Task_LotteryCornerComputerEffect
-Task_LotteryCornerComputerEffect: @ 8138F04
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08138F22
- adds r0, r1, 0
- bl LotteryCornerComputerEffect
-_08138F22:
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_LotteryCornerComputerEffect
-
- thumb_func_start LotteryCornerComputerEffect
-LotteryCornerComputerEffect: @ 8138F2C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _08138F9A
- movs r0, 0
- strh r0, [r4, 0xE]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08138F64
- ldr r2, =0x00000e9d
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, =0x00000ea5
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- b _08138F7A
- .pool
-_08138F64:
- ldr r2, =0x00000e58
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0xE6
- lsls r2, 4
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
-_08138F7A:
- bl DrawWholeMapView
- ldrh r0, [r4, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08138F9A
- ldrb r0, [r4, 0xA]
- bl DestroyTask
-_08138F9A:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end LotteryCornerComputerEffect
-
- thumb_func_start EndLotteryCornerComputerEffect
-EndLotteryCornerComputerEffect: @ 8138FAC
- push {lr}
- ldr r2, =0x00000e9d
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, =0x00000ea5
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r0}
- bx r0
- .pool
- thumb_func_end EndLotteryCornerComputerEffect
-
- thumb_func_start SetTrickHouseEndRoomFlag
-SetTrickHouseEndRoomFlag: @ 8138FD4
- push {lr}
- ldr r1, =gSpecialVar_0x8004
- ldr r0, =0x000001f5
- strh r0, [r1]
- bl FlagSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetTrickHouseEndRoomFlag
-
- thumb_func_start ResetTrickHouseEndRoomFlag
-ResetTrickHouseEndRoomFlag: @ 8138FEC
- push {lr}
- ldr r1, =gSpecialVar_0x8004
- ldr r0, =0x000001f5
- strh r0, [r1]
- bl FlagClear
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetTrickHouseEndRoomFlag
-
- thumb_func_start CheckLeadMonCool
-CheckLeadMonCool: @ 8139004
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- bl GetMonData
- cmp r0, 0xC7
- bls _08139028
- movs r0, 0x1
- b _0813902A
- .pool
-_08139028:
- movs r0, 0
-_0813902A:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonCool
-
- thumb_func_start CheckLeadMonBeauty
-CheckLeadMonBeauty: @ 8139030
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- bl GetMonData
- cmp r0, 0xC7
- bls _08139054
- movs r0, 0x1
- b _08139056
- .pool
-_08139054:
- movs r0, 0
-_08139056:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonBeauty
-
- thumb_func_start CheckLeadMonCute
-CheckLeadMonCute: @ 813905C
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- bl GetMonData
- cmp r0, 0xC7
- bls _08139080
- movs r0, 0x1
- b _08139082
- .pool
-_08139080:
- movs r0, 0
-_08139082:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonCute
-
- thumb_func_start CheckLeadMonSmart
-CheckLeadMonSmart: @ 8139088
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- bl GetMonData
- cmp r0, 0xC7
- bls _081390AC
- movs r0, 0x1
- b _081390AE
- .pool
-_081390AC:
- movs r0, 0
-_081390AE:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonSmart
-
- thumb_func_start CheckLeadMonTough
-CheckLeadMonTough: @ 81390B4
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- bl GetMonData
- cmp r0, 0xC7
- bls _081390D8
- movs r0, 0x1
- b _081390DA
- .pool
-_081390D8:
- movs r0, 0
-_081390DA:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonTough
-
- thumb_func_start IsGrassTypeInParty
-IsGrassTypeInParty: @ 81390E0
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, =gBaseStats
-_081390E6:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _0813913C
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0813913C
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x6]
- cmp r0, 0xC
- beq _08139128
- ldrb r0, [r1, 0x7]
- cmp r0, 0xC
- bne _0813913C
-_08139128:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- b _0813914A
- .pool
-_0813913C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _081390E6
- ldr r1, =gSpecialVar_Result
- movs r0, 0
-_0813914A:
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end IsGrassTypeInParty
-
- thumb_func_start SpawnScriptEventObject
-SpawnScriptEventObject: @ 8139158
- push {lr}
- sub sp, 0x8
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r3, [r0]
- adds r3, 0x7
- lsls r3, 16
- asrs r3, 16
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- movs r0, 0x7
- movs r1, 0x8
- movs r2, 0x7F
- bl SpawnSpecialEventObjectParameterized
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gEventObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r1, 0x4]
- bl CameraObjectSetFollowedObjectId
- add sp, 0x8
- pop {r0}
- bx r0
- .pool
- thumb_func_end SpawnScriptEventObject
-
- thumb_func_start RemoveScriptEventObject
-RemoveScriptEventObject: @ 81391AC
- push {lr}
- bl GetPlayerAvatarObjectId
- lsls r0, 24
- lsrs r0, 24
- bl CameraObjectSetFollowedObjectId
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x7F
- bl RemoveEventObjectByLocalIdAndMap
- pop {r0}
- bx r0
- .pool
- thumb_func_end RemoveScriptEventObject
-
- thumb_func_start GetPokeblockNameByMonNature
-GetPokeblockNameByMonNature: @ 81391D0
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gStringVar1
- bl CopyMonFavoritePokeblockName
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetPokeblockNameByMonNature
-
- thumb_func_start GetSecretBaseNearbyMapName
-GetSecretBaseNearbyMapName: @ 8139200
- push {r4,lr}
- ldr r4, =gStringVar1
- ldr r0, =0x00004026
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl GetMapName
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end GetSecretBaseNearbyMapName
-
- thumb_func_start sub_8139228
-sub_8139228: @ 8139228
- push {lr}
- movs r0, 0x20
- bl GetGameStat
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_8139228
-
- thumb_func_start sub_8139238
-sub_8139238: @ 8139238
- push {lr}
- ldr r0, =gStringVar1
- bl GetEreaderTrainerName
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8139238
-
- thumb_func_start sub_8139248
-sub_8139248: @ 8139248
- push {r4,r5,lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- ldr r1, =0x00002e68
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 25
- ldr r0, =0x00002e6a
- adds r2, r0
- lsrs r1, 25
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, =gUnknown_085B2B88
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- adds r5, r1, r0
- movs r0, 0x2
- bl GetPriceReduction
- lsls r0, 24
- cmp r0, 0
- bne _08139294
- ldr r4, =gUnknown_085B2B94
- b _08139296
- .pool
-_08139294:
- ldr r4, =gUnknown_085B2BA0
-_08139296:
- adds r0, r5, 0
- movs r1, 0xC
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8139248
-
- thumb_func_start sub_81392AC
-sub_81392AC: @ 81392AC
- push {lr}
- ldr r1, =gSpecialVar_0x8004
- ldr r0, =0x00000213
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _081392CC
- movs r0, 0x1
- b _081392CE
- .pool
-_081392CC:
- movs r0, 0
-_081392CE:
- pop {r1}
- bx r1
- thumb_func_end sub_81392AC
-
- thumb_func_start sub_81392D4
-sub_81392D4: @ 81392D4
- push {lr}
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x85
- lsls r0, 2
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _081392F0
- movs r0, 0x1
- b _081392F2
- .pool
-_081392F0:
- movs r0, 0
-_081392F2:
- pop {r1}
- bx r1
- thumb_func_end sub_81392D4
-
- thumb_func_start sub_81392F8
-sub_81392F8: @ 81392F8
- push {lr}
- ldr r1, =gSpecialVar_0x8004
- ldr r0, =0x00000215
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08139318
- movs r0, 0x1
- b _0813931A
- .pool
-_08139318:
- movs r0, 0
-_0813931A:
- pop {r1}
- bx r1
- thumb_func_end sub_81392F8
-
- thumb_func_start sub_8139320
-sub_8139320: @ 8139320
- push {lr}
- ldr r1, =gSpecialVar_0x8004
- ldr r0, =0x00000216
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08139340
- movs r0, 0x1
- b _08139342
- .pool
-_08139340:
- movs r0, 0
-_08139342:
- pop {r1}
- bx r1
- thumb_func_end sub_8139320
-
- thumb_func_start LeadMonHasEffortRibbon
-LeadMonHasEffortRibbon: @ 8139348
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x47
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end LeadMonHasEffortRibbon
-
- thumb_func_start GiveLeadMonEffortRibbon
-GiveLeadMonEffortRibbon: @ 8139370
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0x2A
- bl IncrementGameStat
- ldr r0, =0x0000089b
- bl FlagSet
- movs r1, 0x1
- mov r0, sp
- strb r1, [r0]
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x47
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- bl GetRibbonCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _081393B6
- adds r0, r4, 0
- movs r1, 0x47
- bl sub_80EE4DC
-_081393B6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end GiveLeadMonEffortRibbon
-
- thumb_func_start Special_AreLeadMonEVsMaxedOut
-Special_AreLeadMonEVsMaxedOut: @ 81393C8
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- bl GetMonEVCount
- lsls r0, 16
- ldr r1, =0x01fd0000
- cmp r0, r1
- bhi _081393F4
- movs r0, 0
- b _081393F6
- .pool
-_081393F4:
- movs r0, 0x1
-_081393F6:
- pop {r1}
- bx r1
- thumb_func_end Special_AreLeadMonEVsMaxedOut
-
- thumb_func_start sub_81393FC
-sub_81393FC: @ 81393FC
- push {lr}
- movs r0, 0xC7
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08139454
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- movs r0, 0x83
- lsls r0, 3
- cmp r1, r0
- bne _08139454
- subs r0, 0x75
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08139434
- ldr r0, =0x0000409a
- movs r1, 0x4
- b _08139446
- .pool
-_08139434:
- movs r0, 0xE9
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08139454
- ldr r0, =0x0000409a
- movs r1, 0x5
-_08139446:
- bl VarSet
- movs r0, 0x1
- b _08139456
- .pool
-_08139454:
- movs r0, 0
-_08139456:
- pop {r1}
- bx r1
- thumb_func_end sub_81393FC
-
- thumb_func_start SetShoalItemFlag
-SetShoalItemFlag: @ 813945C
- push {lr}
- ldr r0, =0x000008bf
- bl FlagSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetShoalItemFlag
-
- thumb_func_start PutZigzagoonInPlayerParty
-PutZigzagoonInPlayerParty: @ 813946C
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r5, =gPlayerParty
- movs r1, 0x90
- lsls r1, 1
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r2, 0x7
- movs r3, 0x20
- bl CreateMon
- movs r1, 0x1
- add r0, sp, 0x10
- strh r1, [r0]
- adds r0, r5, 0
- movs r1, 0x2E
- add r2, sp, 0x10
- bl SetMonData
- add r1, sp, 0x10
- movs r0, 0x21
- strh r0, [r1]
- adds r0, r5, 0
- movs r1, 0xD
- add r2, sp, 0x10
- bl SetMonData
- add r0, sp, 0x10
- strh r4, [r0]
- adds r0, r5, 0
- movs r1, 0xE
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xF
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x10
- add r2, sp, 0x10
- bl SetMonData
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PutZigzagoonInPlayerParty
-
- thumb_func_start IsStarterInParty
-IsStarterInParty: @ 81394D8
- push {r4-r6,lr}
- ldr r0, =0x00004023
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl GetStarterPokemon
- lsls r0, 16
- lsrs r6, r0, 16
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _08139526
-_081394FA:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, r6
- bne _0813951C
- movs r0, 0x1
- b _08139528
- .pool
-_0813951C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _081394FA
-_08139526:
- movs r0, 0
-_08139528:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsStarterInParty
-
- thumb_func_start ScriptCheckFreePokemonStorageSpace
-ScriptCheckFreePokemonStorageSpace: @ 8139530
- push {lr}
- bl CheckFreePokemonStorageSpace
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end ScriptCheckFreePokemonStorageSpace
-
- thumb_func_start IsPokerusInParty
-IsPokerusInParty: @ 8139540
- push {lr}
- ldr r0, =gPlayerParty
- movs r1, 0x3F
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- beq _08139558
- movs r0, 0x1
- b _0813955A
- .pool
-_08139558:
- movs r0, 0
-_0813955A:
- pop {r1}
- bx r1
- thumb_func_end IsPokerusInParty
-
- thumb_func_start sub_8139560
-sub_8139560: @ 8139560
- push {lr}
- ldr r0, =sub_81395BC
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- movs r2, 0
- strh r0, [r1, 0x8]
- strh r2, [r1, 0xA]
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- strh r0, [r1, 0xC]
- ldr r0, =gSpecialVar_0x8007
- ldrh r0, [r0]
- strh r0, [r1, 0xE]
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- strh r0, [r1, 0x10]
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0xD6
- bl PlaySE
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8139560
-
- thumb_func_start sub_81395BC
-sub_81395BC: @ 81395BC
- 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 r4, r0, r1
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _08139614
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- subs r0, 0x1
- strh r0, [r4, 0x4]
- ldrh r0, [r4]
- negs r0, r0
- strh r0, [r4]
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- bl SetCameraPanning
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08139614
- adds r0, r5, 0
- bl sub_8139620
- bl InstallCameraPanAheadCallback
-_08139614:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81395BC
-
- thumb_func_start sub_8139620
-sub_8139620: @ 8139620
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_8139620
-
- thumb_func_start sub_8139634
-sub_8139634: @ 8139634
- push {lr}
- movs r0, 0x95
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8139634
-
- thumb_func_start SetRoute119Weather
-SetRoute119Weather: @ 8139648
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_map_type_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08139664
- movs r0, 0x14
- bl SetSav1Weather
-_08139664:
- pop {r0}
- bx r0
- thumb_func_end SetRoute119Weather
-
- thumb_func_start SetRoute123Weather
-SetRoute123Weather: @ 8139668
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_map_type_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08139684
- movs r0, 0x15
- bl SetSav1Weather
-_08139684:
- pop {r0}
- bx r0
- thumb_func_end SetRoute123Weather
-
- thumb_func_start GetLeadMonIndex
-GetLeadMonIndex: @ 8139688
- push {r4-r6,lr}
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- cmp r5, r6
- bcs _081396D6
-_08139698:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _081396CC
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _081396CC
- adds r0, r5, 0
- b _081396D8
- .pool
-_081396CC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _08139698
-_081396D6:
- movs r0, 0
-_081396D8:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonIndex
-
- thumb_func_start ScriptGetPartyMonSpecies
-ScriptGetPartyMonSpecies: @ 81396E0
- push {lr}
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .pool
- thumb_func_end ScriptGetPartyMonSpecies
-
- thumb_func_start nullsub_54
-nullsub_54: @ 8139708
- bx lr
- thumb_func_end nullsub_54
-
- thumb_func_start sub_813970C
-sub_813970C: @ 813970C
- push {r4,lr}
- ldr r0, =0x000040c2
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- adds r3, r0, 0
- ldr r2, =gLocalTime
- movs r1, 0
- ldrsh r0, [r2, r1]
- subs r0, r3
- cmp r0, 0x6
- ble _08139734
- movs r0, 0
- b _0813974C
- .pool
-_08139734:
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0
- blt _0813974A
- subs r1, r3
- movs r0, 0x7
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- b _0813974C
-_0813974A:
- movs r0, 0x8
-_0813974C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_813970C
-
- thumb_func_start sub_8139754
-sub_8139754: @ 8139754
- push {r4,lr}
- ldr r0, =0x000040c2
- ldr r4, =gLocalTime
- ldrh r1, [r4]
- bl VarSet
- ldrh r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8139754
-
- thumb_func_start sub_8139770
-sub_8139770: @ 8139770
- push {r4-r6,lr}
- ldr r6, =gSpecialVar_0x8004
- ldrh r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, =gPlayerParty
- adds r0, r4
- movs r1, 0x3
- bl GetMonData
- cmp r0, 0x2
- bne _081397A6
- ldrh r0, [r6]
- muls r0, r5
- adds r0, r4
- ldr r4, =gStringVar1
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r1, r4, 0
- bl StringCompare
- cmp r0, 0
- beq _081397BC
-_081397A6:
- movs r0, 0x1
- b _081397BE
- .pool
-_081397BC:
- movs r0, 0
-_081397BE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8139770
-
- thumb_func_start sub_81397C4
-sub_81397C4: @ 81397C4
- push {r4,r5,lr}
- ldr r2, =gSpecialVar_Result
- ldrh r1, [r2]
- ldr r0, =0x0000270f
- cmp r1, r0
- bls _081397E0
- movs r0, 0
- bl TV_PrintIntToStringVar
- b _08139862
- .pool
-_081397E0:
- ldr r0, =0x000003e7
- cmp r1, r0
- bls _081397F8
- ldr r4, =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- adds r4, 0x1
- b _0813981C
- .pool
-_081397F8:
- cmp r1, 0x63
- bls _0813980C
- ldr r4, =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r4, 0x2
- b _0813981C
- .pool
-_0813980C:
- cmp r1, 0x9
- bls _0813983C
- ldr r4, =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- adds r4, 0x3
-_0813981C:
- ldrh r5, [r2]
- adds r0, r5, 0
- bl CountDigits
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- b _08139862
- .pool
-_0813983C:
- ldr r4, =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- adds r4, 0x4
- ldrh r5, [r2]
- adds r0, r5, 0
- bl CountDigits
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
-_08139862:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81397C4
-
- thumb_func_start sub_813986C
-sub_813986C: @ 813986C
- push {lr}
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _081398B8
- lsls r0, 2
- ldr r1, =_08139888
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08139888:
- .4byte _0813989C
- .4byte _081398A0
- .4byte _081398A4
- .4byte _081398A8
- .4byte _081398AC
-_0813989C:
- movs r0, 0x3
- b _081398AE
-_081398A0:
- movs r0, 0x4
- b _081398AE
-_081398A4:
- movs r0, 0
- b _081398AE
-_081398A8:
- movs r0, 0x1
- b _081398AE
-_081398AC:
- movs r0, 0x2
-_081398AE:
- bl mevent_081445C0
- lsls r0, 16
- lsrs r0, 16
- b _081398BA
-_081398B8:
- movs r0, 0
-_081398BA:
- pop {r1}
- bx r1
- thumb_func_end sub_813986C
-
- thumb_func_start sub_81398C0
-sub_81398C0: @ 81398C0
- push {r4,lr}
- ldr r1, =gSpecialVar_0x8004
- ldr r2, =0xfffffedf
- adds r0, r2, 0
- ldrh r2, [r1]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x39
- bls _081398E0
- movs r0, 0
- b _081398FC
- .pool
-_081398E0:
- ldr r4, =gStringVar2
- ldrh r0, [r1]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x1
-_081398FC:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81398C0
-
- thumb_func_start sub_813990C
-sub_813990C: @ 813990C
- push {r4,r5,lr}
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _08139942
-_0813991C:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x4
- bl GetMonData
- cmp r0, 0x1
- bne _08139938
- movs r0, 0x1
- b _08139944
- .pool
-_08139938:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0813991C
-_08139942:
- movs r0, 0
-_08139944:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_813990C
-
- thumb_func_start InMultiBattleRoom
-InMultiBattleRoom: @ 813994C
- push {lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldr r0, =0x00000f1a
- cmp r1, r0
- bne _08139978
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _08139978
- movs r0, 0x1
- b _0813997A
- .pool
-_08139978:
- movs r0, 0
-_0813997A:
- pop {r1}
- bx r1
- thumb_func_end InMultiBattleRoom
-
- thumb_func_start sub_8139980
-sub_8139980: @ 8139980
- push {lr}
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0x8
- movs r1, 0
- bl SetCameraPanning
- pop {r0}
- bx r0
- thumb_func_end sub_8139980
-
- thumb_func_start sub_8139994
-sub_8139994: @ 8139994
- push {lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- subs r0, 0x10
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x5
- bhi _081399E4
- lsls r0, 2
- ldr r1, =_081399B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081399B8:
- .4byte _081399E4
- .4byte _081399D0
- .4byte _081399D4
- .4byte _081399D8
- .4byte _081399DC
- .4byte _081399E0
-_081399D0:
- movs r1, 0x5
- b _081399E6
-_081399D4:
- movs r1, 0x6
- b _081399E6
-_081399D8:
- movs r1, 0x7
- b _081399E6
-_081399DC:
- movs r1, 0x8
- b _081399E6
-_081399E0:
- movs r1, 0xF
- b _081399E6
-_081399E4:
- movs r1, 0x4
-_081399E6:
- ldr r0, =0x00004043
- bl VarSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8139994
-
- thumb_func_start sub_81399F4
-sub_81399F4: @ 81399F4
- push {r4,lr}
- ldr r2, =gUnknown_0203AB60
- movs r0, 0
- strh r0, [r2]
- ldr r1, =gUnknown_0203AB62
- strh r0, [r1]
- ldr r0, =gSaveBlock1Ptr
- ldr r3, [r0]
- movs r0, 0x14
- ldrsb r0, [r3, r0]
- adds r4, r1, 0
- cmp r0, 0xD
- bne _08139A6E
- ldrb r0, [r3, 0x15]
- subs r0, 0x10
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bhi _08139A6E
- lsls r0, 2
- ldr r1, =_08139A34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08139A34:
- .4byte _08139A66
- .4byte _08139A5E
- .4byte _08139A56
- .4byte _08139A4E
- .4byte _08139A48
-_08139A48:
- movs r0, 0
- strh r0, [r2]
- b _08139A6C
-_08139A4E:
- movs r0, 0
- strh r0, [r2]
- movs r0, 0x1
- b _08139A6C
-_08139A56:
- movs r0, 0
- strh r0, [r2]
- movs r0, 0x2
- b _08139A6C
-_08139A5E:
- movs r0, 0
- strh r0, [r2]
- movs r0, 0x3
- b _08139A6C
-_08139A66:
- movs r0, 0
- strh r0, [r2]
- movs r0, 0x4
-_08139A6C:
- strh r0, [r4]
-_08139A6E:
- ldrh r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81399F4
-
- thumb_func_start sub_8139A78
-sub_8139A78: @ 8139A78
- push {r4-r6,lr}
- ldr r0, =sub_8139AF4
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r3, 0
- strh r3, [r4, 0x2]
- strh r3, [r4, 0x4]
- movs r6, 0x1
- strh r6, [r4, 0x8]
- ldr r0, =gSpecialVar_0x8005
- ldr r1, =gSpecialVar_0x8006
- ldrh r2, [r0]
- ldrh r0, [r1]
- cmp r2, r0
- bls _08139AC0
- subs r0, r2, r0
- lsls r0, 16
- lsrs r5, r0, 16
- strh r6, [r4, 0xC]
- b _08139AC8
- .pool
-_08139AC0:
- subs r0, r2
- lsls r0, 16
- lsrs r5, r0, 16
- strh r3, [r4, 0xC]
-_08139AC8:
- cmp r5, 0x8
- bls _08139ACE
- movs r5, 0x8
-_08139ACE:
- ldr r0, =gUnknown_085B2C18
- adds r0, r5, r0
- ldrb r0, [r0]
- strh r0, [r4, 0xA]
- movs r0, 0
- bl SetCameraPanningCallback
- ldrb r1, [r4, 0xC]
- adds r0, r5, 0
- bl sub_8139C2C
- movs r0, 0x59
- bl PlaySE
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8139A78
-
- thumb_func_start sub_8139AF4
-sub_8139AF4: @ 8139AF4
- 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 r4, r0, r1
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _08139B54
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- movs r0, 0
- bl SetCameraPanning
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08139B54
- movs r0, 0x49
- bl PlaySE
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- bl InstallCameraPanAheadCallback
-_08139B54:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8139AF4
-
- thumb_func_start sub_8139B60
-sub_8139B60: @ 8139B60
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- ldr r5, =gUnknown_0203AB5E
- ldr r0, =gUnknown_085B2BAC
- bl AddWindow
- strb r0, [r5]
- ldrb r0, [r5]
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r4, =gText_ElevatorNowOn
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x40
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- ldrb r0, [r5]
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- bl PrintTextOnWindow
- ldr r6, =gElevatorFloorsTable
- ldr r4, =gSpecialVar_0x8005
- ldrh r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- movs r0, 0x1
- movs r2, 0x40
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- ldrb r0, [r5]
- ldrh r1, [r4]
- lsls r1, 2
- adds r1, r6
- ldr r2, [r1]
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x11
- str r1, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- bl PrintTextOnWindow
- ldrb r0, [r5]
- bl PutWindowTilemap
- ldrb r0, [r5]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8139B60
-
- thumb_func_start sub_8139C10
-sub_8139C10: @ 8139C10
- push {r4,lr}
- ldr r4, =gUnknown_0203AB5E
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8198070
- ldrb r0, [r4]
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8139C10
-
- thumb_func_start sub_8139C2C
-sub_8139C2C: @ 8139C2C
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, =sub_8139C80
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08139C6C
- adds r0, r4, 0
- movs r1, 0x8
- 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 r0, 0
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r5, [r1, 0xC]
- ldr r0, =gUnknown_085B2C21
- adds r0, r6, r0
- ldrb r0, [r0]
- strh r0, [r1, 0xE]
-_08139C6C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8139C2C
-
- thumb_func_start sub_8139C80
-sub_8139C80: @ 8139C80
- 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
- str r0, [sp]
- lsls r0, 2
- ldr r1, [sp]
- adds r0, r1
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r6, r0, r1
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- cmp r0, 0x6
- bne _08139D7C
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08139D10
- movs r1, 0
- ldr r2, =gUnknown_085B2BF4
- mov r10, r2
-_08139CBA:
- movs r5, 0
- adds r7, r1, 0x7
- lsls r0, r1, 1
- adds r2, r1, 0x1
- mov r8, r2
- adds r0, r1
- lsls r0, 1
- mov r9, r0
-_08139CCA:
- adds r4, r5, 0
- adds r4, 0x8
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- asrs r0, 15
- add r0, r9
- add r0, r10
- ldrh r0, [r0]
- movs r1, 0xC0
- lsls r1, 4
- adds r2, r1, 0
- orrs r2, r0
- adds r0, r4, 0
- adds r1, r7, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08139CCA
- mov r2, r8
- lsls r0, r2, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _08139CBA
- b _08139D62
- .pool
-_08139D10:
- movs r1, 0
- ldr r0, =gUnknown_085B2C06
- mov r10, r0
-_08139D16:
- movs r5, 0
- adds r7, r1, 0x7
- lsls r0, r1, 1
- adds r2, r1, 0x1
- mov r8, r2
- adds r0, r1
- lsls r0, 1
- mov r9, r0
-_08139D26:
- adds r4, r5, 0
- adds r4, 0x8
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- asrs r0, 15
- add r0, r9
- add r0, r10
- ldrh r0, [r0]
- movs r1, 0xC0
- lsls r1, 4
- adds r2, r1, 0
- orrs r2, r0
- adds r0, r4, 0
- adds r1, r7, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08139D26
- mov r2, r8
- lsls r0, r2, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _08139D16
-_08139D62:
- bl DrawWholeMapView
- movs r0, 0
- strh r0, [r6, 0x2]
- movs r0, 0
- ldrsh r1, [r6, r0]
- movs r2, 0x6
- ldrsh r0, [r6, r2]
- cmp r1, r0
- bne _08139D7C
- ldr r0, [sp]
- bl DestroyTask
-_08139D7C:
- ldrh r0, [r6, 0x2]
- adds r0, 0x1
- strh r0, [r6, 0x2]
- 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_8139C80
-
- thumb_func_start sub_8139D98
-sub_8139D98: @ 8139D98
- push {r4-r7,lr}
- sub sp, 0x18
- ldr r6, =gSpecialVar_0x8004
- ldrh r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, =gPlayerParty
- adds r0, r4
- movs r1, 0x27
- bl GetMonData
- str r0, [sp]
- ldrh r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x28
- bl GetMonData
- str r0, [sp, 0x4]
- ldrh r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x29
- bl GetMonData
- str r0, [sp, 0x8]
- ldrh r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x2A
- bl GetMonData
- str r0, [sp, 0xC]
- ldrh r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x2B
- bl GetMonData
- str r0, [sp, 0x10]
- ldrh r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x2C
- bl GetMonData
- str r0, [sp, 0x14]
- ldr r1, =gSpecialVar_0x8005
- movs r0, 0
- strh r0, [r1]
- movs r4, 0
- adds r2, r1, 0
-_08139E00:
- lsls r0, r4, 2
- add r0, sp
- ldr r1, [r0]
- ldrh r0, [r2]
- adds r0, r1
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08139E00
- ldr r2, =gSpecialVar_0x8006
- movs r0, 0
- strh r0, [r2]
- ldr r1, =gSpecialVar_0x8007
- ldr r0, [sp]
- strh r0, [r1]
- movs r4, 0x1
- adds r6, r2, 0
- adds r7, r1, 0
-_08139E28:
- ldrh r0, [r6]
- lsls r0, 2
- mov r2, sp
- adds r1, r2, r0
- lsls r0, r4, 2
- adds r5, r2, r0
- ldr r1, [r1]
- ldr r0, [r5]
- cmp r1, r0
- bcs _08139E54
- strh r4, [r6]
- b _08139E6C
- .pool
-_08139E54:
- cmp r1, r0
- bne _08139E6E
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08139E6E
- strh r4, [r6]
- ldr r0, [r5]
-_08139E6C:
- strh r0, [r7]
-_08139E6E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08139E28
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8139D98
-
- thumb_func_start warp0_in_pokecenter
-warp0_in_pokecenter: @ 8139E80
- push {r4,lr}
- ldr r0, =gUnknown_020322DC
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 8
- ldrb r0, [r0, 0x1]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, =gUnknown_085B2C2A
- ldrh r0, [r2]
- ldr r1, =0x0000ffff
- cmp r0, r1
- beq _08139EC6
- adds r4, r1, 0
- adds r1, r2, 0
-_08139EA4:
- ldrh r0, [r2]
- cmp r0, r3
- bne _08139EBC
- movs r0, 0x1
- b _08139EC8
- .pool
-_08139EBC:
- adds r1, 0x2
- adds r2, 0x2
- ldrh r0, [r1]
- cmp r0, r4
- bne _08139EA4
-_08139EC6:
- movs r0, 0
-_08139EC8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end warp0_in_pokecenter
-
- thumb_func_start sub_8139ED0
-sub_8139ED0: @ 8139ED0
- push {lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldr r0, =0x00003c1a
- cmp r1, r0
- beq _08139EEC
- movs r0, 0x1
- b _08139EEE
- .pool
-_08139EEC:
- movs r0, 0
-_08139EEE:
- pop {r1}
- bx r1
- thumb_func_end sub_8139ED0
-
- thumb_func_start UpdateFrontierManiac
-UpdateFrontierManiac: @ 8139EF4
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, =0x0000402f
- bl GetVarPointer
- adds r5, r0, 0
- ldrh r0, [r5]
- adds r4, r0
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0xA
- bl __umodsi3
- strh r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end UpdateFrontierManiac
-
- thumb_func_start sub_8139F20
-sub_8139F20: @ 8139F20
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, =0x0000402f
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x9
- bls _08139F34
- b _0813A03A
-_08139F34:
- lsls r0, r6, 2
- ldr r1, =_08139F48
- adds r1, r0, r1
- ldr r1, [r1]
- adds r2, r0, 0
- mov pc, r1
- .pool
- .align 2, 0
-_08139F48:
- .4byte _08139F70
- .4byte _08139F70
- .4byte _08139F70
- .4byte _08139F70
- .4byte _08139F94
- .4byte _08139FB4
- .4byte _08139FCC
- .4byte _08139FE4
- .4byte _08139FFC
- .4byte _0813A014
-_08139F70:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r3, 0xCE
- lsls r3, 4
- adds r1, r0, r3
- adds r3, r1, r2
- ldr r1, =0x00000ce2
- adds r0, r1
- adds r1, r0, r2
- ldrh r0, [r3]
- ldrh r2, [r1]
- cmp r0, r2
- bcs _0813A028
- b _0813A038
- .pool
-_08139F94:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r3, =0x00000d0c
- adds r2, r0, r3
- adds r3, 0x2
-_08139F9E:
- adds r1, r0, r3
- ldrh r0, [r2]
- ldrh r3, [r1]
- cmp r0, r3
- bcs _0813A028
- b _0813A038
- .pool
-_08139FB4:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000de2
- adds r2, r0, r1
- ldr r3, =0x00000de4
- b _08139F9E
- .pool
-_08139FCC:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000dc8
- adds r2, r0, r1
- ldr r3, =0x00000dca
- b _08139F9E
- .pool
-_08139FE4:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000dda
- adds r2, r0, r1
- ldr r3, =0x00000ddc
- b _08139F9E
- .pool
-_08139FFC:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e04
- adds r2, r0, r1
- ldr r3, =0x00000e06
- b _08139F9E
- .pool
-_0813A014:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e1a
- adds r2, r0, r1
- ldr r3, =0x00000e1c
- adds r1, r0, r3
- ldrh r0, [r2]
- ldrh r3, [r1]
- cmp r0, r3
- bcc _0813A038
-_0813A028:
- adds r4, r0, 0
- b _0813A03A
- .pool
-_0813A038:
- ldrh r4, [r1]
-_0813A03A:
- movs r2, 0
- ldr r5, =gUnknown_085B2CC8
- lsls r0, r6, 1
- adds r1, r0, r5
- ldrb r1, [r1]
- adds r3, r0, 0
- ldr r7, =gUnknown_085B2C50
- cmp r1, r4
- bcs _0813A062
- adds r1, r3, 0
-_0813A04E:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1
- bhi _0813A062
- adds r0, r2, r1
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, r4
- bcc _0813A04E
-_0813A062:
- adds r0, r3, r6
- adds r0, r2
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- bl ShowFieldMessage
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8139F20
-
- thumb_func_start sub_813A080
-sub_813A080: @ 813A080
- push {r4-r7,lr}
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- cmp r5, 0x2
- bne _0813A0D8
- movs r0, 0xA9
- lsls r0, 1
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0813A0D8
- ldr r1, =gSpecialVar_0x8005
- movs r0, 0x5
- strh r0, [r1]
- ldr r1, =gSpecialVar_0x8006
- movs r0, 0x4
- strh r0, [r1]
- b _0813A110
- .pool
-_0813A0D0:
- movs r0, 0x4
- strh r0, [r6]
- adds r0, r3, 0x5
- b _0813A10E
-_0813A0D8:
- movs r3, 0
- ldr r6, =gSpecialVar_0x8005
- ldr r7, =gSpecialVar_0x8006
- lsls r1, r4, 1
- lsls r2, r5, 2
- ldr r4, =gUnknown_085B2CDC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r1, r2
- movs r2, 0xCE
- lsls r2, 4
- adds r0, r2
- adds r0, r1
- ldrh r1, [r0]
-_0813A0F4:
- lsls r0, r3, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r1
- bhi _0813A0D0
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bls _0813A0F4
- movs r0, 0x4
- strh r0, [r6]
- movs r0, 0xC
-_0813A10E:
- strh r0, [r7]
-_0813A110:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A080
-
- thumb_func_start sub_813A128
-sub_813A128: @ 813A128
- push {r4,lr}
- ldr r0, =sub_813A2DC
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r3, r0, r1
- ldr r1, =gSpecialVar_0x8004
- ldrh r0, [r1]
- strh r0, [r3, 0x1E]
- ldrh r0, [r1]
- cmp r0, 0xC
- bls _0813A14E
- b _0813A2C6
-_0813A14E:
- lsls r0, 2
- ldr r1, =_0813A168
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0813A168:
- .4byte _0813A19C
- .4byte _0813A1AA
- .4byte _0813A1C2
- .4byte _0813A1D6
- .4byte _0813A1F0
- .4byte _0813A208
- .4byte _0813A222
- .4byte _0813A23C
- .4byte _0813A25A
- .4byte _0813A274
- .4byte _0813A274
- .4byte _0813A28E
- .4byte _0813A2A8
-_0813A19C:
- movs r1, 0
- movs r0, 0x1
- strh r0, [r3, 0x8]
- strh r0, [r3, 0xA]
- strh r0, [r3, 0xC]
- strh r0, [r3, 0xE]
- b _0813A2BC
-_0813A1AA:
- movs r1, 0
- movs r0, 0x5
- strh r0, [r3, 0x8]
- movs r0, 0x8
- strh r0, [r3, 0xA]
- movs r0, 0x1
- strh r0, [r3, 0xC]
- strh r0, [r3, 0xE]
- movs r0, 0x9
- strh r0, [r3, 0x10]
- movs r0, 0xA
- b _0813A2BE
-_0813A1C2:
- movs r2, 0
- movs r0, 0x6
- strh r0, [r3, 0x8]
- movs r1, 0xC
- strh r1, [r3, 0xA]
- movs r0, 0x1
- strh r0, [r3, 0xC]
- strh r0, [r3, 0xE]
- movs r0, 0x7
- b _0813A250
-_0813A1D6:
- movs r1, 0
- movs r0, 0x6
- strh r0, [r3, 0x8]
- movs r0, 0xB
- strh r0, [r3, 0xA]
- movs r0, 0xE
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0xE]
- movs r0, 0xF
- strh r0, [r3, 0x10]
- movs r0, 0xC
- b _0813A2BE
-_0813A1F0:
- movs r1, 0
- movs r0, 0x6
- strh r0, [r3, 0x8]
- strh r0, [r3, 0xA]
- movs r0, 0xE
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0xE]
- movs r0, 0xF
- strh r0, [r3, 0x10]
- movs r0, 0xC
- b _0813A2BE
-_0813A208:
- movs r1, 0
- movs r0, 0x6
- strh r0, [r3, 0x8]
- movs r0, 0x7
- strh r0, [r3, 0xA]
- movs r0, 0xE
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0xE]
- movs r0, 0xF
- strh r0, [r3, 0x10]
- movs r0, 0xC
- b _0813A2BE
-_0813A222:
- movs r1, 0
- movs r0, 0x6
- strh r0, [r3, 0x8]
- movs r0, 0xA
- strh r0, [r3, 0xA]
- movs r0, 0xE
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0xE]
- movs r0, 0xF
- strh r0, [r3, 0x10]
- movs r0, 0xC
- b _0813A2BE
-_0813A23C:
- movs r2, 0
- movs r0, 0x6
- strh r0, [r3, 0x8]
- movs r1, 0xC
- strh r1, [r3, 0xA]
- movs r0, 0xF
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0xE]
- movs r0, 0xE
-_0813A250:
- strh r0, [r3, 0x10]
- strh r1, [r3, 0x12]
- strh r2, [r3, 0x14]
- strh r4, [r3, 0x26]
- b _0813A2D2
-_0813A25A:
- movs r1, 0
- movs r0, 0x6
- strh r0, [r3, 0x8]
- movs r0, 0xA
- strh r0, [r3, 0xA]
- movs r0, 0x11
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0xE]
- movs r0, 0xB
- strh r0, [r3, 0x10]
- movs r0, 0xC
- b _0813A2BE
-_0813A274:
- movs r1, 0
- movs r0, 0x6
- strh r0, [r3, 0x8]
- movs r0, 0xB
- strh r0, [r3, 0xA]
- movs r0, 0xF
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0xE]
- movs r0, 0xE
- strh r0, [r3, 0x10]
- movs r0, 0xC
- b _0813A2BE
-_0813A28E:
- movs r1, 0
- movs r0, 0x6
- strh r0, [r3, 0x8]
- movs r0, 0x7
- strh r0, [r3, 0xA]
- movs r0, 0x13
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0xE]
- movs r0, 0xA
- strh r0, [r3, 0x10]
- movs r0, 0xC
- b _0813A2BE
-_0813A2A8:
- movs r1, 0
- movs r0, 0x6
- strh r0, [r3, 0x8]
- movs r0, 0x7
- strh r0, [r3, 0xA]
- movs r0, 0x11
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0xE]
- movs r0, 0xC
-_0813A2BC:
- strh r0, [r3, 0x10]
-_0813A2BE:
- strh r0, [r3, 0x12]
- strh r1, [r3, 0x14]
- strh r4, [r3, 0x26]
- b _0813A2D2
-_0813A2C6:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0813A2D2:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A128
-
- thumb_func_start sub_813A2DC
-sub_813A2DC: @ 813A2DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks
- adds r6, r0, r1
- bl ScriptContext2_Enable
- ldr r0, =gUnknown_0203AB68
- movs r5, 0
- strh r5, [r0]
- ldr r1, =gUnknown_0203AB6C
- movs r0, 0x40
- strb r0, [r1]
- ldrh r0, [r6, 0x1E]
- movs r1, 0
- bl sub_813AA60
- ldrb r0, [r6, 0x1E]
- movs r1, 0
- bl sub_813ACE8
- ldr r4, =gUnknown_0203AB64
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- lsls r0, 3
- bl AllocZeroed
- str r0, [r4]
- ldr r0, =gUnknown_0203AB6A
- strh r5, [r0]
- bl sub_813A42C
- movs r3, 0
- movs r4, 0
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- add r1, sp, 0x18
- mov r8, r1
- cmp r3, r0
- bge _0813A36A
- ldr r5, =gUnknown_085B2CF0
-_0813A33A:
- lsls r1, r4, 2
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r1, r5
- ldr r0, [r1]
- ldr r1, =gUnknown_0203AB64
- ldr r2, [r1]
- lsls r1, r4, 3
- adds r1, r2
- str r0, [r1]
- str r4, [r1, 0x4]
- adds r1, r3, 0
- bl display_text_and_get_width
- adds r3, r0, 0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- cmp r4, r0
- blt _0813A33A
-_0813A36A:
- adds r0, r3, 0
- bl convert_pixel_width_to_tile_width
- strh r0, [r6, 0x10]
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- movs r2, 0x10
- ldrsh r1, [r6, r2]
- adds r0, r1
- cmp r0, 0x1D
- ble _0813A38C
- movs r0, 0x1D
- subs r0, r1
- cmp r0, 0
- bge _0813A38A
- movs r0, 0
-_0813A38A:
- strh r0, [r6, 0xC]
-_0813A38C:
- ldrb r2, [r6, 0xC]
- ldrb r3, [r6, 0xE]
- ldrb r0, [r6, 0x10]
- str r0, [sp]
- ldrb r0, [r6, 0x12]
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0x64
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- bl sub_8198A50
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- mov r0, r8
- bl AddWindow
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r4, =gUnknown_030061D0
- ldrh r0, [r6, 0xA]
- strh r0, [r4, 0xC]
- ldrh r0, [r6, 0x8]
- strh r0, [r4, 0xE]
- ldrh r0, [r6, 0x22]
- strb r0, [r4, 0x10]
- adds r0, r7, 0
- bl sub_813A694
- ldrh r1, [r6, 0x16]
- ldrh r2, [r6, 0x18]
- adds r0, r4, 0
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x24]
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_813A4EC
- str r1, [r0]
- add sp, 0x20
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A2DC
-
- thumb_func_start sub_813A42C
-sub_813A42C: @ 813A42C
- ldr r1, =gUnknown_030061D0
- ldr r0, =gUnknown_0203AB64
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, =sub_813A46C
- str r0, [r1, 0x4]
- movs r0, 0
- str r0, [r1, 0x8]
- movs r2, 0
- movs r0, 0x1
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- strb r2, [r1, 0x10]
- strb r2, [r1, 0x11]
- movs r0, 0x8
- strb r0, [r1, 0x12]
- strb r2, [r1, 0x13]
- movs r0, 0x21
- strb r0, [r1, 0x14]
- movs r0, 0x31
- strb r0, [r1, 0x15]
- movs r0, 0
- strb r0, [r1, 0x16]
- movs r0, 0x1
- strb r0, [r1, 0x17]
- bx lr
- .pool
- thumb_func_end sub_813A42C
-
- thumb_func_start sub_813A46C
-sub_813A46C: @ 813A46C
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0x5
- bl PlaySE
- ldr r0, =sub_813A4EC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0813A4D4
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- ldrh r0, [r4, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- movs r2, 0
- bl ListMenuGetScrollAndRow
- ldr r1, =gUnknown_0203AB68
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1]
- ldrh r0, [r4, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- bl ListMenuGetCurrentItemArrayId
- ldrh r0, [r4, 0x1E]
- ldr r5, =gUnknown_0203AB6A
- ldrh r1, [r5]
- bl sub_813AC44
- ldrh r0, [r4, 0x1E]
- mov r1, sp
- ldrh r1, [r1]
- bl sub_813AA60
- ldrb r0, [r4, 0x1E]
- mov r1, sp
- ldrh r1, [r1]
- bl sub_813AD34
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5]
-_0813A4D4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A46C
-
- thumb_func_start sub_813A4EC
-sub_813A4EC: @ 813A4EC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r6, r0, r1
- ldrh r0, [r6, 0x24]
- lsls r0, 24
- lsrs r0, 24
- bl ListMenuHandleInputGetItemId
- adds r4, r0, 0
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _0813A51C
- adds r0, 0x1
- cmp r4, r0
- bne _0813A530
- b _0813A566
- .pool
-_0813A51C:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
- b _0813A54C
- .pool
-_0813A530:
- ldr r0, =gSpecialVar_Result
- strh r4, [r0]
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _0813A54C
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- subs r0, 0x1
- cmp r4, r0
- bne _0813A558
-_0813A54C:
- adds r0, r5, 0
- bl sub_813A570
- b _0813A566
- .pool
-_0813A558:
- adds r0, r5, 0
- bl sub_813A738
- ldr r0, =sub_813A600
- str r0, [r6]
- bl EnableBothScriptContexts
-_0813A566:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A4EC
-
- thumb_func_start sub_813A570
-sub_813A570: @ 813A570
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- ldrh r0, [r4, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- bl ListMenuGetCurrentItemArrayId
- ldrh r0, [r4, 0x1E]
- mov r1, sp
- ldrh r1, [r1]
- bl sub_813AC44
- adds r0, r5, 0
- bl sub_813A738
- ldrh r0, [r4, 0x24]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldr r0, =gUnknown_0203AB64
- ldr r0, [r0]
- bl Free
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_8198070
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl FillWindowPixelBuffer
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl CopyWindowToVram
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- bl RemoveWindow
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A570
-
- thumb_func_start sub_813A600
-sub_813A600: @ 813A600
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x14
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _0813A624
- cmp r0, 0x2
- bne _0813A624
- movs r0, 0x1
- strh r0, [r1, 0x14]
- ldr r0, =sub_813A664
- str r0, [r1]
-_0813A624:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A600
-
- thumb_func_start sub_813A630
-sub_813A630: @ 813A630
- push {lr}
- ldr r0, =sub_813A600
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _0813A64C
- bl EnableBothScriptContexts
- b _0813A65C
- .pool
-_0813A64C:
- ldr r0, =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- adds r0, 0x1
- strh r0, [r1, 0x14]
-_0813A65C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A630
-
- thumb_func_start sub_813A664
-sub_813A664: @ 813A664
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- adds r0, r4, 0
- bl sub_813A694
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_813A4EC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A664
-
- thumb_func_start sub_813A694
-sub_813A694: @ 813A694
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- mov r1, sp
- ldr r0, =gUnknown_085B3030
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _0813A724
- mov r2, sp
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- lsls r1, 3
- adds r1, 0xC
- movs r5, 0xC
- ldrsh r0, [r4, r5]
- subs r0, 0x1
- lsls r0, 3
- adds r1, r0
- movs r3, 0
- strb r1, [r2, 0x1]
- mov r1, sp
- movs r0, 0x8
- strb r0, [r1, 0x2]
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- lsls r1, 3
- adds r1, 0xC
- movs r5, 0xC
- ldrsh r0, [r4, r5]
- subs r0, 0x1
- lsls r0, 3
- adds r1, r0
- strb r1, [r2, 0x4]
- mov r1, sp
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r0, 0xA
- strb r0, [r1, 0x5]
- mov r0, sp
- strh r3, [r0, 0x6]
- mov r2, sp
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- subs r0, r1
- strh r0, [r2, 0x8]
- ldr r1, =gUnknown_0203AB68
- mov r0, sp
- bl AddScrollIndicatorArrowPair
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
-_0813A724:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A694
-
- thumb_func_start sub_813A738
-sub_813A738: @ 813A738
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r2, r1, r0
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r1, r0
- beq _0813A75E
- ldrh r0, [r2, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bl RemoveScrollIndicatorArrowPair
-_0813A75E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A738
-
- thumb_func_start nullsub_55
-nullsub_55: @ 813A768
- bx lr
- thumb_func_end nullsub_55
-
- thumb_func_start sub_813A76C
-sub_813A76C: @ 813A76C
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, =gLinkPlayers
- ldr r0, =0x0000401f
- adds r5, r0, 0
-_0813A776:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- bne _0813A79C
- subs r0, r5, r4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl VarSet
- b _0813A7A8
- .pool
-_0813A79C:
- subs r0, r5, r4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x69
- bl VarSet
-_0813A7A8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0813A776
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813A76C
-
- thumb_func_start sub_813A7B8
-sub_813A7B8: @ 813A7B8
- push {lr}
- ldr r1, =gSpecialVar_0x8004
- ldrh r0, [r1]
- cmp r0, 0x5
- bls _0813A7C6
- movs r0, 0
- strh r0, [r1]
-_0813A7C6:
- ldrh r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- bl GetNature
- lsls r0, 24
- ldr r1, =gUnknown_085B3040
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A7B8
-
- thumb_func_start UpdateFrontierGambler
-UpdateFrontierGambler: @ 813A7F4
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, =0x00004030
- bl GetVarPointer
- adds r5, r0, 0
- ldrh r0, [r5]
- adds r4, r0
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0xC
- bl __umodsi3
- strh r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end UpdateFrontierGambler
-
- thumb_func_start sub_813A820
-sub_813A820: @ 813A820
- push {r4,lr}
- ldr r0, =0x00004030
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r1, =gUnknown_085B30A4
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- ldr r0, =0x00004031
- adds r1, r4, 0
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A820
-
- thumb_func_start sub_813A854
-sub_813A854: @ 813A854
- push {r4,lr}
- ldr r4, =gUnknown_085B30D4
- ldr r0, =0x00004031
- bl VarGet
- lsls r0, 16
- lsrs r0, 14
- adds r0, r4
- ldr r0, [r0]
- bl ShowFieldMessage
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A854
-
- thumb_func_start sub_813A878
-sub_813A878: @ 813A878
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, =0x00004031
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r4, =0x00004033
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0813A8F0
- ldr r1, =gUnknown_085B3104
- lsls r0, r6, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r5, 8
- adds r0, r7
- cmp r1, r0
- bne _0813A8F0
- mov r0, r8
- cmp r0, 0
- beq _0813A8E8
- adds r0, r4, 0
- movs r1, 0x2
- bl VarSet
- b _0813A8F0
- .pool
-_0813A8E8:
- adds r0, r4, 0
- movs r1, 0x3
- bl VarSet
-_0813A8F0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813A878
-
- thumb_func_start sub_813A8FC
-sub_813A8FC: @ 813A8FC
- push {lr}
- sub sp, 0x2C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000eb8
- adds r0, r1
- ldrh r1, [r0]
- add r0, sp, 0xC
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r1, =gText_BP
- bl StringCopy
- movs r0, 0x1
- add r1, sp, 0xC
- movs r2, 0x30
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- ldr r0, =gUnknown_0203AB6D
- ldrb r0, [r0]
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x1
- add r2, sp, 0xC
- bl PrintTextOnWindow
- add sp, 0x2C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A8FC
-
- thumb_func_start sub_813A958
-sub_813A958: @ 813A958
- push {r4,lr}
- ldr r4, =gUnknown_0203AB6D
- ldr r0, =gUnknown_085B311C
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl SetStandardWindowBorderStyle
- bl sub_813A8FC
- ldrb r0, [r4]
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A958
-
- thumb_func_start sub_813A988
-sub_813A988: @ 813A988
- push {r4,lr}
- ldr r4, =gUnknown_0203AB6D
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8198070
- ldrb r0, [r4]
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813A988
-
- thumb_func_start sub_813A9A4
-sub_813A9A4: @ 813A9A4
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000eb8
- adds r1, r0, r2
- ldr r0, =gSpecialVar_0x8004
- ldrh r2, [r1]
- ldrh r0, [r0]
- cmp r2, r0
- bcs _0813A9C8
- movs r0, 0
- b _0813A9CA
- .pool
-_0813A9C8:
- subs r0, r2, r0
-_0813A9CA:
- strh r0, [r1]
- pop {r0}
- bx r0
- thumb_func_end sub_813A9A4
-
- thumb_func_start sub_813A9D0
-sub_813A9D0: @ 813A9D0
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000eb8
- adds r2, r0, r1
- ldrh r1, [r2]
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r1, r0
- ldr r0, =0x0000270f
- cmp r1, r0
- ble _0813A9FC
- strh r0, [r2]
- b _0813A9FE
- .pool
-_0813A9FC:
- strh r1, [r2]
-_0813A9FE:
- pop {r0}
- bx r0
- thumb_func_end sub_813A9D0
-
- thumb_func_start sub_813AA04
-sub_813AA04: @ 813AA04
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000eb8
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_813AA04
-
- thumb_func_start sub_813AA18
-sub_813AA18: @ 813AA18
- push {r4,lr}
- ldr r4, =gUnknown_0203AB6E
- ldr r0, =gUnknown_085B3124
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldrb r0, [r4]
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813AA18
-
- thumb_func_start sub_813AA44
-sub_813AA44: @ 813AA44
- push {r4,lr}
- ldr r4, =gUnknown_0203AB6E
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8198070
- ldrb r0, [r4]
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813AA44
-
- thumb_func_start sub_813AA60
-sub_813AA60: @ 813AA60
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- lsrs r4, r0, 16
- ldr r1, =0xfffd0000
- adds r0, r1
- lsrs r0, 16
- cmp r0, 0x3
- bls _0813AA78
- b _0813ABC2
-_0813AA78:
- movs r0, 0xD8
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x11
- movs r2, 0
- movs r3, 0
- bl FillWindowPixelRect
- cmp r4, 0x4
- beq _0813AAE8
- cmp r4, 0x4
- bgt _0813AAA0
- cmp r4, 0x3
- beq _0813AAAA
- b _0813ABC2
- .pool
-_0813AAA0:
- cmp r4, 0x5
- beq _0813AB5C
- cmp r4, 0x6
- beq _0813AB94
- b _0813ABC2
-_0813AAAA:
- ldr r1, =gUnknown_085B3170
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r1, =gUnknown_085B312C
- lsls r0, r5, 1
- adds r1, r0, r1
- ldrh r5, [r1]
- ldr r0, =0x0000ffff
- cmp r5, r0
- beq _0813AB18
- b _0813AB2C
- .pool
-_0813AAE8:
- ldr r1, =gUnknown_085B319C
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r1, =gUnknown_085B3142
- lsls r0, r5, 1
- adds r1, r0, r1
- ldrh r5, [r1]
- ldr r0, =0x0000ffff
- cmp r5, r0
- bne _0813AB2C
-_0813AB18:
- ldrh r0, [r1]
- bl sub_813ABD4
- b _0813ABC2
- .pool
-_0813AB2C:
- ldr r4, =0x0000157c
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- lsls r0, r5, 24
- lsrs r0, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r1, 0x21
- movs r2, 0x58
- movs r3, 0
- bl AddDecorationIconObject
- ldr r1, =gUnknown_0203AB6C
- strb r0, [r1]
- b _0813ABC2
- .pool
-_0813AB5C:
- ldr r1, =gUnknown_085B31B4
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r1, =gUnknown_085B314E
- lsls r0, r5, 1
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813ABD4
- b _0813ABC2
- .pool
-_0813AB94:
- ldr r1, =gUnknown_085B31D0
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r1, =gUnknown_085B315C
- lsls r0, r5, 1
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813ABD4
-_0813ABC2:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813AA60
-
- thumb_func_start sub_813ABD4
-sub_813ABD4: @ 813ABD4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r4, =0x0000157c
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl AddItemIconSprite
- ldr r4, =gUnknown_0203AB6C
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813AC32
- ldr r3, =gSprites
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x24
- strh r1, [r0, 0x20]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5C
- strh r1, [r0, 0x22]
-_0813AC32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813ABD4
-
- thumb_func_start sub_813AC44
-sub_813AC44: @ 813AC44
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, =gUnknown_0203AB6C
- ldrb r0, [r2]
- cmp r0, 0x40
- beq _0813AC70
- cmp r1, 0x6
- bgt _0813AC6A
- cmp r1, 0x3
- blt _0813AC6A
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
-_0813AC6A:
- ldr r1, =gUnknown_0203AB6C
- movs r0, 0x40
- strb r0, [r1]
-_0813AC70:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813AC44
-
- thumb_func_start sub_813AC7C
-sub_813AC7C: @ 813AC7C
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813ACB8
- ldr r0, =gStringVar1
- ldr r2, =gUnknown_085B320C
- ldr r1, =gSpecialVar_0x8004
- ldrh r1, [r1]
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- b _0813ACD2
- .pool
-_0813ACB8:
- ldr r0, =gStringVar1
- ldr r2, =gUnknown_085B31F8
- ldr r1, =gSpecialVar_0x8004
- ldrh r1, [r1]
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
-_0813ACD2:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813AC7C
-
- thumb_func_start sub_813ACE8
-sub_813ACE8: @ 813ACE8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- subs r0, 0x9
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0813AD20
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- bne _0813AD18
- ldr r4, =gUnknown_0203AB5E
- ldr r0, =gUnknown_085B3220
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl SetStandardWindowBorderStyle
-_0813AD18:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_813AD34
-_0813AD20:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813ACE8
-
- thumb_func_start sub_813AD34
-sub_813AD34: @ 813AD34
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- adds r7, r5, 0
- lsrs r6, r0, 24
- movs r1, 0xF7
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0813ADAC
- ldr r4, =gUnknown_0203AB5E
- ldrb r0, [r4]
- movs r1, 0x60
- str r1, [sp]
- movs r1, 0x30
- str r1, [sp, 0x4]
- movs r1, 0x11
- movs r2, 0
- movs r3, 0
- bl FillWindowPixelRect
- cmp r6, 0xA
- bne _0813AD90
- ldrb r0, [r4]
- ldr r2, =gUnknown_085B3254
- lsls r1, r5, 2
- adds r1, r2
- ldr r2, [r1]
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl PrintTextOnWindow
- b _0813ADAC
- .pool
-_0813AD90:
- ldrb r0, [r4]
- ldr r2, =gUnknown_085B3228
- lsls r1, r7, 2
- adds r1, r2
- ldr r2, [r1]
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl PrintTextOnWindow
-_0813ADAC:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813AD34
-
- thumb_func_start sub_813ADB8
-sub_813ADB8: @ 813ADB8
- push {r4,lr}
- ldr r4, =gUnknown_0203AB5E
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8198070
- ldrb r0, [r4]
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813ADB8
-
- thumb_func_start sub_813ADD4
-sub_813ADD4: @ 813ADD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- ldr r0, =sub_813A600
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0813AE90
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, =gTasks
- adds r6, r0, r1
- ldrh r0, [r6, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r4, sp
- adds r4, 0x16
- add r1, sp, 0x14
- adds r2, r4, 0
- bl ListMenuGetScrollAndRow
- ldrh r0, [r6, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl SetStandardWindowBorderStyle
- movs r5, 0
- mov r9, r4
- ldr r0, =gUnknown_085B2CF0
- mov r8, r0
- movs r4, 0
-_0813AE1E:
- ldrh r0, [r6, 0x22]
- lsls r0, 24
- lsrs r0, 24
- add r1, sp, 0x14
- ldrh r2, [r1]
- adds r2, r5
- lsls r2, 2
- ldr r1, =gSpecialVar_0x8004
- ldrh r1, [r1]
- lsls r1, 6
- adds r2, r1
- add r2, r8
- ldr r2, [r2]
- lsls r1, r5, 28
- lsrs r1, 24
- str r1, [sp]
- movs r7, 0xFF
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r3, 0xA
- bl sub_8199F74
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0813AE1E
- ldrh r0, [r6, 0x22]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gText_SelectorArrow
- mov r3, r9
- ldrh r1, [r3]
- lsls r1, 28
- lsrs r1, 24
- str r1, [sp]
- str r7, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl PrintTextOnWindow
- ldrh r0, [r6, 0x22]
- lsls r0, 24
- lsrs r0, 24
- bl PutWindowTilemap
- ldrh r0, [r6, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl CopyWindowToVram
-_0813AE90:
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813ADD4
-
- thumb_func_start sub_813AEB4
-sub_813AEB4: @ 813AEB4
- push {r4,lr}
- movs r1, 0
- ldr r0, =gSpecialVar_0x8005
- strh r1, [r0]
- ldr r0, =0x0000400e
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, =0x0000400d
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r4, 0
- beq _0813AF18
- movs r2, 0
- lsls r1, 1
- ldr r3, =gUnknown_0861500C
- ldr r0, =gUnknown_085B320C
- adds r0, r1, r0
- ldrh r1, [r0]
-_0813AEE2:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r1
- beq _0813AF0C
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1D
- bls _0813AEE2
- b _0813AF38
- .pool
-_0813AF0C:
- ldr r0, =gSpecialVar_0x8005
- strh r2, [r0]
- b _0813AF38
- .pool
-_0813AF18:
- movs r2, 0
- lsls r1, 1
- ldr r3, =gUnknown_0861500C
- ldr r0, =gUnknown_085B31F8
- adds r0, r1, r0
- ldrh r1, [r0]
-_0813AF24:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r1
- beq _0813AF0C
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1D
- bls _0813AF24
-_0813AF38:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813AEB4
-
- thumb_func_start sub_813AF48
-sub_813AF48: @ 813AF48
- push {r4,r5,lr}
- ldr r0, =sub_813A600
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xFF
- beq _0813AFB6
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- ldrh r0, [r4, 0x24]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldr r0, =gUnknown_0203AB64
- ldr r0, [r0]
- bl Free
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_8198070
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl FillWindowPixelBuffer
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- bl ClearWindowTilemap
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl CopyWindowToVram
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- bl RemoveWindow
- adds r0, r5, 0
- bl DestroyTask
-_0813AFB6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813AF48
-
- thumb_func_start sub_813AFC8
-sub_813AFC8: @ 813AFC8
- push {lr}
- ldr r0, =task_deoxys_sound
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813AFC8
-
- thumb_func_start task_deoxys_sound
-task_deoxys_sound: @ 813AFDC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =0x000008d4
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813B004
- ldr r1, =gSpecialVar_Result
- movs r0, 0x3
- b _0813B06A
- .pool
-_0813B004:
- ldr r0, =0x00004035
- mov r8, r0
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r4, =0x00004034
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl VarSet
- cmp r5, 0
- beq _0813B05C
- ldr r0, =gUnknown_085B33F6
- subs r1, r5, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, r6
- bcs _0813B05C
- movs r0, 0
- bl sub_813B0B4
- mov r0, r8
- movs r1, 0
- bl VarSet
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- b _0813B070
- .pool
-_0813B05C:
- cmp r5, 0xA
- bne _0813B080
- ldr r0, =0x000008d4
- bl FlagSet
- ldr r1, =gSpecialVar_Result
- movs r0, 0x2
-_0813B06A:
- strh r0, [r1]
- bl EnableBothScriptContexts
-_0813B070:
- adds r0, r7, 0
- bl DestroyTask
- b _0813B0A2
- .pool
-_0813B080:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_813B0B4
- ldr r0, =0x00004035
- adds r1, r5, 0
- bl VarSet
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
- adds r0, r7, 0
- bl DestroyTask
-_0813B0A2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_deoxys_sound
-
- thumb_func_start sub_813B0B4
-sub_813B0B4: @ 813B0B4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 5
- ldr r1, =gUnknown_085B3280
- adds r0, r1
- movs r1, 0xD0
- lsls r1, 1
- movs r2, 0x8
- bl LoadPalette
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x1
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- cmp r4, 0
- bne _0813B0F0
- movs r0, 0xC4
- bl PlaySE
- b _0813B0F8
- .pool
-_0813B0F0:
- movs r0, 0x82
- lsls r0, 1
- bl PlaySE
-_0813B0F8:
- ldr r0, =sub_813B160
- movs r1, 0x8
- bl CreateTask
- ldr r3, =gFieldEffectArguments
- movs r0, 0x1
- str r0, [r3]
- movs r0, 0x3A
- str r0, [r3, 0x4]
- movs r0, 0x1A
- str r0, [r3, 0x8]
- ldr r0, =gUnknown_085B33E0
- lsls r2, r4, 1
- adds r1, r2, r0
- ldrb r1, [r1]
- str r1, [r3, 0xC]
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- str r0, [r3, 0x10]
- adds r5, r2, 0
- cmp r4, 0
- bne _0813B138
- movs r0, 0x3C
- b _0813B13A
- .pool
-_0813B138:
- movs r0, 0x5
-_0813B13A:
- str r0, [r3, 0x14]
- movs r0, 0x42
- bl FieldEffectStart
- ldr r0, =gUnknown_085B33E0
- adds r1, r5, r0
- ldrb r1, [r1]
- adds r0, 0x1
- adds r0, r5, r0
- ldrb r2, [r0]
- movs r0, 0x1
- bl Overworld_SetEventObjTemplateCoords
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813B0B4
-
- thumb_func_start sub_813B160
-sub_813B160: @ 813B160
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x42
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _0813B17C
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_0813B17C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813B160
-
- thumb_func_start increment_var_x4026_on_birth_island_modulo_100
-increment_var_x4026_on_birth_island_modulo_100: @ 813B184
- push {r4,lr}
- ldr r4, =0x00004034
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldr r0, =0x00003a1a
- cmp r1, r0
- bne _0813B1C8
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x63
- bls _0813B1C0
- adds r0, r4, 0
- movs r1, 0
- bl VarSet
- b _0813B1C8
- .pool
-_0813B1C0:
- adds r0, r4, 0
- adds r1, r2, 0
- bl VarSet
-_0813B1C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end increment_var_x4026_on_birth_island_modulo_100
-
- thumb_func_start sub_813B1D0
-sub_813B1D0: @ 813B1D0
- push {lr}
- ldr r0, =0x00004035
- bl VarGet
- lsls r0, 24
- lsrs r0, 19
- ldr r1, =gUnknown_085B3280
- adds r0, r1
- movs r1, 0xD0
- lsls r1, 1
- movs r2, 0x8
- bl LoadPalette
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813B1D0
-
- thumb_func_start set_unknown_box_id
-@ void set_unknown_box_id(char id)
-set_unknown_box_id: @ 813B204
- ldr r1, =gUnknown_0203AB6F
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end set_unknown_box_id
-
- thumb_func_start get_unknown_box_id
-get_unknown_box_id: @ 813B210
- ldr r0, =gUnknown_0203AB6F
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end get_unknown_box_id
-
- thumb_func_start sub_813B21C
-sub_813B21C: @ 813B21C
- push {r4,r5,lr}
- ldr r5, =0x000008d7
- adds r0, r5, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0813B258
- bl StorageGetCurrentBox
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x00004036
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- beq _0813B258
- adds r0, r5, 0
- bl FlagSet
- movs r0, 0x1
- b _0813B25A
- .pool
-_0813B258:
- movs r0, 0
-_0813B25A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_813B21C
-
- thumb_func_start sub_813B260
-sub_813B260: @ 813B260
- push {r4-r7,lr}
- ldr r0, =0x00004036
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl set_unknown_box_id
- bl StorageGetCurrentBox
- lsls r0, 24
- lsrs r4, r0, 24
-_0813B278:
- movs r5, 0
- lsls r6, r4, 24
- lsls r7, r4, 16
-_0813B27E:
- lsls r1, r5, 24
- lsrs r1, 24
- lsrs r0, r6, 24
- bl GetBoxedMonPtr
- movs r1, 0xB
- movs r2, 0
- bl GetBoxMonData
- cmp r0, 0
- bne _0813B2C0
- bl get_unknown_box_id
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- beq _0813B2A6
- ldr r0, =0x000008d7
- bl FlagClear
-_0813B2A6:
- ldr r0, =0x00004036
- lsrs r1, r7, 16
- bl VarSet
- bl sub_813B21C
- lsls r0, 24
- lsrs r0, 24
- b _0813B2DC
- .pool
-_0813B2C0:
- adds r5, 0x1
- cmp r5, 0x1D
- ble _0813B27E
- adds r4, 0x1
- cmp r4, 0xE
- bne _0813B2CE
- movs r4, 0
-_0813B2CE:
- bl StorageGetCurrentBox
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0813B278
- movs r0, 0
-_0813B2DC:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_813B260
-
- thumb_func_start sub_813B2E4
-sub_813B2E4: @ 813B2E4
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =0x00004038
- movs r1, 0
- bl VarSet
- movs r0, 0xDF
- lsls r0, 1
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0813B340
- ldr r0, =0x000001bf
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813B330
- ldr r0, =0x00004037
- movs r1, 0x7
- ands r4, r1
- adds r1, r4, 0
- adds r1, 0x9
- bl VarSet
- b _0813B36A
- .pool
-_0813B330:
- movs r0, 0x1
- ands r4, r0
- cmp r4, 0
- bne _0813B354
- bl Random
- lsls r0, 16
- lsrs r4, r0, 16
-_0813B340:
- ldr r0, =0x00004037
- movs r1, 0x7
- ands r4, r1
- adds r1, r4, 0x1
- bl VarSet
- b _0813B36A
- .pool
-_0813B354:
- bl Random
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =0x00004037
- movs r1, 0x7
- ands r4, r1
- adds r1, r4, 0
- adds r1, 0x9
- bl VarSet
-_0813B36A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813B2E4
-
- thumb_func_start sub_813B374
-sub_813B374: @ 813B374
- push {r4,lr}
- ldr r0, =0x00004037
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, =gStringVar1
- ldr r2, =gUnknown_085B3400
- subs r1, r4, 0x1
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0
- bl GetMapName
- cmp r4, 0x8
- bls _0813B3A8
- movs r0, 0x1
- b _0813B3AA
- .pool
-_0813B3A8:
- movs r0, 0
-_0813B3AA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_813B374
-
- thumb_func_start sub_813B3B0
-sub_813B3B0: @ 813B3B0
- push {r4-r6,lr}
- ldr r5, =0x00004038
- adds r0, r5, 0
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =0x00004037
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _0813B47C
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =0x000003e7
- cmp r4, r0
- bls _0813B474
- adds r0, r5, 0
- movs r1, 0
- bl VarSet
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x18
- bne _0813B414
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0x69
- bgt _0813B414
- cmp r0, 0x65
- blt _0813B414
- ldr r0, =0x00004039
- movs r1, 0x1
- b _0813B478
- .pool
-_0813B414:
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- adds r3, r0, 0
- cmp r1, 0
- bne _0813B444
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, 0x34
- beq _0813B436
- cmp r0, 0x34
- blt _0813B444
- cmp r0, 0x38
- bgt _0813B444
- cmp r0, 0x36
- blt _0813B444
-_0813B436:
- ldr r0, =0x00004039
- movs r1, 0x1
- b _0813B478
- .pool
-_0813B444:
- ldr r3, [r3]
- movs r2, 0x5
- ldrsb r2, [r3, r2]
- ldr r1, =gUnknown_085B3410
- subs r0, r6, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r2, r0
- bne _0813B468
- movs r0, 0x4
- ldrsb r0, [r3, r0]
- cmp r0, 0
- bne _0813B468
- movs r0, 0x1
- b _0813B47E
- .pool
-_0813B468:
- ldr r0, =0x00004037
- movs r1, 0
- b _0813B478
- .pool
-_0813B474:
- adds r0, r5, 0
- adds r1, r4, 0
-_0813B478:
- bl VarSet
-_0813B47C:
- movs r0, 0
-_0813B47E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_813B3B0
-
- thumb_func_start sub_813B484
-sub_813B484: @ 813B484
- push {lr}
- movs r0, 0x2
- bl sub_80AB104
- pop {r0}
- bx r0
- thumb_func_end sub_813B484
-
- thumb_func_start sub_813B490
-sub_813B490: @ 813B490
- push {r4-r7,lr}
- movs r3, 0
- ldr r0, =gSaveBlock1Ptr
- ldr r4, [r0]
- movs r6, 0x4
- ldrsb r6, [r4, r6]
- ldr r5, =gUnknown_085B3420
- adds r0, r5, 0x2
- mov r12, r0
- adds r7, r5, 0x1
-_0813B4A4:
- lsls r0, r3, 1
- adds r2, r0, r3
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r6, r0
- bne _0813B4CC
- movs r1, 0x5
- ldrsb r1, [r4, r1]
- adds r0, r2, r7
- ldrb r0, [r0]
- cmp r1, r0
- bne _0813B4CC
- mov r1, r12
- adds r0, r2, r1
- ldrb r0, [r0]
- b _0813B4D8
- .pool
-_0813B4CC:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xB
- bls _0813B4A4
- movs r0, 0x1
-_0813B4D8:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_813B490
-
- thumb_func_start sub_813B4E0
-sub_813B4E0: @ 813B4E0
- push {lr}
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl GetRematchIdxByTrainerIdx
- cmp r0, 0
- blt _0813B50C
- movs r1, 0xAE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813B50C
- movs r0, 0x1
- b _0813B50E
- .pool
-_0813B50C:
- movs r0, 0
-_0813B50E:
- pop {r1}
- bx r1
- thumb_func_end sub_813B4E0
-
- thumb_func_start sub_813B514
-sub_813B514: @ 813B514
- push {lr}
- ldr r0, =0x0000403f
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _0813B52C
- movs r0, 0x1
- b _0813B52E
- .pool
-_0813B52C:
- movs r0, 0
-_0813B52E:
- pop {r1}
- bx r1
- thumb_func_end sub_813B514
-
- thumb_func_start sub_813B534
-sub_813B534: @ 813B534
- push {lr}
- ldr r2, =gUnknown_0203AB70
- ldr r1, =gBattleTypeFlags
- ldr r0, [r1]
- str r0, [r2]
- movs r0, 0
- str r0, [r1]
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813B552
- ldr r0, =sub_80B3AF8
- movs r1, 0x5
- bl CreateTask
-_0813B552:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813B534
-
- thumb_func_start sub_813B568
-sub_813B568: @ 813B568
- push {lr}
- ldr r0, =sub_813B57C
- movs r1, 0x5
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813B568
-
- thumb_func_start sub_813B57C
-sub_813B57C: @ 813B57C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x9
- bls _0813B596
- b _0813B7C6
-_0813B596:
- lsls r0, 2
- ldr r1, =_0813B5A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0813B5A8:
- .4byte _0813B5D0
- .4byte _0813B5E4
- .4byte _0813B614
- .4byte _0813B6B4
- .4byte _0813B6E4
- .4byte _0813B728
- .4byte _0813B764
- .4byte _0813B772
- .4byte _0813B784
- .4byte _0813B7A8
-_0813B5D0:
- ldr r0, =sub_80B3AF8
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _0813B5DE
- b _0813B7C6
-_0813B5DE:
- b _0813B790
- .pool
-_0813B5E4:
- bl sub_800A520
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0813B5F2
- b _0813B7C6
-_0813B5F2:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _0813B5FE
- b _0813B790
-_0813B5FE:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSpecialVar_0x8004
- movs r2, 0x2
- bl SendBlock
- b _0813B708
- .pool
-_0813B614:
- bl GetBlockReceivedStatus
- movs r1, 0x2
- ands r1, r0
- cmp r1, 0
- bne _0813B622
- b _0813B7C6
-_0813B622:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- beq _0813B62E
- b _0813B790
-_0813B62E:
- ldr r5, =gSpecialVar_0x8005
- ldr r0, =gBlockRecvBuffer
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5]
- movs r0, 0x1
- bl ResetBlockReceivedFlag
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0813B668
- ldrh r1, [r5]
- cmp r1, 0x1
- bne _0813B668
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
- b _0813B790
- .pool
-_0813B668:
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- adds r2, r0, 0
- cmp r1, 0
- bne _0813B68C
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0813B68C
- ldr r1, =gSpecialVar_Result
- movs r0, 0x2
- b _0813B6AC
- .pool
-_0813B68C:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _0813B6A8
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- bne _0813B6A8
- ldr r1, =gSpecialVar_Result
- movs r0, 0x3
- b _0813B6AC
- .pool
-_0813B6A8:
- ldr r1, =gSpecialVar_Result
- movs r0, 0
-_0813B6AC:
- strh r0, [r1]
- b _0813B790
- .pool
-_0813B6B4:
- bl sub_800A520
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0813B6C2
- b _0813B7C6
-_0813B6C2:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _0813B790
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSpecialVar_Result
- movs r2, 0x2
- bl SendBlock
- b _0813B708
- .pool
-_0813B6E4:
- bl GetBlockReceivedStatus
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0813B7C6
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- beq _0813B790
- ldr r1, =gSpecialVar_Result
- ldr r0, =gBlockRecvBuffer
- ldrh r0, [r0]
- strh r0, [r1]
- movs r0, 0
- bl ResetBlockReceivedFlag
-_0813B708:
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _0813B7C6
- .pool
-_0813B728:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _0813B74C
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x2
- bne _0813B790
- ldr r0, =gText_YourPartnerHasRetired
- bl ShowFieldAutoScrollMessage
- b _0813B790
- .pool
-_0813B74C:
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _0813B790
- ldr r0, =gText_YourPartnerHasRetired
- bl ShowFieldAutoScrollMessage
- b _0813B790
- .pool
-_0813B764:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _0813B7C6
- b _0813B790
-_0813B772:
- bl sub_800A520
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813B7C6
- bl sub_800ADF8
- b _0813B790
-_0813B784:
- bl sub_800A520
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813B7C6
-_0813B790:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0813B7C6
- .pool
-_0813B7A8:
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _0813B7B4
- bl sub_800AC34
-_0813B7B4:
- ldr r0, =gBattleTypeFlags
- ldr r1, =gUnknown_0203AB70
- ldr r1, [r1]
- str r1, [r0]
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_0813B7C6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813B57C
-
- thumb_func_start sub_813B7D8
-sub_813B7D8: @ 813B7D8
- push {lr}
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0813B7F8
- ldr r2, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- movs r0, 0
- movs r1, 0x1
- bl DoRayquazaScene
- b _0813B802
- .pool
-_0813B7F8:
- ldr r2, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- movs r0, 0x1
- movs r1, 0
- bl DoRayquazaScene
-_0813B802:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813B7D8
-
- thumb_func_start sub_813B80C
-sub_813B80C: @ 813B80C
- push {lr}
- ldr r0, =sub_813B824
- movs r1, 0x8
- bl CreateTask
- movs r0, 0x9D
- bl PlaySE
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813B80C
-
- thumb_func_start sub_813B824
-sub_813B824: @ 813B824
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r1, r0
- bne _0813B858
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- movs r0, 0
- strh r0, [r4, 0x2]
- movs r0, 0x9D
- bl PlaySE
-_0813B858:
- movs r0, 0
- ldrsh r1, [r4, r0]
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0813B86C
- adds r0, r5, 0
- bl DestroyTask
-_0813B86C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813B824
-
- thumb_func_start sub_813B880
-sub_813B880: @ 813B880
- push {lr}
- ldr r0, =_fwalk
- movs r1, 0x8
- 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
- movs r0, 0x4
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r2, [r1, 0xE]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813B880
-
- thumb_func_start _fwalk
-_fwalk: @ 813B8B0
- 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
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- movs r0, 0x6
- ldrsh r1, [r5, r0]
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r5
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _0813B94E
- movs r6, 0
-_0813B8EA:
- movs r4, 0
- lsls r3, r6, 3
- mov r10, r3
- adds r7, r6, 0x1
- mov r8, r7
-_0813B8F4:
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r2, 0
- ldrsh r0, [r1, r2]
- adds r0, r4
- adds r0, 0x6
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- adds r1, r6
- adds r1, 0x4
- ldr r7, =0x00000201
- adds r2, r4, r7
- add r2, r10
- movs r7, 0x6
- ldrsh r3, [r5, r7]
- lsls r3, 5
- adds r2, r3
- lsls r2, 16
- lsrs r2, 16
- bl MapGridSetMetatileIdAt
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0813B8F4
- mov r1, r8
- lsls r0, r1, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _0813B8EA
- bl DrawWholeMapView
- ldrh r0, [r5, 0x6]
- adds r0, 0x1
- strh r0, [r5, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0813B94E
- mov r0, r9
- bl DestroyTask
- bl EnableBothScriptContexts
-_0813B94E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end _fwalk
-
- thumb_func_start sub_813B968
-sub_813B968: @ 813B968
- push {r4,r5,lr}
- ldr r5, =gSpecialVar_Result
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- movs r1, 0x7
- bl __udivsi3
- strh r0, [r5]
- ldrh r4, [r5]
- adds r0, r4, 0
- movs r1, 0x14
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- subs r4, r1
- strh r4, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813B968
-
- thumb_func_start sub_813B9A0
-sub_813B9A0: @ 813B9A0
- push {lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x1C]
- movs r0, 0xB0
- lsls r0, 4
- cmp r1, r0
- bne _0813B9B6
- movs r0, 0x3
- bl Overworld_SetHealLocationWarp
-_0813B9B6:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813B9A0
-
- thumb_func_start sub_813B9C0
-sub_813B9C0: @ 813B9C0
- push {r4,lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- lsls r1, 8
- ldrb r0, [r0, 0x5]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, =gUnknown_085B3444
- ldrh r0, [r2]
- ldr r1, =0x0000ffff
- cmp r0, r1
- beq _0813BA06
- adds r4, r1, 0
- adds r1, r2, 0
-_0813B9E6:
- ldrh r0, [r2]
- cmp r0, r3
- bne _0813B9FC
- movs r0, 0x1
- b _0813BA08
- .pool
-_0813B9FC:
- adds r1, 0x2
- adds r2, 0x2
- ldrh r0, [r1]
- cmp r0, r4
- bne _0813B9E6
-_0813BA06:
- movs r0, 0
-_0813BA08:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_813B9C0
-
- thumb_func_start ResetFanClub
-ResetFanClub: @ 813BA10
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x0000141e
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- movs r1, 0xA1
- lsls r1, 5
- adds r0, r1
- strh r2, [r0]
- bx lr
- .pool
- thumb_func_end ResetFanClub
-
- thumb_func_start sub_813BA30
-sub_813BA30: @ 813BA30
- push {lr}
- bl sub_813BF44
- lsls r0, 24
- cmp r0, 0
- beq _0813BA52
- bl sub_813BCE8
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrh r0, [r0, 0xE]
- movs r2, 0xA1
- lsls r2, 5
- adds r1, r2
- strh r0, [r1]
-_0813BA52:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813BA30
-
- thumb_func_start sub_813BA60
-sub_813BA60: @ 813BA60
- push {r4,lr}
- ldr r4, =gSaveBlock1Ptr
- ldr r0, [r4]
- ldr r1, =0x0000141e
- adds r0, r1
- ldrh r0, [r0]
- lsrs r0, 7
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813BAB6
- bl sub_813BF60
- bl sub_813BD84
- ldr r1, [r4]
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrh r0, [r0, 0xE]
- movs r2, 0xA1
- lsls r2, 5
- adds r1, r2
- strh r0, [r1]
- ldr r0, =0x00000315
- bl FlagClear
- ldr r0, =0x00000316
- bl FlagClear
- ldr r0, =0x00000317
- bl FlagClear
- movs r0, 0xC6
- lsls r0, 2
- bl FlagClear
- ldr r0, =0x000002da
- bl FlagClear
- ldr r0, =0x00004095
- movs r1, 0x1
- bl VarSet
-_0813BAB6:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813BA60
-
- thumb_func_start sub_813BADC
-sub_813BADC: @ 813BADC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =0x00004095
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0813BB58
- ldr r4, =gSaveBlock1Ptr
- ldr r0, [r4]
- ldr r5, =0x0000141e
- adds r3, r0, r5
- ldrh r2, [r3]
- movs r1, 0x7F
- ands r1, r2
- ldr r0, =gUnknown_085B3470
- adds r0, r6, r0
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x13
- ble _0813BB54
- bl sub_813BCA8
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0813BB3C
- bl sub_813BB74
- ldr r0, [r4]
- adds r0, r5
- ldrh r2, [r0]
- ldr r1, =0x0000ff80
- ands r1, r2
- strh r1, [r0]
- b _0813BB58
- .pool
-_0813BB3C:
- ldr r2, [r4]
- adds r2, r5
- ldrh r1, [r2]
- ldr r0, =0x0000ff80
- ands r0, r1
- movs r1, 0x14
- orrs r0, r1
- strh r0, [r2]
- b _0813BB58
- .pool
-_0813BB54:
- adds r0, r2, r0
- strh r0, [r3]
-_0813BB58:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x0000141e
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x7F
- ands r0, r1
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_813BADC
-
- thumb_func_start sub_813BB74
-sub_813BB74: @ 813BB74
- push {r4-r7,lr}
- sub sp, 0x8
- movs r3, 0
- movs r5, 0
- ldr r7, =gSaveBlock1Ptr
- ldr r2, =0x0000141e
- movs r6, 0x1
-_0813BB82:
- ldr r0, [r7]
- adds r0, r2
- ldrh r1, [r0]
- ldr r0, =gUnknown_085B3474
- adds r0, r5, r0
- ldrb r4, [r0]
- asrs r1, r4
- ands r1, r6
- cmp r1, 0
- bne _0813BBC8
- adds r3, r5, 0
- str r2, [sp]
- str r3, [sp, 0x4]
- bl Random
- adds r1, r6, 0
- ands r1, r0
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- cmp r1, 0
- beq _0813BBC8
- ldr r0, [r7]
- adds r0, r2
- adds r1, r6, 0
- lsls r1, r4
- ldrh r2, [r0]
- orrs r1, r2
- strh r1, [r0]
- b _0813BBEA
- .pool
-_0813BBC8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0813BB82
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- ldr r0, =0x0000141e
- adds r2, r0
- ldr r1, =gUnknown_085B3474
- adds r1, r3, r1
- movs r0, 0x1
- ldrb r1, [r1]
- lsls r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
-_0813BBEA:
- adds r0, r3, 0
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_813BB74
-
- thumb_func_start sub_813BC00
-sub_813BC00: @ 813BC00
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r10, r0
- bl sub_813BCA8
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0813BC2E
- movs r0, 0
- b _0813BC8E
-_0813BC1E:
- mov r1, r8
- ldr r0, [r1]
- add r0, r9
- lsls r4, r6
- ldrh r1, [r0]
- eors r4, r1
- strh r4, [r0]
- b _0813BC8C
-_0813BC2E:
- movs r5, 0
- ldr r2, =gSaveBlock1Ptr
- mov r8, r2
- ldr r0, =0x0000141e
- mov r9, r0
- movs r4, 0x1
-_0813BC3A:
- mov r1, r8
- ldr r0, [r1]
- add r0, r9
- ldrh r1, [r0]
- ldr r7, =gUnknown_085B347C
- adds r0, r5, r7
- ldrb r6, [r0]
- asrs r1, r6
- ands r1, r4
- cmp r1, 0
- beq _0813BC5E
- mov r10, r5
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- bne _0813BC1E
-_0813BC5E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0813BC3A
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x0000141e
- adds r4, r0, r2
- ldrh r1, [r4]
- mov r2, r10
- adds r0, r2, r7
- ldrb r2, [r0]
- adds r0, r1, 0
- asrs r0, r2
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0813BC8C
- adds r0, r3, 0
- lsls r0, r2
- eors r1, r0
- strh r1, [r4]
-_0813BC8C:
- mov r0, r10
-_0813BC8E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_813BC00
-
- thumb_func_start sub_813BCA8
-sub_813BCA8: @ 813BCA8
- push {r4,r5,lr}
- movs r3, 0
- movs r2, 0
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x0000141e
- adds r0, r1
- ldrh r4, [r0]
- movs r5, 0x1
-_0813BCBA:
- adds r1, r2, 0
- adds r1, 0x8
- adds r0, r4, 0
- asrs r0, r1
- ands r0, r5
- cmp r0, 0
- beq _0813BCCE
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_0813BCCE:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _0813BCBA
- adds r0, r3, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_813BCA8
-
- thumb_func_start sub_813BCE8
-sub_813BCE8: @ 813BCE8
- push {r4-r6,lr}
- movs r5, 0
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldrh r1, [r0, 0xE]
- ldr r0, =0x000003e6
- cmp r1, r0
- bhi _0813BD58
- adds r6, r2, 0
- b _0813BD32
- .pool
-_0813BD04:
- ldr r0, [r6]
- ldrh r1, [r0, 0xE]
- ldr r4, =gSaveBlock1Ptr
- ldr r0, [r4]
- movs r2, 0xA1
- lsls r2, 5
- adds r0, r2
- ldrh r0, [r0]
- subs r1, r0
- cmp r1, 0xB
- ble _0813BD58
- bl sub_813BC00
- ldr r0, [r4]
- movs r1, 0xA1
- lsls r1, 5
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0xC
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0813BD32:
- bl sub_813BCA8
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _0813BD54
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, [r6]
- ldrh r0, [r0, 0xE]
- movs r2, 0xA1
- lsls r2, 5
- adds r1, r2
- strh r0, [r1]
- b _0813BD58
- .pool
-_0813BD54:
- cmp r5, 0x8
- bne _0813BD04
-_0813BD58:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813BCE8
-
- thumb_func_start sub_813BD60
-sub_813BD60: @ 813BD60
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x0000141e
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, =gSpecialVar_0x8004
- ldrh r1, [r1]
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- bx lr
- .pool
- thumb_func_end sub_813BD60
-
- thumb_func_start sub_813BD84
-sub_813BD84: @ 813BD84
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- ldr r0, =0x0000141e
- adds r2, r0
- ldrh r1, [r2]
- movs r3, 0x80
- lsls r3, 6
- adds r0, r3, 0
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 3
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_813BD84
-
- thumb_func_start sub_813BDB4
-sub_813BDB4: @ 813BDB4
- push {lr}
- movs r3, 0
- movs r2, 0
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- subs r0, 0x8
- cmp r0, 0x7
- bhi _0813BE14
- lsls r0, 2
- ldr r1, =_0813BDD8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0813BDD8:
- .4byte _0813BE14
- .4byte _0813BE14
- .4byte _0813BDF8
- .4byte _0813BDFE
- .4byte _0813BE04
- .4byte _0813BE0A
- .4byte _0813BE10
- .4byte _0813BE14
-_0813BDF8:
- movs r3, 0
- movs r2, 0x3
- b _0813BE14
-_0813BDFE:
- movs r3, 0
- movs r2, 0x1
- b _0813BE14
-_0813BE04:
- movs r3, 0x1
- movs r2, 0
- b _0813BE14
-_0813BE0A:
- movs r3, 0
- movs r2, 0x4
- b _0813BE14
-_0813BE10:
- movs r3, 0x1
- movs r2, 0x5
-_0813BE14:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003150
- adds r0, r1
- adds r1, r3, 0
- bl sub_813BE30
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813BDB4
-
- thumb_func_start sub_813BE30
-sub_813BE30: @ 813BE30
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r0, r5, 4
- adds r1, r6, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0813BEE8
- cmp r2, 0x5
- bhi _0813BED4
- lsls r0, r2, 2
- ldr r1, =_0813BE58
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0813BE58:
- .4byte _0813BED4
- .4byte _0813BE70
- .4byte _0813BE84
- .4byte _0813BE98
- .4byte _0813BEAC
- .4byte _0813BEC0
-_0813BE70:
- ldr r0, =gStringVar1
- ldr r1, =gText_Steven
- bl StringCopy
- b _0813BF04
- .pool
-_0813BE84:
- ldr r0, =gStringVar1
- ldr r1, =gText_Brawly
- bl StringCopy
- b _0813BF04
- .pool
-_0813BE98:
- ldr r0, =gStringVar1
- ldr r1, =gText_Winona
- bl StringCopy
- b _0813BF04
- .pool
-_0813BEAC:
- ldr r0, =gStringVar1
- ldr r1, =gText_Phoebe
- bl StringCopy
- b _0813BF04
- .pool
-_0813BEC0:
- ldr r0, =gStringVar1
- ldr r1, =gText_Glacia
- bl StringCopy
- b _0813BF04
- .pool
-_0813BED4:
- ldr r0, =gStringVar1
- ldr r1, =gText_Wallace
- bl StringCopy
- b _0813BF04
- .pool
-_0813BEE8:
- ldr r4, =gStringVar1
- adds r0, r4, 0
- movs r2, 0x7
- bl StringCopyN
- movs r0, 0xFF
- strb r0, [r4, 0x7]
- adds r0, r6, 0
- adds r0, 0x50
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r4, 0
- bl ConvertInternationalString
-_0813BF04:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813BE30
-
- thumb_func_start sub_813BF10
-sub_813BF10: @ 813BF10
- push {lr}
- ldr r0, =0x00004095
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0813BF40
- bl sub_813BA30
- ldr r0, =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813BF3C
- bl sub_813BB74
- b _0813BF40
- .pool
-_0813BF3C:
- bl sub_813BC00
-_0813BF40:
- pop {r0}
- bx r0
- thumb_func_end sub_813BF10
-
- thumb_func_start sub_813BF44
-sub_813BF44: @ 813BF44
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x0000141e
- adds r0, r1
- ldrh r0, [r0]
- lsrs r0, 7
- movs r1, 0x1
- ands r0, r1
- bx lr
- .pool
- thumb_func_end sub_813BF44
-
- thumb_func_start sub_813BF60
-sub_813BF60: @ 813BF60
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, =0x0000141e
- adds r1, r0
- ldrh r2, [r1]
- movs r0, 0x80
- orrs r0, r2
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_813BF60
-
- thumb_func_start sub_813BF7C
-sub_813BF7C: @ 813BF7C
- push {lr}
- ldr r0, =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl sub_813BADC
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_813BF7C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 24e041b7f..9e1cf03d8 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -6,1513 +6,8 @@
.text
- thumb_func_start sub_80C7128
-sub_80C7128: @ 80C7128
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- adds r7, r3, 0
- ldr r5, [sp, 0x1C]
- ldr r4, [sp, 0x20]
- ldr r0, [sp, 0x24]
- mov r9, r0
- ldr r0, [sp, 0x28]
- ldr r3, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r0, r9
- lsls r0, 17
- mov r9, r0
- lsrs r2, 11
- adds r2, r1
- lsls r2, 1
- adds r6, r2
- adds r0, r4, 0
- muls r0, r3
- adds r0, r5
- lsls r0, 1
- adds r7, r0
- movs r4, 0
- cmp r4, r8
- bcs _080C7198
- mov r0, r9
- lsrs r0, 1
- mov r9, r0
- lsls r5, r3, 1
-_080C717E:
- adds r0, r7, 0
- adds r1, r6, 0
- mov r3, r9
- lsrs r2, r3, 16
- bl CpuSet
- adds r6, 0x40
- adds r7, r5
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bcc _080C717E
-_080C7198:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7128
-
- thumb_func_start sub_80C71A4
-sub_80C71A4: @ 80C71A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [sp, 0x28]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsrs r2, 11
- adds r2, r1
- lsls r2, 1
- adds r4, r2
- lsls r3, 17
- lsrs r0, r3, 16
- str r0, [sp, 0x4]
- movs r0, 0
- cmp r0, r10
- bcs _080C724E
- movs r6, 0x80
- lsls r6, 5
- mov r5, sp
- ldr r7, =0x040000d4
- lsrs r3, 17
- mov r9, r3
- mov r1, r9
- movs r2, 0x81
- lsls r2, 24
- orrs r1, r2
- mov r9, r1
-_080C71EA:
- adds r3, r4, 0
- ldr r2, [sp, 0x4]
- movs r1, 0x40
- adds r1, r4
- mov r8, r1
- adds r0, 0x1
- mov r12, r0
- cmp r2, r6
- bhi _080C7214
- movs r0, 0
- strh r0, [r5]
- mov r2, sp
- str r2, [r7]
- str r4, [r7, 0x4]
- mov r0, r9
- str r0, [r7, 0x8]
- ldr r0, [r7, 0x8]
- b _080C7242
- .pool
-_080C7214:
- movs r4, 0
- strh r4, [r5]
- ldr r1, =0x040000d4
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- ldr r0, =0x81000800
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r6
- subs r2, r6
- cmp r2, r6
- bhi _080C7214
- strh r4, [r5]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r2, 1
- movs r2, 0x81
- lsls r2, 24
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_080C7242:
- mov r4, r8
- mov r1, r12
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, r10
- bcc _080C71EA
-_080C724E:
- 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_80C71A4
-
- thumb_func_start c3_0808C39C
-c3_0808C39C: @ 80C7268
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080C7284
- b _080C756A
-_080C7284:
- lsls r0, 2
- ldr r1, =_080C7298
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080C7298:
- .4byte _080C72AC
- .4byte _080C730C
- .4byte _080C7320
- .4byte _080C746A
- .4byte _080C7544
-_080C72AC:
- ldrb r0, [r5, 0xA]
- adds r1, r5, 0
- adds r1, 0x26
- bl sub_80C75FC
- bl sub_81973A4
- movs r0, 0
- movs r1, 0
- bl NewMenuHelpers_DrawDialogueFrame
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r1, =gUnknown_085716C0
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0xFF
- bl AddTextPrinterParameterized
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldrh r0, [r5, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl CopyWindowToVram
- b _080C7318
- .pool
-_080C730C:
- bl IsWeatherNotFadingIn
- lsls r0, 24
- cmp r0, 0
- bne _080C7318
- b _080C756A
-_080C7318:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080C756A
-_080C7320:
- bl ProcessMenuInput
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0xC]
- movs r3, 0xC
- ldrsh r1, [r5, r3]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080C73D0
- cmp r1, r0
- bgt _080C7342
- subs r0, 0x1
- cmp r1, r0
- beq _080C7348
- b _080C73F6
-_080C7342:
- cmp r1, 0x4
- beq _080C73D0
- b _080C73F6
-_080C7348:
- ldrh r3, [r5, 0xA]
- strh r3, [r5, 0xE]
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080C7366
- subs r0, r3, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- cmp r0, 0
- bge _080C7366
- movs r0, 0x4
- strh r0, [r5, 0xE]
-_080C7366:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080C7382
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080C7382
- movs r0, 0
- strh r0, [r5, 0xE]
-_080C7382:
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r2, [r5, 0xE]
- movs r3, 0xE
- ldrsh r1, [r5, r3]
- cmp r0, r1
- bne _080C7392
- b _080C756A
-_080C7392:
- movs r4, 0
- strh r2, [r5, 0xA]
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r1, =gUnknown_085716C0
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r2, [r0]
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- b _080C756A
- .pool
-_080C73D0:
- ldrh r0, [r5, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_819746C
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
- ldrh r0, [r5, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl RemoveWindow
- adds r0, r4, 0
- bl DestroyTask
- b _080C756A
-_080C73F6:
- movs r3, 0xC
- ldrsh r4, [r5, r3]
- cmp r4, 0
- bne _080C7428
- bl CountPartyMons
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _080C7428
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r2, =gText_PartyFull
- str r4, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r4, 0x3
- str r4, [sp, 0xC]
- b _080C7532
- .pool
-_080C7428:
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080C745C
- bl CountPartyMons
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _080C745C
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r2, =gText_JustOnePkmn
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r4, 0x3
- str r4, [sp, 0xC]
- b _080C7532
- .pool
-_080C745C:
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- movs r0, 0x4
- strh r0, [r5, 0x8]
- b _080C756A
-_080C746A:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r7, 0x3
- adds r4, r7, 0
- ands r4, r1
- cmp r4, 0
- beq _080C749C
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r1, =gUnknown_085716C0
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- b _080C7528
- .pool
-_080C749C:
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _080C74E8
- ldrh r0, [r5, 0xA]
- subs r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _080C74B8
- movs r0, 0x4
- strh r0, [r5, 0xA]
-_080C74B8:
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xA]
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r1, =gUnknown_085716C0
- movs r3, 0xA
- ldrsh r0, [r5, r3]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r2, [r0]
- str r4, [sp]
- b _080C7528
- .pool
-_080C74E8:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080C756A
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080C7500
- strh r6, [r5, 0xA]
-_080C7500:
- movs r0, 0x1
- bl MoveMenuCursor
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xA]
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r1, =gUnknown_085716C0
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r2, [r0]
- str r6, [sp]
-_080C7528:
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- str r7, [sp, 0xC]
-_080C7532:
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- strh r4, [r5, 0x8]
- b _080C756A
- .pool
-_080C7544:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C756A
- bl overworld_free_bg_tilemaps
- ldrb r0, [r5, 0xC]
- bl sub_80C7D74
- ldrh r0, [r5, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl RemoveWindow
- adds r0, r4, 0
- bl DestroyTask
-_080C756A:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end c3_0808C39C
-
- thumb_func_start sub_80C7578
-sub_80C7578: @ 80C7578
- push {lr}
- ldr r0, =c3_0808C39C
- movs r1, 0x50
- 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 r0, 0
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80C7578
- thumb_func_start mapldr_0808C6D8
-mapldr_0808C6D8: @ 80C75A8
- push {r4,r5,lr}
- ldr r0, =gMain
- ldr r5, [r0, 0xC]
- movs r0, 0
- bl SetVBlankCallback
- ldr r4, =c3_0808C39C
- adds r0, r4, 0
- movs r1, 0x50
- 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]
- ldr r2, =gUnknown_02039D00
- ldrb r2, [r2]
- strh r2, [r1, 0xA]
- bl _call_via_r4
- adds r0, r5, 0
- bl SetVBlankCallback
- bl pal_fill_black
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end mapldr_0808C6D8
- thumb_func_start sub_80C75FC
-sub_80C75FC: @ 80C75FC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- adds r6, r0, 0
- mov r9, r1
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =gUnknown_085716E8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, =gUnknown_085716C0
- mov r8, r0
- movs r1, 0x5
- bl GetMaxWidthInMenuTable
- lsls r0, 24
- ldr r2, =0x00ffffff
- ldr r1, [sp]
- ands r1, r2
- orrs r1, r0
- str r1, [sp]
- mov r0, sp
- bl AddWindow
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, r5, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- adds r0, r4, 0
- movs r1, 0x5
- mov r2, r8
- bl PrintMenuTable
- adds r0, r4, 0
- movs r1, 0x5
- adds r2, r6, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- mov r0, r9
- strh r5, [r0]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80C75FC
-
- thumb_func_start sub_80C7678
-sub_80C7678: @ 80C7678
- push {lr}
- bl sub_80CAEA0
- ldr r1, =gUnknown_02039D00
- strb r0, [r1]
- ldr r1, =gFieldCallback
- ldr r0, =mapldr_0808C6D8
- str r0, [r1]
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80C7678
-
- thumb_func_start sub_80C76A4
-sub_80C76A4: @ 80C76A4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- lsls r1, 24
- lsrs r0, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- adds r4, r3, 0
- ldr r2, =0x0000ffff
- cmp r3, 0x1
- bhi _080C76C6
- movs r2, 0x1
- cmp r3, 0x1
- beq _080C76CA
-_080C76C6:
- cmp r4, 0x3
- bne _080C7714
-_080C76CA:
- lsls r0, 24
- asrs r0, 24
- lsls r2, 16
- asrs r1, r2, 16
- adds r1, r0
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r2, 0
- cmp r1, 0
- blt _080C7760
- cmp r1, r7
- bgt _080C7760
-_080C76E2:
- asrs r4, r0, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- add r0, r8
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _080C770C
- asrs r0, r6, 16
- adds r0, r4, r0
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _080C7760
- cmp r2, r7
- ble _080C76E2
- b _080C7760
- .pool
-_080C770C:
- adds r0, r4, 0
- b _080C7764
-_080C7710:
- adds r0, r5, 0
- b _080C7764
-_080C7714:
- lsls r0, 24
- asrs r0, 24
- lsls r2, 16
- asrs r1, r2, 16
- adds r1, r0
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r2, 0
- cmp r1, 0
- blt _080C7760
- cmp r1, r7
- bgt _080C7760
-_080C772C:
- asrs r5, r0, 16
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _080C7750
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetBoxMonData
- cmp r0, 0
- beq _080C7710
-_080C7750:
- asrs r0, r6, 16
- adds r0, r5, r0
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _080C7760
- cmp r2, r7
- ble _080C772C
-_080C7760:
- movs r0, 0x1
- negs r0, r0
-_080C7764:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C76A4
-
- thumb_func_start ResetPokemonStorageSystem
-ResetPokemonStorageSystem: @ 80C7770
- push {r4-r6,lr}
- movs r0, 0
- bl sub_80D1D18
- movs r5, 0
-_080C777A:
- movs r4, 0
- lsls r6, r5, 24
-_080C777E:
- lsls r1, r4, 24
- lsrs r1, 24
- lsrs r0, r6, 24
- bl sub_80D2018
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _080C777E
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _080C777A
- movs r5, 0
-_080C779E:
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetBoxNamePtr
- ldr r1, =gText_Box
- bl StringCopy
- adds r4, r5, 0x1
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- lsls r4, 16
- lsrs r5, r4, 16
- cmp r5, 0xD
- bls _080C779E
- movs r5, 0
-_080C77C2:
- lsls r0, r5, 24
- lsrs r0, 24
- movs r1, 0x3
- ands r1, r5
- bl sub_80D2120
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _080C77C2
- bl ResetWaldaWallpaper
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetPokemonStorageSystem
-
- thumb_func_start sub_80C77E8
-sub_80C77E8: @ 80C77E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x20
- adds r5, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r6, r1, 0
- lsls r2, 16
- lsrs r2, 16
- adds r7, r2, 0
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- ldr r0, =gUnknown_0857173C
- str r0, [sp, 0x18]
- ldr r1, =0xffff0000
- add r4, sp, 0x18
- ldr r0, [r4, 0x4]
- ands r0, r1
- orrs r0, r7
- str r0, [r4, 0x4]
- mov r1, sp
- ldr r0, =gUnknown_0857175C
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r1, 0x4]
- strh r6, [r1, 0x6]
- ldr r0, =gUnknown_08571F5C
- str r0, [sp, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- strh r0, [r1, 0xC]
- adds r0, r6, 0x1
- strh r0, [r1, 0xE]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x8
- bl memset
- ldr r0, [sp, 0x38]
- cmp r0, 0
- beq _080C7846
- adds r0, r4, 0
- bl LoadSpritePalette
-_080C7846:
- mov r0, sp
- bl LoadSpriteSheets
- ldr r0, =gUnknown_02039D04
- str r5, [r0]
- movs r1, 0x90
- lsls r1, 2
- adds r0, r5, r1
- strh r6, [r0]
- adds r1, 0x2
- adds r0, r5, r1
- strh r7, [r0]
- adds r1, 0x4
- adds r0, r5, r1
- mov r1, r8
- strb r1, [r0]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r5, r1
- ldr r1, [sp, 0x38]
- str r1, [r0]
- add sp, 0x20
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80C77E8
-
- thumb_func_start sub_80C7890
-sub_80C7890: @ 80C7890
- push {r4,r5,lr}
- ldr r5, =gUnknown_02039D04
- ldr r1, [r5]
- movs r2, 0x8F
- lsls r2, 2
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, 0
- beq _080C78AC
- adds r2, 0x6
- adds r0, r1, r2
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
-_080C78AC:
- ldr r0, [r5]
- movs r4, 0x90
- lsls r4, 2
- adds r0, r4
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r5]
- adds r0, r4
- ldrh r0, [r0]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpriteTilesByTag
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80C7890
-
- thumb_func_start sub_80C78D4
-sub_80C78D4: @ 80C78D4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C7958
- pop {r0}
- bx r0
- thumb_func_end sub_80C78D4
-
- thumb_func_start sub_80C78E4
-sub_80C78E4: @ 80C78E4
- push {lr}
- bl sub_80C7B14
- pop {r0}
- bx r0
- thumb_func_end sub_80C78E4
-
- thumb_func_start sub_80C78F0
-sub_80C78F0: @ 80C78F0
- push {lr}
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080C790C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xC9
- b _080C7954
- .pool
-_080C790C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C792C
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_02039D04
- ldr r0, [r0]
- movs r1, 0x91
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- b _080C7954
- .pool
-_080C792C:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080C7940
- movs r0, 0x5
- bl PlaySE
- bl sub_80C7BB4
- b _080C7952
-_080C7940:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080C7952
- movs r0, 0x5
- bl PlaySE
- bl sub_80C7B80
-_080C7952:
- movs r0, 0xC8
-_080C7954:
- pop {r1}
- bx r1
- thumb_func_end sub_80C78F0
-
- thumb_func_start sub_80C7958
-sub_80C7958: @ 80C7958
- push {r4-r6,lr}
- sub sp, 0x3C
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0
- str r0, [sp, 0x34]
- str r1, [sp, 0x38]
- movs r1, 0xC0
- lsls r1, 24
- ldr r0, [sp, 0x34]
- orrs r0, r1
- str r0, [sp, 0x34]
- ldr r1, =0xffff0fff
- add r4, sp, 0x34
- ldr r0, [r4, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r4, 0x4]
- add r1, sp, 0x1C
- movs r2, 0
- strh r2, [r1]
- mov r0, sp
- adds r0, 0x1E
- strh r2, [r0]
- str r4, [sp, 0x20]
- ldr r0, =gDummySpriteAnimTable
- str r0, [sp, 0x24]
- str r2, [sp, 0x28]
- ldr r0, =gDummySpriteAffineAnimTable
- str r0, [sp, 0x2C]
- ldr r0, =SpriteCallbackDummy
- str r0, [sp, 0x30]
- add r0, sp, 0x4
- movs r2, 0x18
- bl memcpy
- ldr r6, =gUnknown_02039D04
- ldr r0, [r6]
- movs r1, 0x91
- lsls r1, 2
- adds r0, r1
- strb r5, [r0]
- add r2, sp, 0x4
- ldr r1, [r6]
- movs r5, 0x90
- lsls r5, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r3, =0x00000242
- adds r1, r3
- ldrh r0, [r1]
- strh r0, [r2, 0x2]
- adds r0, r2, 0
- movs r1, 0xA0
- movs r2, 0x60
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- str r0, [r3]
- ldrb r2, [r4, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- ands r1, r0
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r4, 0x3]
- add r1, sp, 0x4
- adds r3, r5
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r1]
- ldr r0, =sSpriteAnimTable_8571710
- str r0, [sp, 0xC]
- movs r4, 0
-_080C7A10:
- ldr r0, [r6]
- ldr r1, =0x00000246
- adds r0, r1
- ldrb r3, [r0]
- add r0, sp, 0x4
- movs r1, 0x7C
- movs r2, 0x50
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, [r6]
- lsls r3, r4, 2
- adds r2, 0x4
- adds r2, r3
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r1, r0, r1
- str r1, [r2]
- movs r5, 0
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _080C7A4A
- movs r0, 0xC4
- strh r0, [r1, 0x20]
- movs r5, 0x2
-_080C7A4A:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080C7A6E
- ldr r1, [r6]
- adds r1, 0x4
- adds r1, r3
- ldr r2, [r1]
- movs r0, 0x70
- strh r0, [r2, 0x22]
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080C7A6E:
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r3
- ldr r0, [r0]
- lsls r1, r5, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080C7A10
- movs r4, 0
- ldr r5, =gUnknown_02039D04
-_080C7A8C:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 19
- movs r3, 0xF8
- lsls r3, 15
- adds r0, r3
- lsrs r0, 16
- lsls r2, r4, 24
- lsrs r2, 24
- ldr r1, [r5]
- ldr r3, =0x00000246
- adds r1, r3
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0x58
- movs r3, 0
- bl sub_80CD2E8
- adds r2, r0, 0
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, 0x20
- adds r0, r1
- str r2, [r0]
- cmp r2, 0
- beq _080C7AD4
- movs r1, 0x1
- cmp r4, 0
- bne _080C7ACC
- movs r3, 0x1
- negs r3, r3
- adds r1, r3, 0
-_080C7ACC:
- strh r1, [r2, 0x2E]
- ldr r1, [r0]
- ldr r0, =sub_80C7CF4
- str r0, [r1, 0x1C]
-_080C7AD4:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080C7A8C
- bl sub_80C7BE4
- add sp, 0x3C
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80C7958
-
- thumb_func_start sub_80C7B14
-sub_80C7B14: @ 80C7B14
- push {r4-r6,lr}
- ldr r4, =gUnknown_02039D04
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _080C7B2A
- bl DestroySprite
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_080C7B2A:
- movs r5, 0
- adds r6, r4, 0
-_080C7B2E:
- ldr r0, [r6]
- lsls r4, r5, 2
- adds r0, 0x4
- adds r0, r4
- ldr r0, [r0]
- cmp r0, 0
- beq _080C7B4A
- bl DestroySprite
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r4
- movs r1, 0
- str r1, [r0]
-_080C7B4A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080C7B2E
- movs r5, 0
-_080C7B56:
- ldr r0, =gUnknown_02039D04
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, 0x20
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080C7B6A
- bl DestroySprite
-_080C7B6A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080C7B56
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80C7B14
-
- thumb_func_start sub_80C7B80
-sub_80C7B80: @ 80C7B80
- push {lr}
- ldr r2, =gUnknown_02039D04
- ldr r1, [r2]
- movs r0, 0x91
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bls _080C7BA6
- ldr r0, [r2]
- movs r1, 0x91
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_080C7BA6:
- bl sub_80C7BE4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80C7B80
-
- thumb_func_start sub_80C7BB4
-sub_80C7BB4: @ 80C7BB4
- push {lr}
- ldr r0, =gUnknown_02039D04
- ldr r2, [r0]
- movs r1, 0x91
- lsls r1, 2
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C7BD0
- subs r1, r0, 0x1
- b _080C7BD2
- .pool
-_080C7BD0:
- movs r1, 0xD
-_080C7BD2:
- movs r3, 0x91
- lsls r3, 2
- adds r0, r2, r3
- strb r1, [r0]
- bl sub_80C7BE4
- pop {r0}
- bx r0
- thumb_func_end sub_80C7BB4
-
- thumb_func_start sub_80C7BE4
-sub_80C7BE4: @ 80C7BE4
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x24
- ldr r0, =gUnknown_02039D04
- mov r9, r0
- ldr r0, [r0]
- movs r4, 0x91
- lsls r4, 2
- adds r0, r4
- ldrb r0, [r0]
- bl GetBoxNamePtr
- mov r10, r0
- mov r1, r9
- ldr r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- bl CountMonsInBox
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- add r4, sp, 0x1C
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x8
- bl memset
- movs r0, 0x8
- strb r0, [r4, 0x3]
- movs r0, 0x4
- strb r0, [r4, 0x4]
- adds r0, r4, 0
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x44
- bl FillWindowPixelBuffer
- movs r0, 0x1
- mov r1, r10
- movs r2, 0x40
- bl GetStringCenterAlignXOffset
- lsls r2, r0, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08571734
- mov r8, r0
- str r0, [sp]
- movs r6, 0x1
- negs r6, r6
- str r6, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- add r0, sp, 0xC
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, =gUnknown_08571737
- add r0, sp, 0xC
- bl StringAppend
- movs r0, 0x1
- add r1, sp, 0xC
- movs r2, 0x40
- bl GetStringCenterAlignXOffset
- lsls r2, r0, 24
- lsrs r2, 24
- mov r0, r8
- str r0, [sp]
- str r6, [sp, 0x4]
- add r1, sp, 0xC
- str r1, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x11
- bl box_print
- adds r0, r4, 0
- movs r1, 0x7
- bl GetWindowAttribute
- adds r5, r0, 0
- mov r1, r9
- ldr r0, [r1]
- movs r1, 0x90
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- bl GetSpriteTileStartByTag
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 11
- ldr r0, =0x06010100
- adds r1, r0
- ldr r2, =0x04000100
- adds r0, r5, 0
- bl CpuSet
- adds r0, r4, 0
- bl RemoveWindow
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80C7BE4
-
- thumb_func_start sub_80C7CF4
-sub_80C7CF4: @ 80C7CF4
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080C7D24
- strh r2, [r1, 0x30]
- ldrh r0, [r1, 0x2E]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- ldrh r0, [r1, 0x32]
- adds r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080C7D24
- strh r2, [r1, 0x32]
- strh r2, [r1, 0x24]
-_080C7D24:
- pop {r0}
- bx r0
- thumb_func_end sub_80C7CF4
-
- thumb_func_start sub_80C7D28
-sub_80C7D28: @ 80C7D28
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl sub_80D2AA4
- bl TransferPlttBuffer
- ldr r0, =gUnknown_02039D08
- ldr r0, [r0]
- movs r1, 0xB3
- lsls r1, 2
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x18
- bl SetGpuReg
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80C7D28
-
- thumb_func_start c2_Box
-c2_Box: @ 80C7D54
- push {lr}
- bl RunTasks
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl sub_80CA028
- bl sub_80CAA14
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- thumb_func_end c2_Box
thumb_func_start sub_80C7D74
sub_80C7D74: @ 80C7D74
@@ -2473,7 +968,7 @@ _080C8668:
ldr r1, =0x000002ca
adds r0, r1
ldrb r0, [r0]
- bl sub_80D1D18
+ bl SetCurrentBox
ldr r0, =gUnknown_02039D0C
ldrb r0, [r0]
cmp r0, 0
@@ -4705,7 +3200,7 @@ _080C9A9C:
ldr r2, =0x000002ca
adds r0, r2
ldrb r0, [r0]
- bl sub_80D1D18
+ bl SetCurrentBox
ldr r0, =task_pokemon_box_related
bl add_to_c3_somehow
_080C9AB8:
@@ -9968,7 +8463,7 @@ sub_80CC680: @ 80CC680
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
- bl sub_80D2120
+ bl SetBoxWallpaper
ldr r0, =gUnknown_02039D08
ldr r0, [r0]
ldr r1, =0x00000a62
@@ -13098,7 +11593,7 @@ sub_80CE0E8: @ 80CE0E8
b _080CE10C
.pool
_080CE108:
- bl sub_80D2018
+ bl ClearMonInBox
_080CE10C:
pop {r0}
bx r0
@@ -17973,7 +16468,7 @@ _080D09EC:
bl sub_80CB778
mov r0, r8
adds r1, r5, 0
- bl sub_80D2018
+ bl ClearMonInBox
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -20353,8 +18848,8 @@ StorageGetCurrentBox: @ 80D1D0C
.pool
thumb_func_end StorageGetCurrentBox
- thumb_func_start sub_80D1D18
-sub_80D1D18: @ 80D1D18
+ thumb_func_start SetCurrentBox
+SetCurrentBox: @ 80D1D18
push {lr}
lsls r0, 24
lsrs r1, r0, 24
@@ -20367,7 +18862,7 @@ _080D1D28:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80D1D18
+ thumb_func_end SetCurrentBox
thumb_func_start GetBoxMonDataFromAnyBox
GetBoxMonDataFromAnyBox: @ 80D1D30
@@ -20768,8 +19263,8 @@ _080D2004:
.pool
thumb_func_end sub_80D1F98
- thumb_func_start sub_80D2018
-sub_80D2018: @ 80D2018
+ thumb_func_start ClearMonInBox
+ClearMonInBox: @ 80D2018
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
@@ -20798,7 +19293,7 @@ _080D2048:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80D2018
+ thumb_func_end ClearMonInBox
thumb_func_start sub_80D2054
sub_80D2054: @ 80D2054
@@ -20914,8 +19409,8 @@ _080D2112:
.pool
thumb_func_end sub_80D20F8
- thumb_func_start sub_80D2120
-sub_80D2120: @ 80D2120
+ thumb_func_start SetBoxWallpaper
+SetBoxWallpaper: @ 80D2120
push {lr}
lsls r0, 24
lsrs r2, r0, 24
@@ -20935,7 +19430,7 @@ _080D213E:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80D2120
+ thumb_func_end SetBoxWallpaper
thumb_func_start sub_80D214C
sub_80D214C: @ 80D214C
diff --git a/asm/pokenav.s b/asm/pokenav.s
index dd2dbf4e0..c9fe787e0 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -1585,7 +1585,7 @@ sub_81C7E58: @ 81C7E58
adds r0, r4, 0
movs r2, 0x20
bl LoadPalette
- ldr r4, =0x0201c000
+ ldr r4, =gDecompressionBuffer
mov r0, r8
adds r1, r4, 0
bl LZ77UnCompWram
@@ -1667,7 +1667,7 @@ sub_81C7F24: @ 81C7F24
adds r0, r4, 0
movs r2, 0x20
bl LoadPalette
- ldr r4, =0x0201d000
+ ldr r4, =gDecompressionBuffer+0x1000
adds r0, r6, 0
adds r1, r4, 0
bl LZ77UnCompWram
@@ -27036,7 +27036,7 @@ _081D4E1C:
thumb_func_start sub_81D4E30
sub_81D4E30: @ 81D4E30
push {lr}
- ldr r0, =0x0201c000
+ ldr r0, =gDecompressionBuffer
movs r2, 0x80
lsls r2, 6
movs r1, 0
@@ -27657,7 +27657,7 @@ _081D5386:
strb r0, [r4, 0x8]
b _081D548A
_081D5390:
- ldr r0, =0x0201c000
+ ldr r0, =gDecompressionBuffer
bl sub_81D3920
strb r0, [r4, 0xE]
ldrb r0, [r4, 0xE]
@@ -27683,7 +27683,7 @@ _081D53C0:
strb r0, [r4, 0x8]
b _081D548A
_081D53C6:
- ldr r0, =0x0201c000
+ ldr r0, =gDecompressionBuffer
bl sub_81D3AB0
cmp r0, 0
beq _081D53EC
diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s
index fd2cccca3..61324b207 100644
--- a/asm/rom_8011DC0.s
+++ b/asm/rom_8011DC0.s
@@ -15650,7 +15650,7 @@ _0801D7D0:
b _0801D804
.pool
_0801D7F0:
- ldr r0, =0x0201c000
+ ldr r0, =gDecompressionBuffer
ldr r1, [r4, 0x18]
movs r2, 0x80
lsls r2, 3
@@ -15723,7 +15723,7 @@ _0801D858:
sub_801D860: @ 801D860
push {r4,lr}
adds r4, r0, 0
- ldr r3, =0x0201c000
+ ldr r3, =gDecompressionBuffer
adds r0, r4, 0x4
ldr r1, =gSaveBlock2Ptr
ldr r1, [r1]
@@ -25386,7 +25386,7 @@ sub_80226D0: @ 80226D0
adds r6, r0, 0
movs r5, 0
ldr r0, =gUnknown_08DE3FD4
- ldr r4, =0x0201c000
+ ldr r4, =gDecompressionBuffer
adds r1, r4, 0
bl LZ77UnCompWram
b _0802271A
diff --git a/asm/roulette.s b/asm/roulette.s
index d3dd5fd9e..b0098daf6 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -4948,7 +4948,7 @@ sub_8142CD0: @ 8142CD0
sub sp, 0x8
ldr r4, =gUnknown_085B7488
ldr r0, [r4]
- ldr r5, =0x0201c000
+ ldr r5, =gDecompressionBuffer
adds r1, r5, 0
bl LZ77UnCompWram
str r5, [sp]
@@ -5575,7 +5575,7 @@ sub_81431E4: @ 81431E4
sub sp, 0xC
ldr r4, =gUnknown_085B741C
ldr r0, [r4]
- ldr r5, =0x0201c000
+ ldr r5, =gDecompressionBuffer
adds r1, r5, 0
bl LZ77UnCompWram
str r5, [sp, 0x4]
@@ -5720,7 +5720,7 @@ sub_8143314: @ 8143314
push {r7}
sub sp, 0x8
movs r5, 0
- ldr r7, =0x0201c000
+ ldr r7, =gDecompressionBuffer
mov r6, sp
_08143322:
ldr r0, =gUnknown_085B7750
@@ -6448,7 +6448,7 @@ sub_814391C: @ 814391C
sub sp, 0x8
ldr r4, =gUnknown_085B7948
ldr r0, [r4]
- ldr r5, =0x0201c000
+ ldr r5, =gDecompressionBuffer
adds r1, r5, 0
bl LZ77UnCompWram
str r5, [sp]
diff --git a/asm/script_menu.s b/asm/script_menu.s
index a2e2ec59e..670740a77 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -1498,7 +1498,7 @@ CreateWindowFromRect: @ 80E2A1C
movs r1, 0
adds r2, r4, 0
adds r3, r5, 0
- bl sub_8198A50
+ bl CreateWindowTemplate
ldr r0, [sp, 0x10]
ldr r1, [sp, 0x14]
str r0, [sp, 0x18]
diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s
index bf1d0e156..b7388b41b 100644
--- a/asm/script_pokemon_util_80F87D8.s
+++ b/asm/script_pokemon_util_80F87D8.s
@@ -10,7 +10,7 @@ sub_80F87D8: @ 80F87D8
push {r4,lr}
ldr r0, =gSaveBlock1Ptr
ldr r2, [r0]
- ldr r1, =gUnknown_02039E00
+ ldr r1, =gContestMons
ldrb r3, [r1, 0x15]
ldr r4, =0x000013bc
adds r0, r2, r4
@@ -150,8 +150,8 @@ sub_80F88DC: @ 80F88DC
thumb_func_start sub_80F88E8
sub_80F88E8: @ 80F88E8
push {lr}
- ldr r0, =gUnknown_02039F20
- ldr r1, =gUnknown_02039F25
+ ldr r0, =gContestFinalStandings
+ ldr r1, =gContestPlayerMonIndex
ldrb r2, [r1]
adds r0, r2, r0
ldrb r0, [r0]
@@ -218,11 +218,11 @@ sub_80F8970: @ 80F8970
mov r5, r8
push {r5-r7}
sub sp, 0x8
- ldr r0, =gUnknown_02039F00
+ ldr r0, =gContestMonConditions
mov r12, r0
ldr r1, =gSpecialVar_0x8006
mov r9, r1
- ldr r2, =gUnknown_02039E00 + 2
+ ldr r2, =gContestMons + 2
mov r10, r2
mov r2, r12
mov r1, sp
@@ -413,7 +413,7 @@ ShowContestWinner: @ 80F8ADC
thumb_func_start sub_80F8AFC
sub_80F8AFC: @ 80F8AFC
push {r4,r5,lr}
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -422,7 +422,7 @@ sub_80F8AFC: @ 80F8AFC
movs r3, 0
ldr r0, =gUnknown_02039F30
adds r4, r0, 0
- ldr r5, =gUnknown_02039E00
+ ldr r5, =gContestMons
ldrb r0, [r4]
cmp r3, r0
bge _080F8B50
@@ -482,7 +482,7 @@ sub_80F8B94: @ 80F8B94
ldr r1, =gReservedSpritePaletteCount
movs r0, 0xC
strb r0, [r1]
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -594,8 +594,8 @@ sub_80F8C7C: @ 80F8C7C
strb r0, [r1]
cmp r0, 0
bne _080F8D18
- ldr r0, =gUnknown_02039F20
- ldr r1, =gUnknown_02039F25
+ ldr r0, =gContestFinalStandings
+ ldr r1, =gContestPlayerMonIndex
ldrb r2, [r1]
adds r0, r2, r0
ldrb r0, [r0]
@@ -675,7 +675,7 @@ _080F8D44:
mov r9, r0
movs r1, 0x3
mov r10, r1
- ldr r2, =gUnknown_02039E00
+ ldr r2, =gContestMons
ldr r4, =gSpecialVar_0x8006
ldrh r1, [r4]
lsls r1, 6
@@ -702,7 +702,7 @@ _080F8D44:
movs r1, 0
strh r1, [r0, 0x8]
strh r6, [r0, 0xA]
- ldr r1, =gUnknown_02039F25
+ ldr r1, =gContestPlayerMonIndex
ldrh r0, [r4]
ldrb r1, [r1]
cmp r0, r1
@@ -758,7 +758,7 @@ _080F8DD8:
bl CreateSprite
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -938,7 +938,7 @@ _080F8F98:
thumb_func_start sub_80F8FA0
sub_80F8FA0: @ 80F8FA0
push {r4,lr}
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -973,13 +973,13 @@ _080F8FDE:
thumb_func_start sub_80F8FE8
sub_80F8FE8: @ 80F8FE8
push {r4,lr}
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080F9020
- ldr r2, =gUnknown_030060B8
+ ldr r2, =gContestRngValue
ldr r1, [r2]
ldr r0, =0x41c64e6d
muls r0, r1
@@ -1007,7 +1007,7 @@ _080F902A:
thumb_func_start sub_80F903C
sub_80F903C: @ 80F903C
- ldr r2, =gUnknown_030060B8
+ ldr r2, =gContestRngValue
ldr r1, [r2]
ldr r0, =0x41c64e6d
muls r0, r1
@@ -1022,7 +1022,7 @@ sub_80F903C: @ 80F903C
thumb_func_start sub_80F905C
sub_80F905C: @ 80F905C
push {lr}
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1087,7 +1087,7 @@ _080F90D4:
thumb_func_start sub_80F90DC
sub_80F90DC: @ 80F90DC
push {lr}
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1110,7 +1110,7 @@ _080F90FE:
thumb_func_start sub_80F910C
sub_80F910C: @ 80F910C
push {lr}
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -1130,7 +1130,7 @@ _080F9126:
thumb_func_start sub_80F9134
sub_80F9134: @ 80F9134
push {lr}
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
@@ -1148,7 +1148,7 @@ _080F914E:
thumb_func_start sub_80F9154
sub_80F9154: @ 80F9154
- ldr r1, =gUnknown_02039F2A
+ ldr r1, =gIsLinkContest
movs r0, 0
strb r0, [r1]
bx lr
@@ -1158,7 +1158,7 @@ sub_80F9154: @ 80F9154
thumb_func_start sub_80F9160
sub_80F9160: @ 80F9160
push {lr}
- ldr r0, =gUnknown_02039F2A
+ ldr r0, =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
diff --git a/asm/trade.s b/asm/trade.s
index 911b56aec..763b1a9ec 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -7612,7 +7612,7 @@ sub_807B170: @ 807B170
bl copy_decompressed_tile_data_to_vram_autofree
ldr r0, =gBattleTextboxTilemap
mov r8, r0
- ldr r4, =0x0201c000
+ ldr r4, =gDecompressionBuffer
adds r1, r4, 0
bl LZDecompressWram
movs r0, 0
diff --git a/common_syms/contest.txt b/common_syms/contest.txt
new file mode 100644
index 000000000..6a519fb46
--- /dev/null
+++ b/common_syms/contest.txt
@@ -0,0 +1 @@
+gContestRngValue
diff --git a/common_syms/field_specials.txt b/common_syms/field_specials.txt
new file mode 100644
index 000000000..25d874a65
--- /dev/null
+++ b/common_syms/field_specials.txt
@@ -0,0 +1 @@
+gUnknown_030061D0
diff --git a/data/contest.s b/data/contest.s
index 357a95d1d..eaf3f8c95 100644
--- a/data/contest.s
+++ b/data/contest.s
@@ -352,7 +352,7 @@ gUnknown_08587FA4:: @ 8587FA4
.align 2
-gUnknown_085880A4:: @ 85880A4
+gContestOpponents:: @ 85880A4
.include "data/contest_opponents.inc"
gUnknown_085898A4:: @ 85898A4
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 0336c0c97..56658a994 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -5,6 +5,7 @@
#include "constants/songs.h"
#include "constants/species.h"
#include "constants/vars.h"
+#include "constants/heal_locations.h"
#include "constants/trainers.h"
.include "asm/macros.inc"
.include "asm/macros/event.inc"
@@ -1110,10 +1111,10 @@ EventScript_2715DE:: @ 82715DE
setflag FLAG_0x2DE
setflag FLAG_0x351
setflag FLAG_0x32F
- setflag FLAG_0x315
- setflag FLAG_0x316
- setflag FLAG_0x317
- setflag FLAG_0x318
+ setflag FLAG_HIDE_FANCLUB_OLD_LADY
+ setflag FLAG_HIDE_FANCLUB_BOY
+ setflag FLAG_HIDE_FANCLUB_LITTLE_BOY
+ setflag FLAG_HIDE_FANCLUB_LADY
setflag FLAG_0x2DA
setflag FLAG_0x31D
setflag FLAG_0x31E
@@ -1801,7 +1802,7 @@ EventScript_271E0E:: @ 8271E0E
checkflag FLAG_SYS_PC_LANETTE
call_if 1, EventScript_271E3E
msgbox gUnknown_082726A3, 4
- special sub_80C7578
+ special ShowPokemonStorageSystem
waitstate
goto EventScript_271DAC
end
@@ -2356,8 +2357,8 @@ RusturfTunnel_EventScript_272216:: @ 8272216
removeobject 10
clearflag FLAG_0x328
clearflag FLAG_0x3D8
- setvar VAR_0x409A, 6
- setflag FLAG_0x0C7
+ setvar VAR_RUSTURF_TUNNEL_STATE, 6
+ setflag FLAG_RUSTURF_TUNNEL_OPENED
return
EventScript_27222B:: @ 827222B
@@ -2517,7 +2518,7 @@ Route119_EventScript_272365:: @ 8272365
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq Route119_EventScript_2723C1
compare VAR_RESULT, 4
@@ -3346,7 +3347,7 @@ EventScript_2736D9:: @ 82736D9
end
EventScript_2736F4:: @ 82736F4
- setrespawn 16
+ setrespawn HEAL_LOCATION_LAVARIDGE_TOWN
return
EventScript_2736F8:: @ 82736F8
diff --git a/data/field_player_avatar.s b/data/field_player_avatar.s
index c2e0d729d..cc3ff2447 100644
--- a/data/field_player_avatar.s
+++ b/data/field_player_avatar.s
@@ -6,63 +6,6 @@
.section .rodata
.align 2, 0
-
-gUnknown_084973FC:: @ 84973FC
- .4byte MetatileBehavior_IsTrickHouseSlipperyFloor
- .4byte MetatileBehavior_IsIce_2
- .4byte MetatileBehavior_IsWalkSouth
- .4byte MetatileBehavior_IsWalkNorth
- .4byte MetatileBehavior_IsWalkWest
- .4byte MetatileBehavior_IsWalkEast
- .4byte MetatileBehavior_IsSouthwardCurrent
- .4byte MetatileBehavior_IsNorthwardCurrent
- .4byte MetatileBehavior_IsWestwardCurrent
- .4byte MetatileBehavior_IsEastwardCurrent
- .4byte MetatileBehavior_IsSlideSouth
- .4byte MetatileBehavior_IsSlideNorth
- .4byte MetatileBehavior_IsSlideWest
- .4byte MetatileBehavior_IsSlideEast
- .4byte MetatileBehavior_IsWaterfall
- .4byte MetatileBehavior_IsSecretBaseJumpMat
- .4byte MetatileBehavior_IsSecretBaseSpinMat
- .4byte MetatileBehavior_IsMuddySlope
-
-gUnknown_08497444:: @ 8497444
- .4byte ForcedMovement_None
- .4byte ForcedMovement_Slip
- .4byte ForcedMovement_Slip
- .4byte ForcedMovement_WalkSouth
- .4byte ForcedMovement_WalkNorth
- .4byte ForcedMovement_WalkWest
- .4byte ForcedMovement_WalkEast
- .4byte ForcedMovement_PushedSouthByCurrent
- .4byte ForcedMovement_PushedNorthByCurrent
- .4byte ForcedMovement_PushedWestByCurrent
- .4byte ForcedMovement_PushedEastByCurrent
- .4byte ForcedMovement_SlideSouth
- .4byte ForcedMovement_SlideNorth
- .4byte ForcedMovement_SlideWest
- .4byte ForcedMovement_SlideEast
- .4byte ForcedMovement_PushedSouthByCurrent
- .4byte ForcedMovement_0xBB
- .4byte ForcedMovement_0xBC
- .4byte ForcedMovement_MuddySlope
-
-gUnknown_08497490:: @ 8497490
- .4byte PlayerNotOnBikeNotMoving
- .4byte PlayerNotOnBikeTurningInPlace
- .4byte PlayerNotOnBikeMoving
-
-gUnknown_0849749C:: @ 849749C
- .4byte MetatileBehavior_IsBumpySlope
- .4byte MetatileBehavior_IsIsolatedVerticalRail
- .4byte MetatileBehavior_IsIsolatedHorizontalRail
- .4byte MetatileBehavior_IsVerticalRail
- .4byte MetatileBehavior_IsHorizontalRail
-
-gUnknown_084974B0:: @ 84974B0
- .byte 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x00, 0x00, 0x00
-
gUnknown_084974B8:: @ 84974B8
.4byte PlayerAvatarTransition_Normal
.4byte PlayerAvatarTransition_MachBike
@@ -158,4 +101,3 @@ gUnknown_084975B0:: @ 84975B0
gUnknown_084975BC:: @ 84975BC
.byte 0x01, 0x03, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00
-
diff --git a/data/field_specials.s b/data/field_specials.s
deleted file mode 100644
index 8f9734a01..000000000
--- a/data/field_specials.s
+++ /dev/null
@@ -1,547 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_085B2B5C:: @ 85B2B5C
- .byte 0x07, 0x09, 0x08, 0x0a
-
- .align 2
-gUnknown_085B2B60:: @ 85B2B60
- .byte 0x00, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00
-
-gUnknown_085B2B68:: @ 85B2B68
- .byte 0x07, 0x16, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0a, 0x10, 0x00, 0x00, 0x0f, 0x10, 0x00, 0x00
-
-gUnknown_085B2B78:: @ 85B2B78
- .byte 0x00, 0x01, 0x01, 0x01, 0x01, 0x00
-
- .align 1
-gUnknown_085B2B7E:: @ 85B2B7E
- .2byte 0x0218, 0x0219, 0x021a, 0x021b, 0x021c
-
-gUnknown_085B2B88:: @ 85B2B88
- .byte 0x0c, 0x02, 0x04, 0x05, 0x01, 0x08, 0x07, 0x0b, 0x03, 0x0a, 0x09, 0x06
-
-gUnknown_085B2B94:: @ 85B2B94
- .byte 0x00, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x04, 0x04, 0x05
-
-gUnknown_085B2BA0:: @ 85B2BA0
- .byte 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05
-
- .align 2
-gUnknown_085B2BAC:: @ 85B2BAC
- .byte 0x00, 0x15, 0x01, 0x08, 0x04, 0x0f, 0x08, 0x00
-
- .align 2
-gElevatorFloorsTable:: @ 85B2BB4
- .4byte gText_B4F
- .4byte gText_B3F
- .4byte gText_B2F
- .4byte gText_B1F
- .4byte gText_1F
- .4byte gText_2F
- .4byte gText_3F
- .4byte gText_4F
- .4byte gText_5F
- .4byte gText_6F
- .4byte gText_7F
- .4byte gText_8F
- .4byte gText_9F
- .4byte gText_10F
- .4byte gText_11F
- .4byte gText_Rooftop
-
- .align 1
-gUnknown_085B2BF4:: @ 85B2BF4
- .2byte 0x0329, 0x032a, 0x032b, 0x0331, 0x0332, 0x0333, 0x0339, 0x033a, 0x033b
-
- .align 1
-gUnknown_085B2C06:: @ 85B2C06
- .2byte 0x0329, 0x032b, 0x032a, 0x0331, 0x0333, 0x0332, 0x0339, 0x033b, 0x033a
-
-gUnknown_085B2C18:: @ 85B2C18
- .byte 0x08, 0x10, 0x18, 0x20, 0x26, 0x2e, 0x34, 0x38, 0x39
-
-gUnknown_085B2C21:: @ 85B2C21
- .byte 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15, 0x18, 0x1b
-
- .align 1
-gUnknown_085B2C2A:: @ 85B2C2A
- .2byte 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a
- .2byte 0x1a35, 0x193c, 0xffff
-
- .align 2
-gUnknown_085B2C50:: @ 85B2C50
- .4byte BattleFrontier_Lounge2_Text_260971
- .4byte BattleFrontier_Lounge2_Text_260A1E
- .4byte BattleFrontier_Lounge2_Text_260AE7
- .4byte BattleFrontier_Lounge2_Text_2619AC
- .4byte BattleFrontier_Lounge2_Text_261A91
- .4byte BattleFrontier_Lounge2_Text_261B0C
- .4byte BattleFrontier_Lounge2_Text_261B95
- .4byte BattleFrontier_Lounge2_Text_261B95
- .4byte BattleFrontier_Lounge2_Text_261B95
- .4byte BattleFrontier_Lounge2_Text_261C1A
- .4byte BattleFrontier_Lounge2_Text_261C1A
- .4byte BattleFrontier_Lounge2_Text_261C1A
- .4byte BattleFrontier_Lounge2_Text_260BC4
- .4byte BattleFrontier_Lounge2_Text_260C6D
- .4byte BattleFrontier_Lounge2_Text_260D3A
- .4byte BattleFrontier_Lounge2_Text_260E1E
- .4byte BattleFrontier_Lounge2_Text_260EC7
- .4byte BattleFrontier_Lounge2_Text_260F74
- .4byte BattleFrontier_Lounge2_Text_2614E6
- .4byte BattleFrontier_Lounge2_Text_261591
- .4byte BattleFrontier_Lounge2_Text_26166F
- .4byte BattleFrontier_Lounge2_Text_261282
- .4byte BattleFrontier_Lounge2_Text_261329
- .4byte BattleFrontier_Lounge2_Text_261403
- .4byte BattleFrontier_Lounge2_Text_261026
- .4byte BattleFrontier_Lounge2_Text_2610CC
- .4byte BattleFrontier_Lounge2_Text_261194
- .4byte BattleFrontier_Lounge2_Text_26174D
- .4byte BattleFrontier_Lounge2_Text_2617F9
- .4byte BattleFrontier_Lounge2_Text_2618C4
-
-gUnknown_085B2CC8:: @ 85B2CC8
- .byte 0x15, 0x38, 0x15, 0x23, 0xff, 0xff, 0xff, 0xff, 0x02, 0x04, 0x07, 0x15, 0x07, 0x15, 0x0e, 0x1c, 0x0d, 0x70, 0x07, 0x38
-
- .align 1
-gUnknown_085B2CDC:: @ 85B2CDC
- .2byte 0x0007, 0x000e, 0x0015, 0x001c, 0x0023, 0x0031, 0x003f, 0x004d, 0x005b, 0x0000
-
- .align 2
-gUnknown_085B2CF0:: @ 85B2CF0
- .4byte gText_Exit
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .4byte gText_BlueFlute
- .4byte gText_YellowFlute
- .4byte gText_RedFlute
- .4byte gText_WhiteFlute
- .4byte gText_BlackFlute
- .4byte gText_PrettyChair
- .4byte gText_PrettyDesk
- .4byte gText_Exit
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .4byte gText_0Pts
- .4byte gText_10Pts
- .4byte gText_20Pts
- .4byte gText_30Pts
- .4byte gText_40Pts
- .4byte gText_50Pts
- .4byte gText_60Pts
- .4byte gText_70Pts
- .4byte gText_80Pts
- .4byte gText_90Pts
- .4byte gText_100Pts
- .4byte gText_QuestionMark
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .4byte gText_KissPoster16BP
- .4byte gText_KissCushion32BP
- .4byte gText_SmoochumDoll32BP
- .4byte gText_TogepiDoll48BP
- .4byte gText_MeowthDoll48BP
- .4byte gText_ClefairyDoll48BP
- .4byte gText_DittoDoll48BP
- .4byte gText_CyndaquilDoll80BP
- .4byte gText_ChikoritaDoll80BP
- .4byte gText_TotodileDoll80BP
- .4byte gText_Exit
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .4byte gText_LaprasDoll128BP
- .4byte gText_SnorlaxDoll128BP
- .4byte gText_VenusaurDoll256BP
- .4byte gText_CharizardDoll256BP
- .4byte gText_BlastoiseDoll256BP
- .4byte gText_Exit
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .4byte gText_Protein1BP
- .4byte gText_Calcium1BP
- .4byte gText_Iron1BP
- .4byte gText_Zinc1BP
- .4byte gText_Carbos1BP
- .4byte gText_HpUp1BP
- .4byte gText_Exit
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .4byte gText_Leftovers48BP
- .4byte gText_WhiteHerb48BP
- .4byte gText_QuickClaw48BP
- .4byte gText_MentalHerb48BP
- .4byte gText_BrightPowder64BP
- .4byte gText_ChoiceBand64BP
- .4byte gText_KingsRock64BP
- .4byte gText_FocusBand64BP
- .4byte gText_ScopeLens64BP
- .4byte gText_Exit
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .4byte gText_EnergyPowder50
- .4byte gText_EnergyRoot80
- .4byte gText_HealPowder50
- .4byte gText_RevivalHerb300
- .4byte gText_Protein1000
- .4byte gText_Iron1000
- .4byte gText_Carbos1000
- .4byte gText_Calcium1000
- .4byte gText_Zinc1000
- .4byte gText_HPUp1000
- .4byte gText_PPUp3000
- .4byte gText_Exit
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .4byte gText_BattleTower2
- .4byte gText_BattleDome
- .4byte gText_BattlePalace
- .4byte gText_BattleArena
- .4byte gText_BattleFactory
- .4byte gText_BattlePike
- .4byte gText_BattlePyramid
- .4byte gText_RankingHall
- .4byte gText_ExchangeService
- .4byte gText_Exit
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .4byte gText_Softboiled16BP
- .4byte gText_SeismicToss24BP
- .4byte gText_DreamEater24BP
- .4byte gText_MegaPunch24BP
- .4byte gText_MegaKick48BP
- .4byte gText_BodySlam48BP
- .4byte gText_RockSlide48BP
- .4byte gText_Counter48BP
- .4byte gText_ThunderWave48BP
- .4byte gText_SwordsDance48BP
- .4byte gText_Exit
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .4byte gText_DefenseCurl16BP
- .4byte gText_Snore24BP
- .4byte gText_MudSlap24BP
- .4byte gText_Swift24BP
- .4byte gText_IcyWind24BP
- .4byte gText_Endure48BP
- .4byte gText_PsychUp48BP
- .4byte gText_IcePunch48BP
- .4byte gText_ThunderPunch48BP
- .4byte gText_FirePunch48BP
- .4byte gText_Exit
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .4byte gText_SlateportCity
- .4byte gText_BattleFrontier
- .4byte gText_SouthernIsland
- .4byte gText_NavelRock
- .4byte gText_BirthIsland
- .4byte gText_FarawayIsland
- .4byte gText_Exit
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .4byte gText_BattleTrainers
- .4byte gText_BattleBasics
- .4byte gText_PokemonNature
- .4byte gText_PokemonMoves
- .4byte gText_Underpowered
- .4byte gText_WhenInDanger
- .4byte gText_Exit
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .align 2
-gUnknown_085B3030:: @ 85B3030
- .4byte 0x03000002, 0x00000000, 0x07d00000, 0x00000064
-
- .align 2
-gUnknown_085B3040:: @ 85B3040
- .4byte BattleFrontier_Lounge5_Text_26468D
- .4byte BattleFrontier_Lounge5_Text_2646E5
- .4byte BattleFrontier_Lounge5_Text_264741
- .4byte BattleFrontier_Lounge5_Text_2647A4
- .4byte BattleFrontier_Lounge5_Text_2647FC
- .4byte BattleFrontier_Lounge5_Text_264858
- .4byte BattleFrontier_Lounge5_Text_2648BE
- .4byte BattleFrontier_Lounge5_Text_264916
- .4byte BattleFrontier_Lounge5_Text_264972
- .4byte BattleFrontier_Lounge5_Text_2649D5
- .4byte BattleFrontier_Lounge5_Text_264A3F
- .4byte BattleFrontier_Lounge5_Text_264A9B
- .4byte BattleFrontier_Lounge5_Text_264AF3
- .4byte BattleFrontier_Lounge5_Text_264B5D
- .4byte BattleFrontier_Lounge5_Text_2648BE
- .4byte BattleFrontier_Lounge5_Text_264BC3
- .4byte BattleFrontier_Lounge5_Text_264C36
- .4byte BattleFrontier_Lounge5_Text_2648BE
- .4byte BattleFrontier_Lounge5_Text_264C95
- .4byte BattleFrontier_Lounge5_Text_264D01
- .4byte BattleFrontier_Lounge5_Text_264D6B
- .4byte BattleFrontier_Lounge5_Text_264DD7
- .4byte BattleFrontier_Lounge5_Text_264E33
- .4byte BattleFrontier_Lounge5_Text_264E8F
- .4byte BattleFrontier_Lounge5_Text_2648BE
-
- .align 2
-gUnknown_085B30A4:: @ 85B30A4
- .4byte BattleFrontier_Lounge3_Text_262261
- .4byte BattleFrontier_Lounge3_Text_26230D
- .4byte BattleFrontier_Lounge3_Text_2623B9
- .4byte BattleFrontier_Lounge3_Text_262464
- .4byte BattleFrontier_Lounge3_Text_26250E
- .4byte BattleFrontier_Lounge3_Text_2625B8
- .4byte BattleFrontier_Lounge3_Text_26266A
- .4byte BattleFrontier_Lounge3_Text_26271C
- .4byte BattleFrontier_Lounge3_Text_2627C9
- .4byte BattleFrontier_Lounge3_Text_262876
- .4byte BattleFrontier_Lounge3_Text_26291A
- .4byte BattleFrontier_Lounge3_Text_2629BC
-
- .align 2
-gUnknown_085B30D4:: @ 85B30D4
- .4byte BattleFrontier_Lounge3_Text_262C04
- .4byte BattleFrontier_Lounge3_Text_262C90
- .4byte BattleFrontier_Lounge3_Text_262D1C
- .4byte BattleFrontier_Lounge3_Text_262DA7
- .4byte BattleFrontier_Lounge3_Text_262E34
- .4byte BattleFrontier_Lounge3_Text_262EC1
- .4byte BattleFrontier_Lounge3_Text_262F56
- .4byte BattleFrontier_Lounge3_Text_262FEB
- .4byte BattleFrontier_Lounge3_Text_263078
- .4byte BattleFrontier_Lounge3_Text_263105
- .4byte BattleFrontier_Lounge3_Text_26318C
- .4byte BattleFrontier_Lounge3_Text_263211
-
- .align 1
-gUnknown_085B3104:: @ 85B3104
- .2byte 0x0000, 0x0001, 0x0002, 0x0100, 0x0101, 0x0400, 0x0401, 0x0200, 0x0201, 0x0300, 0x0500, 0x0600
-
- .align 2
-gUnknown_085B311C:: @ 85B311C
- window_template 0x00, 0x01, 0x01, 0x06, 0x02, 0x0f, 0x0008
-
- .align 2
-gUnknown_085B3124:: @ 85B3124
- window_template 0x00, 0x02, 0x09, 0x04, 0x04, 0x0f, 0x0014
-
- .align 1
-gUnknown_085B312C:: @ 85B312C
- .2byte 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xffff
-
- .align 1
-gUnknown_085B3142:: @ 85B3142
- .2byte 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xffff
-
- .align 1
-gUnknown_085B314E:: @ 85B314E
- .2byte 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xffff
-
- .align 1
-gUnknown_085B315C:: @ 85B315C
- .2byte 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xffff
-
- .align 2
-gUnknown_085B3170:: @ 85B3170
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260201
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260287
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E
- .4byte gText_Exit
-
- .align 2
-gUnknown_085B319C:: @ 85B319C
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C
- .4byte gText_Exit
-
- .align 2
-gUnknown_085B31B4:: @ 85B31B4
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260397
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260436
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C
- .4byte gText_Exit
-
- .align 2
-gUnknown_085B31D0:: @ 85B31D0
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260542
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260575
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2
- .4byte BattleFrontier_BattlePointExchangeServiceCorner_Text_260613
- .4byte gText_Exit
-
- .align 1
-gUnknown_085B31F8:: @ 85B31F8
- .2byte 0x0087, 0x0045, 0x008a, 0x0005, 0x0019, 0x0022, 0x009d, 0x0044, 0x0056, 0x000e
-
- .align 1
-gUnknown_085B320C:: @ 85B320C
- .2byte 0x006f, 0x00ad, 0x00bd, 0x0081, 0x00c4, 0x00cb, 0x00f4, 0x0008, 0x0009, 0x0007
-
- .align 2
-gUnknown_085B3220:: @ 85B3220
- window_template 0x00, 0x01, 0x07, 0x0c, 0x06, 0x0f, 0x001c
-
- .align 2
-gUnknown_085B3228:: @ 85B3228
- .4byte BattleFrontier_Lounge7_Text_265E30
- .4byte BattleFrontier_Lounge7_Text_265E5B
- .4byte BattleFrontier_Lounge7_Text_265E8A
- .4byte BattleFrontier_Lounge7_Text_265EC0
- .4byte BattleFrontier_Lounge7_Text_265EED
- .4byte BattleFrontier_Lounge7_Text_265F1C
- .4byte BattleFrontier_Lounge7_Text_265F47
- .4byte BattleFrontier_Lounge7_Text_265F77
- .4byte BattleFrontier_Lounge7_Text_265FAA
- .4byte BattleFrontier_Lounge7_Text_265FDD
- .4byte gText_Exit
-
- .align 2
-gUnknown_085B3254:: @ 85B3254
- .4byte BattleFrontier_Lounge7_Text_26600A
- .4byte BattleFrontier_Lounge7_Text_26603E
- .4byte BattleFrontier_Lounge7_Text_266070
- .4byte BattleFrontier_Lounge7_Text_2660A6
- .4byte BattleFrontier_Lounge7_Text_2660D0
- .4byte BattleFrontier_Lounge7_Text_2660FF
- .4byte BattleFrontier_Lounge7_Text_26612D
- .4byte BattleFrontier_Lounge7_Text_26615F
- .4byte BattleFrontier_Lounge7_Text_266185
- .4byte BattleFrontier_Lounge7_Text_2661B5
- .4byte gText_Exit
-
- .align 2
-gUnknown_085B3280:: @ 85B3280
- .incbin "graphics/unknown/unknown_5B3280.gbapal"
-
-gUnknown_085B33E0:: @ 85B33E0
- .byte 0x0f, 0x0c, 0x0b, 0x0e, 0x0f, 0x08, 0x13, 0x0e, 0x0c, 0x0b, 0x12, 0x0b, 0x0f, 0x0e, 0x0b, 0x0e, 0x13, 0x0e, 0x0f, 0x0f, 0x0f, 0x0a
-
-gUnknown_085B33F6:: @ 85B33F6
- .byte 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03
-
-gUnknown_085B3400:: @ 85B3400
- .byte 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c
-
-gUnknown_085B3410:: @ 85B3410
- .byte 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c
-
-gUnknown_085B3420:: @ 85B3420
- .byte 0x02, 0x04, 0x01, 0x04, 0x04, 0x01, 0x05, 0x00, 0x01, 0x06, 0x03, 0x01, 0x08, 0x06, 0x01, 0x09, 0x0d, 0x01, 0x0a, 0x07, 0x01, 0x0b, 0x07, 0x01, 0x0c, 0x04, 0x01, 0x0e, 0x05, 0x01, 0x0f, 0x04
- .byte 0x01, 0x1a, 0x37, 0x01
-
- .align 1
-gUnknown_085B3444:: @ 85B3444
- .2byte 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a
- .2byte 0x1a35, 0x1918, 0x1919, 0x191a, 0x191b, 0xffff
-
-gUnknown_085B3470:: @ 85B3470
- .byte 0x02, 0x01, 0x02, 0x01
-
-gUnknown_085B3474:: @ 85B3474
- .byte 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
-
-gUnknown_085B347C:: @ 85B347C
- .byte 0x08, 0x0d, 0x0e, 0x0b, 0x0a, 0x0c, 0x0f, 0x09
-
diff --git a/data/graphics.s b/data/graphics.s
index fdfa76343..01e8c3b2c 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -1241,11 +1241,11 @@ gUnknown_08C17980:: @ 8C17980
.incbin "graphics/unknown/unknown_C17980.bin.lz"
.align 2
-gUnknown_08C17AB0:: @ 8C17AB0
+gContestMiscGfx:: @ 8C17AB0
.incbin "graphics/contest/misc.4bpp.lz"
.align 2
-gUnknown_08C1850C:: @ 8C1850C
+gContestAudienceGfx:: @ 8C1850C
.incbin "graphics/contest/audience.4bpp.lz"
.align 2
diff --git a/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc b/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc
index 701b79fbf..628c9cece 100644
--- a/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc
+++ b/data/maps/AbandonedShip_HiddenFloorRooms/scripts.inc
@@ -43,7 +43,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_238CE3:: @ 8238CE3
setfieldeffectargument 1, 10
setfieldeffectargument 2, 0
dofieldeffect 54
- specialvar VAR_RESULT, sub_81392F8
+ specialvar VAR_RESULT, FoundAbandonedShipRoom4Key
compare VAR_RESULT, 0
call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_238DD3
waitfieldeffect 54
@@ -54,7 +54,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_238D0C:: @ 8238D0C
end
AbandonedShip_HiddenFloorRooms_EventScript_238D0D:: @ 8238D0D
- specialvar VAR_RESULT, sub_81392AC
+ specialvar VAR_RESULT, FoundAbandonedShipRoom1Key
compare VAR_RESULT, 1
goto_eq AbandonedShip_HiddenFloorRooms_EventScript_238D32
delay 20
@@ -77,7 +77,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_238D33:: @ 8238D33
setfieldeffectargument 1, 3
setfieldeffectargument 2, 0
dofieldeffect 54
- specialvar VAR_RESULT, sub_8139320
+ specialvar VAR_RESULT, FoundAbandonedShipRoom6Key
compare VAR_RESULT, 0
call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_238DE3
waitfieldeffect 54
@@ -98,7 +98,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_238D6B:: @ 8238D6B
setfieldeffectargument 1, 6
setfieldeffectargument 2, 0
dofieldeffect 54
- specialvar VAR_RESULT, sub_81392D4
+ specialvar VAR_RESULT, FoundAbandonedShipRoom2Key
compare VAR_RESULT, 0
call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_238DC3
waitfieldeffect 54
diff --git a/data/maps/AncientTomb/scripts.inc b/data/maps/AncientTomb/scripts.inc
index 3cd0b9eff..9dbacfe8e 100644
--- a/data/maps/AncientTomb/scripts.inc
+++ b/data/maps/AncientTomb/scripts.inc
@@ -10,7 +10,7 @@ AncientTomb_MapScript1_238FC3: @ 8238FC3
end
AncientTomb_EventScript_238FCD:: @ 8238FCD
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, AncientTomb_EventScript_27374E
removeobject VAR_LAST_TALKED
@@ -75,7 +75,7 @@ AncientTomb_EventScript_23905A:: @ 823905A
special StartRegiBattle
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq AncientTomb_EventScript_2390A1
compare VAR_RESULT, 4
diff --git a/data/maps/AquaHideout_B1F/scripts.inc b/data/maps/AquaHideout_B1F/scripts.inc
index cf59bdacc..12c25faac 100644
--- a/data/maps/AquaHideout_B1F/scripts.inc
+++ b/data/maps/AquaHideout_B1F/scripts.inc
@@ -9,7 +9,7 @@ AquaHideout_B1F_MapScript1_2339B2: @ 82339B2
end
AquaHideout_B1F_EventScript_2339BC:: @ 82339BC
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, AquaHideout_B1F_EventScript_27374E
removeobject VAR_LAST_TALKED
@@ -41,7 +41,7 @@ AquaHideout_B1F_EventScript_2339EB:: @ 82339EB
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq AquaHideout_B1F_EventScript_233A2F
compare VAR_RESULT, 4
@@ -68,7 +68,7 @@ AquaHideout_B1F_EventScript_233A38:: @ 8233A38
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq AquaHideout_B1F_EventScript_233A7C
compare VAR_RESULT, 4
diff --git a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc
index 248c1f9ca..072d27137 100644
--- a/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc
+++ b/data/maps/BattleFrontier_BattleTowerElevator/scripts.inc
@@ -14,7 +14,7 @@ BattleFrontier_BattleTowerElevator_EventScript_2419F0:: @ 82419F0
waitmovement 0
special sub_813A080
waitse
- special sub_8139A78
+ special ShakeScreenInElevator
waitstate
delay 48
applymovement 1, BattleFrontier_BattleTowerElevator_Movement_241A8E
diff --git a/data/maps/BattleFrontier_OutsideEast/scripts.inc b/data/maps/BattleFrontier_OutsideEast/scripts.inc
index dff56322a..0a3723acc 100644
--- a/data/maps/BattleFrontier_OutsideEast/scripts.inc
+++ b/data/maps/BattleFrontier_OutsideEast/scripts.inc
@@ -9,7 +9,7 @@ BattleFrontier_OutsideEast_MapScript1_242C0F: @ 8242C0F
end
BattleFrontier_OutsideEast_EventScript_242C19:: @ 8242C19
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, BattleFrontier_OutsideEast_EventScript_27374E
removeobject VAR_LAST_TALKED
@@ -134,7 +134,7 @@ BattleFrontier_OutsideEast_EventScript_242CFC:: @ 8242CFC
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq BattleFrontier_OutsideEast_EventScript_242D60
compare VAR_RESULT, 4
diff --git a/data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc b/data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc
index 23818d64c..3dff67a93 100644
--- a/data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc
+++ b/data/maps/BattleFrontier_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ BattleFrontier_PokemonCenter_1F_MapScripts:: @ 82678F9
.byte 0
BattleFrontier_PokemonCenter_1F_MapScript1_267904: @ 8267904
- setrespawn 22
+ setrespawn HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST
end
BattleFrontier_PokemonCenter_1F_EventScript_267908:: @ 8267908
diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc
index b2427e95d..787230c60 100644
--- a/data/maps/BirthIsland_Exterior/scripts.inc
+++ b/data/maps/BirthIsland_Exterior/scripts.inc
@@ -37,7 +37,7 @@ BirthIsland_Exterior_MapScript1_267F65: @ 8267F65
end
BirthIsland_Exterior_EventScript_267F6F:: @ 8267F6F
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, BirthIsland_Exterior_EventScript_27374E
removeobject 2
@@ -91,7 +91,7 @@ BirthIsland_Exterior_EventScript_267FC1:: @ 8267FC1
special BattleSetup_StartLegendaryBattle
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq BirthIsland_Exterior_EventScript_26803B
compare VAR_RESULT, 4
diff --git a/data/maps/DesertRuins/scripts.inc b/data/maps/DesertRuins/scripts.inc
index 9137902f2..45d192c80 100644
--- a/data/maps/DesertRuins/scripts.inc
+++ b/data/maps/DesertRuins/scripts.inc
@@ -10,7 +10,7 @@ DesertRuins_MapScript1_22D96B: @ 822D96B
end
DesertRuins_EventScript_22D975:: @ 822D975
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, DesertRuins_EventScript_27374E
removeobject VAR_LAST_TALKED
@@ -75,7 +75,7 @@ DesertRuins_EventScript_22DA02:: @ 822DA02
special StartRegiBattle
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq DesertRuins_EventScript_22DA49
compare VAR_RESULT, 4
diff --git a/data/maps/DewfordTown_PokemonCenter_1F/scripts.inc b/data/maps/DewfordTown_PokemonCenter_1F/scripts.inc
index 15a1c81b9..a9ce59bc1 100644
--- a/data/maps/DewfordTown_PokemonCenter_1F/scripts.inc
+++ b/data/maps/DewfordTown_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ DewfordTown_PokemonCenter_1F_MapScripts:: @ 81FC523
.byte 0
DewfordTown_PokemonCenter_1F_MapScript1_1FC52E: @ 81FC52E
- setrespawn 15
+ setrespawn HEAL_LOCATION_DEWFORD_TOWN
call DewfordTown_PokemonCenter_1F_EventScript_2718DE
end
diff --git a/data/maps/EverGrandeCity_HallOfFame/scripts.inc b/data/maps/EverGrandeCity_HallOfFame/scripts.inc
index 60f0dd1ad..763d2ebb1 100644
--- a/data/maps/EverGrandeCity_HallOfFame/scripts.inc
+++ b/data/maps/EverGrandeCity_HallOfFame/scripts.inc
@@ -51,7 +51,7 @@ EverGrandeCity_HallOfFame_EventScript_229850:: @ 8229850
end
EverGrandeCity_HallOfFame_EventScript_2298E9:: @ 82298E9
- setrespawn 1
+ setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F
fadescreenspeed 1, 24
special GameClear
waitstate
@@ -59,7 +59,7 @@ EverGrandeCity_HallOfFame_EventScript_2298E9:: @ 82298E9
end
EverGrandeCity_HallOfFame_EventScript_2298F5:: @ 82298F5
- setrespawn 2
+ setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F
fadescreenspeed 1, 24
special GameClear
waitstate
diff --git a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc
index ed6e6a497..16b82a592 100644
--- a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc
+++ b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ EverGrandeCity_PokemonCenter_1F_MapScripts:: @ 8229A34
.byte 0
EverGrandeCity_PokemonCenter_1F_MapScript1_229A3F: @ 8229A3F
- setrespawn 11
+ setrespawn HEAL_LOCATION_EVER_GRANDE_CITY_1
checkflag FLAG_0x1CF
call_if 0, EverGrandeCity_PokemonCenter_1F_EventScript_229A4C
end
diff --git a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc
index f1a6ce17f..b4046d022 100644
--- a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc
+++ b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc
@@ -4,7 +4,7 @@ EverGrandeCity_PokemonLeague_1F_MapScripts:: @ 82295D2
.byte 0
EverGrandeCity_PokemonLeague_1F_MapScript1_2295DD: @ 82295DD
- setrespawn 20
+ setrespawn HEAL_LOCATION_EVER_GRANDE_CITY_2
setflag FLAG_LANDMARK_POKEMON_LEAGUE
checkflag FLAG_0x107
call_if 0, EverGrandeCity_PokemonLeague_1F_EventScript_2295ED
diff --git a/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc b/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc
index 15f5d2b9e..d11caa86f 100644
--- a/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc
+++ b/data/maps/FallarborTown_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ FallarborTown_PokemonCenter_1F_MapScripts:: @ 8200BCD
.byte 0
FallarborTown_PokemonCenter_1F_MapScript1_200BD8: @ 8200BD8
- setrespawn 17
+ setrespawn HEAL_LOCATION_FALLARBOR_TOWN
call FallarborTown_PokemonCenter_1F_EventScript_2718DE
end
diff --git a/data/maps/FarawayIsland_Interior/scripts.inc b/data/maps/FarawayIsland_Interior/scripts.inc
index e7d67431d..70e41b42d 100644
--- a/data/maps/FarawayIsland_Interior/scripts.inc
+++ b/data/maps/FarawayIsland_Interior/scripts.inc
@@ -11,7 +11,7 @@ FarawayIsland_Interior_MapScript1_267D0F: @ 8267D0F
end
FarawayIsland_Interior_EventScript_267D19:: @ 8267D19
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq FarawayIsland_Interior_EventScript_267D4B
compare VAR_RESULT, 4
@@ -33,7 +33,7 @@ FarawayIsland_Interior_MapScript1_267D54: @ 8267D54
end
FarawayIsland_Interior_EventScript_267D5E:: @ 8267D5E
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, FarawayIsland_Interior_EventScript_27374E
removeobject VAR_LAST_TALKED
@@ -148,7 +148,7 @@ FarawayIsland_Interior_EventScript_267DF2:: @ 8267DF2
special BattleSetup_StartLegendaryBattle
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq FarawayIsland_Interior_EventScript_267E96
compare VAR_RESULT, 4
diff --git a/data/maps/FortreeCity_PokemonCenter_1F/scripts.inc b/data/maps/FortreeCity_PokemonCenter_1F/scripts.inc
index e119a0f29..4885c7f15 100644
--- a/data/maps/FortreeCity_PokemonCenter_1F/scripts.inc
+++ b/data/maps/FortreeCity_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ FortreeCity_PokemonCenter_1F_MapScripts:: @ 82173D8
.byte 0
FortreeCity_PokemonCenter_1F_MapScript1_2173E3: @ 82173E3
- setrespawn 7
+ setrespawn HEAL_LOCATION_FORTREE_CITY
end
FortreeCity_PokemonCenter_1F_EventScript_2173E7:: @ 82173E7
diff --git a/data/maps/InsideOfTruck/scripts.inc b/data/maps/InsideOfTruck/scripts.inc
index 963dd196d..24fe954a8 100644
--- a/data/maps/InsideOfTruck/scripts.inc
+++ b/data/maps/InsideOfTruck/scripts.inc
@@ -24,7 +24,7 @@ InsideOfTruck_EventScript_23BF04:: @ 823BF04
end
InsideOfTruck_EventScript_23BF20:: @ 823BF20
- setrespawn 1
+ setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F
setvar VAR_0x4092, 1
setflag FLAG_0x2F7
setflag FLAG_0x2FA
@@ -37,7 +37,7 @@ InsideOfTruck_EventScript_23BF20:: @ 823BF20
end
InsideOfTruck_EventScript_23BF46:: @ 823BF46
- setrespawn 2
+ setrespawn HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F
setvar VAR_0x4092, 2
setflag FLAG_0x2F6
setflag FLAG_0x2F9
diff --git a/data/maps/IslandCave/scripts.inc b/data/maps/IslandCave/scripts.inc
index a96d13902..b00b41d40 100644
--- a/data/maps/IslandCave/scripts.inc
+++ b/data/maps/IslandCave/scripts.inc
@@ -10,7 +10,7 @@ IslandCave_MapScript1_238E3A: @ 8238E3A
end
IslandCave_EventScript_238E44:: @ 8238E44
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, IslandCave_EventScript_27374E
removeobject VAR_LAST_TALKED
@@ -107,7 +107,7 @@ IslandCave_EventScript_238F58:: @ 8238F58
special StartRegiBattle
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq IslandCave_EventScript_238F9F
compare VAR_RESULT, 4
diff --git a/data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc b/data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc
index 24f19b1d0..c7db56a0d 100644
--- a/data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc
+++ b/data/maps/LavaridgeTown_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ LavaridgeTown_PokemonCenter_1F_MapScripts:: @ 81FFAFA
.byte 0
LavaridgeTown_PokemonCenter_1F_MapScript1_1FFB05: @ 81FFB05
- setrespawn 16
+ setrespawn HEAL_LOCATION_LAVARIDGE_TOWN
call LavaridgeTown_PokemonCenter_1F_EventScript_2718DE
end
diff --git a/data/maps/LilycoveCity/scripts.inc b/data/maps/LilycoveCity/scripts.inc
index 87a129620..70018b229 100644
--- a/data/maps/LilycoveCity/scripts.inc
+++ b/data/maps/LilycoveCity/scripts.inc
@@ -255,7 +255,7 @@ LilycoveCity_EventScript_1E2DF8:: @ 81E2DF8
compare VAR_RESULT, 0
goto_eq LilycoveCity_EventScript_1E2E5A
msgbox LilycoveCity_Text_1E3234, 4
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, LilycoveCity_EventScript_1E2EDE
case 1, LilycoveCity_EventScript_1E2EEE
case 2, LilycoveCity_EventScript_1E2EFE
@@ -286,7 +286,7 @@ LilycoveCity_EventScript_1E2E6B:: @ 81E2E6B
compare VAR_RESULT, 0
goto_eq LilycoveCity_EventScript_1E2ECD
msgbox LilycoveCity_Text_1E373C, 4
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, LilycoveCity_EventScript_1E2F0E
case 1, LilycoveCity_EventScript_1E2F1E
case 2, LilycoveCity_EventScript_1E2F2E
diff --git a/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc
index 234751910..372d16dae 100644
--- a/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc
+++ b/data/maps/LilycoveCity_DepartmentStoreElevator/scripts.inc
@@ -118,12 +118,12 @@ LilycoveCity_DepartmentStoreElevator_EventScript_2207E5:: @ 82207E5
applymovement VAR_LAST_TALKED, LilycoveCity_DepartmentStoreElevator_Movement_2725AA
waitmovement 0
waitse
- special sub_8139A78
+ special ShakeScreenInElevator
waitstate
setflag FLAG_0x002
return
LilycoveCity_DepartmentStoreElevator_EventScript_2207FC:: @ 82207FC
- special sub_8139994
+ special SetDepartmentStoreFloorVar
return
diff --git a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc
index 8de2d5d6f..4a375cf5e 100644
--- a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc
+++ b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc
@@ -21,7 +21,7 @@ LilycoveCity_DepartmentStore_1F_EventScript_21F69C:: @ 821F69C
waitmessage
special RetrieveLotteryNumber
copyvar VAR_0x8008, VAR_RESULT
- special sub_81397C4
+ special BufferLottoTicketNumber
msgbox LilycoveCity_DepartmentStore_1F_Text_2A650B, 4
applymovement 2, LilycoveCity_DepartmentStore_1F_Movement_2725A8
waitmovement 0
diff --git a/data/maps/LilycoveCity_Harbor/scripts.inc b/data/maps/LilycoveCity_Harbor/scripts.inc
index 1dfd9c29a..99ad20280 100644
--- a/data/maps/LilycoveCity_Harbor/scripts.inc
+++ b/data/maps/LilycoveCity_Harbor/scripts.inc
@@ -89,7 +89,7 @@ LilycoveCity_Harbor_EventScript_21E149:: @ 821E149
msgbox LilycoveCity_Harbor_Text_21E864, 5
compare VAR_RESULT, 0
goto_eq LilycoveCity_Harbor_EventScript_21E5C0
- setvar VAR_PORTHOLE, 5
+ setvar VAR_PORTHOLE_STATE, 5
call LilycoveCity_Harbor_EventScript_21E5CC
warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10
waitstate
@@ -398,7 +398,7 @@ LilycoveCity_Harbor_EventScript_21E575:: @ 821E575
msgbox LilycoveCity_Harbor_Text_21E864, 5
compare VAR_RESULT, 0
goto_eq LilycoveCity_Harbor_EventScript_21E5C0
- setvar VAR_PORTHOLE, 5
+ setvar VAR_PORTHOLE_STATE, 5
call LilycoveCity_Harbor_EventScript_21E5CC
warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10
waitstate
diff --git a/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc b/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc
index b6ca09906..934f666ad 100644
--- a/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc
+++ b/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ LilycoveCity_PokemonCenter_1F_MapScripts:: @ 821C5B2
.byte 0
LilycoveCity_PokemonCenter_1F_MapScript1_21C5BD: @ 821C5BD
- setrespawn 8
+ setrespawn HEAL_LOCATION_LILYCOVE_CITY
goto LilycoveCity_PokemonCenter_1F_EventScript_21C5C6
end
diff --git a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc
index 74146fc7e..9587bcae3 100644
--- a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc
+++ b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc
@@ -4,7 +4,7 @@ LilycoveCity_PokemonTrainerFanClub_MapScripts:: @ 821C785
.byte 0
LilycoveCity_PokemonTrainerFanClub_MapScript2_21C790: @ 821C790
- map_script_2 VAR_0x4095, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A
+ map_script_2 VAR_LILYCOVE_FAN_CLUB_STATE, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A
.2byte 0
LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A:: @ 821C79A
@@ -24,7 +24,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21C79A:: @ 821C79A
waitmovement 0
applymovement 4, LilycoveCity_PokemonTrainerFanClub_Movement_21C807
waitmovement 0
- setvar VAR_0x4095, 2
+ setvar VAR_LILYCOVE_FAN_CLUB_STATE, 2
releaseall
end
@@ -62,45 +62,45 @@ LilycoveCity_PokemonTrainerFanClub_Movement_21C807: @ 821C807
LilycoveCity_PokemonTrainerFanClub_MapScript1_21C80D: @ 821C80D
call LilycoveCity_PokemonTrainerFanClub_EventScript_21C8DA
- compare VAR_0x4095, 1
+ compare VAR_LILYCOVE_FAN_CLUB_STATE, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21C9F8
- compare VAR_0x4095, 2
+ compare VAR_LILYCOVE_FAN_CLUB_STATE, 2
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21C829
end
LilycoveCity_PokemonTrainerFanClub_EventScript_21C829:: @ 821C829
- special sub_813BCE8
+ special UpdateMovedLilycoveFanClubMembers
call LilycoveCity_PokemonTrainerFanClub_EventScript_21C8F5
setvar VAR_0x8004, 8
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9B8
setvar VAR_0x8004, 9
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9C0
setvar VAR_0x8004, 10
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9C8
setvar VAR_0x8004, 11
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9D0
setvar VAR_0x8004, 12
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9D8
setvar VAR_0x8004, 13
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9E0
setvar VAR_0x8004, 14
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9E8
setvar VAR_0x8004, 15
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9F0
end
@@ -120,35 +120,35 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21C8F1:: @ 821C8F1
LilycoveCity_PokemonTrainerFanClub_EventScript_21C8F5:: @ 821C8F5
setvar VAR_0x8005, 8
setvar VAR_0x8004, 8
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE
setvar VAR_0x8004, 9
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE
setvar VAR_0x8004, 10
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE
setvar VAR_0x8004, 11
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE
setvar VAR_0x8004, 12
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE
setvar VAR_0x8004, 13
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE
setvar VAR_0x8004, 14
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE
setvar VAR_0x8004, 15
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 0
call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_21C9AE
compare VAR_0x8005, 5
@@ -208,13 +208,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CA17:: @ 821CA17
lock
faceplayer
setvar VAR_0x8004, 13
- special sub_813BDB4
- compare VAR_0x4095, 0
+ special BufferStreakTrainerText
+ compare VAR_LILYCOVE_FAN_CLUB_STATE, 0
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CA84
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CA56
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 7
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CA7A
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D12A, 4
@@ -222,7 +222,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CA17:: @ 821CA17
end
LilycoveCity_PokemonTrainerFanClub_EventScript_21CA56:: @ 821CA56
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CA70
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D094, 4
@@ -248,13 +248,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CA8E:: @ 821CA8E
lock
faceplayer
setvar VAR_0x8004, 8
- special sub_813BDB4
- compare VAR_0x4095, 0
+ special BufferStreakTrainerText
+ compare VAR_LILYCOVE_FAN_CLUB_STATE, 0
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CAFB
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CACD
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 7
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CAF1
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D347, 4
@@ -262,7 +262,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CA8E:: @ 821CA8E
end
LilycoveCity_PokemonTrainerFanClub_EventScript_21CACD:: @ 821CACD
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CAE7
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D2A6, 4
@@ -288,13 +288,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CB05:: @ 821CB05
lock
faceplayer
setvar VAR_0x8004, 9
- special sub_813BDB4
- compare VAR_0x4095, 0
+ special BufferStreakTrainerText
+ compare VAR_LILYCOVE_FAN_CLUB_STATE, 0
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CB72
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CB44
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 7
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CB68
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D52E, 4
@@ -302,7 +302,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CB05:: @ 821CB05
end
LilycoveCity_PokemonTrainerFanClub_EventScript_21CB44:: @ 821CB44
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CB5E
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D438, 4
@@ -328,13 +328,13 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CB7C:: @ 821CB7C
lock
faceplayer
setvar VAR_0x8004, 10
- special sub_813BDB4
- compare VAR_0x4095, 0
+ special BufferStreakTrainerText
+ compare VAR_LILYCOVE_FAN_CLUB_STATE, 0
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CBE9
- specialvar VAR_RESULT, sub_813BD60
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CBBB
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 7
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CBDF
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D822, 4
@@ -342,7 +342,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CB7C:: @ 821CB7C
end
LilycoveCity_PokemonTrainerFanClub_EventScript_21CBBB:: @ 821CBBB
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CBD5
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D751, 4
@@ -368,11 +368,11 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CBF3:: @ 821CBF3
lock
faceplayer
setvar VAR_0x8004, 11
- special sub_813BDB4
- specialvar VAR_RESULT, sub_813BD60
+ special BufferStreakTrainerText
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CC27
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 7
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CC4B
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D9D1, 4
@@ -380,7 +380,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CBF3:: @ 821CBF3
end
LilycoveCity_PokemonTrainerFanClub_EventScript_21CC27:: @ 821CC27
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CC41
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21D921, 4
@@ -401,11 +401,11 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CC55:: @ 821CC55
lock
faceplayer
setvar VAR_0x8004, 12
- special sub_813BDB4
- specialvar VAR_RESULT, sub_813BD60
+ special BufferStreakTrainerText
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CC89
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 7
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CCAD
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DB69, 4
@@ -413,7 +413,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CC55:: @ 821CC55
end
LilycoveCity_PokemonTrainerFanClub_EventScript_21CC89:: @ 821CC89
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CCA3
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DA73, 4
@@ -434,11 +434,11 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CCB7:: @ 821CCB7
lock
faceplayer
setvar VAR_0x8004, 14
- special sub_813BDB4
- specialvar VAR_RESULT, sub_813BD60
+ special BufferStreakTrainerText
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CCEB
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 7
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD0F
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DD36, 4
@@ -446,7 +446,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CCB7:: @ 821CCB7
end
LilycoveCity_PokemonTrainerFanClub_EventScript_21CCEB:: @ 821CCEB
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD05
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DC68, 4
@@ -467,11 +467,11 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CD19:: @ 821CD19
lock
faceplayer
setvar VAR_0x8004, 15
- special sub_813BDB4
- specialvar VAR_RESULT, sub_813BD60
+ special BufferStreakTrainerText
+ specialvar VAR_RESULT, ShouldMoveLilycoveFanClubMember
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD4D
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 7
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD71
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DEFF, 4
@@ -479,7 +479,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CD19:: @ 821CD19
end
LilycoveCity_PokemonTrainerFanClub_EventScript_21CD4D:: @ 821CD4D
- specialvar VAR_RESULT, sub_813BCA8
+ specialvar VAR_RESULT, GetNumMovedLilycoveFanClubMembers
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CD67
msgbox LilycoveCity_PokemonTrainerFanClub_Text_21DE72, 4
@@ -512,7 +512,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CD90:: @ 821CD90
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CEFF
copyvar VAR_0x800A, VAR_0x8006
setvar VAR_0x8004, 8
- special sub_813BDB4
+ special BufferStreakTrainerText
msgbox LilycoveCity_PokemonTrainerFanClub_Text_281BCB, 4
setvar VAR_0x8004, 14
copyvar VAR_0x8005, VAR_0x800A
@@ -532,7 +532,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CDE0:: @ 821CDE0
LilycoveCity_PokemonTrainerFanClub_EventScript_21CDEE:: @ 821CDEE
setvar VAR_0x8004, 8
- special sub_813BDB4
+ special BufferStreakTrainerText
msgbox LilycoveCity_PokemonTrainerFanClub_Text_281C3D, 5
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CEC6
@@ -542,7 +542,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CDEE:: @ 821CDEE
LilycoveCity_PokemonTrainerFanClub_EventScript_21CE15:: @ 821CE15
setvar VAR_0x8004, 8
- special sub_813BDB4
+ special BufferStreakTrainerText
msgbox LilycoveCity_PokemonTrainerFanClub_Text_281C65, 4
setvar VAR_0x8004, 14
copyvar VAR_0x8005, VAR_0x800A
@@ -557,7 +557,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE15:: @ 821CE15
LilycoveCity_PokemonTrainerFanClub_EventScript_21CE4D:: @ 821CE4D
setvar VAR_0x8004, 8
- special sub_813BDB4
+ special BufferStreakTrainerText
message LilycoveCity_PokemonTrainerFanClub_Text_281C95
waitmessage
setvar VAR_0x8004, 2
@@ -568,7 +568,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE4D:: @ 821CE4D
case 11, LilycoveCity_PokemonTrainerFanClub_EventScript_21CE9F
case 127, LilycoveCity_PokemonTrainerFanClub_EventScript_21CE9F
setvar VAR_0x8004, 8
- special sub_813BDB4
+ special BufferStreakTrainerText
copyvar VAR_0x8006, VAR_0x800A
copyvar VAR_0x8005, VAR_RESULT
special PutFanClubSpecialOnTheAir
@@ -577,7 +577,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE4D:: @ 821CE4D
LilycoveCity_PokemonTrainerFanClub_EventScript_21CE9F:: @ 821CE9F
setvar VAR_0x8004, 8
- special sub_813BDB4
+ special BufferStreakTrainerText
msgbox LilycoveCity_PokemonTrainerFanClub_Text_281CCD, 5
compare VAR_RESULT, 1
goto_eq LilycoveCity_PokemonTrainerFanClub_EventScript_21CEC6
@@ -587,14 +587,14 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE9F:: @ 821CE9F
LilycoveCity_PokemonTrainerFanClub_EventScript_21CEC6:: @ 821CEC6
setvar VAR_0x8004, 8
- special sub_813BDB4
+ special BufferStreakTrainerText
msgbox LilycoveCity_PokemonTrainerFanClub_Text_281CF5, 4
release
end
LilycoveCity_PokemonTrainerFanClub_EventScript_21CED8:: @ 821CED8
setvar VAR_0x8004, 8
- special sub_813BDB4
+ special BufferStreakTrainerText
msgbox LilycoveCity_PokemonTrainerFanClub_Text_281D40, 4
setflag FLAG_0x0D2
release
@@ -602,7 +602,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CED8:: @ 821CED8
LilycoveCity_PokemonTrainerFanClub_EventScript_21CEED:: @ 821CEED
setvar VAR_0x8004, 8
- special sub_813BDB4
+ special BufferStreakTrainerText
msgbox LilycoveCity_PokemonTrainerFanClub_Text_281DB4, 4
release
end
diff --git a/data/maps/MarineCave_End/scripts.inc b/data/maps/MarineCave_End/scripts.inc
index 9c821e14f..d6b4bbd8d 100644
--- a/data/maps/MarineCave_End/scripts.inc
+++ b/data/maps/MarineCave_End/scripts.inc
@@ -9,7 +9,7 @@ MarineCave_End_MapScript1_23AFEA: @ 823AFEA
end
MarineCave_End_EventScript_23AFF4:: @ 823AFF4
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, MarineCave_End_EventScript_27374E
removeobject 1
@@ -42,7 +42,7 @@ MarineCave_End_EventScript_23B01B:: @ 823B01B
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
setvar VAR_TEMP_1, 0
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq MarineCave_End_EventScript_23B084
compare VAR_RESULT, 4
diff --git a/data/maps/MauvilleCity_GameCorner/scripts.inc b/data/maps/MauvilleCity_GameCorner/scripts.inc
index 400a24c24..733581b74 100644
--- a/data/maps/MauvilleCity_GameCorner/scripts.inc
+++ b/data/maps/MauvilleCity_GameCorner/scripts.inc
@@ -409,7 +409,7 @@ MauvilleCity_GameCorner_EventScript_210137:: @ 8210137
msgbox MauvilleCity_GameCorner_Text_210750, 5
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210209
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, MauvilleCity_GameCorner_EventScript_21017C
case 1, MauvilleCity_GameCorner_EventScript_2101A6
case 2, MauvilleCity_GameCorner_EventScript_2101D0
@@ -540,7 +540,7 @@ MauvilleCity_GameCorner_EventScript_2102D6:: @ 82102D6
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210456
setvar VAR_0x8004, 0
- specialvar VAR_RESULT, sub_8139248
+ specialvar VAR_RESULT, GetSlotMachineId
playslotmachine VAR_RESULT
releaseall
end
@@ -551,7 +551,7 @@ MauvilleCity_GameCorner_EventScript_2102F6:: @ 82102F6
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210456
setvar VAR_0x8004, 1
- specialvar VAR_RESULT, sub_8139248
+ specialvar VAR_RESULT, GetSlotMachineId
playslotmachine VAR_RESULT
releaseall
end
@@ -562,7 +562,7 @@ MauvilleCity_GameCorner_EventScript_210316:: @ 8210316
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210456
setvar VAR_0x8004, 2
- specialvar VAR_RESULT, sub_8139248
+ specialvar VAR_RESULT, GetSlotMachineId
playslotmachine VAR_RESULT
releaseall
end
@@ -573,7 +573,7 @@ MauvilleCity_GameCorner_EventScript_210336:: @ 8210336
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210456
setvar VAR_0x8004, 3
- specialvar VAR_RESULT, sub_8139248
+ specialvar VAR_RESULT, GetSlotMachineId
playslotmachine VAR_RESULT
releaseall
end
@@ -584,7 +584,7 @@ MauvilleCity_GameCorner_EventScript_210356:: @ 8210356
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210456
setvar VAR_0x8004, 4
- specialvar VAR_RESULT, sub_8139248
+ specialvar VAR_RESULT, GetSlotMachineId
playslotmachine VAR_RESULT
releaseall
end
@@ -595,7 +595,7 @@ MauvilleCity_GameCorner_EventScript_210376:: @ 8210376
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210456
setvar VAR_0x8004, 5
- specialvar VAR_RESULT, sub_8139248
+ specialvar VAR_RESULT, GetSlotMachineId
playslotmachine VAR_RESULT
releaseall
end
@@ -606,7 +606,7 @@ MauvilleCity_GameCorner_EventScript_210396:: @ 8210396
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210456
setvar VAR_0x8004, 6
- specialvar VAR_RESULT, sub_8139248
+ specialvar VAR_RESULT, GetSlotMachineId
playslotmachine VAR_RESULT
releaseall
end
@@ -617,7 +617,7 @@ MauvilleCity_GameCorner_EventScript_2103B6:: @ 82103B6
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210456
setvar VAR_0x8004, 7
- specialvar VAR_RESULT, sub_8139248
+ specialvar VAR_RESULT, GetSlotMachineId
playslotmachine VAR_RESULT
releaseall
end
@@ -628,7 +628,7 @@ MauvilleCity_GameCorner_EventScript_2103D6:: @ 82103D6
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210456
setvar VAR_0x8004, 8
- specialvar VAR_RESULT, sub_8139248
+ specialvar VAR_RESULT, GetSlotMachineId
playslotmachine VAR_RESULT
releaseall
end
@@ -639,7 +639,7 @@ MauvilleCity_GameCorner_EventScript_2103F6:: @ 82103F6
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210456
setvar VAR_0x8004, 9
- specialvar VAR_RESULT, sub_8139248
+ specialvar VAR_RESULT, GetSlotMachineId
playslotmachine VAR_RESULT
releaseall
end
@@ -650,7 +650,7 @@ MauvilleCity_GameCorner_EventScript_210416:: @ 8210416
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210456
setvar VAR_0x8004, 10
- specialvar VAR_RESULT, sub_8139248
+ specialvar VAR_RESULT, GetSlotMachineId
playslotmachine VAR_RESULT
releaseall
end
@@ -661,7 +661,7 @@ MauvilleCity_GameCorner_EventScript_210436:: @ 8210436
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210456
setvar VAR_0x8004, 11
- specialvar VAR_RESULT, sub_8139248
+ specialvar VAR_RESULT, GetSlotMachineId
playslotmachine VAR_RESULT
releaseall
end
diff --git a/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc b/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc
index fb76a5fc7..b2267122b 100644
--- a/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc
+++ b/data/maps/MauvilleCity_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ MauvilleCity_PokemonCenter_1F_MapScripts:: @ 8210E5B
.byte 0
MauvilleCity_PokemonCenter_1F_MapScript1_210E66: @ 8210E66
- setrespawn 5
+ setrespawn HEAL_LOCATION_MAUVILLE_CITY
call MauvilleCity_PokemonCenter_1F_EventScript_2718DE
goto MauvilleCity_PokemonCenter_1F_EventScript_210E74
end
diff --git a/data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc b/data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc
index 7fd2e61a0..2ff03b7f3 100644
--- a/data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc
+++ b/data/maps/MossdeepCity_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ MossdeepCity_PokemonCenter_1F_MapScripts:: @ 822223F
.byte 0
MossdeepCity_PokemonCenter_1F_MapScript1_22224A: @ 822224A
- setrespawn 9
+ setrespawn HEAL_LOCATION_MOSSDEEP_CITY
end
MossdeepCity_PokemonCenter_1F_EventScript_22224E:: @ 822224E
diff --git a/data/maps/NavelRock_Bottom/scripts.inc b/data/maps/NavelRock_Bottom/scripts.inc
index cce93e624..febe106bf 100644
--- a/data/maps/NavelRock_Bottom/scripts.inc
+++ b/data/maps/NavelRock_Bottom/scripts.inc
@@ -26,7 +26,7 @@ NavelRock_Bottom_MapScript1_269284: @ 8269284
end
NavelRock_Bottom_EventScript_26928E:: @ 826928E
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, NavelRock_Bottom_EventScript_27374E
removeobject 1
@@ -64,7 +64,7 @@ NavelRock_Bottom_EventScript_2692A2:: @ 82692A2
special BattleSetup_StartLegendaryBattle
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq NavelRock_Bottom_EventScript_269336
compare VAR_RESULT, 4
diff --git a/data/maps/NavelRock_Top/scripts.inc b/data/maps/NavelRock_Top/scripts.inc
index 67ddbc373..4310529dd 100644
--- a/data/maps/NavelRock_Top/scripts.inc
+++ b/data/maps/NavelRock_Top/scripts.inc
@@ -29,7 +29,7 @@ NavelRock_Top_MapScript1_269151: @ 8269151
end
NavelRock_Top_EventScript_26915B:: @ 826915B
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, NavelRock_Top_EventScript_27374E
removeobject 1
@@ -69,7 +69,7 @@ NavelRock_Top_EventScript_26916F:: @ 826916F
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
setvar VAR_LAST_TALKED, 1
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq NavelRock_Top_EventScript_269217
compare VAR_RESULT, 4
diff --git a/data/maps/NewMauville_Inside/scripts.inc b/data/maps/NewMauville_Inside/scripts.inc
index 81b21287d..e6d80c33d 100644
--- a/data/maps/NewMauville_Inside/scripts.inc
+++ b/data/maps/NewMauville_Inside/scripts.inc
@@ -14,7 +14,7 @@ NewMauville_Inside_MapScript1_2373E7: @ 82373E7
end
NewMauville_Inside_EventScript_237407:: @ 8237407
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, NewMauville_Inside_EventScript_27374E
removeobject VAR_LAST_TALKED
@@ -193,7 +193,7 @@ NewMauville_Inside_EventScript_2377AF:: @ 82377AF
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq NewMauville_Inside_EventScript_2377F3
compare VAR_RESULT, 4
@@ -220,7 +220,7 @@ NewMauville_Inside_EventScript_2377FC:: @ 82377FC
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq NewMauville_Inside_EventScript_237840
compare VAR_RESULT, 4
@@ -247,7 +247,7 @@ NewMauville_Inside_EventScript_237849:: @ 8237849
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq NewMauville_Inside_EventScript_23788D
compare VAR_RESULT, 4
diff --git a/data/maps/OldaleTown_PokemonCenter_1F/scripts.inc b/data/maps/OldaleTown_PokemonCenter_1F/scripts.inc
index ece540e70..e99e628a6 100644
--- a/data/maps/OldaleTown_PokemonCenter_1F/scripts.inc
+++ b/data/maps/OldaleTown_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ OldaleTown_PokemonCenter_1F_MapScripts:: @ 81FC006
.byte 0
OldaleTown_PokemonCenter_1F_MapScript1_1FC011: @ 81FC011
- setrespawn 14
+ setrespawn HEAL_LOCATION_OLDALE_TOWN
call OldaleTown_PokemonCenter_1F_EventScript_2718DE
end
diff --git a/data/maps/PacifidlogTown_House2/scripts.inc b/data/maps/PacifidlogTown_House2/scripts.inc
index 0e87677e6..21345242d 100644
--- a/data/maps/PacifidlogTown_House2/scripts.inc
+++ b/data/maps/PacifidlogTown_House2/scripts.inc
@@ -25,7 +25,7 @@ PacifidlogTown_House2_EventScript_203792:: @ 8203792
PacifidlogTown_House2_EventScript_2037DE:: @ 82037DE
checkflag FLAG_0x12B
goto_if 0, PacifidlogTown_House2_EventScript_27374E
- specialvar VAR_RESULT, sub_813970C
+ specialvar VAR_RESULT, GetDaysUntilPacifidlogTMAvailable
compare VAR_RESULT, 0
call_if 1, PacifidlogTown_House2_EventScript_203812
return
@@ -49,7 +49,7 @@ PacifidlogTown_House2_EventScript_203816:: @ 8203816
compare VAR_RESULT, 0
goto_eq PacifidlogTown_House2_EventScript_272054
setflag FLAG_0x12B
- special sub_8139754
+ special SetPacifidlogTMReceivedDay
msgbox PacifidlogTown_House2_Text_203A85, 4
release
end
@@ -65,13 +65,13 @@ PacifidlogTown_House2_EventScript_20384F:: @ 820384F
compare VAR_RESULT, 0
goto_eq PacifidlogTown_House2_EventScript_272054
setflag FLAG_0x12B
- special sub_8139754
+ special SetPacifidlogTMReceivedDay
msgbox PacifidlogTown_House2_Text_203A85, 4
release
end
PacifidlogTown_House2_EventScript_20387E:: @ 820387E
- specialvar VAR_RESULT, sub_813970C
+ specialvar VAR_RESULT, GetDaysUntilPacifidlogTMAvailable
buffernumberstring 0, VAR_RESULT
msgbox PacifidlogTown_House2_Text_203AF4, 4
release
diff --git a/data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc b/data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc
index fd34cd2aa..65af1cdc7 100644
--- a/data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc
+++ b/data/maps/PacifidlogTown_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ PacifidlogTown_PokemonCenter_1F_MapScripts:: @ 82034A7
.byte 0
PacifidlogTown_PokemonCenter_1F_MapScript1_2034B2: @ 82034B2
- setrespawn 19
+ setrespawn HEAL_LOCATION_PACIFIDLOG_TOWN
end
PacifidlogTown_PokemonCenter_1F_EventScript_2034B6:: @ 82034B6
diff --git a/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc b/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc
index f4a31854e..130a43de9 100644
--- a/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc
+++ b/data/maps/PetalburgCity_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ PetalburgCity_PokemonCenter_1F_MapScripts:: @ 82079E8
.byte 0
PetalburgCity_PokemonCenter_1F_MapScript1_2079F3: @ 82079F3
- setrespawn 3
+ setrespawn HEAL_LOCATION_PETALBURG_CITY
call PetalburgCity_PokemonCenter_1F_EventScript_2718DE
end
@@ -35,11 +35,11 @@ PetalburgCity_PokemonCenter_1F_EventScript_207A1C:: @ 8207A1C
end
PetalburgCity_PokemonCenter_1F_EventScript_207A38:: @ 8207A38
- compare VAR_FIRST_POKE, 0
+ compare VAR_STARTER_MON, 0
call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_207A5B
- compare VAR_FIRST_POKE, 1
+ compare VAR_STARTER_MON, 1
call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_207A64
- compare VAR_FIRST_POKE, 2
+ compare VAR_STARTER_MON, 2
call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_207A6D
release
end
diff --git a/data/maps/Route103/scripts.inc b/data/maps/Route103/scripts.inc
index 14e119cd6..6674662f7 100644
--- a/data/maps/Route103/scripts.inc
+++ b/data/maps/Route103/scripts.inc
@@ -38,7 +38,7 @@ Route103_EventScript_1EC3DA:: @ 81EC3DA
applymovement 2, Route103_Movement_27259A
waitmovement 0
msgbox Route103_Text_1EC7DE, 4
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, Route103_EventScript_1EC48E
case 1, Route103_EventScript_1EC49E
case 2, Route103_EventScript_1EC4AE
@@ -55,7 +55,7 @@ Route103_EventScript_1EC434:: @ 81EC434
applymovement 2, Route103_Movement_27259A
waitmovement 0
msgbox Route103_Text_1EC9CE, 4
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, Route103_EventScript_1EC4BE
case 1, Route103_EventScript_1EC4CE
case 2, Route103_EventScript_1EC4DE
diff --git a/data/maps/Route104/scripts.inc b/data/maps/Route104/scripts.inc
index 4755494b6..9b45844f0 100644
--- a/data/maps/Route104/scripts.inc
+++ b/data/maps/Route104/scripts.inc
@@ -153,7 +153,7 @@ Route104_EventScript_1ECDD0:: @ 81ECDD0
Route104_EventScript_1ECDED:: @ 81ECDED
msgbox Route104_Text_1EDDDB, 4
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, Route104_EventScript_1ECE36
case 1, Route104_EventScript_1ECE49
case 2, Route104_EventScript_1ECE5C
@@ -230,7 +230,7 @@ Route104_EventScript_1ECEEC:: @ 81ECEEC
Route104_EventScript_1ECF09:: @ 81ECF09
msgbox Route104_Text_1EE0C7, 4
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, Route104_EventScript_1ECF4D
case 1, Route104_EventScript_1ECF60
case 2, Route104_EventScript_1ECF73
diff --git a/data/maps/Route110/events.inc b/data/maps/Route110/events.inc
index 6e6d17d9a..f4875cc6c 100644
--- a/data/maps/Route110/events.inc
+++ b/data/maps/Route110/events.inc
@@ -45,8 +45,8 @@ Route110_MapWarps: @ 8529050
warp_def 19, 88, 0, 2, MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE
Route110_MapCoordEvents: @ 8529080
- coord_event 28, 92, 3, VAR_0x40A9, 2, Route110_EventScript_1EF661
- coord_event 29, 92, 3, VAR_0x40A9, 2, Route110_EventScript_1EF661
+ coord_event 28, 92, 3, VAR_CYCLING_CHALLENGE_STATE, 2, Route110_EventScript_1EF661
+ coord_event 29, 92, 3, VAR_CYCLING_CHALLENGE_STATE, 2, Route110_EventScript_1EF661
coord_event 33, 56, 3, VAR_0x4069, 0, Route110_EventScript_1EF74D
coord_event 34, 56, 3, VAR_0x4069, 0, Route110_EventScript_1EF758
coord_event 35, 56, 3, VAR_0x4069, 0, Route110_EventScript_1EF763
diff --git a/data/maps/Route110/scripts.inc b/data/maps/Route110/scripts.inc
index 84d50b454..fe07de8dc 100644
--- a/data/maps/Route110/scripts.inc
+++ b/data/maps/Route110/scripts.inc
@@ -11,7 +11,7 @@ Route110_MapScript1_1EF279: @ 81EF279
Route110_MapScript1_1EF27D: @ 81EF27D
call Route110_EventScript_271ED7
call Route110_EventScript_271EFB
- compare VAR_0x40A9, 1
+ compare VAR_CYCLING_CHALLENGE_STATE, 1
call_if 1, Route110_EventScript_1EF293
end
@@ -20,12 +20,12 @@ Route110_EventScript_1EF293:: @ 81EF293
return
Route110_MapScript2_1EF297: @ 81EF297
- map_script_2 VAR_0x40A9, 1, Route110_EventScript_1EF2A1
+ map_script_2 VAR_CYCLING_CHALLENGE_STATE, 1, Route110_EventScript_1EF2A1
.2byte 0
Route110_EventScript_1EF2A1:: @ 81EF2A1
special Special_BeginCyclingRoadChallenge
- setvar VAR_0x40A9, 2
+ setvar VAR_CYCLING_CHALLENGE_STATE, 2
return
Route110_EventScript_1EF2AA:: @ 81EF2AA
@@ -148,7 +148,7 @@ Route110_EventScript_1EF3B7:: @ 81EF3B7
specialvar VAR_RESULT, GetPlayerAvatarBike
compare VAR_RESULT, 1
goto_eq Route110_EventScript_1EF3E8
- compare VAR_0x40A9, 0
+ compare VAR_CYCLING_CHALLENGE_STATE, 0
goto_eq Route110_EventScript_1EF3DE
msgbox Route110_Text_1F06FB, 4
release
@@ -368,7 +368,7 @@ Route110_EventScript_1EF735:: @ 81EF735
end
Route110_EventScript_1EF743:: @ 81EF743
- setvar VAR_0x40A9, 3
+ setvar VAR_CYCLING_CHALLENGE_STATE, 3
savebgm MUS_DUMMY
fadedefaultbgm
return
@@ -426,7 +426,7 @@ Route110_EventScript_1EF7E6:: @ 81EF7E6
Route110_EventScript_1EF7EB:: @ 81EF7EB
msgbox Route110_Text_1EFC48, 4
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, Route110_EventScript_1EF81A
case 1, Route110_EventScript_1EF82A
case 2, Route110_EventScript_1EF83A
@@ -456,7 +456,7 @@ Route110_EventScript_1EF84A:: @ 81EF84A
Route110_EventScript_1EF865:: @ 81EF865
msgbox Route110_Text_1EFE3F, 4
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, Route110_EventScript_1EF894
case 1, Route110_EventScript_1EF8A4
case 2, Route110_EventScript_1EF8B4
diff --git a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc
index 9f99cf44f..b38bbf896 100644
--- a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc
+++ b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc
@@ -3,14 +3,14 @@ Route110_SeasideCyclingRoadSouthEntrance_MapScripts:: @ 826EBA1
.byte 0
Route110_SeasideCyclingRoadSouthEntrance_MapScript1_26EBA7: @ 826EBA7
- compare VAR_0x40A9, 3
+ compare VAR_CYCLING_CHALLENGE_STATE, 3
call_if 1, Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBBE
- compare VAR_0x40A9, 2
+ compare VAR_CYCLING_CHALLENGE_STATE, 2
call_if 1, Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBBE
end
Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBBE:: @ 826EBBE
- setvar VAR_0x40A9, 1
+ setvar VAR_CYCLING_CHALLENGE_STATE, 1
return
Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBC4:: @ 826EBC4
@@ -33,7 +33,7 @@ Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBD0:: @ 826EBD0
end
Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBF6:: @ 826EBF6
- setvar VAR_0x40A9, 1
+ setvar VAR_CYCLING_CHALLENGE_STATE, 1
return
Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EBFC:: @ 826EBFC
@@ -50,7 +50,7 @@ Route110_SeasideCyclingRoadSouthEntrance_Movement_26EC11: @ 826EC11
Route110_SeasideCyclingRoadSouthEntrance_EventScript_26EC13:: @ 826EC13
lockall
- setvar VAR_0x40A9, 0
+ setvar VAR_CYCLING_CHALLENGE_STATE, 0
clearflag FLAG_SYS_CYCLING_ROAD
setvar VAR_TEMP_1, 0
releaseall
diff --git a/data/maps/Route116/scripts.inc b/data/maps/Route116/scripts.inc
index 854411ac1..769d254a5 100644
--- a/data/maps/Route116/scripts.inc
+++ b/data/maps/Route116/scripts.inc
@@ -169,7 +169,7 @@ Route116_EventScript_1F2DB6:: @ 81F2DB6
checkitem ITEM_BLACK_GLASSES, 1
compare VAR_RESULT, 1
goto_eq Route116_EventScript_1F2DF1
- specialvar VAR_RESULT, sub_8139634
+ specialvar VAR_RESULT, FoundBlackGlasses
compare VAR_RESULT, 1
goto_eq Route116_EventScript_1F2DE2
msgbox Route116_Text_1F3657, 4
@@ -185,7 +185,7 @@ Route116_EventScript_1F2DE2:: @ 81F2DE2
Route116_EventScript_1F2DF1:: @ 81F2DF1
msgbox Route116_Text_1F3657, 4
msgbox Route116_Text_1F3688, 4
- specialvar VAR_RESULT, sub_8139634
+ specialvar VAR_RESULT, FoundBlackGlasses
compare VAR_RESULT, 1
goto_eq Route116_EventScript_1F2E1B
msgbox Route116_Text_1F375E, 4
diff --git a/data/maps/Route116_TunnelersRestHouse/scripts.inc b/data/maps/Route116_TunnelersRestHouse/scripts.inc
index f9dbbd3f2..b2c009337 100644
--- a/data/maps/Route116_TunnelersRestHouse/scripts.inc
+++ b/data/maps/Route116_TunnelersRestHouse/scripts.inc
@@ -17,7 +17,7 @@ Route116_TunnelersRestHouse_EventScript_22B863:: @ 822B863
Route116_TunnelersRestHouse_EventScript_22B86C:: @ 822B86C
lock
faceplayer
- checkflag FLAG_0x0C7
+ checkflag FLAG_RUSTURF_TUNNEL_OPENED
goto_eq Route116_TunnelersRestHouse_EventScript_22B881
msgbox Route116_TunnelersRestHouse_Text_22BAAF, 4
release
diff --git a/data/maps/Route119/scripts.inc b/data/maps/Route119/scripts.inc
index 778d925e6..f2e52d50c 100644
--- a/data/maps/Route119/scripts.inc
+++ b/data/maps/Route119/scripts.inc
@@ -9,7 +9,7 @@ Route119_MapScript1_1F442F: @ 81F442F
end
Route119_EventScript_1F4439:: @ 81F4439
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, Route119_EventScript_27374E
removeobject VAR_LAST_TALKED
@@ -80,7 +80,7 @@ Route119_EventScript_1F4506:: @ 81F4506
Route119_EventScript_1F450B:: @ 81F450B
msgbox Route119_Text_1F49FD, 4
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, Route119_EventScript_1F453A
case 1, Route119_EventScript_1F454A
case 2, Route119_EventScript_1F455A
@@ -110,7 +110,7 @@ Route119_EventScript_1F456A:: @ 81F456A
Route119_EventScript_1F4585:: @ 81F4585
msgbox Route119_Text_1F4C9A, 4
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, Route119_EventScript_1F45B4
case 1, Route119_EventScript_1F45C4
case 2, Route119_EventScript_1F45D4
diff --git a/data/maps/Route120/scripts.inc b/data/maps/Route120/scripts.inc
index 50e5742d1..0bcff1a93 100644
--- a/data/maps/Route120/scripts.inc
+++ b/data/maps/Route120/scripts.inc
@@ -25,7 +25,7 @@ Route120_EventScript_1F5406:: @ 81F5406
return
Route120_EventScript_1F5449:: @ 81F5449
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, Route120_EventScript_27374E
removeobject 30
@@ -33,7 +33,7 @@ Route120_EventScript_1F5449:: @ 81F5449
return
Route120_EventScript_1F5460:: @ 81F5460
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, Route120_EventScript_27374E
removeobject VAR_LAST_TALKED
@@ -220,7 +220,7 @@ Route120_EventScript_1F568B:: @ 81F568B
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq Route120_EventScript_1F571C
compare VAR_RESULT, 4
diff --git a/data/maps/RustboroCity/scripts.inc b/data/maps/RustboroCity/scripts.inc
index 6eb8d48bc..f4c8d5434 100644
--- a/data/maps/RustboroCity/scripts.inc
+++ b/data/maps/RustboroCity/scripts.inc
@@ -306,7 +306,7 @@ RustboroCity_EventScript_1E09CD:: @ 81E09CD
clearflag FLAG_0x2DC
setflag FLAG_0x08E
setvar VAR_0x405A, 2
- setvar VAR_0x409A, 2
+ setvar VAR_RUSTURF_TUNNEL_STATE, 2
setvar VAR_0x406F, 1
clearflag FLAG_0x37B
clearflag FLAG_0x370
@@ -869,7 +869,7 @@ RustboroCity_EventScript_1E1070:: @ 81E1070
RustboroCity_EventScript_1E1092:: @ 81E1092
msgbox RustboroCity_Text_1E1C84, 4
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, RustboroCity_EventScript_1E10DB
case 1, RustboroCity_EventScript_1E10EE
case 2, RustboroCity_EventScript_1E1101
@@ -940,7 +940,7 @@ RustboroCity_EventScript_1E1174:: @ 81E1174
RustboroCity_EventScript_1E1191:: @ 81E1191
msgbox RustboroCity_Text_1E1FA9, 4
- switch VAR_FIRST_POKE
+ switch VAR_STARTER_MON
case 0, RustboroCity_EventScript_1E11D5
case 1, RustboroCity_EventScript_1E11E8
case 2, RustboroCity_EventScript_1E11FB
diff --git a/data/maps/RustboroCity_PokemonCenter_1F/scripts.inc b/data/maps/RustboroCity_PokemonCenter_1F/scripts.inc
index a9156d5aa..acf33e647 100644
--- a/data/maps/RustboroCity_PokemonCenter_1F/scripts.inc
+++ b/data/maps/RustboroCity_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ RustboroCity_PokemonCenter_1F_MapScripts:: @ 8214D62
.byte 0
RustboroCity_PokemonCenter_1F_MapScript1_214D6D: @ 8214D6D
- setrespawn 6
+ setrespawn HEAL_LOCATION_RUSTBORO_CITY
call RustboroCity_PokemonCenter_1F_EventScript_2718DE
end
diff --git a/data/maps/RusturfTunnel/events.inc b/data/maps/RusturfTunnel/events.inc
index d0d56e6fa..77b6f7a61 100644
--- a/data/maps/RusturfTunnel/events.inc
+++ b/data/maps/RusturfTunnel/events.inc
@@ -17,8 +17,8 @@ RusturfTunnel_MapWarps: @ 85342B4
RusturfTunnel_MapCoordEvents: @ 85342CC
coord_event 23, 4, 3, 0, 0, RusturfTunnel_EventScript_22D071
- coord_event 9, 4, 3, VAR_0x409A, 2, RusturfTunnel_EventScript_22D083
- coord_event 9, 5, 3, VAR_0x409A, 2, RusturfTunnel_EventScript_22D083
+ coord_event 9, 4, 3, VAR_RUSTURF_TUNNEL_STATE, 2, RusturfTunnel_EventScript_22D083
+ coord_event 9, 5, 3, VAR_RUSTURF_TUNNEL_STATE, 2, RusturfTunnel_EventScript_22D083
coord_event 25, 4, 3, 0, 0, RusturfTunnel_EventScript_22D077
coord_event 25, 5, 3, 0, 0, RusturfTunnel_EventScript_22D07D
diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc
index 5e42be78d..33e87bda5 100644
--- a/data/maps/RusturfTunnel/scripts.inc
+++ b/data/maps/RusturfTunnel/scripts.inc
@@ -4,12 +4,12 @@ RusturfTunnel_MapScripts:: @ 822CE27
.byte 0
RusturfTunnel_MapScript2_22CE32: @ 822CE32
- map_script_2 VAR_0x409A, 4, RusturfTunnel_EventScript_22CEAE
- map_script_2 VAR_0x409A, 5, RusturfTunnel_EventScript_22CEAE
+ map_script_2 VAR_RUSTURF_TUNNEL_STATE, 4, RusturfTunnel_EventScript_22CEAE
+ map_script_2 VAR_RUSTURF_TUNNEL_STATE, 5, RusturfTunnel_EventScript_22CEAE
.2byte 0
RusturfTunnel_MapScript1_22CE44: @ 822CE44
- compare VAR_0x409A, 2
+ compare VAR_RUSTURF_TUNNEL_STATE, 2
call_if 1, RusturfTunnel_EventScript_22CE50
end
@@ -288,7 +288,7 @@ RusturfTunnel_EventScript_22D083:: @ 822D083
waitmovement 0
moveobjectoffscreen 6
moveobjectoffscreen 7
- setvar VAR_0x409A, 3
+ setvar VAR_RUSTURF_TUNNEL_STATE, 3
releaseall
end
diff --git a/data/maps/SSTidalCorridor/scripts.inc b/data/maps/SSTidalCorridor/scripts.inc
index 2e1b4cfa4..8fcd6e59b 100644
--- a/data/maps/SSTidalCorridor/scripts.inc
+++ b/data/maps/SSTidalCorridor/scripts.inc
@@ -4,15 +4,15 @@ SSTidalCorridor_MapScripts:: @ 823BFCF
SSTidalCorridor_MapScript2_23BFD5: @ 823BFD5
map_script_2 VAR_0x40D4, 0, SSTidalCorridor_EventScript_23C219
- map_script_2 VAR_PORTHOLE, 1, SSTidalCorridor_EventScript_23BFFF
- map_script_2 VAR_PORTHOLE, 5, SSTidalCorridor_EventScript_23C015
- map_script_2 VAR_PORTHOLE, 9, SSTidalCorridor_EventScript_23C067
- map_script_2 VAR_PORTHOLE, 10, SSTidalCorridor_EventScript_23C07D
+ map_script_2 VAR_PORTHOLE_STATE, 1, SSTidalCorridor_EventScript_23BFFF
+ map_script_2 VAR_PORTHOLE_STATE, 5, SSTidalCorridor_EventScript_23C015
+ map_script_2 VAR_PORTHOLE_STATE, 9, SSTidalCorridor_EventScript_23C067
+ map_script_2 VAR_PORTHOLE_STATE, 10, SSTidalCorridor_EventScript_23C07D
.2byte 0
SSTidalCorridor_EventScript_23BFFF:: @ 823BFFF
special SetSSTidalFlag
- setvar VAR_PORTHOLE, 2
+ setvar VAR_PORTHOLE_STATE, 2
lockall
playse SE_PINPON
msgbox SSTidalCorridor_Text_23C462, 4
@@ -20,7 +20,7 @@ SSTidalCorridor_EventScript_23BFFF:: @ 823BFFF
end
SSTidalCorridor_EventScript_23C015:: @ 823C015
- setvar VAR_PORTHOLE, 6
+ setvar VAR_PORTHOLE_STATE, 6
lockall
playse SE_PINPON
msgbox SSTidalCorridor_Text_23C4E3, 4
@@ -29,28 +29,28 @@ SSTidalCorridor_EventScript_23C015:: @ 823C015
SSTidalRooms_EventScript_23C028:: @ 823C028
special SetSSTidalFlag
- setvar VAR_PORTHOLE, 7
+ setvar VAR_PORTHOLE_STATE, 7
playse SE_PINPON
msgbox SSTidalRooms_Text_23C462, 4
return
SSTidalRooms_EventScript_23C03C:: @ 823C03C
special ResetSSTidalFlag
- setvar VAR_PORTHOLE, 4
+ setvar VAR_PORTHOLE_STATE, 4
playse SE_PINPON
msgbox SSTidalRooms_Text_23C553, 4
return
SSTidalCorridor_EventScript_23C050:: @ 823C050
- compare VAR_PORTHOLE, 2
+ compare VAR_PORTHOLE_STATE, 2
goto_eq SSTidalCorridor_EventScript_23C067
- compare VAR_PORTHOLE, 7
+ compare VAR_PORTHOLE_STATE, 7
goto_eq SSTidalCorridor_EventScript_23C07D
end
SSTidalCorridor_EventScript_23C067:: @ 823C067
special ResetSSTidalFlag
- setvar VAR_PORTHOLE, 3
+ setvar VAR_PORTHOLE_STATE, 3
lockall
playse SE_PINPON
msgbox SSTidalCorridor_Text_23C4E3, 4
@@ -59,7 +59,7 @@ SSTidalCorridor_EventScript_23C067:: @ 823C067
SSTidalCorridor_EventScript_23C07D:: @ 823C07D
special ResetSSTidalFlag
- setvar VAR_PORTHOLE, 8
+ setvar VAR_PORTHOLE_STATE, 8
lockall
playse SE_PINPON
msgbox SSTidalCorridor_Text_23C50F, 4
@@ -68,13 +68,13 @@ SSTidalCorridor_EventScript_23C07D:: @ 823C07D
SSTidalRooms_EventScript_23C093:: @ 823C093
special ResetSSTidalFlag
- setvar VAR_PORTHOLE, 8
+ setvar VAR_PORTHOLE_STATE, 8
playse SE_PINPON
msgbox SSTidalRooms_Text_23C50F, 4
return
SSTidalRooms_EventScript_23C0A7:: @ 823C0A7
- switch VAR_PORTHOLE
+ switch VAR_PORTHOLE_STATE
case 2, SSTidalRooms_EventScript_23C03C
case 3, SSTidalRooms_EventScript_23C03C
case 6, SSTidalRooms_EventScript_23C028
@@ -114,16 +114,16 @@ SSTidalCorridor_EventScript_23C110:: @ 823C110
SSTidalCorridor_EventScript_23C119:: @ 823C119
lock
faceplayer
- compare VAR_PORTHOLE, 4
+ compare VAR_PORTHOLE_STATE, 4
goto_eq SSTidalCorridor_EventScript_23C13B
- compare VAR_PORTHOLE, 8
+ compare VAR_PORTHOLE_STATE, 8
goto_eq SSTidalCorridor_EventScript_23C15A
msgbox SSTidalCorridor_Text_23C596, 4
release
end
SSTidalCorridor_EventScript_23C13B:: @ 823C13B
- setrespawn 8
+ setrespawn HEAL_LOCATION_LILYCOVE_CITY
msgbox SSTidalCorridor_Text_23C64F, 4
checkflag FLAG_0x104
call_if 1, SSTidalCorridor_EventScript_23C179
@@ -133,7 +133,7 @@ SSTidalCorridor_EventScript_23C13B:: @ 823C13B
end
SSTidalCorridor_EventScript_23C15A:: @ 823C15A
- setrespawn 4
+ setrespawn HEAL_LOCATION_SLATEPORT_CITY
msgbox SSTidalCorridor_Text_23C64F, 4
checkflag FLAG_0x104
call_if 1, SSTidalCorridor_EventScript_23C179
@@ -148,9 +148,9 @@ SSTidalCorridor_EventScript_23C179:: @ 823C179
SSTidalCorridor_EventScript_23C17D:: @ 823C17D
lockall
- compare VAR_PORTHOLE, 2
+ compare VAR_PORTHOLE_STATE, 2
goto_eq SSTidalCorridor_EventScript_23C19E
- compare VAR_PORTHOLE, 7
+ compare VAR_PORTHOLE_STATE, 7
goto_eq SSTidalCorridor_EventScript_23C19E
msgbox SSTidalCorridor_Text_23C6C3, 4
releaseall
diff --git a/data/maps/SkyPillar_Top/scripts.inc b/data/maps/SkyPillar_Top/scripts.inc
index 334acc8ac..690464698 100644
--- a/data/maps/SkyPillar_Top/scripts.inc
+++ b/data/maps/SkyPillar_Top/scripts.inc
@@ -10,7 +10,7 @@ SkyPillar_Top_MapScript1_2396C8: @ 82396C8
end
SkyPillar_Top_EventScript_2396D2:: @ 82396D2
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, SkyPillar_Top_EventScript_27374E
removeobject VAR_LAST_TALKED
@@ -56,7 +56,7 @@ SkyPillar_Top_EventScript_239722:: @ 8239722
special BattleSetup_StartLegendaryBattle
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq SkyPillar_Top_EventScript_239768
compare VAR_RESULT, 4
diff --git a/data/maps/SlateportCity_Harbor/scripts.inc b/data/maps/SlateportCity_Harbor/scripts.inc
index e1f373bb2..58c318d37 100644
--- a/data/maps/SlateportCity_Harbor/scripts.inc
+++ b/data/maps/SlateportCity_Harbor/scripts.inc
@@ -203,7 +203,7 @@ SlateportCity_Harbor_EventScript_20CB92:: @ 820CB92
msgbox SlateportCity_Harbor_Text_20CF93, 5
compare VAR_RESULT, 0
goto_eq SlateportCity_Harbor_EventScript_20CBDD
- setvar VAR_PORTHOLE, 1
+ setvar VAR_PORTHOLE_STATE, 1
call SlateportCity_Harbor_EventScript_20CBE9
warp MAP_SS_TIDAL_CORRIDOR, 255, 1, 10
waitstate
diff --git a/data/maps/SlateportCity_House1/scripts.inc b/data/maps/SlateportCity_House1/scripts.inc
index 8ecc859f7..745cc6627 100644
--- a/data/maps/SlateportCity_House1/scripts.inc
+++ b/data/maps/SlateportCity_House1/scripts.inc
@@ -34,7 +34,7 @@ SlateportCity_House1_EventScript_209AF3:: @ 8209AF3
special TV_CheckMonOTIDEqualsPlayerID
compare VAR_RESULT, 1
goto_eq SlateportCity_House1_EventScript_209B50
- specialvar VAR_RESULT, sub_8139770
+ specialvar VAR_RESULT, MonOTNameMatchesPlayer
special TV_CopyNicknameToStringVar1AndEnsureTerminated
compare VAR_RESULT, 1
goto_eq SlateportCity_House1_EventScript_209B50
diff --git a/data/maps/SlateportCity_PokemonCenter_1F/scripts.inc b/data/maps/SlateportCity_PokemonCenter_1F/scripts.inc
index 404804c57..dd62280bb 100644
--- a/data/maps/SlateportCity_PokemonCenter_1F/scripts.inc
+++ b/data/maps/SlateportCity_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ SlateportCity_PokemonCenter_1F_MapScripts:: @ 820DABF
.byte 0
SlateportCity_PokemonCenter_1F_MapScript1_20DACA: @ 820DACA
- setrespawn 4
+ setrespawn HEAL_LOCATION_SLATEPORT_CITY
call SlateportCity_PokemonCenter_1F_EventScript_2718DE
end
diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc
index cdcf5866c..652ac791a 100644
--- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc
+++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc
@@ -91,7 +91,7 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_227A4E:: @ 8227A4E
SootopolisCity_MysteryEventsHouse_1F_EventScript_227A58:: @ 8227A58
special SavePlayerParty
- special sub_8139238
+ special BufferEReaderTrainerName
msgbox SootopolisCity_MysteryEventsHouse_1F_Text_227BFC, 5
compare VAR_RESULT, 0
goto_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_227AE2
diff --git a/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc b/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc
index fcb1b5863..46dccd97e 100644
--- a/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc
+++ b/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ SootopolisCity_PokemonCenter_1F_MapScripts:: @ 82264F1
.byte 0
SootopolisCity_PokemonCenter_1F_MapScript1_2264FC: @ 82264FC
- setrespawn 10
+ setrespawn HEAL_LOCATION_SOOTOPOLIS_CITY
end
SootopolisCity_PokemonCenter_1F_EventScript_226500:: @ 8226500
diff --git a/data/maps/SouthernIsland_Interior/scripts.inc b/data/maps/SouthernIsland_Interior/scripts.inc
index 432667cc9..3005e32d7 100644
--- a/data/maps/SouthernIsland_Interior/scripts.inc
+++ b/data/maps/SouthernIsland_Interior/scripts.inc
@@ -9,7 +9,7 @@ SouthernIsland_Interior_MapScript1_242A50: @ 8242A50
end
SouthernIsland_Interior_EventScript_242A5A:: @ 8242A5A
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, SouthernIsland_Interior_EventScript_27374E
removeobject 2
@@ -90,7 +90,7 @@ SouthernIsland_Interior_EventScript_242AD0:: @ 8242AD0
special BattleSetup_StartLatiBattle
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq SouthernIsland_Interior_EventScript_242B81
compare VAR_RESULT, 4
diff --git a/data/maps/TerraCave_End/scripts.inc b/data/maps/TerraCave_End/scripts.inc
index 5152f85cf..d603f2274 100644
--- a/data/maps/TerraCave_End/scripts.inc
+++ b/data/maps/TerraCave_End/scripts.inc
@@ -9,7 +9,7 @@ TerraCave_End_MapScript1_23B0BB: @ 823B0BB
end
TerraCave_End_EventScript_23B0C5:: @ 823B0C5
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
goto_if 5, TerraCave_End_EventScript_27374E
removeobject 1
@@ -42,7 +42,7 @@ TerraCave_End_EventScript_23B0EC:: @ 823B0EC
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
setvar VAR_TEMP_1, 0
- specialvar VAR_RESULT, sub_8138B80
+ specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_eq TerraCave_End_EventScript_23B155
compare VAR_RESULT, 4
diff --git a/data/maps/TrainerHill_Elevator/scripts.inc b/data/maps/TrainerHill_Elevator/scripts.inc
index ac2d5c8a7..ff731393b 100644
--- a/data/maps/TrainerHill_Elevator/scripts.inc
+++ b/data/maps/TrainerHill_Elevator/scripts.inc
@@ -50,7 +50,7 @@ TrainerHill_Elevator_EventScript_2693D4:: @ 82693D4
TrainerHill_Elevator_EventScript_2693D9:: @ 82693D9
waitse
- special sub_8139A78
+ special ShakeScreenInElevator
waitstate
return
diff --git a/data/maps/VerdanturfTown/scripts.inc b/data/maps/VerdanturfTown/scripts.inc
index 2987a9a59..8cc8f6f4d 100644
--- a/data/maps/VerdanturfTown/scripts.inc
+++ b/data/maps/VerdanturfTown/scripts.inc
@@ -10,7 +10,7 @@ VerdanturfTown_MapScript1_1EB56C: @ 81EB56C
VerdanturfTown_EventScript_1EB575:: @ 81EB575
lock
faceplayer
- checkflag FLAG_0x0C7
+ checkflag FLAG_RUSTURF_TUNNEL_OPENED
goto_eq VerdanturfTown_EventScript_1EB594
msgbox VerdanturfTown_Text_1EB5FD, 4
applymovement 2, VerdanturfTown_Movement_2725A2
@@ -36,7 +36,7 @@ VerdanturfTown_EventScript_1EB5B1:: @ 81EB5B1
VerdanturfTown_EventScript_1EB5BA:: @ 81EB5BA
lock
faceplayer
- checkflag FLAG_0x0C7
+ checkflag FLAG_RUSTURF_TUNNEL_OPENED
goto_eq VerdanturfTown_EventScript_1EB5CF
msgbox VerdanturfTown_Text_1EB854, 4
release
diff --git a/data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc b/data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc
index 73c7fe1f3..131df00f7 100644
--- a/data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc
+++ b/data/maps/VerdanturfTown_PokemonCenter_1F/scripts.inc
@@ -4,7 +4,7 @@ VerdanturfTown_PokemonCenter_1F_MapScripts:: @ 8202726
.byte 0
VerdanturfTown_PokemonCenter_1F_MapScript1_202731: @ 8202731
- setrespawn 18
+ setrespawn HEAL_LOCATION_VERDANTURF_TOWN
call VerdanturfTown_PokemonCenter_1F_EventScript_2718DE
end
diff --git a/data/maps/VerdanturfTown_WandasHouse/scripts.inc b/data/maps/VerdanturfTown_WandasHouse/scripts.inc
index fabff6420..8184f4c21 100644
--- a/data/maps/VerdanturfTown_WandasHouse/scripts.inc
+++ b/data/maps/VerdanturfTown_WandasHouse/scripts.inc
@@ -69,7 +69,7 @@ VerdanturfTown_WandasHouse_EventScript_20294E:: @ 820294E
goto_eq VerdanturfTown_WandasHouse_EventScript_202989
checkflag FLAG_0x4F3
goto_eq VerdanturfTown_WandasHouse_EventScript_20297F
- checkflag FLAG_0x0C7
+ checkflag FLAG_RUSTURF_TUNNEL_OPENED
goto_eq VerdanturfTown_WandasHouse_EventScript_202975
msgbox VerdanturfTown_WandasHouse_Text_202E47, 4
release
diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s
index f05613b00..b859133a6 100644
--- a/data/pokemon_storage_system.s
+++ b/data/pokemon_storage_system.s
@@ -4,18 +4,6 @@
.section .rodata
.align 2
-gUnknown_0857173C:: @ 857173C
- .incbin "graphics/unknown/unknown_57173C.gbapal"
-
- .align 2
-gUnknown_0857175C:: @ 857175C
- .incbin "graphics/pokemon_storage/box_selection_popup_center.4bpp"
-
- .align 2
-gUnknown_08571F5C:: @ 8571F5C
- .incbin "graphics/pokemon_storage/box_selection_popup_sides.4bpp"
-
- .align 2
gUnknown_085720DC:: @ 85720DC
.incbin "graphics/pokemon_storage/scrolling_bg.4bpp.lz"
diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s
index 51e515ccb..0c22aa6cd 100644
--- a/data/pokemon_summary_screen.s
+++ b/data/pokemon_summary_screen.s
@@ -3,9 +3,6 @@
.section .rodata
-@ 86181C1
- .include "data/text/move_descriptions.inc"
-
@ 861CAAC
.include "data/text/nature_names.inc"
diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc
index df25056ea..d0936b9c1 100644
--- a/data/scripts/field_move_scripts.inc
+++ b/data/scripts/field_move_scripts.inc
@@ -113,7 +113,7 @@ Route111_EventScript_2907FB:: @ 82907FB
applymovement VAR_LAST_TALKED, Route111_Movement_29082B
waitmovement 0
removeobject VAR_LAST_TALKED
- specialvar VAR_RESULT, sub_81393FC
+ specialvar VAR_RESULT, TryUpdateRusturfTunnelState
compare VAR_RESULT, 1
goto_eq Route111_EventScript_290829
special RockSmashWildEncounter
diff --git a/data/specials.inc b/data/specials.inc
index 1020b1c80..d0d04837a 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -71,7 +71,7 @@ gSpecials:: @ 81DBA64
def_special ShouldTryRematchBattle
def_special IsTrainerReadyForRematch
def_special BattleSetup_StartRematchBattle
- def_special sub_80C7578
+ def_special ShowPokemonStorageSystem
def_special HasEnoughMonsForDoubleBattle
def_special TurnOffTVScreen
def_special DoTVShow
@@ -174,11 +174,11 @@ gSpecials:: @ 81DBA64
def_special GetFirstFreePokeblockSlot
def_special DoBerryBlending
def_special sub_8142BC8
- def_special sub_813BD60
- def_special sub_813BCA8
- def_special sub_813BDB4
+ def_special ShouldMoveLilycoveFanClubMember
+ def_special GetNumMovedLilycoveFanClubMembers
+ def_special BufferStreakTrainerText
def_special sub_813BA30
- def_special sub_813BCE8
+ def_special UpdateMovedLilycoveFanClubMembers
def_special sub_813BF60
def_special sub_813BA60
def_special sub_813BF7C
@@ -191,7 +191,7 @@ gSpecials:: @ 81DBA64
def_special GabbyAndTyGetLastQuote
def_special GabbyAndTyGetLastBattleTrivia
def_special GabbyAndTySetScriptVarsToEventObjectLocalIds
- def_special sub_8138B80
+ def_special GetBattleOutcome
def_special GetDaycareMonNicknames
def_special GetDaycareState
def_special RejectEggFromDayCare
@@ -227,7 +227,7 @@ gSpecials:: @ 81DBA64
def_special ShowPokedexRatingMessage
def_special DoPCTurnOnEffect
def_special DoPCTurnOffEffect
- def_special sub_8139994
+ def_special SetDepartmentStoreFloorVar
def_special DoLotteryCornerComputerEffect
def_special EndLotteryCornerComputerEffect
def_special sub_81B951C
@@ -258,7 +258,7 @@ gSpecials:: @ 81DBA64
def_special sub_81B9D08
def_special sub_80F9490
def_special ValidateEReaderTrainer
- def_special sub_8139228
+ def_special GetBestBattleTowerStreak
def_special sub_80F94E8
def_special BedroomPC
def_special PlayerPC
@@ -284,7 +284,7 @@ gSpecials:: @ 81DBA64
def_special sub_80FB7A4
def_special DoSoftReset
def_special GameClear
- def_special sub_8139A78
+ def_special ShakeScreenInElevator
def_special nullsub_55
def_special SpawnScriptEventObject
def_special RemoveScriptEventObject
@@ -295,20 +295,20 @@ gSpecials:: @ 81DBA64
def_special sub_80B0534
def_special sub_80B058C
def_special WaitWeather
- def_special sub_8139238
- def_special sub_8139248
+ def_special BufferEReaderTrainerName
+ def_special GetSlotMachineId
def_special GetPlayerFacingDirection
- def_special sub_81392AC
- def_special sub_81392D4
- def_special sub_81392F8
- def_special sub_8139320
+ def_special FoundAbandonedShipRoom1Key
+ def_special FoundAbandonedShipRoom2Key
+ def_special FoundAbandonedShipRoom4Key
+ def_special FoundAbandonedShipRoom6Key
def_special LeadMonHasEffortRibbon
def_special GiveLeadMonEffortRibbon
def_special Special_AreLeadMonEVsMaxedOut
def_special sub_8098574
def_special sub_809859C
def_special InitRoamer
- def_special sub_81393FC
+ def_special TryUpdateRusturfTunnelState
def_special IsGrassTypeInParty
def_special sub_80AFC60
def_special PutZigzagoonInPlayerParty
@@ -326,7 +326,7 @@ gSpecials:: @ 81DBA64
def_special StartRegiBattle
def_special sub_80B16D8
def_special DoSealedChamberShakingEffect2
- def_special sub_8139634
+ def_special FoundBlackGlasses
def_special sub_80AC81C
def_special sp13E_warp_to_last_warp
def_special sp13F_fall_to_last_warp
@@ -343,11 +343,11 @@ gSpecials:: @ 81DBA64
def_special sub_80E9B70
def_special LoadPlayerBag
def_special sub_80B05B4
- def_special sub_8139754
- def_special sub_813970C
+ def_special SetPacifidlogTMReceivedDay
+ def_special GetDaysUntilPacifidlogTMAvailable
def_special sub_80C08E4
- def_special sub_8139770
- def_special sub_81397C4
+ def_special MonOTNameMatchesPlayer
+ def_special BufferLottoTicketNumber
def_special sub_81653CC
def_special sub_80F9370
def_special sub_80F8FE8
diff --git a/data/text/move_descriptions.inc b/data/text/move_descriptions.inc
deleted file mode 100644
index 0f6b1adbf..000000000
--- a/data/text/move_descriptions.inc
+++ /dev/null
@@ -1,1421 +0,0 @@
-gNullMoveDescription:: @ 86181C0
- .string "$"
-
-gPoundMoveDescription:: @ 86181C1
- .string "Pounds the foe with\nforelegs or tail.$"
-
-gKarateChopMoveDescription:: @ 86181E7
- .string "A chopping attack with a\nhigh critical-hit ratio.$"
-
-gDoubleSlapMoveDescription:: @ 8618219
- .string "Repeatedly slaps the foe\n2 to 5 times.$"
-
-gCometPunchMoveDescription:: @ 8618240
- .string "Repeatedly punches the foe\n2 to 5 times.$"
-
-gMegaPunchMoveDescription:: @ 8618269
- .string "A strong punch thrown with\nincredible power.$"
-
-gPayDayMoveDescription:: @ 8618296
- .string "Throws coins at the foe.\nMoney is recovered after.$"
-
-gFirePunchMoveDescription:: @ 86182C9
- .string "A fiery punch that may burn\nthe foe.$"
-
-gIcePunchMoveDescription:: @ 86182EE
- .string "An icy punch that may\nfreeze the foe.$"
-
-gThunderPunchMoveDescription:: @ 8618314
- .string "An electrified punch that\nmay paralyze the foe.$"
-
-gScratchMoveDescription:: @ 8618344
- .string "Scratches the foe with\nsharp claws.$"
-
-gViceGripMoveDescription:: @ 8618368
- .string "Grips the foe with large and\npowerful pincers.$"
-
-gGuillotineMoveDescription:: @ 8618397
- .string "A powerful pincer attack\nthat may cause fainting.$"
-
-gRazorWindMoveDescription:: @ 86183C9
- .string "A 2-turn move that strikes\nthe foe on the 2nd turn.$"
-
-gSwordsDanceMoveDescription:: @ 86183FD
- .string "A fighting dance that\nsharply raises ATTACK.$"
-
-gCutMoveDescription:: @ 861842A
- .string "Cuts the foe with sharp\nscythes, claws, etc.$"
-
-gGustMoveDescription:: @ 8618457
- .string "Strikes the foe with a gust\nof wind whipped up by wings.$"
-
-gWingAttackMoveDescription:: @ 8618490
- .string "Strikes the foe with wings\nspread wide.$"
-
-gWhirlwindMoveDescription:: @ 86184B8
- .string "Blows away the foe with\nwind and ends the battle.$"
-
-gFlyMoveDescription:: @ 86184EA
- .string "Flies up on the first turn,\nthen strikes the next turn.$"
-
-gBindMoveDescription:: @ 8618522
- .string "Binds and squeezes the foe\nfor 2 to 5 turns.$"
-
-gSlamMoveDescription:: @ 861854F
- .string "Slams the foe with a long\ntail, vine, etc.$"
-
-gVineWhipMoveDescription:: @ 861857A
- .string "Strikes the foe with\nslender, whiplike vines.$"
-
-gStompMoveDescription:: @ 86185A8
- .string "Stomps the enemy with a big\nfoot. May cause flinching.$"
-
-gDoubleKickMoveDescription:: @ 86185DF
- .string "A double-kicking attack\nthat strikes the foe twice.$"
-
-gMegaKickMoveDescription:: @ 8618613
- .string "An extremely powerful kick\nwith intense force.$"
-
-gJumpKickMoveDescription:: @ 8618642
- .string "A strong jumping kick. May\nmiss and hurt the kicker.$"
-
-gRollingKickMoveDescription:: @ 8618677
- .string "A fast kick delivered from\na rapid spin.$"
-
-gSandAttackMoveDescription:: @ 86186A0
- .string "Reduces the foe’s accuracy\nby hurling sand in its face.$"
-
-gHeadbuttMoveDescription:: @ 86186D8
- .string "A ramming attack that may\ncause flinching.$"
-
-gHornAttackMoveDescription:: @ 8618703
- .string "Jabs the foe with sharp\nhorns.$"
-
-gFuryAttackMoveDescription:: @ 8618722
- .string "Jabs the foe 2 to 5 times\nwith sharp horns, etc.$"
-
-gHornDrillMoveDescription:: @ 8618753
- .string "A one-hit KO attack that\nuses a horn like a drill.$"
-
-gTackleMoveDescription:: @ 8618786
- .string "Charges the foe with a full-\nbody tackle.$"
-
-gBodySlamMoveDescription:: @ 86187B0
- .string "A full-body slam that may\ncause paralysis.$"
-
-gWrapMoveDescription:: @ 86187DB
- .string "Wraps and squeezes the foe\n2 to 5 times with vines, etc.$"
-
-gTakeDownMoveDescription:: @ 8618814
- .string "A reckless charge attack\nthat also hurts the user.$"
-
-gThrashMoveDescription:: @ 8618847
- .string "A rampage of 2 to 3 turns\nthat confuses the user.$"
-
-gDoubleEdgeMoveDescription:: @ 8618879
- .string "A life-risking tackle that\nalso hurts the user.$"
-
-gTailWhipMoveDescription:: @ 86188A9
- .string "Wags the tail to lower the\nfoe’s DEFENSE.$"
-
-gPoisonStingMoveDescription:: @ 86188D3
- .string "A toxic attack with barbs,\netc., that may poison.$"
-
-gTwineedleMoveDescription:: @ 8618905
- .string "Stingers on the forelegs\njab the foe twice.$"
-
-gPinMissileMoveDescription:: @ 8618931
- .string "Sharp pins are fired to\nstrike 2 to 5 times.$"
-
-gLeerMoveDescription:: @ 861895E
- .string "Frightens the foe with a\nleer to lower DEFENSE.$"
-
-gBiteMoveDescription:: @ 861898E
- .string "Bites with vicious fangs.\nMay cause flinching.$"
-
-gGrowlMoveDescription:: @ 86189BD
- .string "Growls cutely to reduce the\nfoe’s ATTACK.$"
-
-gRoarMoveDescription:: @ 86189E7
- .string "Makes the foe flee to end\nthe battle.$"
-
-gSingMoveDescription:: @ 8618A0D
- .string "A soothing song lulls the\nfoe into a deep slumber.$"
-
-gSupersonicMoveDescription:: @ 8618A40
- .string "Emits bizarre sound waves\nthat may confuse the foe.$"
-
-gSonicBoomMoveDescription:: @ 8618A74
- .string "Launches shock waves that\nalways inflict 20 HP damage.$"
-
-gDisableMoveDescription:: @ 8618AAB
- .string "Psychically disables one of\nthe foe’s moves.$"
-
-gAcidMoveDescription:: @ 8618AD8
- .string "Sprays a hide-melting acid.\nMay lower DEFENSE.$"
-
-gEmberMoveDescription:: @ 8618B07
- .string "A weak fire attack that may\ninflict a burn.$"
-
-gFlamethrowerMoveDescription:: @ 8618B33
- .string "A powerful fire attack that\nmay inflict a burn.$"
-
-gMistMoveDescription:: @ 8618B63
- .string "Creates a mist that stops\nreduction of abilities.$"
-
-gWaterGunMoveDescription:: @ 8618B95
- .string "Squirts water to attack\nthe foe.$"
-
-gHydroPumpMoveDescription:: @ 8618BB6
- .string "Blasts water at high power\nto strike the foe.$"
-
-gSurfMoveDescription:: @ 8618BE4
- .string "Creates a huge wave, then\ncrashes it down on the foe.$"
-
-gIceBeamMoveDescription:: @ 8618C1A
- .string "Blasts the foe with an icy\nbeam that may freeze it.$"
-
-gBlizzardMoveDescription:: @ 8618C4E
- .string "Hits the foe with an icy\nstorm that may freeze it.$"
-
-gPsybeamMoveDescription:: @ 8618C81
- .string "Fires a peculiar ray that\nmay confuse the foe.$"
-
-gBubbleBeamMoveDescription:: @ 8618CB0
- .string "Forcefully sprays bubbles\nthat may lower SPEED.$"
-
-gAuroraBeamMoveDescription:: @ 8618CE0
- .string "Fires a rainbow-colored\nbeam that may lower ATTACK.$"
-
-gHyperBeamMoveDescription:: @ 8618D14
- .string "Powerful, but leaves the\nuser immobile the next turn.$"
-
-gPeckMoveDescription:: @ 8618D4A
- .string "Attacks the foe with a\njabbing beak, etc.$"
-
-gDrillPeckMoveDescription:: @ 8618D74
- .string "A corkscrewing attack with\nthe beak acting as a drill.$"
-
-gSubmissionMoveDescription:: @ 8618DAB
- .string "A reckless body slam that\nalso hurts the user.$"
-
-gLowKickMoveDescription:: @ 8618DDA
- .string "A kick that inflicts more\ndamage on heavier foes.$"
-
-gCounterMoveDescription:: @ 8618E0C
- .string "Retaliates any physical hit\nwith double the power.$"
-
-gSeismicTossMoveDescription:: @ 8618E3F
- .string "Inflicts damage identical\nto the user’s level.$"
-
-gStrengthMoveDescription:: @ 8618E6E
- .string "Builds enormous power,\nthen slams the foe.$"
-
-gAbsorbMoveDescription:: @ 8618E99
- .string "An attack that absorbs\nhalf the damage inflicted.$"
-
-gMegaDrainMoveDescription:: @ 8618ECB
- .string "An attack that absorbs\nhalf the damage inflicted.$"
-
-gLeechSeedMoveDescription:: @ 8618EFD
- .string "Plants a seed on the foe to\nsteal HP on every turn.$"
-
-gGrowthMoveDescription:: @ 8618F31
- .string "Forces the body to grow\nand heightens SP. ATK.$"
-
-gRazorLeafMoveDescription:: @ 8618F60
- .string "Cuts the enemy with leaves.\nHigh critical-hit ratio.$"
-
-gSolarBeamMoveDescription:: @ 8618F95
- .string "Absorbs light in one turn,\nthen attacks next turn.$"
-
-gPoisonPowderMoveDescription:: @ 8618FC8
- .string "Scatters a toxic powder\nthat may poison the foe.$"
-
-gStunSporeMoveDescription:: @ 8618FF9
- .string "Scatters a powder that may\nparalyze the foe.$"
-
-gSleepPowderMoveDescription:: @ 8619026
- .string "Scatters a powder that may\ncause the foe to sleep.$"
-
-gPetalDanceMoveDescription:: @ 8619059
- .string "A rampage of 2 to 3 turns\nthat confuses the user.$"
-
-gStringShotMoveDescription:: @ 861908B
- .string "Binds the foe with string\nto reduce its SPEED.$"
-
-gDragonRageMoveDescription:: @ 86190BA
- .string "Launches shock waves that\nalways inflict 40 HP damage.$"
-
-gFireSpinMoveDescription:: @ 86190F1
- .string "Traps the foe in a ring of\nfire for 2 to 5 turns.$"
-
-gThunderShockMoveDescription:: @ 8619123
- .string "An electrical attack that\nmay paralyze the foe.$"
-
-gThunderboltMoveDescription:: @ 8619153
- .string "A strong electrical attack\nthat may paralyze the foe.$"
-
-gThunderWaveMoveDescription:: @ 8619189
- .string "A weak jolt of electricity\nthat paralyzes the foe.$"
-
-gThunderMoveDescription:: @ 86191BC
- .string "A lightning attack that may\ncause paralysis.$"
-
-gRockThrowMoveDescription:: @ 86191E9
- .string "Throws small rocks to\nstrike the foe.$"
-
-gEarthquakeMoveDescription:: @ 861920F
- .string "A powerful quake, but has\nno effect on flying foes.$"
-
-gFissureMoveDescription:: @ 8619243
- .string "A one-hit KO move that\ndrops the foe in a fissure.$"
-
-gDigMoveDescription:: @ 8619276
- .string "Digs underground the first\nturn and strikes next turn.$"
-
-gToxicMoveDescription:: @ 86192AD
- .string "Poisons the foe with an\nintensifying toxin.$"
-
-gConfusionMoveDescription:: @ 86192D9
- .string "A psychic attack that may\ncause confusion.$"
-
-gPsychicMoveDescription:: @ 8619304
- .string "A powerful psychic attack\nthat may lower SP. DEF.$"
-
-gHypnosisMoveDescription:: @ 8619336
- .string "A hypnotizing move that\nmay induce sleep.$"
-
-gMeditateMoveDescription:: @ 8619360
- .string "Meditates in a peaceful\nfashion to raise ATTACK.$"
-
-gAgilityMoveDescription:: @ 8619391
- .string "Relaxes the body to sharply\nboost SPEED.$"
-
-gQuickAttackMoveDescription:: @ 86193BA
- .string "An extremely fast attack\nthat always strikes first.$"
-
-gRageMoveDescription:: @ 86193EE
- .string "Raises the user’s ATTACK\nevery time it is hit.$"
-
-gTeleportMoveDescription:: @ 861941D
- .string "A psychic move for fleeing\nfrom battle instantly.$"
-
-gNightShadeMoveDescription:: @ 861944F
- .string "Inflicts damage identical\nto the user’s level.$"
-
-gMimicMoveDescription:: @ 861947E
- .string "Copies a move used by the\nfoe during one battle.$"
-
-gScreechMoveDescription:: @ 86194AF
- .string "Emits a screech to sharply\nreduce the foe’s DEFENSE.$"
-
-gDoubleTeamMoveDescription:: @ 86194E4
- .string "Creates illusory copies to\nraise evasiveness.$"
-
-gRecoverMoveDescription:: @ 8619512
- .string "Recovers up to half the\nuser’s maximum HP.$"
-
-gHardenMoveDescription:: @ 861953D
- .string "Stiffens the body’s \nmuscles to raise DEFENSE.$"
-
-gMinimizeMoveDescription:: @ 861956C
- .string "Minimizes the user’s size\nto raise evasiveness.$"
-
-gSmokescreenMoveDescription:: @ 861959C
- .string "Lowers the foe’s accuracy\nusing smoke, ink, etc.$"
-
-gConfuseRayMoveDescription:: @ 86195CD
- .string "A sinister ray that\nconfuses the foe.$"
-
-gWithdrawMoveDescription:: @ 86195F3
- .string "Withdraws the body into its\nhard shell to raise DEFENSE.$"
-
-gDefenseCurlMoveDescription:: @ 861962C
- .string "Curls up to conceal weak\nspots and raise DEFENSE.$"
-
-gBarrierMoveDescription:: @ 861965E
- .string "Creates a barrier that\nsharply raises DEFENSE.$"
-
-gLightScreenMoveDescription:: @ 861968D
- .string "Creates a wall of light that\nlowers SP. ATK damage.$"
-
-gHazeMoveDescription:: @ 86196C1
- .string "Creates a black haze that\neliminates all stat changes.$"
-
-gReflectMoveDescription:: @ 86196F8
- .string "Creates a wall of light that\nweakens physical attacks.$"
-
-gFocusEnergyMoveDescription:: @ 861972F
- .string "Focuses power to raise the\ncritical-hit ratio.$"
-
-gBideMoveDescription:: @ 861975E
- .string "Endures attack for 2\nturns to retaliate double.$"
-
-gMetronomeMoveDescription:: @ 861978E
- .string "Waggles a finger to use any\nPOKéMON move at random.$"
-
-gMirrorMoveMoveDescription:: @ 86197C2
- .string "Counters the foe’s attack\nwith the same move.$"
-
-gSelfDestructMoveDescription:: @ 86197F0
- .string "Inflicts severe damage but\nmakes the user faint.$"
-
-gEggBombMoveDescription:: @ 8619821
- .string "An egg is forcibly hurled at\nthe foe.$"
-
-gLickMoveDescription:: @ 8619847
- .string "Licks with a long tongue to\ninjure. May also paralyze.$"
-
-gSmogMoveDescription:: @ 861987E
- .string "An exhaust-gas attack\nthat may also poison.$"
-
-gSludgeMoveDescription:: @ 86198AA
- .string "Sludge is hurled to inflict\ndamage. May also poison.$"
-
-gBoneClubMoveDescription:: @ 86198DF
- .string "Clubs the foe with a bone.\nMay cause flinching.$"
-
-gFireBlastMoveDescription:: @ 861990F
- .string "Incinerates everything it\nstrikes. May cause a burn.$"
-
-gWaterfallMoveDescription:: @ 8619944
- .string "Charges the foe with speed\nto climb waterfalls.$"
-
-gClampMoveDescription:: @ 8619974
- .string "Traps and squeezes the\nfoe for 2 to 5 turns.$"
-
-gSwiftMoveDescription:: @ 86199A1
- .string "Sprays star-shaped rays\nthat never miss.$"
-
-gSkullBashMoveDescription:: @ 86199CA
- .string "Tucks in the head, then\nattacks on the next turn.$"
-
-gSpikeCannonMoveDescription:: @ 86199FC
- .string "Launches sharp spikes that\nstrike 2 to 5 times.$"
-
-gConstrictMoveDescription:: @ 8619A2C
- .string "Constricts to inflict pain.\nMay lower SPEED.$"
-
-gAmnesiaMoveDescription:: @ 8619A59
- .string "Forgets about something\nand sharply raises SP. DEF.$"
-
-gKinesisMoveDescription:: @ 8619A8D
- .string "Distracts the foe.\nMay lower accuracy.$"
-
-gSoftBoiledMoveDescription:: @ 8619AB4
- .string "Recovers up to half the\nuser’s maximum HP.$"
-
-gHiJumpKickMoveDescription:: @ 8619ADF
- .string "A jumping knee kick. If it\nmisses, the user is hurt.$"
-
-gGlareMoveDescription:: @ 8619B14
- .string "Intimidates and frightens\nthe foe into paralysis.$"
-
-gDreamEaterMoveDescription:: @ 8619B46
- .string "Takes one half the damage\ninflicted on a sleeping foe.$"
-
-gPoisonGasMoveDescription:: @ 8619B7D
- .string "Envelops the foe in a toxic\ngas that may poison.$"
-
-gBarrageMoveDescription:: @ 8619BAE
- .string "Hurls round objects at the\nfoe 2 to 5 times.$"
-
-gLeechLifeMoveDescription:: @ 8619BDB
- .string "An attack that steals half\nthe damage inflicted.$"
-
-gLovelyKissMoveDescription:: @ 8619C0C
- .string "Demands a kiss with a scary\nface that induces sleep.$"
-
-gSkyAttackMoveDescription:: @ 8619C41
- .string "Searches out weak spots,\nthen strikes the next turn.$"
-
-gTransformMoveDescription:: @ 8619C76
- .string "Alters the user’s cells to\nbecome a copy of the foe.$"
-
-gBubbleMoveDescription:: @ 8619CAB
- .string "An attack using bubbles.\nMay lower the foe’s SPEED.$"
-
-gDizzyPunchMoveDescription:: @ 8619CDF
- .string "A rhythmic punch that may\nconfuse the foe.$"
-
-gSporeMoveDescription:: @ 8619D0A
- .string "Scatters a cloud of spores\nthat always induce sleep.$"
-
-gFlashMoveDescription:: @ 8619D3F
- .string "Looses a powerful blast of\nlight that cuts accuracy.$"
-
-gPsywaveMoveDescription:: @ 8619D74
- .string "Attacks with a psychic\nwave of varying intensity.$"
-
-gSplashMoveDescription:: @ 8619DA6
- .string "It’s just a splash...\nHas no effect whatsoever.$"
-
-gAcidArmorMoveDescription:: @ 8619DD6
- .string "Liquifies the user’s body\nto sharply raise DEFENSE.$"
-
-gCrabhammerMoveDescription:: @ 8619E0A
- .string "Hammers with a pincer. Has a\nhigh critical-hit ratio.$"
-
-gExplosionMoveDescription:: @ 8619E40
- .string "Inflicts severe damage but\nmakes the user faint.$"
-
-gFurySwipesMoveDescription:: @ 8619E71
- .string "Rakes the foe with sharp\nclaws, etc., 2 to 5 times.$"
-
-gBonemerangMoveDescription:: @ 8619EA5
- .string "Throws a bone boomerang\nthat strikes twice.$"
-
-gRestMoveDescription:: @ 8619ED1
- .string "The user sleeps for 2 turns,\nrestoring HP and status.$"
-
-gRockSlideMoveDescription:: @ 8619F07
- .string "Large boulders are hurled.\nMay cause flinching.$"
-
-gHyperFangMoveDescription:: @ 8619F37
- .string "Attacks with sharp fangs.\nMay cause flinching.$"
-
-gSharpenMoveDescription:: @ 8619F66
- .string "Reduces the polygon count\nand raises ATTACK.$"
-
-gConversionMoveDescription:: @ 8619F93
- .string "Changes the user’s type\ninto a known move’s type.$"
-
-gTriAttackMoveDescription:: @ 8619FC5
- .string "Fires three types of beams\nat the same time.$"
-
-gSuperFangMoveDescription:: @ 8619FF2
- .string "Attacks with sharp fangs\nand cuts half the foe’s HP.$"
-
-gSlashMoveDescription:: @ 861A027
- .string "Slashes with claws, etc. Has\na high critical-hit ratio.$"
-
-gSubstituteMoveDescription:: @ 861A05F
- .string "Creates a decoy using 1/4\nof the user’s maximum HP.$"
-
-gStruggleMoveDescription:: @ 861A093
- .string "Used only if all PP are gone.\nAlso hurts the user a little.$"
-
-gSketchMoveDescription:: @ 861A0CF
- .string "Copies the foe’s last move\npermanently.$"
-
-gTripleKickMoveDescription:: @ 861A0F7
- .string "Kicks the foe 3 times in a\nrow with rising intensity.$"
-
-gThiefMoveDescription:: @ 861A12D
- .string "While attacking, it may\nsteal the foe’s held item.$"
-
-gSpiderWebMoveDescription:: @ 861A160
- .string "Ensnares the foe to stop it\nfrom fleeing or switching.$"
-
-gMindReaderMoveDescription:: @ 861A197
- .string "Senses the foe’s action to\nensure the next move’s hit.$"
-
-gNightmareMoveDescription:: @ 861A1CE
- .string "Inflicts 1/4 damage on a\nsleeping foe every turn.$"
-
-gFlameWheelMoveDescription:: @ 861A200
- .string "A fiery charge attack that\nmay inflict a burn.$"
-
-gSnoreMoveDescription:: @ 861A22F
- .string "A loud attack that can be\nused only while asleep.$"
-
-gCurseMoveDescription:: @ 861A261
- .string "A move that functions\ndifferently for GHOSTS.$"
-
-gFlailMoveDescription:: @ 861A28F
- .string "Inflicts more damage when\nthe user’s HP is down.$"
-
-gConversion2MoveDescription:: @ 861A2C0
- .string "Makes the user resistant\nto the last attack’s type.$"
-
-gAeroblastMoveDescription:: @ 861A2F4
- .string "Launches a vacuumed blast.\nHigh critical-hit ratio.$"
-
-gCottonSporeMoveDescription:: @ 861A328
- .string "Spores cling to the foe,\nsharply reducing SPEED.$"
-
-gReversalMoveDescription:: @ 861A359
- .string "Inflicts more damage when\nthe user’s HP is down.$"
-
-gSpiteMoveDescription:: @ 861A38A
- .string "Spitefully cuts the PP\nof the foe’s last move.$"
-
-gPowderSnowMoveDescription:: @ 861A3B9
- .string "Blasts the foe with a snowy\ngust. May cause freezing.$"
-
-gProtectMoveDescription:: @ 861A3EF
- .string "Evades attack, but may fail\nif used in succession.$"
-
-gMachPunchMoveDescription:: @ 861A422
- .string "A punch is thrown at wicked\nspeed to strike first.$"
-
-gScaryFaceMoveDescription:: @ 861A455
- .string "Frightens with a scary face\nto sharply reduce SPEED.$"
-
-gFaintAttackMoveDescription:: @ 861A48A
- .string "Draws the foe close, then\nstrikes without fail.$"
-
-gSweetKissMoveDescription:: @ 861A4BA
- .string "Demands a kiss with a cute\nlook. May cause confusion.$"
-
-gBellyDrumMoveDescription:: @ 861A4F0
- .string "Maximizes ATTACK while\nsacrificing HP.$"
-
-gSludgeBombMoveDescription:: @ 861A517
- .string "Sludge is hurled to inflict\ndamage. May also poison.$"
-
-gMudSlapMoveDescription:: @ 861A54C
- .string "Hurls mud in the foe’s face\nto reduce its accuracy.$"
-
-gOctazookaMoveDescription:: @ 861A580
- .string "Fires a lump of ink to\ndamage and cut accuracy.$"
-
-gSpikesMoveDescription:: @ 861A5B0
- .string "Sets spikes that hurt a \nfoe switching in.$"
-
-gZapCannonMoveDescription:: @ 861A5DB
- .string "Powerful and sure to cause\nparalysis, but inaccurate.$"
-
-gForesightMoveDescription:: @ 861A611
- .string "Negates the foe’s efforts\nto heighten evasiveness.$"
-
-gDestinyBondMoveDescription:: @ 861A644
- .string "If the user faints, the foe\nis also made to faint.$"
-
-gPerishSongMoveDescription:: @ 861A677
- .string "Any POKéMON hearing this\nsong faints in 3 turns.$"
-
-gIcyWindMoveDescription:: @ 861A6A8
- .string "A chilling attack that\nlowers the foe’s SPEED.$"
-
-gDetectMoveDescription:: @ 861A6D7
- .string "Evades attack, but may fail\nif used in succession.$"
-
-gBoneRushMoveDescription:: @ 861A70A
- .string "Strikes the foe with a bone\nin hand 2 to 5 times.$"
-
-gLockOnMoveDescription:: @ 861A73C
- .string "Locks on to the foe to\nensure the next move hits.$"
-
-gOutrageMoveDescription:: @ 861A76E
- .string "A rampage of 2 to 3 turns\nthat confuses the user.$"
-
-gSandstormMoveDescription:: @ 861A7A0
- .string "Causes a sandstorm that\nrages for several turns.$"
-
-gGigaDrainMoveDescription:: @ 861A7D1
- .string "An attack that steals half\nthe damage inflicted.$"
-
-gEndureMoveDescription:: @ 861A802
- .string "Endures any attack for\n1 turn, leaving at least 1HP.$"
-
-gCharmMoveDescription:: @ 861A837
- .string "Charms the foe and sharply\nreduces its ATTACK.$"
-
-gRolloutMoveDescription:: @ 861A866
- .string "An attack lasting 5 turns\nwith rising intensity.$"
-
-gFalseSwipeMoveDescription:: @ 861A897
- .string "An attack that leaves the\nfoe with at least 1 HP.$"
-
-gSwaggerMoveDescription:: @ 861A8C9
- .string "Confuses the foe, but also\nsharply raises ATTACK.$"
-
-gMilkDrinkMoveDescription:: @ 861A8FB
- .string "Recovers up to half the\nuser’s maximum HP.$"
-
-gSparkMoveDescription:: @ 861A926
- .string "An electrified tackle that\nmay paralyze the foe.$"
-
-gFuryCutterMoveDescription:: @ 861A957
- .string "An attack that intensifies\non each successive hit.$"
-
-gSteelWingMoveDescription:: @ 861A98A
- .string "Strikes the foe with hard\nwings spread wide.$"
-
-gMeanLookMoveDescription:: @ 861A9B7
- .string "Fixes the foe with a mean\nlook that prevents escape.$"
-
-gAttractMoveDescription:: @ 861A9EC
- .string "Makes the opposite gender\nless likely to attack.$"
-
-gSleepTalkMoveDescription:: @ 861AA1D
- .string "Uses an available move\nrandomly while asleep.$"
-
-gHealBellMoveDescription:: @ 861AA4B
- .string "Chimes soothingly to heal\nall status abnormalities.$"
-
-gReturnMoveDescription:: @ 861AA7F
- .string "An attack that increases\nin power with friendship.$"
-
-gPresentMoveDescription:: @ 861AAB2
- .string "A gift in the form of a\nbomb. May restore HP.$"
-
-gFrustrationMoveDescription:: @ 861AAE0
- .string "An attack that is stronger\nif the TRAINER is disliked.$"
-
-gSafeguardMoveDescription:: @ 861AB17
- .string "A mystical force prevents\nall status problems.$"
-
-gPainSplitMoveDescription:: @ 861AB46
- .string "Adds the user and foe’s HP,\nthen shares them equally.$"
-
-gSacredFireMoveDescription:: @ 861AB7C
- .string "A mystical fire attack that\nmay inflict a burn.$"
-
-gMagnitudeMoveDescription:: @ 861ABAC
- .string "A ground-shaking attack\nof random intensity.$"
-
-gDynamicPunchMoveDescription:: @ 861ABD9
- .string "Powerful and sure to cause\nconfusion, but inaccurate.$"
-
-gMegahornMoveDescription:: @ 861AC0F
- .string "A brutal ramming attack\nusing out-thrust horns.$"
-
-gDragonBreathMoveDescription:: @ 861AC3F
- .string "Strikes the foe with an\nincredible blast of breath.$"
-
-gBatonPassMoveDescription:: @ 861AC73
- .string "Switches out the user while\nkeeping effects in play.$"
-
-gEncoreMoveDescription:: @ 861ACA8
- .string "Makes the foe repeat its\nlast move over 2 to 6 turns.$"
-
-gPursuitMoveDescription:: @ 861ACDE
- .string "Inflicts bad damage if used\non a foe switching out.$"
-
-gRapidSpinMoveDescription:: @ 861AD12
- .string "Spins the body at high\nspeed to strike the foe.$"
-
-gSweetScentMoveDescription:: @ 861AD42
- .string "Allures the foe to reduce\nevasiveness.$"
-
-gIronTailMoveDescription:: @ 861AD69
- .string "Attacks with a rock-hard\ntail. May lower DEFENSE.$"
-
-gMetalClawMoveDescription:: @ 861AD9B
- .string "A claw attack that may\nraise the user’s ATTACK.$"
-
-gVitalThrowMoveDescription:: @ 861ADCB
- .string "Makes the user’s move last,\nbut it never misses.$"
-
-gMorningSunMoveDescription:: @ 861ADFC
- .string "Restores HP. The amount\nvaries with the weather.$"
-
-gSynthesisMoveDescription:: @ 861AE2D
- .string "Restores HP. The amount\nvaries with the weather.$"
-
-gMoonlightMoveDescription:: @ 861AE5E
- .string "Restores HP. The amount\nvaries with the weather.$"
-
-gHiddenPowerMoveDescription:: @ 861AE8F
- .string "The effectiveness varies\nwith the user.$"
-
-gCrossChopMoveDescription:: @ 861AEB7
- .string "A double-chopping attack.\nHigh critical-hit ratio.$"
-
-gTwisterMoveDescription:: @ 861AEEA
- .string "Whips up a vicious twister\nto tear at the foe.$"
-
-gRainDanceMoveDescription:: @ 861AF19
- .string "Boosts the power of WATER-\ntype moves for 5 turns.$"
-
-gSunnyDayMoveDescription:: @ 861AF4C
- .string "Boosts the power of FIRE-\ntype moves for 5 turns.$"
-
-gCrunchMoveDescription:: @ 861AF7E
- .string "Crunches with sharp fangs.\nMay lower SP. DEF.$"
-
-gMirrorCoatMoveDescription:: @ 861AFAC
- .string "Counters the foe’s special\nattack at double the power.$"
-
-gPsychUpMoveDescription:: @ 861AFE3
- .string "Copies the foe’s effect(s)\nand gives to the user.$"
-
-gExtremeSpeedMoveDescription:: @ 861B015
- .string "An extremely fast and\npowerful attack.$"
-
-gAncientPowerMoveDescription:: @ 861B03C
- .string "An attack that may raise\nall stats.$"
-
-gShadowBallMoveDescription:: @ 861B060
- .string "Hurls a black blob that may\nlower the foe’s SP. DEF.$"
-
-gFutureSightMoveDescription:: @ 861B095
- .string "Heightens inner power to\nstrike 2 turns later.$"
-
-gRockSmashMoveDescription:: @ 861B0C4
- .string "A rock-crushing attack\nthat may lower DEFENSE.$"
-
-gWhirlpoolMoveDescription:: @ 861B0F3
- .string "Traps and hurts the foe in\na whirlpool for 2 to 5 turns.$"
-
-gBeatUpMoveDescription:: @ 861B12C
- .string "Summons party POKéMON to\njoin in the attack.$"
-
-gFakeOutMoveDescription:: @ 861B159
- .string "A 1st-turn, 1st-strike move\nthat causes flinching.$"
-
-gUproarMoveDescription:: @ 861B18C
- .string "Causes an uproar for 2 to 5\nturns and prevents sleep.$"
-
-gStockpileMoveDescription:: @ 861B1C2
- .string "Charges up power for up to\n3 turns.$"
-
-gSpitUpMoveDescription:: @ 861B1E6
- .string "Releases stockpiled power\n(the more the better).$"
-
-gSwallowMoveDescription:: @ 861B217
- .string "Absorbs stockpiled power\nand restores HP.$"
-
-gHeatWaveMoveDescription:: @ 861B241
- .string "Exhales a hot breath on the\nfoe. May inflict a burn.$"
-
-gHailMoveDescription:: @ 861B276
- .string "Summons a hailstorm that\nstrikes every turn.$"
-
-gTormentMoveDescription:: @ 861B2A3
- .string "Torments the foe and stops\nsuccessive use of a move.$"
-
-gFlatterMoveDescription:: @ 861B2D8
- .string "Confuses the foe, but\nraises its SP. ATK.$"
-
-gWillOWispMoveDescription:: @ 861B302
- .string "Inflicts a burn on the foe\nwith intense fire.$"
-
-gMementoMoveDescription:: @ 861B330
- .string "The user faints and lowers\nthe foe’s abilities.$"
-
-gFacadeMoveDescription:: @ 861B360
- .string "Boosts ATTACK when burned,\nparalyzed, or poisoned.$"
-
-gFocusPunchMoveDescription:: @ 861B393
- .string "A powerful loyalty attack.\nThe user flinches if hit.$"
-
-gSmellingSaltMoveDescription:: @ 861B3C8
- .string "Powerful against paralyzed\nfoes, but also heals them.$"
-
-gFollowMeMoveDescription:: @ 861B3FE
- .string "Draws attention to make\nfoes attack only the user.$"
-
-gNaturePowerMoveDescription:: @ 861B431
- .string "The type of attack varies\ndepending on the location.$"
-
-gChargeMoveDescription:: @ 861B466
- .string "Charges power to boost the\nelectric move used next.$"
-
-gTauntMoveDescription:: @ 861B49A
- .string "Taunts the foe into only\nusing attack moves.$"
-
-gHelpingHandMoveDescription:: @ 861B4C7
- .string "Boosts the power of the\nrecipient’s moves.$"
-
-gTrickMoveDescription:: @ 861B4F2
- .string "Tricks the foe into trading\nheld items.$"
-
-gRolePlayMoveDescription:: @ 861B51A
- .string "Mimics the target and\ncopies its special ability.$"
-
-gWishMoveDescription:: @ 861B54C
- .string "A wish that restores HP.\nIt takes time to work.$"
-
-gAssistMoveDescription:: @ 861B57C
- .string "Attacks randomly with one\nof the partner’s moves.$"
-
-gIngrainMoveDescription:: @ 861B5AE
- .string "Lays roots that restore HP.\nThe user can’t switch out.$"
-
-gSuperpowerMoveDescription:: @ 861B5E5
- .string "Boosts strength sharply,\nbut lowers abilities.$"
-
-gMagicCoatMoveDescription:: @ 861B614
- .string "Reflects special effects\nback to the attacker.$"
-
-gRecycleMoveDescription:: @ 861B643
- .string "Recycles a used item for\none more use.$"
-
-gRevengeMoveDescription:: @ 861B66A
- .string "An attack that gains power\nif injured by the foe.$"
-
-gBrickBreakMoveDescription:: @ 861B69C
- .string "Destroys barriers such as\nREFLECT and causes damage.$"
-
-gYawnMoveDescription:: @ 861B6D1
- .string "Lulls the foe into yawning,\nthen sleeping next turn.$"
-
-gKnockOffMoveDescription:: @ 861B706
- .string "Knocks down the foe’s held\nitem to prevent its use.$"
-
-gEndeavorMoveDescription:: @ 861B73A
- .string "Gains power if the user’s HP\nis lower than the foe’s HP.$"
-
-gEruptionMoveDescription:: @ 861B773
- .string "The higher the user’s HP,\nthe more damage caused.$"
-
-gSkillSwapMoveDescription:: @ 861B7A5
- .string "The user swaps special\nabilities with the target.$"
-
-gImprisonMoveDescription:: @ 861B7D7
- .string "Prevents foes from using\nmoves known by the user.$"
-
-gRefreshMoveDescription:: @ 861B809
- .string "Heals poisoning, paralysis,\nor a burn.$"
-
-gGrudgeMoveDescription:: @ 861B830
- .string "If the user faints, deletes\nall PP of foe’s last move.$"
-
-gSnatchMoveDescription:: @ 861B867
- .string "Steals the effects of the\nmove the target uses next.$"
-
-gSecretPowerMoveDescription:: @ 861B89C
- .string "An attack with effects\nthat vary by location.$"
-
-gDiveMoveDescription:: @ 861B8CA
- .string "Dives underwater the first\nturn and strikes next turn.$"
-
-gArmThrustMoveDescription:: @ 861B901
- .string "Straight-arm punches that\nstrike the foe 2 to 5 times.$"
-
-gCamouflageMoveDescription:: @ 861B938
- .string "Alters the POKéMON’s type\ndepending on the location.$"
-
-gTailGlowMoveDescription:: @ 861B96D
- .string "Flashes a light that sharply\nraises SP. ATK.$"
-
-gLusterPurgeMoveDescription:: @ 861B99A
- .string "Attacks with a burst of\nlight. May lower SP. DEF.$"
-
-gMistBallMoveDescription:: @ 861B9CC
- .string "Attacks with a flurry of\ndown. May lower SP. ATK.$"
-
-gFeatherDanceMoveDescription:: @ 861B9FE
- .string "Envelops the foe with down\nto sharply reduce ATTACK.$"
-
-gTeeterDanceMoveDescription:: @ 861BA33
- .string "Confuses all POKéMON on\nthe scene.$"
-
-gBlazeKickMoveDescription:: @ 861BA56
- .string "A kick with a high critical-\nhit ratio. May cause a burn.$"
-
-gMudSportMoveDescription:: @ 861BA90
- .string "Covers the user in mud to\nraise electrical resistance.$"
-
-gIceBallMoveDescription:: @ 861BAC7
- .string "A 5-turn attack that gains\npower on successive hits.$"
-
-gNeedleArmMoveDescription:: @ 861BAFC
- .string "Attacks with thorny arms.\nMay cause flinching.$"
-
-gSlackOffMoveDescription:: @ 861BB2B
- .string "Slacks off and restores\nhalf the maximum HP.$"
-
-gHyperVoiceMoveDescription:: @ 861BB58
- .string "A loud attack that uses\nsound waves to injure.$"
-
-gPoisonFangMoveDescription:: @ 861BB87
- .string "A sharp-fanged attack.\nMay badly poison the foe.$"
-
-gCrushClawMoveDescription:: @ 861BBB8
- .string "Tears at the foe with sharp\nclaws. May lower DEFENSE.$"
-
-gBlastBurnMoveDescription:: @ 861BBEE
- .string "Powerful, but leaves the\nuser immobile the next turn.$"
-
-gHydroCannonMoveDescription:: @ 861BC24
- .string "Powerful, but leaves the\nuser immobile the next turn.$"
-
-gMeteorMashMoveDescription:: @ 861BC5A
- .string "Fires a meteor-like punch.\nMay raise ATTACK.$"
-
-gAstonishMoveDescription:: @ 861BC87
- .string "An attack that may shock\nthe foe into flinching.$"
-
-gWeatherBallMoveDescription:: @ 861BCB8
- .string "The move’s type and power\nchange with the weather.$"
-
-gAromatherapyMoveDescription:: @ 861BCEB
- .string "Heals all status problems\nwith a soothing scent.$"
-
-gFakeTearsMoveDescription:: @ 861BD1C
- .string "Feigns crying to sharply\nlower the foe’s SP. DEF.$"
-
-gAirCutterMoveDescription:: @ 861BD4E
- .string "Hacks with razorlike wind.\nHigh critical-hit ratio.$"
-
-gOverheatMoveDescription:: @ 861BD82
- .string "Allows a full-power attack,\nbut sharply lowers SP. ATK.$"
-
-gOdorSleuthMoveDescription:: @ 861BDBA
- .string "Negates the foe’s efforts\nto heighten evasiveness.$"
-
-gRockTombMoveDescription:: @ 861BDED
- .string "Stops the foe from moving\nwith rocks and cuts SPEED.$"
-
-gSilverWindMoveDescription:: @ 861BE22
- .string "A powdery attack that may\nraise abilities.$"
-
-gMetalSoundMoveDescription:: @ 861BE4D
- .string "Emits a horrible screech\nthat sharply lowers SP. DEF.$"
-
-gGrassWhistleMoveDescription:: @ 861BE83
- .string "Lulls the foe into sleep\nwith a pleasant melody.$"
-
-gTickleMoveDescription:: @ 861BEB4
- .string "Makes the foe laugh to\nlower ATTACK and DEFENSE.$"
-
-gCosmicPowerMoveDescription:: @ 861BEE5
- .string "Raises DEFENSE and SP. DEF\nwith a mystic power.$"
-
-gWaterSpoutMoveDescription:: @ 861BF15
- .string "Inflicts more damage if the\nuser’s HP is high.$"
-
-gSignalBeamMoveDescription:: @ 861BF44
- .string "A strange beam attack that\nmay confuse the foe.$"
-
-gShadowPunchMoveDescription:: @ 861BF74
- .string "An unavoidable punch that\nis thrown from shadows.$"
-
-gExtrasensoryMoveDescription:: @ 861BFA6
- .string "Attacks with a peculiar\npower. May cause flinching.$"
-
-gSkyUppercutMoveDescription:: @ 861BFDA
- .string "An uppercut thrown as if\nleaping into the sky.$"
-
-gSandTombMoveDescription:: @ 861C009
- .string "Traps and hurts the foe in\nquicksand for 2 to 5 turns.$"
-
-gSheerColdMoveDescription:: @ 861C040
- .string "A chilling attack that\ncauses fainting if it hits.$"
-
-gMuddyWaterMoveDescription:: @ 861C073
- .string "Attacks with muddy water.\nMay lower accuracy.$"
-
-gBulletSeedMoveDescription:: @ 861C0A1
- .string "Shoots 2 to 5 seeds in a row\nto strike the foe.$"
-
-gAerialAceMoveDescription:: @ 861C0D1
- .string "An extremely speedy and\nunavoidable attack.$"
-
-gIcicleSpearMoveDescription:: @ 861C0FD
- .string "Attacks the foe by firing\n2 to 5 icicles in a row.$"
-
-gIronDefenseMoveDescription:: @ 861C130
- .string "Hardens the body’s surface\nto sharply raise DEFENSE.$"
-
-gBlockMoveDescription:: @ 861C165
- .string "Blocks the foe’s way to\nprevent escape.$"
-
-gHowlMoveDescription:: @ 861C18D
- .string "Howls to raise the spirit\nand boosts ATTACK.$"
-
-gDragonClawMoveDescription:: @ 861C1BA
- .string "Slashes the foe with sharp\nclaws.$"
-
-gFrenzyPlantMoveDescription:: @ 861C1DC
- .string "Powerful, but leaves the\nuser immobile the next turn.$"
-
-gBulkUpMoveDescription:: @ 861C212
- .string "Bulks up the body to boost\nboth ATTACK and DEFENSE.$"
-
-gBounceMoveDescription:: @ 861C246
- .string "Bounces up, then down the\nnext turn. May paralyze.$"
-
-gMudShotMoveDescription:: @ 861C279
- .string "Hurls mud at the foe and\nreduces SPEED.$"
-
-gPoisonTailMoveDescription:: @ 861C2A1
- .string "Has a high critical-hit\nratio. May also poison.$"
-
-gCovetMoveDescription:: @ 861C2D1
- .string "Cutely begs to obtain an\nitem held by the foe.$"
-
-gVoltTackleMoveDescription:: @ 861C300
- .string "A life-risking tackle that\nslightly hurts the user.$"
-
-gMagicalLeafMoveDescription:: @ 861C334
- .string "Attacks with a strange leaf\nthat cannot be evaded.$"
-
-gWaterSportMoveDescription:: @ 861C367
- .string "The user becomes soaked to\nraise resistance to fire.$"
-
-gCalmMindMoveDescription:: @ 861C39C
- .string "Raises SP. ATK and SP. DEF\nby focusing the mind.$"
-
-gLeafBladeMoveDescription:: @ 861C3CD
- .string "Slashes with a sharp leaf.\nHigh critical-hit ratio.$"
-
-gDragonDanceMoveDescription:: @ 861C401
- .string "A mystical dance that ups\nATTACK and SPEED.$"
-
-gRockBlastMoveDescription:: @ 861C42D
- .string "Hurls boulders at the foe\n2 to 5 times in a row.$"
-
-gShockWaveMoveDescription:: @ 861C45E
- .string "A fast and unavoidable\nelectric attack.$"
-
-gWaterPulseMoveDescription:: @ 861C486
- .string "Attacks with ultrasonic\nwaves. May confuse the foe.$"
-
-gDoomDesireMoveDescription:: @ 861C4BA
- .string "Summons strong sunlight to\nattack 2 turns later.$"
-
-gPsychoBoostMoveDescription:: @ 861C4EB
- .string "Allows a full-power attack,\nbut sharply lowers SP. ATK.$"
-
- .align 2
-gMoveDescriptionPointers:: @ 861C524
- .4byte gPoundMoveDescription
- .4byte gKarateChopMoveDescription
- .4byte gDoubleSlapMoveDescription
- .4byte gCometPunchMoveDescription
- .4byte gMegaPunchMoveDescription
- .4byte gPayDayMoveDescription
- .4byte gFirePunchMoveDescription
- .4byte gIcePunchMoveDescription
- .4byte gThunderPunchMoveDescription
- .4byte gScratchMoveDescription
- .4byte gViceGripMoveDescription
- .4byte gGuillotineMoveDescription
- .4byte gRazorWindMoveDescription
- .4byte gSwordsDanceMoveDescription
- .4byte gCutMoveDescription
- .4byte gGustMoveDescription
- .4byte gWingAttackMoveDescription
- .4byte gWhirlwindMoveDescription
- .4byte gFlyMoveDescription
- .4byte gBindMoveDescription
- .4byte gSlamMoveDescription
- .4byte gVineWhipMoveDescription
- .4byte gStompMoveDescription
- .4byte gDoubleKickMoveDescription
- .4byte gMegaKickMoveDescription
- .4byte gJumpKickMoveDescription
- .4byte gRollingKickMoveDescription
- .4byte gSandAttackMoveDescription
- .4byte gHeadbuttMoveDescription
- .4byte gHornAttackMoveDescription
- .4byte gFuryAttackMoveDescription
- .4byte gHornDrillMoveDescription
- .4byte gTackleMoveDescription
- .4byte gBodySlamMoveDescription
- .4byte gWrapMoveDescription
- .4byte gTakeDownMoveDescription
- .4byte gThrashMoveDescription
- .4byte gDoubleEdgeMoveDescription
- .4byte gTailWhipMoveDescription
- .4byte gPoisonStingMoveDescription
- .4byte gTwineedleMoveDescription
- .4byte gPinMissileMoveDescription
- .4byte gLeerMoveDescription
- .4byte gBiteMoveDescription
- .4byte gGrowlMoveDescription
- .4byte gRoarMoveDescription
- .4byte gSingMoveDescription
- .4byte gSupersonicMoveDescription
- .4byte gSonicBoomMoveDescription
- .4byte gDisableMoveDescription
- .4byte gAcidMoveDescription
- .4byte gEmberMoveDescription
- .4byte gFlamethrowerMoveDescription
- .4byte gMistMoveDescription
- .4byte gWaterGunMoveDescription
- .4byte gHydroPumpMoveDescription
- .4byte gSurfMoveDescription
- .4byte gIceBeamMoveDescription
- .4byte gBlizzardMoveDescription
- .4byte gPsybeamMoveDescription
- .4byte gBubbleBeamMoveDescription
- .4byte gAuroraBeamMoveDescription
- .4byte gHyperBeamMoveDescription
- .4byte gPeckMoveDescription
- .4byte gDrillPeckMoveDescription
- .4byte gSubmissionMoveDescription
- .4byte gLowKickMoveDescription
- .4byte gCounterMoveDescription
- .4byte gSeismicTossMoveDescription
- .4byte gStrengthMoveDescription
- .4byte gAbsorbMoveDescription
- .4byte gMegaDrainMoveDescription
- .4byte gLeechSeedMoveDescription
- .4byte gGrowthMoveDescription
- .4byte gRazorLeafMoveDescription
- .4byte gSolarBeamMoveDescription
- .4byte gPoisonPowderMoveDescription
- .4byte gStunSporeMoveDescription
- .4byte gSleepPowderMoveDescription
- .4byte gPetalDanceMoveDescription
- .4byte gStringShotMoveDescription
- .4byte gDragonRageMoveDescription
- .4byte gFireSpinMoveDescription
- .4byte gThunderShockMoveDescription
- .4byte gThunderboltMoveDescription
- .4byte gThunderWaveMoveDescription
- .4byte gThunderMoveDescription
- .4byte gRockThrowMoveDescription
- .4byte gEarthquakeMoveDescription
- .4byte gFissureMoveDescription
- .4byte gDigMoveDescription
- .4byte gToxicMoveDescription
- .4byte gConfusionMoveDescription
- .4byte gPsychicMoveDescription
- .4byte gHypnosisMoveDescription
- .4byte gMeditateMoveDescription
- .4byte gAgilityMoveDescription
- .4byte gQuickAttackMoveDescription
- .4byte gRageMoveDescription
- .4byte gTeleportMoveDescription
- .4byte gNightShadeMoveDescription
- .4byte gMimicMoveDescription
- .4byte gScreechMoveDescription
- .4byte gDoubleTeamMoveDescription
- .4byte gRecoverMoveDescription
- .4byte gHardenMoveDescription
- .4byte gMinimizeMoveDescription
- .4byte gSmokescreenMoveDescription
- .4byte gConfuseRayMoveDescription
- .4byte gWithdrawMoveDescription
- .4byte gDefenseCurlMoveDescription
- .4byte gBarrierMoveDescription
- .4byte gLightScreenMoveDescription
- .4byte gHazeMoveDescription
- .4byte gReflectMoveDescription
- .4byte gFocusEnergyMoveDescription
- .4byte gBideMoveDescription
- .4byte gMetronomeMoveDescription
- .4byte gMirrorMoveMoveDescription
- .4byte gSelfDestructMoveDescription
- .4byte gEggBombMoveDescription
- .4byte gLickMoveDescription
- .4byte gSmogMoveDescription
- .4byte gSludgeMoveDescription
- .4byte gBoneClubMoveDescription
- .4byte gFireBlastMoveDescription
- .4byte gWaterfallMoveDescription
- .4byte gClampMoveDescription
- .4byte gSwiftMoveDescription
- .4byte gSkullBashMoveDescription
- .4byte gSpikeCannonMoveDescription
- .4byte gConstrictMoveDescription
- .4byte gAmnesiaMoveDescription
- .4byte gKinesisMoveDescription
- .4byte gSoftBoiledMoveDescription
- .4byte gHiJumpKickMoveDescription
- .4byte gGlareMoveDescription
- .4byte gDreamEaterMoveDescription
- .4byte gPoisonGasMoveDescription
- .4byte gBarrageMoveDescription
- .4byte gLeechLifeMoveDescription
- .4byte gLovelyKissMoveDescription
- .4byte gSkyAttackMoveDescription
- .4byte gTransformMoveDescription
- .4byte gBubbleMoveDescription
- .4byte gDizzyPunchMoveDescription
- .4byte gSporeMoveDescription
- .4byte gFlashMoveDescription
- .4byte gPsywaveMoveDescription
- .4byte gSplashMoveDescription
- .4byte gAcidArmorMoveDescription
- .4byte gCrabhammerMoveDescription
- .4byte gExplosionMoveDescription
- .4byte gFurySwipesMoveDescription
- .4byte gBonemerangMoveDescription
- .4byte gRestMoveDescription
- .4byte gRockSlideMoveDescription
- .4byte gHyperFangMoveDescription
- .4byte gSharpenMoveDescription
- .4byte gConversionMoveDescription
- .4byte gTriAttackMoveDescription
- .4byte gSuperFangMoveDescription
- .4byte gSlashMoveDescription
- .4byte gSubstituteMoveDescription
- .4byte gStruggleMoveDescription
- .4byte gSketchMoveDescription
- .4byte gTripleKickMoveDescription
- .4byte gThiefMoveDescription
- .4byte gSpiderWebMoveDescription
- .4byte gMindReaderMoveDescription
- .4byte gNightmareMoveDescription
- .4byte gFlameWheelMoveDescription
- .4byte gSnoreMoveDescription
- .4byte gCurseMoveDescription
- .4byte gFlailMoveDescription
- .4byte gConversion2MoveDescription
- .4byte gAeroblastMoveDescription
- .4byte gCottonSporeMoveDescription
- .4byte gReversalMoveDescription
- .4byte gSpiteMoveDescription
- .4byte gPowderSnowMoveDescription
- .4byte gProtectMoveDescription
- .4byte gMachPunchMoveDescription
- .4byte gScaryFaceMoveDescription
- .4byte gFaintAttackMoveDescription
- .4byte gSweetKissMoveDescription
- .4byte gBellyDrumMoveDescription
- .4byte gSludgeBombMoveDescription
- .4byte gMudSlapMoveDescription
- .4byte gOctazookaMoveDescription
- .4byte gSpikesMoveDescription
- .4byte gZapCannonMoveDescription
- .4byte gForesightMoveDescription
- .4byte gDestinyBondMoveDescription
- .4byte gPerishSongMoveDescription
- .4byte gIcyWindMoveDescription
- .4byte gDetectMoveDescription
- .4byte gBoneRushMoveDescription
- .4byte gLockOnMoveDescription
- .4byte gOutrageMoveDescription
- .4byte gSandstormMoveDescription
- .4byte gGigaDrainMoveDescription
- .4byte gEndureMoveDescription
- .4byte gCharmMoveDescription
- .4byte gRolloutMoveDescription
- .4byte gFalseSwipeMoveDescription
- .4byte gSwaggerMoveDescription
- .4byte gMilkDrinkMoveDescription
- .4byte gSparkMoveDescription
- .4byte gFuryCutterMoveDescription
- .4byte gSteelWingMoveDescription
- .4byte gMeanLookMoveDescription
- .4byte gAttractMoveDescription
- .4byte gSleepTalkMoveDescription
- .4byte gHealBellMoveDescription
- .4byte gReturnMoveDescription
- .4byte gPresentMoveDescription
- .4byte gFrustrationMoveDescription
- .4byte gSafeguardMoveDescription
- .4byte gPainSplitMoveDescription
- .4byte gSacredFireMoveDescription
- .4byte gMagnitudeMoveDescription
- .4byte gDynamicPunchMoveDescription
- .4byte gMegahornMoveDescription
- .4byte gDragonBreathMoveDescription
- .4byte gBatonPassMoveDescription
- .4byte gEncoreMoveDescription
- .4byte gPursuitMoveDescription
- .4byte gRapidSpinMoveDescription
- .4byte gSweetScentMoveDescription
- .4byte gIronTailMoveDescription
- .4byte gMetalClawMoveDescription
- .4byte gVitalThrowMoveDescription
- .4byte gMorningSunMoveDescription
- .4byte gSynthesisMoveDescription
- .4byte gMoonlightMoveDescription
- .4byte gHiddenPowerMoveDescription
- .4byte gCrossChopMoveDescription
- .4byte gTwisterMoveDescription
- .4byte gRainDanceMoveDescription
- .4byte gSunnyDayMoveDescription
- .4byte gCrunchMoveDescription
- .4byte gMirrorCoatMoveDescription
- .4byte gPsychUpMoveDescription
- .4byte gExtremeSpeedMoveDescription
- .4byte gAncientPowerMoveDescription
- .4byte gShadowBallMoveDescription
- .4byte gFutureSightMoveDescription
- .4byte gRockSmashMoveDescription
- .4byte gWhirlpoolMoveDescription
- .4byte gBeatUpMoveDescription
- .4byte gFakeOutMoveDescription
- .4byte gUproarMoveDescription
- .4byte gStockpileMoveDescription
- .4byte gSpitUpMoveDescription
- .4byte gSwallowMoveDescription
- .4byte gHeatWaveMoveDescription
- .4byte gHailMoveDescription
- .4byte gTormentMoveDescription
- .4byte gFlatterMoveDescription
- .4byte gWillOWispMoveDescription
- .4byte gMementoMoveDescription
- .4byte gFacadeMoveDescription
- .4byte gFocusPunchMoveDescription
- .4byte gSmellingSaltMoveDescription
- .4byte gFollowMeMoveDescription
- .4byte gNaturePowerMoveDescription
- .4byte gChargeMoveDescription
- .4byte gTauntMoveDescription
- .4byte gHelpingHandMoveDescription
- .4byte gTrickMoveDescription
- .4byte gRolePlayMoveDescription
- .4byte gWishMoveDescription
- .4byte gAssistMoveDescription
- .4byte gIngrainMoveDescription
- .4byte gSuperpowerMoveDescription
- .4byte gMagicCoatMoveDescription
- .4byte gRecycleMoveDescription
- .4byte gRevengeMoveDescription
- .4byte gBrickBreakMoveDescription
- .4byte gYawnMoveDescription
- .4byte gKnockOffMoveDescription
- .4byte gEndeavorMoveDescription
- .4byte gEruptionMoveDescription
- .4byte gSkillSwapMoveDescription
- .4byte gImprisonMoveDescription
- .4byte gRefreshMoveDescription
- .4byte gGrudgeMoveDescription
- .4byte gSnatchMoveDescription
- .4byte gSecretPowerMoveDescription
- .4byte gDiveMoveDescription
- .4byte gArmThrustMoveDescription
- .4byte gCamouflageMoveDescription
- .4byte gTailGlowMoveDescription
- .4byte gLusterPurgeMoveDescription
- .4byte gMistBallMoveDescription
- .4byte gFeatherDanceMoveDescription
- .4byte gTeeterDanceMoveDescription
- .4byte gBlazeKickMoveDescription
- .4byte gMudSportMoveDescription
- .4byte gIceBallMoveDescription
- .4byte gNeedleArmMoveDescription
- .4byte gSlackOffMoveDescription
- .4byte gHyperVoiceMoveDescription
- .4byte gPoisonFangMoveDescription
- .4byte gCrushClawMoveDescription
- .4byte gBlastBurnMoveDescription
- .4byte gHydroCannonMoveDescription
- .4byte gMeteorMashMoveDescription
- .4byte gAstonishMoveDescription
- .4byte gWeatherBallMoveDescription
- .4byte gAromatherapyMoveDescription
- .4byte gFakeTearsMoveDescription
- .4byte gAirCutterMoveDescription
- .4byte gOverheatMoveDescription
- .4byte gOdorSleuthMoveDescription
- .4byte gRockTombMoveDescription
- .4byte gSilverWindMoveDescription
- .4byte gMetalSoundMoveDescription
- .4byte gGrassWhistleMoveDescription
- .4byte gTickleMoveDescription
- .4byte gCosmicPowerMoveDescription
- .4byte gWaterSpoutMoveDescription
- .4byte gSignalBeamMoveDescription
- .4byte gShadowPunchMoveDescription
- .4byte gExtrasensoryMoveDescription
- .4byte gSkyUppercutMoveDescription
- .4byte gSandTombMoveDescription
- .4byte gSheerColdMoveDescription
- .4byte gMuddyWaterMoveDescription
- .4byte gBulletSeedMoveDescription
- .4byte gAerialAceMoveDescription
- .4byte gIcicleSpearMoveDescription
- .4byte gIronDefenseMoveDescription
- .4byte gBlockMoveDescription
- .4byte gHowlMoveDescription
- .4byte gDragonClawMoveDescription
- .4byte gFrenzyPlantMoveDescription
- .4byte gBulkUpMoveDescription
- .4byte gBounceMoveDescription
- .4byte gMudShotMoveDescription
- .4byte gPoisonTailMoveDescription
- .4byte gCovetMoveDescription
- .4byte gVoltTackleMoveDescription
- .4byte gMagicalLeafMoveDescription
- .4byte gWaterSportMoveDescription
- .4byte gCalmMindMoveDescription
- .4byte gLeafBladeMoveDescription
- .4byte gDragonDanceMoveDescription
- .4byte gRockBlastMoveDescription
- .4byte gShockWaveMoveDescription
- .4byte gWaterPulseMoveDescription
- .4byte gDoomDesireMoveDescription
- .4byte gPsychoBoostMoveDescription
diff --git a/graphics/misc/deoxys1.pal b/graphics/misc/deoxys1.pal
new file mode 100644
index 000000000..d90c4cb38
--- /dev/null
+++ b/graphics/misc/deoxys1.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+180 180 180
+148 148 148
+90 90 98
+57 57 74
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+222 222 222
+0 0 0
diff --git a/graphics/misc/deoxys10.pal b/graphics/misc/deoxys10.pal
new file mode 100644
index 000000000..8bdd860fb
--- /dev/null
+++ b/graphics/misc/deoxys10.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+246 197 156
+238 82 82
+189 32 32
+123 8 8
+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
diff --git a/graphics/misc/deoxys11.pal b/graphics/misc/deoxys11.pal
new file mode 100644
index 000000000..9a9ee2530
--- /dev/null
+++ b/graphics/misc/deoxys11.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+255 205 156
+255 82 82
+205 32 32
+131 8 8
+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
diff --git a/graphics/misc/deoxys2.pal b/graphics/misc/deoxys2.pal
new file mode 100644
index 000000000..38806db0f
--- /dev/null
+++ b/graphics/misc/deoxys2.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+180 180 172
+156 139 139
+98 82 90
+57 49 65
+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
diff --git a/graphics/misc/deoxys3.pal b/graphics/misc/deoxys3.pal
new file mode 100644
index 000000000..24db0e343
--- /dev/null
+++ b/graphics/misc/deoxys3.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+189 180 172
+164 131 131
+106 74 82
+65 41 57
+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
diff --git a/graphics/misc/deoxys4.pal b/graphics/misc/deoxys4.pal
new file mode 100644
index 000000000..5db08f366
--- /dev/null
+++ b/graphics/misc/deoxys4.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+197 180 172
+172 123 123
+123 65 74
+74 41 49
+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
diff --git a/graphics/misc/deoxys5.pal b/graphics/misc/deoxys5.pal
new file mode 100644
index 000000000..25a62aae6
--- /dev/null
+++ b/graphics/misc/deoxys5.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+205 189 164
+189 115 115
+131 65 65
+82 32 41
+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
diff --git a/graphics/misc/deoxys6.pal b/graphics/misc/deoxys6.pal
new file mode 100644
index 000000000..0f636873e
--- /dev/null
+++ b/graphics/misc/deoxys6.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+213 189 164
+197 115 115
+148 57 65
+90 32 41
+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
diff --git a/graphics/misc/deoxys7.pal b/graphics/misc/deoxys7.pal
new file mode 100644
index 000000000..2dba57eef
--- /dev/null
+++ b/graphics/misc/deoxys7.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+222 189 164
+205 106 106
+156 49 57
+98 24 32
+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
diff --git a/graphics/misc/deoxys8.pal b/graphics/misc/deoxys8.pal
new file mode 100644
index 000000000..d46c26996
--- /dev/null
+++ b/graphics/misc/deoxys8.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+230 197 156
+222 98 98
+164 49 49
+106 16 24
+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
diff --git a/graphics/misc/deoxys9.pal b/graphics/misc/deoxys9.pal
new file mode 100644
index 000000000..f65fee065
--- /dev/null
+++ b/graphics/misc/deoxys9.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+238 197 156
+230 90 90
+180 41 41
+115 16 16
+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
diff --git a/graphics/unknown/unknown_5B3280.pal b/graphics/unknown/unknown_5B3280.pal
deleted file mode 100644
index a23813afb..000000000
--- a/graphics/unknown/unknown_5B3280.pal
+++ /dev/null
@@ -1,179 +0,0 @@
-JASC-PAL
-0100
-176
-115 197 164
-180 180 180
-148 148 148
-90 90 98
-57 57 74
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-222 222 222
-0 0 0
-115 197 164
-180 180 172
-156 139 139
-98 82 90
-57 49 65
-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
-115 197 164
-189 180 172
-164 131 131
-106 74 82
-65 41 57
-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
-115 197 164
-197 180 172
-172 123 123
-123 65 74
-74 41 49
-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
-115 197 164
-205 189 164
-189 115 115
-131 65 65
-82 32 41
-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
-115 197 164
-213 189 164
-197 115 115
-148 57 65
-90 32 41
-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
-115 197 164
-222 189 164
-205 106 106
-156 49 57
-98 24 32
-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
-115 197 164
-230 197 156
-222 98 98
-164 49 49
-106 16 24
-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
-115 197 164
-238 197 156
-230 90 90
-180 41 41
-115 16 16
-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
-115 197 164
-246 197 156
-238 82 82
-189 32 32
-123 8 8
-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
-115 197 164
-255 205 156
-255 82 82
-205 32 32
-131 8 8
-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
diff --git a/include/battle_anim.h b/include/battle_anim.h
index d6d4c05d6..f690cf10c 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -107,4 +107,6 @@ u8 ItemIdToBallId(u16 itemId);
u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
+u8 sub_80A600C(u8, u16, u8);
+
#endif // GUARD_BATTLE_ANIM_H
diff --git a/include/battle_tower.h b/include/battle_tower.h
index d8a3dc9a8..e1655f2c6 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -42,5 +42,6 @@ void sub_81628A0(union BattleTowerRecord *);
void sub_8162614(u16 trainerId, u8);
void ConvertBattleFrontierTrainerSpeechToString(u16 *words);
void GetFrontierTrainerName(u8 *dest, u16 trainerIdx);
+void GetEreaderTrainerName(u8 *dest);
#endif //GUARD_BATTLE_TOWER_H
diff --git a/include/cable_club.h b/include/cable_club.h
index 734a4f070..8be376721 100644
--- a/include/cable_club.h
+++ b/include/cable_club.h
@@ -1,6 +1,8 @@
#ifndef GUARD_CABLE_CLUB_H
#define GUARD_CABLE_CLUB_H
+#include "task.h"
+
// Exported type declarations
// Exported RAM declarations
@@ -11,5 +13,6 @@ void sub_80B37D4(TaskFunc taskFunc);
u8 sub_80B3050(void);
void sub_80B360C(void);
bool32 sub_80B2AF4(u16 *arg0, u16 *arg1);
+void sub_80B3AF8(u8 taskId);
#endif //GUARD_CABLE_CLUB_H
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 641d74f19..6c1400410 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -199,7 +199,7 @@
#define FLAG_0x0C4 0xC4
#define FLAG_0x0C5 0xC5
#define FLAG_0x0C6 0xC6
-#define FLAG_0x0C7 0xC7
+#define FLAG_RUSTURF_TUNNEL_OPENED 0xC7
#define FLAG_0x0C8 0xC8
#define FLAG_0x0C9 0xC9
#define FLAG_0x0CA 0xCA
@@ -532,10 +532,10 @@
#define FLAG_0x210 0x210
#define FLAG_0x211 0x211
#define FLAG_0x212 0x212
-#define FLAG_0x213 0x213
-#define FLAG_0x214 0x214
-#define FLAG_0x215 0x215
-#define FLAG_0x216 0x216
+#define FLAG_HIDDEN_ITEM_1F 0x213
+#define FLAG_HIDDEN_ITEM_20 0x214
+#define FLAG_HIDDEN_ITEM_21 0x215
+#define FLAG_HIDDEN_ITEM_22 0x216
#define FLAG_0x217 0x217
#define FLAG_0x218 0x218
#define FLAG_0x219 0x219
@@ -597,7 +597,7 @@
#define FLAG_0x251 0x251
#define FLAG_0x252 0x252
#define FLAG_0x253 0x253
-#define FLAG_0x254 0x254
+#define FLAG_HIDDEN_ITEM_BLACK_GLASSES 0x254
#define FLAG_0x255 0x255
#define FLAG_0x256 0x256
#define FLAG_0x257 0x257
@@ -790,10 +790,10 @@
#define FLAG_0x312 0x312
#define FLAG_0x313 0x313
#define FLAG_0x314 0x314
-#define FLAG_0x315 0x315
-#define FLAG_0x316 0x316
-#define FLAG_0x317 0x317
-#define FLAG_0x318 0x318
+#define FLAG_HIDE_FANCLUB_OLD_LADY 0x315
+#define FLAG_HIDE_FANCLUB_BOY 0x316
+#define FLAG_HIDE_FANCLUB_LITTLE_BOY 0x317
+#define FLAG_HIDE_FANCLUB_LADY 0x318
#define FLAG_0x319 0x319
#define FLAG_0x31A 0x31A
#define FLAG_0x31B 0x31B
@@ -932,8 +932,8 @@
#define FLAG_0x3A0 0x3A0
#define FLAG_0x3A1 0x3A1
#define FLAG_0x3A2 0x3A2
-#define FLAG_0x3A3 0x3A3
-#define FLAG_0x3A4 0x3A4
+#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0x3A3
+#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2 0x3A4
#define FLAG_0x3A5 0x3A5
#define FLAG_0x3A6 0x3A6
#define FLAG_0x3A7 0x3A7
diff --git a/include/constants/heal_locations.h b/include/constants/heal_locations.h
new file mode 100644
index 000000000..64c8956a9
--- /dev/null
+++ b/include/constants/heal_locations.h
@@ -0,0 +1,27 @@
+#ifndef GUARD_CONSTANTS_HEAL_LOCATIONS_H
+#define GUARD_CONSTANTS_HEAL_LOCATIONS_H
+
+#define HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1
+#define HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F 2
+#define HEAL_LOCATION_PETALBURG_CITY 3
+#define HEAL_LOCATION_SLATEPORT_CITY 4
+#define HEAL_LOCATION_MAUVILLE_CITY 5
+#define HEAL_LOCATION_RUSTBORO_CITY 6
+#define HEAL_LOCATION_FORTREE_CITY 7
+#define HEAL_LOCATION_LILYCOVE_CITY 8
+#define HEAL_LOCATION_MOSSDEEP_CITY 9
+#define HEAL_LOCATION_SOOTOPOLIS_CITY 10
+#define HEAL_LOCATION_EVER_GRANDE_CITY_1 11
+#define HEAL_LOCATION_LITTLEROOT_TOWN_1 12
+#define HEAL_LOCATION_LITTLEROOT_TOWN_2 13
+#define HEAL_LOCATION_OLDALE_TOWN 14
+#define HEAL_LOCATION_DEWFORD_TOWN 15
+#define HEAL_LOCATION_LAVARIDGE_TOWN 16
+#define HEAL_LOCATION_FALLARBOR_TOWN 17
+#define HEAL_LOCATION_VERDANTURF_TOWN 18
+#define HEAL_LOCATION_PACIFIDLOG_TOWN 19
+#define HEAL_LOCATION_EVER_GRANDE_CITY_2 20
+#define HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR 21
+#define HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST 22
+
+#endif // GUARD_CONSTANTS_HEAL_LOCATIONS_H
diff --git a/include/constants/vars.h b/include/constants/vars.h
index ed4a7797b..7cf232efe 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -49,13 +49,13 @@
#define VAR_RECYCLE_GOODS 0x4020
#define VAR_REPEL_STEP_COUNT 0x4021
#define VAR_ICE_STEP_COUNT 0x4022
-#define VAR_FIRST_POKE 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip
+#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip
#define VAR_MIRAGE_RND_H 0x4024
#define VAR_MIRAGE_RND_L 0x4025
#define VAR_SECRET_BASE_MAP 0x4026
-#define VAR_0x4027 0x4027
-#define VAR_0x4028 0x4028
-#define VAR_0x4029 0x4029
+#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027
+#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028
+#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029
#define VAR_HAPPINESS_STEP_COUNTER 0x402A
#define VAR_POISON_STEP_COUNTER 0x402B
#define VAR_RESET_RTC_ENABLE 0x402C
@@ -81,8 +81,8 @@
#define VAR_ALTERING_CAVE_WILD_SET 0x403E
#define VAR_0x403F 0x403F
#define VAR_DAYS 0x4040
-#define VAR_0x4041 0x4041
-#define VAR_0x4042 0x4042
+#define VAR_FANCLUB_UNKNOWN_1 0x4041
+#define VAR_FANCLUB_UNKNOWN_2 0x4042
#define VAR_DEPT_STORE_FLOOR 0x4043
#define VAR_0x4044 0x4044
#define VAR_POKELOT_PRIZE 0x4045
@@ -165,12 +165,12 @@
#define VAR_0x4092 0x4092
#define VAR_0x4093 0x4093
#define VAR_0x4094 0x4094
-#define VAR_0x4095 0x4095
+#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095
#define VAR_0x4096 0x4096
#define VAR_0x4097 0x4097
#define VAR_0x4098 0x4098
#define VAR_0x4099 0x4099
-#define VAR_0x409A 0x409A
+#define VAR_RUSTURF_TUNNEL_STATE 0x409A
#define VAR_0x409B 0x409B
#define VAR_0x409C 0x409C
#define VAR_0x409D 0x409D
@@ -185,7 +185,7 @@
#define VAR_0x40A6 0x40A6
#define VAR_0x40A7 0x40A7
#define VAR_0x40A8 0x40A8
-#define VAR_0x40A9 0x40A9
+#define VAR_CYCLING_CHALLENGE_STATE 0x40A9
#define VAR_0x40AA 0x40AA
#define VAR_0x40AB 0x40AB
#define VAR_0x40AC 0x40AC
@@ -196,7 +196,7 @@
#define VAR_0x40B1 0x40B1
#define VAR_0x40B2 0x40B2
#define VAR_WEATHER_INSTITUTE_STATE 0x40B3
-#define VAR_PORTHOLE 0x40B4
+#define VAR_PORTHOLE_STATE 0x40B4
#define VAR_0x40B5 0x40B5
#define VAR_0x40B6 0x40B6
#define VAR_0x40B7 0x40B7
@@ -210,7 +210,7 @@
#define VAR_0x40BF 0x40BF
#define VAR_0x40C0 0x40C0
#define VAR_0x40C1 0x40C1
-#define VAR_0x40C2 0x40C2
+#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2
#define VAR_0x40C3 0x40C3
#define VAR_0x40C4 0x40C4
#define VAR_0x40C5 0x40C5
diff --git a/include/contest.h b/include/contest.h
index c263882eb..b7324e26b 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -1,36 +1,241 @@
#ifndef GUARD_CONTEST_H
#define GUARD_CONTEST_H
-struct ContestMove
+enum
{
- u8 effect;
- u8 contestCategory:3;
- u8 comboStarterId;
- u8 comboMoves[4];
+ CONTEST_CATEGORY_COOL,
+ CONTEST_CATEGORY_BEAUTY,
+ CONTEST_CATEGORY_CUTE,
+ CONTEST_CATEGORY_SMART,
+ CONTEST_CATEGORY_TOUGH,
};
-struct ContestEffect
+enum
{
- u8 effectType;
- u8 appeal;
- u8 jam;
+ CONTEST_EFFECT_HIGHLY_APPEALING,
+ CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
+ CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
+ CONTEST_EFFECT_REPETITION_NOT_BORING,
+ CONTEST_EFFECT_AVOID_STARTLE_ONCE,
+ CONTEST_EFFECT_AVOID_STARTLE,
+ CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY,
+ CONTEST_EFFECT_USER_LESS_EASILY_STARTLED,
+ CONTEST_EFFECT_STARTLE_FRONT_MON,
+ CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS,
+ CONTEST_EFFECT_STARTLE_PREV_MON,
+ CONTEST_EFFECT_STARTLE_PREV_MONS,
+ CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
+ CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
+ CONTEST_EFFECT_STARTLE_PREV_MON_2,
+ CONTEST_EFFECT_STARTLE_PREV_MONS_2,
+ CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
+ CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
+ CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
+ CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
+ CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL,
+ CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL,
+ CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL,
+ CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL,
+ CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL,
+ CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS,
+ CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
+ CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
+ CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION,
+ CONTEST_EFFECT_BETTER_IF_FIRST,
+ CONTEST_EFFECT_BETTER_IF_LAST,
+ CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
+ CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE,
+ CONTEST_EFFECT_BETTER_WHEN_LATER,
+ CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
+ CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
+ CONTEST_EFFECT_BETTER_IF_DIFF_TYPE,
+ CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
+ CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
+ CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION,
+ CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
+ CONTEST_EFFECT_NEXT_APPEAL_LATER,
+ CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER,
+ CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
+ CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST,
+ CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
+ CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
+ CONTEST_EFFECT_DONT_EXCITE_AUDIENCE
};
-struct ContestStruct_02039E00
+enum
{
- u16 unk_00;
- u8 unk_02[11];
- u8 unk_0d[8];
- u8 filler_15[9];
- u8 filler_1E[34];
+ COMBO_STARTER_RAIN_DANCE = 1,
+ COMBO_STARTER_RAGE,
+ COMBO_STARTER_FOCUS_ENERGY,
+ COMBO_STARTER_HYPNOSIS,
+ COMBO_STARTER_ENDURE,
+ COMBO_STARTER_HORN_ATTACK,
+ COMBO_STARTER_SWORDS_DANCE,
+ COMBO_STARTER_STOCKPILE,
+ COMBO_STARTER_SUNNY_DAY,
+ COMBO_STARTER_REST,
+ COMBO_STARTER_VICE_GRIP,
+ COMBO_STARTER_DEFENSE_CURL,
+ COMBO_STARTER_CHARGE,
+ COMBO_STARTER_ROCK_THROW,
+ COMBO_STARTER_YAWN,
+ COMBO_STARTER_SCARY_FACE,
+ COMBO_STARTER_POWDER_SNOW,
+ COMBO_STARTER_LOCK_ON,
+ COMBO_STARTER_SOFT_BOILED,
+ COMBO_STARTER_MEAN_LOOK,
+ COMBO_STARTER_SCRATCH,
+ COMBO_STARTER_GROWTH,
+ COMBO_STARTER_HAIL,
+ COMBO_STARTER_SANDSTORM,
+ COMBO_STARTER_BELLY_DRUM,
+ COMBO_STARTER_MIND_READER,
+ COMBO_STARTER_DRAGON_BREATH,
+ COMBO_STARTER_DRAGON_RAGE,
+ COMBO_STARTER_DRAGON_DANCE,
+ COMBO_STARTER_SURF,
+ COMBO_STARTER_DIVE,
+ COMBO_STARTER_STRING_SHOT,
+ COMBO_STARTER_LEER,
+ COMBO_STARTER_TAUNT,
+ COMBO_STARTER_CHARM,
+ COMBO_STARTER_HARDEN,
+ COMBO_STARTER_SING,
+ COMBO_STARTER_EARTHQUAKE,
+ COMBO_STARTER_DOUBLE_TEAM,
+ COMBO_STARTER_CURSE,
+ COMBO_STARTER_SWEET_SCENT,
+ COMBO_STARTER_SLUDGE,
+ COMBO_STARTER_SLUDGE_BOMB,
+ COMBO_STARTER_THUNDER_PUNCH,
+ COMBO_STARTER_FIRE_PUNCH,
+ COMBO_STARTER_ICE_PUNCH,
+ COMBO_STARTER_PECK,
+ COMBO_STARTER_METAL_SOUND,
+ COMBO_STARTER_MUD_SPORT,
+ COMBO_STARTER_WATER_SPORT,
+ COMBO_STARTER_BONE_CLUB,
+ COMBO_STARTER_BONEMERANG,
+ COMBO_STARTER_BONE_RUSH,
+ COMBO_STARTER_SAND_ATTACK,
+ COMBO_STARTER_MUD_SLAP,
+ COMBO_STARTER_FAKE_OUT,
+ COMBO_STARTER_PSYCHIC,
+ COMBO_STARTER_KINESIS,
+ COMBO_STARTER_CONFUSION,
+ COMBO_STARTER_POUND,
+ COMBO_STARTER_SMOG,
+ COMBO_STARTER_CALM_MIND
};
-extern struct ContestStruct_02039E00 gUnknown_02039E00[4];
+enum
+{
+ CONTEST_STRING_MORE_CONSCIOUS,
+ CONTEST_STRING_NO_APPEAL,
+ CONTEST_STRING_SETTLE_DOWN,
+ CONTEST_STRING_OBLIVIOUS_TO_OTHERS,
+ CONTEST_STRING_LESS_AWARE,
+ CONTEST_STRING_STOPPED_CARING,
+ CONTEST_STRING_STARTLE_ATTEMPT,
+ CONTEST_STRING_DAZZLE_ATTEMPT,
+ CONTEST_STRING_JUDGE_LOOK_AWAY2,
+ CONTEST_STRING_UNNERVE_ATTEMPT,
+ CONTEST_STRING_NERVOUS,
+ CONTEST_STRING_UNNERVE_WAITING,
+ CONTEST_STRING_TAUNT_WELL,
+ CONTEST_STRING_REGAINED_FORM,
+ CONTEST_STRING_JAM_WELL,
+ CONTEST_STRING_HUSTLE_STANDOUT,
+ CONTEST_STRING_WORK_HARD_UNNOTICED,
+ CONTEST_STRING_WORK_BEFORE,
+ CONTEST_STRING_APPEAL_NOT_WELL,
+ CONTEST_STRING_WORK_PRECEDING,
+ CONTEST_STRING_APPEAL_NOT_WELL2,
+ CONTEST_STRING_APPEAL_NOT_SHOWN_WELL,
+ CONTEST_STRING_APPEAL_SLIGHTLY_WELL,
+ CONTEST_STRING_APPEAL_PRETTY_WELL,
+ CONTEST_STRING_APPEAL_EXCELLENTLY,
+ CONTEST_STRING_APPEAL_DUD,
+ CONTEST_STRING_APPEAL_NOT_VERY_WELL,
+ CONTEST_STRING_APPEAL_SLIGHTLY_WELL2,
+ CONTEST_STRING_APPEAL_PRETTY_WELL2,
+ CONTEST_STRING_APPEAL_VERY_WELL,
+ CONTEST_STRING_APPEAL_EXCELLENTLY2,
+ CONTEST_STRING_SAME_TYPE_GOOD,
+ CONTEST_STRING_DIFF_TYPE_GOOD,
+ CONTEST_STRING_STOOD_OUT_AS_MUCH,
+ CONTEST_STRING_NOT_AS_WELL,
+ CONTEST_STRING_CONDITION_ROSE,
+ CONTEST_STRING_HOT_STATUS,
+ CONTEST_STRING_MOVE_UP_LINE,
+ CONTEST_STRING_MOVE_BACK_LINE,
+ CONTEST_STRING_SCRAMBLE_ORDER,
+ CONTEST_STRING_JUDGE_EXPECTANTLY2,
+ CONTEST_STRING_WENT_OVER_WELL,
+ CONTEST_STRING_WENT_OVER_VERY_WELL,
+ CONTEST_STRING_APPEAL_COMBO_EXCELLENTLY,
+ CONTEST_STRING_AVERT_GAZE,
+ CONTEST_STRING_AVOID_SEEING,
+ CONTEST_STRING_NOT_FAZED,
+ CONTEST_STRING_LITTLE_DISTRACTED,
+ CONTEST_STRING_ATTEMPT_STARTLE,
+ CONTEST_STRING_LOOKED_DOWN,
+ CONTEST_STRING_TURNED_BACK,
+ CONTEST_STRING_UTTER_CRY,
+ CONTEST_STRING_LEAPT_UP,
+ CONTEST_STRING_TRIPPED_OVER,
+ CONTEST_STRING_MESSED_UP2,
+ CONTEST_STRING_FAILED_TARGET_NERVOUS,
+ CONTEST_STRING_FAILED_ANYONE_NERVOUS,
+ CONTEST_STRING_IGNORED,
+ CONTEST_STRING_NO_CONDITION_IMPROVE,
+ CONTEST_STRING_BAD_CONDITION_WEAK_APPEAL,
+ CONTEST_STRING_UNAFFECTED,
+ CONTEST_STRING_ATTRACTED_ATTENTION,
+ CONTEST_STRING_NONE = 255
+};
+
+struct ContestPokemon
+{
+ /*0x00*/ u16 species;
+ /*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
+ /*0x0D*/ u8 trainerName[8];
+ /*0x15*/ u8 trainerGfxId;
+ /*0x18*/ u32 flags;
+ /*0x1C*/ u8 whichRank:2;
+ u8 aiPool_Cool:1;
+ u8 aiPool_Beauty:1;
+ u8 aiPool_Cute:1;
+ u8 aiPool_Smart:1;
+ u8 aiPool_Tough:1;
+ /*0x1E*/ u16 moves[4]; // moves
+ /*0x26*/ u8 cool; // cool
+ /*0x27*/ u8 beauty; // beauty
+ /*0x28*/ u8 cute; // cute
+ /*0x29*/ u8 smart; // smart
+ /*0x2A*/ u8 tough; // tough
+ /*0x2B*/ u8 sheen; // sheen
+ /*0x2C*/ u8 unk2C[12];
+ /*0x38*/ u32 personality; // personality
+ /*0x3C*/ u32 otId; // otId
+}; // wow
+
+extern struct ContestPokemon gContestMons[4];
extern u8 gUnknown_02039F24;
extern u16 gSpecialVar_ContestCategory;
-extern u8 gSpecialVar_ContestRank;
+extern u16 gSpecialVar_ContestRank;
extern u8 gUnknown_02039F30;
+struct Shared18000
+{
+ /*0x18000*/ u8 unk18000;
+ /*0x18001*/ u8 filler18001[3];
+ /*0x18004*/ u16 unk18004[16][16];
+ /*0x18204*/ u16 unk18204[0x200];
+ /*0x18604*/ u16 unk18604[0x200];
+ /*0x18A04*/ u8 unk18A04[0x800];
+};
+
struct ContestStruct_field_18
{
// unknown size
@@ -43,19 +248,173 @@ struct ContestStruct_field_18
u32 field_10;
};
+struct Contest
+{
+ /*0x19204*/ u8 playerMoveChoice;
+ /*0x19205*/ u8 turnNumber;
+ /*0x19206*/ u8 unk19206[4]; // seems to only be used by an unref function
+ /*0x1920A*/ u16 unk1920A_0:1; // Task active flags?
+ u16 unk1920A_1:1;
+ u16 unk1920A_2:1;
+ u16 unk1920A_3:1;
+ u16 unk1920A_4:1;
+ u16 unk1920A_5:1;
+ u16 unk1920A_6:1;
+ u16 unk1920A_7:1;
+ /*0x1920B*/ u16 unk1920B_0:1;
+ u16 unk1920B_1:1;
+ u16 unk1920B_2:1;
+ /*0x1920C*/ u8 mainTaskId;
+ /*0x1920D*/ u8 unk1920D[4];
+ /*0x19211*/ u8 unk19211;
+ /*0x19212*/ u8 unk19212;
+ /*0x19213*/ u8 filler19213;
+ /*0x19214*/ u8 unk19214;
+ /*0x19215*/ u8 unk19215;
+ /*0x19216*/ u8 unk19216; // sprite ID
+ /*0x19217*/ s8 applauseLevel;
+ /*0x19218*/ u8 unk19218[4];
+ /*0x1921C*/ u32 unk1921C; // saved RNG value?
+ u16 unk19220[5][4]; // move history?
+ u8 unk19248[5][4]; // excitement history
+ u8 applauseMeterSpriteId; // sprite ID
+ /*0x1925D*/ u8 unk1925D;
+ /*0x1925E*/ u8 unk1925E;
+};
+
+struct ContestantStatus
+{
+ /*0x00*/ s16 appeal1; // move appeal?
+ /*0x02*/ s16 appeal2; // final appeal after end of turn, maybe?
+ /*0x04*/ s16 unk4;
+ /*0x06*/ u16 currMove;
+ /*0x08*/ u16 prevMove;
+ /*0x0A*/ u8 moveCategory;
+ /*0x0B*/ u8 unkB_0:2;
+ u8 unkB_2:2;
+ u8 moveRepeatCount:3;
+ u8 noMoreTurns:1; // used a one-time move?
+ /*0x0C*/ u8 nervous:1;
+ u8 numTurnsSkipped:2;
+ /*0x0D*/ s8 condition;
+ /*0x0E*/ u8 jam;
+ /*0x0F*/ u8 jamReduction;
+
+ // Flags set by move effect
+ /*0x10*/ u8 resistant:1;
+ u8 immune:1;
+ u8 moreEasilyStartled:1;
+ u8 usedRepeatableMove:1;
+ u8 conditionMod:2; // 1: just raised condition; 2: appeal greatly improved by condition
+ u8 turnOrderMod:2; // 1: defined; 2: random
+ /*0x11*/ u8 turnOrderModAction:2; // 1: made first; 2: made last; 3: made random
+ u8 turnSkipped:1;
+ u8 exploded:1;
+ u8 overrideCategoryExcitementMod:1;
+ u8 appealTripleCondition:1;
+
+ /*0x12*/ u8 jamSafetyCount;
+ /*0x13*/ u8 effectStringId; // status action?
+ /*0x14*/ u8 effectStringId2;
+ /*0x15*/ u8 disappointedRepeat:1;
+ u8 unk15_1:1;
+ u8 unk15_2:1;
+ u8 unk15_3:1;
+ u8 hasJudgesAttention:1;
+ u8 judgesAttentionWasRemoved:1;
+ u8 unk15_6:1;
+ /*0x16*/ u8 unk16;
+ /*0x17*/ u8 unk17;
+ /*0x18*/ u8 unk18;
+ /*0x19*/ u8 nextTurnOrder; // turn position
+ /*0x1A*/ u8 attentionLevel; // How much the Pokemon "stood out"
+ /*0x1B*/ u8 unk1B;
+};
+
+struct UnknownContestStruct7
+{
+ u8 turnOrder[4];
+ s16 jam;
+ s16 jam2;
+ u8 jamQueue[5];
+ u8 unnervedPokes[4];
+ u8 contestant;
+};
+
+struct ContestAIInfo {
+ /*0x00*/ u8 aiState;
+ /*0x02*/ u16 unk2;
+ /*0x04*/ u8 unk4;
+ /*0x05*/ u8 unk5[4];
+ /*0x09*/ u8 aiAction;
+ /*0x0A*/ u8 fillerA[0x6]; // TODO: don't know what's here
+ /*0x10*/ u8 unk10;
+ /*0x14*/ u32 flags;
+ /*0x18*/ s16 scriptResult;
+ /*0x1A*/ s16 scriptArr[3];
+ /*0x20*/ u32 stack[8];
+ /*0x40*/ u8 unk40;
+ /*0x41*/ u8 unk41;
+};
+
+struct UnknownContestStruct5
+{
+ s8 bits_0; // current move excitement?
+ u8 excitementFrozen:1;
+ u8 excitementFreezer:3;
+ s8 unk2;
+};
+
+struct UnknownContestStruct4
+{
+ u8 unk0; // sprite ID
+ u8 unk1; // sprite ID
+ u8 unk2_0:1;
+ u8 unk2_1:1;
+ u8 unk2_2:1;
+};
+
+struct ContestResourcesField1C
+{
+ u8 filler_00[0x40];
+};
+
+struct ContestResourcesField20
+{
+ u8 filler_00[0x0C];
+};
+
struct ContestResources
{
- void *field_0;
- void *field_4;
- void *field_8;
- void *field_C;
- void *field_10;
- void *field_14;
+ struct Contest *field_0;
+ struct ContestantStatus *field_4;
+ struct UnknownContestStruct7 *field_8;
+ struct ContestAIInfo *field_C;
+ struct UnknownContestStruct5 *field_10;
+ struct UnknownContestStruct4 *field_14;
struct ContestStruct_field_18 *field_18;
+ struct ContestResourcesField1C * field_1c;
+ struct ContestResourcesField20 * field_20;
+ u8 * field_24[4];
+ void * field_34;
+ void * field_38;
+ void * field_3c;
};
extern struct ContestResources *gContestResources;
+#define sContest (*gContestResources->field_0)
+#define sContestantStatus (gContestResources->field_4)
+#define shared192D0 (*gContestResources->field_8)
+#define eContestAI (*gContestResources->field_C)
+#define shared19328 (*gContestResources->field_10)
+#define shared19338 (*gContestResources->field_14)
+
+#define shared15800 (gHeap + 0x18000)
+#define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000))
+
+extern u32 gContestRngValue;
+
bool8 IsSpeciesNotUnown(u16 species);
void LoadContestBgAfterMoveAnim(void);
diff --git a/include/contest_effect.h b/include/contest_effect.h
new file mode 100644
index 000000000..3484ca5df
--- /dev/null
+++ b/include/contest_effect.h
@@ -0,0 +1,22 @@
+#ifndef GUARD_CONTEST_EFFECT_H
+#define GUARD_CONTEST_EFFECT_H
+
+struct ContestMove
+{
+ u8 effect;
+ u8 contestCategory:3;
+ u8 comboStarterId;
+ u8 comboMoves[4];
+};
+
+struct ContestEffect
+{
+ u8 effectType;
+ u8 appeal;
+ u8 jam;
+};
+
+extern const struct ContestMove gContestMoves[];
+extern struct ContestEffect gContestEffects[];
+
+#endif //GUARD_CONTEST_EFFECT_H
diff --git a/include/contest_link_80F57C4.h b/include/contest_link_80F57C4.h
index 98523c175..3c12e5e53 100644
--- a/include/contest_link_80F57C4.h
+++ b/include/contest_link_80F57C4.h
@@ -4,5 +4,6 @@
void sub_80F840C(void);
void sub_80F8484(void);
void sub_80F84C4(u8);
+void sub_80FC998(u8 taskId);
#endif // GUARD_CONTEST_LINK_80F57C4_H
diff --git a/include/contest_link_80FC4F4.h b/include/contest_link_80FC4F4.h
new file mode 100644
index 000000000..6f3bab97d
--- /dev/null
+++ b/include/contest_link_80FC4F4.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_CONTEST_LINK_80FC4F4_H
+#define GUARD_CONTEST_LINK_80FC4F4_H
+
+void sub_80FCC88(u8);
+void sub_80FCC88(u8);
+void sub_80FCACC(u8);
+
+#endif //GUARD_CONTEST_LINK_80FC4F4_H
diff --git a/include/data/pokemon/level_up_learnset_pointers.h b/include/data/pokemon/level_up_learnset_pointers.h
index a56b1c09f..0f648526c 100644
--- a/include/data/pokemon/level_up_learnset_pointers.h
+++ b/include/data/pokemon/level_up_learnset_pointers.h
@@ -1,420 +1,420 @@
#ifndef POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
#define POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
-const u16 *const gLevelUpLearnsets[] =
+const u16 *const gLevelUpLearnsets[NUM_SPECIES] =
{
- gBulbasaurLevelUpLearnset,
- gBulbasaurLevelUpLearnset,
- gIvysaurLevelUpLearnset,
- gVenusaurLevelUpLearnset,
- gCharmanderLevelUpLearnset,
- gCharmeleonLevelUpLearnset,
- gCharizardLevelUpLearnset,
- gSquirtleLevelUpLearnset,
- gWartortleLevelUpLearnset,
- gBlastoiseLevelUpLearnset,
- gCaterpieLevelUpLearnset,
- gMetapodLevelUpLearnset,
- gButterfreeLevelUpLearnset,
- gWeedleLevelUpLearnset,
- gKakunaLevelUpLearnset,
- gBeedrillLevelUpLearnset,
- gPidgeyLevelUpLearnset,
- gPidgeottoLevelUpLearnset,
- gPidgeotLevelUpLearnset,
- gRattataLevelUpLearnset,
- gRaticateLevelUpLearnset,
- gSpearowLevelUpLearnset,
- gFearowLevelUpLearnset,
- gEkansLevelUpLearnset,
- gArbokLevelUpLearnset,
- gPikachuLevelUpLearnset,
- gRaichuLevelUpLearnset,
- gSandshrewLevelUpLearnset,
- gSandslashLevelUpLearnset,
- gNidoranFLevelUpLearnset,
- gNidorinaLevelUpLearnset,
- gNidoqueenLevelUpLearnset,
- gNidoranMLevelUpLearnset,
- gNidorinoLevelUpLearnset,
- gNidokingLevelUpLearnset,
- gClefairyLevelUpLearnset,
- gClefableLevelUpLearnset,
- gVulpixLevelUpLearnset,
- gNinetalesLevelUpLearnset,
- gJigglypuffLevelUpLearnset,
- gWigglytuffLevelUpLearnset,
- gZubatLevelUpLearnset,
- gGolbatLevelUpLearnset,
- gOddishLevelUpLearnset,
- gGloomLevelUpLearnset,
- gVileplumeLevelUpLearnset,
- gParasLevelUpLearnset,
- gParasectLevelUpLearnset,
- gVenonatLevelUpLearnset,
- gVenomothLevelUpLearnset,
- gDiglettLevelUpLearnset,
- gDugtrioLevelUpLearnset,
- gMeowthLevelUpLearnset,
- gPersianLevelUpLearnset,
- gPsyduckLevelUpLearnset,
- gGolduckLevelUpLearnset,
- gMankeyLevelUpLearnset,
- gPrimeapeLevelUpLearnset,
- gGrowlitheLevelUpLearnset,
- gArcanineLevelUpLearnset,
- gPoliwagLevelUpLearnset,
- gPoliwhirlLevelUpLearnset,
- gPoliwrathLevelUpLearnset,
- gAbraLevelUpLearnset,
- gKadabraLevelUpLearnset,
- gAlakazamLevelUpLearnset,
- gMachopLevelUpLearnset,
- gMachokeLevelUpLearnset,
- gMachampLevelUpLearnset,
- gBellsproutLevelUpLearnset,
- gWeepinbellLevelUpLearnset,
- gVictreebelLevelUpLearnset,
- gTentacoolLevelUpLearnset,
- gTentacruelLevelUpLearnset,
- gGeodudeLevelUpLearnset,
- gGravelerLevelUpLearnset,
- gGolemLevelUpLearnset,
- gPonytaLevelUpLearnset,
- gRapidashLevelUpLearnset,
- gSlowpokeLevelUpLearnset,
- gSlowbroLevelUpLearnset,
- gMagnemiteLevelUpLearnset,
- gMagnetonLevelUpLearnset,
- gFarfetchdLevelUpLearnset,
- gDoduoLevelUpLearnset,
- gDodrioLevelUpLearnset,
- gSeelLevelUpLearnset,
- gDewgongLevelUpLearnset,
- gGrimerLevelUpLearnset,
- gMukLevelUpLearnset,
- gShellderLevelUpLearnset,
- gCloysterLevelUpLearnset,
- gGastlyLevelUpLearnset,
- gHaunterLevelUpLearnset,
- gGengarLevelUpLearnset,
- gOnixLevelUpLearnset,
- gDrowzeeLevelUpLearnset,
- gHypnoLevelUpLearnset,
- gKrabbyLevelUpLearnset,
- gKinglerLevelUpLearnset,
- gVoltorbLevelUpLearnset,
- gElectrodeLevelUpLearnset,
- gExeggcuteLevelUpLearnset,
- gExeggutorLevelUpLearnset,
- gCuboneLevelUpLearnset,
- gMarowakLevelUpLearnset,
- gHitmonleeLevelUpLearnset,
- gHitmonchanLevelUpLearnset,
- gLickitungLevelUpLearnset,
- gKoffingLevelUpLearnset,
- gWeezingLevelUpLearnset,
- gRhyhornLevelUpLearnset,
- gRhydonLevelUpLearnset,
- gChanseyLevelUpLearnset,
- gTangelaLevelUpLearnset,
- gKangaskhanLevelUpLearnset,
- gHorseaLevelUpLearnset,
- gSeadraLevelUpLearnset,
- gGoldeenLevelUpLearnset,
- gSeakingLevelUpLearnset,
- gStaryuLevelUpLearnset,
- gStarmieLevelUpLearnset,
- gMrmimeLevelUpLearnset,
- gScytherLevelUpLearnset,
- gJynxLevelUpLearnset,
- gElectabuzzLevelUpLearnset,
- gMagmarLevelUpLearnset,
- gPinsirLevelUpLearnset,
- gTaurosLevelUpLearnset,
- gMagikarpLevelUpLearnset,
- gGyaradosLevelUpLearnset,
- gLaprasLevelUpLearnset,
- gDittoLevelUpLearnset,
- gEeveeLevelUpLearnset,
- gVaporeonLevelUpLearnset,
- gJolteonLevelUpLearnset,
- gFlareonLevelUpLearnset,
- gPorygonLevelUpLearnset,
- gOmanyteLevelUpLearnset,
- gOmastarLevelUpLearnset,
- gKabutoLevelUpLearnset,
- gKabutopsLevelUpLearnset,
- gAerodactylLevelUpLearnset,
- gSnorlaxLevelUpLearnset,
- gArticunoLevelUpLearnset,
- gZapdosLevelUpLearnset,
- gMoltresLevelUpLearnset,
- gDratiniLevelUpLearnset,
- gDragonairLevelUpLearnset,
- gDragoniteLevelUpLearnset,
- gMewtwoLevelUpLearnset,
- gMewLevelUpLearnset,
- gChikoritaLevelUpLearnset,
- gBayleefLevelUpLearnset,
- gMeganiumLevelUpLearnset,
- gCyndaquilLevelUpLearnset,
- gQuilavaLevelUpLearnset,
- gTyphlosionLevelUpLearnset,
- gTotodileLevelUpLearnset,
- gCroconawLevelUpLearnset,
- gFeraligatrLevelUpLearnset,
- gSentretLevelUpLearnset,
- gFurretLevelUpLearnset,
- gHoothootLevelUpLearnset,
- gNoctowlLevelUpLearnset,
- gLedybaLevelUpLearnset,
- gLedianLevelUpLearnset,
- gSpinarakLevelUpLearnset,
- gAriadosLevelUpLearnset,
- gCrobatLevelUpLearnset,
- gChinchouLevelUpLearnset,
- gLanturnLevelUpLearnset,
- gPichuLevelUpLearnset,
- gCleffaLevelUpLearnset,
- gIgglybuffLevelUpLearnset,
- gTogepiLevelUpLearnset,
- gTogeticLevelUpLearnset,
- gNatuLevelUpLearnset,
- gXatuLevelUpLearnset,
- gMareepLevelUpLearnset,
- gFlaaffyLevelUpLearnset,
- gAmpharosLevelUpLearnset,
- gBellossomLevelUpLearnset,
- gMarillLevelUpLearnset,
- gAzumarillLevelUpLearnset,
- gSudowoodoLevelUpLearnset,
- gPolitoedLevelUpLearnset,
- gHoppipLevelUpLearnset,
- gSkiploomLevelUpLearnset,
- gJumpluffLevelUpLearnset,
- gAipomLevelUpLearnset,
- gSunkernLevelUpLearnset,
- gSunfloraLevelUpLearnset,
- gYanmaLevelUpLearnset,
- gWooperLevelUpLearnset,
- gQuagsireLevelUpLearnset,
- gEspeonLevelUpLearnset,
- gUmbreonLevelUpLearnset,
- gMurkrowLevelUpLearnset,
- gSlowkingLevelUpLearnset,
- gMisdreavusLevelUpLearnset,
- gUnownLevelUpLearnset,
- gWobbuffetLevelUpLearnset,
- gGirafarigLevelUpLearnset,
- gPinecoLevelUpLearnset,
- gForretressLevelUpLearnset,
- gDunsparceLevelUpLearnset,
- gGligarLevelUpLearnset,
- gSteelixLevelUpLearnset,
- gSnubbullLevelUpLearnset,
- gGranbullLevelUpLearnset,
- gQwilfishLevelUpLearnset,
- gScizorLevelUpLearnset,
- gShuckleLevelUpLearnset,
- gHeracrossLevelUpLearnset,
- gSneaselLevelUpLearnset,
- gTeddiursaLevelUpLearnset,
- gUrsaringLevelUpLearnset,
- gSlugmaLevelUpLearnset,
- gMagcargoLevelUpLearnset,
- gSwinubLevelUpLearnset,
- gPiloswineLevelUpLearnset,
- gCorsolaLevelUpLearnset,
- gRemoraidLevelUpLearnset,
- gOctilleryLevelUpLearnset,
- gDelibirdLevelUpLearnset,
- gMantineLevelUpLearnset,
- gSkarmoryLevelUpLearnset,
- gHoundourLevelUpLearnset,
- gHoundoomLevelUpLearnset,
- gKingdraLevelUpLearnset,
- gPhanpyLevelUpLearnset,
- gDonphanLevelUpLearnset,
- gPorygon2LevelUpLearnset,
- gStantlerLevelUpLearnset,
- gSmeargleLevelUpLearnset,
- gTyrogueLevelUpLearnset,
- gHitmontopLevelUpLearnset,
- gSmoochumLevelUpLearnset,
- gElekidLevelUpLearnset,
- gMagbyLevelUpLearnset,
- gMiltankLevelUpLearnset,
- gBlisseyLevelUpLearnset,
- gRaikouLevelUpLearnset,
- gEnteiLevelUpLearnset,
- gSuicuneLevelUpLearnset,
- gLarvitarLevelUpLearnset,
- gPupitarLevelUpLearnset,
- gTyranitarLevelUpLearnset,
- gLugiaLevelUpLearnset,
- gHoOhLevelUpLearnset,
- gCelebiLevelUpLearnset,
- gSpecies252LevelUpLearnset,
- gSpecies253LevelUpLearnset,
- gSpecies254LevelUpLearnset,
- gSpecies255LevelUpLearnset,
- gSpecies256LevelUpLearnset,
- gSpecies257LevelUpLearnset,
- gSpecies258LevelUpLearnset,
- gSpecies259LevelUpLearnset,
- gSpecies260LevelUpLearnset,
- gSpecies261LevelUpLearnset,
- gSpecies262LevelUpLearnset,
- gSpecies263LevelUpLearnset,
- gSpecies264LevelUpLearnset,
- gSpecies265LevelUpLearnset,
- gSpecies266LevelUpLearnset,
- gSpecies267LevelUpLearnset,
- gSpecies268LevelUpLearnset,
- gSpecies269LevelUpLearnset,
- gSpecies270LevelUpLearnset,
- gSpecies271LevelUpLearnset,
- gSpecies272LevelUpLearnset,
- gSpecies273LevelUpLearnset,
- gSpecies274LevelUpLearnset,
- gSpecies275LevelUpLearnset,
- gSpecies276LevelUpLearnset,
- gTreeckoLevelUpLearnset,
- gGrovyleLevelUpLearnset,
- gSceptileLevelUpLearnset,
- gTorchicLevelUpLearnset,
- gCombuskenLevelUpLearnset,
- gBlazikenLevelUpLearnset,
- gMudkipLevelUpLearnset,
- gMarshtompLevelUpLearnset,
- gSwampertLevelUpLearnset,
- gPoochyenaLevelUpLearnset,
- gMightyenaLevelUpLearnset,
- gZigzagoonLevelUpLearnset,
- gLinooneLevelUpLearnset,
- gWurmpleLevelUpLearnset,
- gSilcoonLevelUpLearnset,
- gBeautiflyLevelUpLearnset,
- gCascoonLevelUpLearnset,
- gDustoxLevelUpLearnset,
- gLotadLevelUpLearnset,
- gLombreLevelUpLearnset,
- gLudicoloLevelUpLearnset,
- gSeedotLevelUpLearnset,
- gNuzleafLevelUpLearnset,
- gShiftryLevelUpLearnset,
- gNincadaLevelUpLearnset,
- gNinjaskLevelUpLearnset,
- gShedinjaLevelUpLearnset,
- gTaillowLevelUpLearnset,
- gSwellowLevelUpLearnset,
- gShroomishLevelUpLearnset,
- gBreloomLevelUpLearnset,
- gSpindaLevelUpLearnset,
- gWingullLevelUpLearnset,
- gPelipperLevelUpLearnset,
- gSurskitLevelUpLearnset,
- gMasquerainLevelUpLearnset,
- gWailmerLevelUpLearnset,
- gWailordLevelUpLearnset,
- gSkittyLevelUpLearnset,
- gDelcattyLevelUpLearnset,
- gKecleonLevelUpLearnset,
- gBaltoyLevelUpLearnset,
- gClaydolLevelUpLearnset,
- gNosepassLevelUpLearnset,
- gTorkoalLevelUpLearnset,
- gSableyeLevelUpLearnset,
- gBarboachLevelUpLearnset,
- gWhiscashLevelUpLearnset,
- gLuvdiscLevelUpLearnset,
- gCorphishLevelUpLearnset,
- gCrawdauntLevelUpLearnset,
- gFeebasLevelUpLearnset,
- gMiloticLevelUpLearnset,
- gCarvanhaLevelUpLearnset,
- gSharpedoLevelUpLearnset,
- gTrapinchLevelUpLearnset,
- gVibravaLevelUpLearnset,
- gFlygonLevelUpLearnset,
- gMakuhitaLevelUpLearnset,
- gHariyamaLevelUpLearnset,
- gElectrikeLevelUpLearnset,
- gManectricLevelUpLearnset,
- gNumelLevelUpLearnset,
- gCameruptLevelUpLearnset,
- gSphealLevelUpLearnset,
- gSealeoLevelUpLearnset,
- gWalreinLevelUpLearnset,
- gCacneaLevelUpLearnset,
- gCacturneLevelUpLearnset,
- gSnoruntLevelUpLearnset,
- gGlalieLevelUpLearnset,
- gLunatoneLevelUpLearnset,
- gSolrockLevelUpLearnset,
- gAzurillLevelUpLearnset,
- gSpoinkLevelUpLearnset,
- gGrumpigLevelUpLearnset,
- gPlusleLevelUpLearnset,
- gMinunLevelUpLearnset,
- gMawileLevelUpLearnset,
- gMedititeLevelUpLearnset,
- gMedichamLevelUpLearnset,
- gSwabluLevelUpLearnset,
- gAltariaLevelUpLearnset,
- gWynautLevelUpLearnset,
- gDuskullLevelUpLearnset,
- gDusclopsLevelUpLearnset,
- gRoseliaLevelUpLearnset,
- gSlakothLevelUpLearnset,
- gVigorothLevelUpLearnset,
- gSlakingLevelUpLearnset,
- gGulpinLevelUpLearnset,
- gSwalotLevelUpLearnset,
- gTropiusLevelUpLearnset,
- gWhismurLevelUpLearnset,
- gLoudredLevelUpLearnset,
- gExploudLevelUpLearnset,
- gClamperlLevelUpLearnset,
- gHuntailLevelUpLearnset,
- gGorebyssLevelUpLearnset,
- gAbsolLevelUpLearnset,
- gShuppetLevelUpLearnset,
- gBanetteLevelUpLearnset,
- gSeviperLevelUpLearnset,
- gZangooseLevelUpLearnset,
- gRelicanthLevelUpLearnset,
- gAronLevelUpLearnset,
- gLaironLevelUpLearnset,
- gAggronLevelUpLearnset,
- gCastformLevelUpLearnset,
- gVolbeatLevelUpLearnset,
- gIllumiseLevelUpLearnset,
- gLileepLevelUpLearnset,
- gCradilyLevelUpLearnset,
- gAnorithLevelUpLearnset,
- gArmaldoLevelUpLearnset,
- gRaltsLevelUpLearnset,
- gKirliaLevelUpLearnset,
- gGardevoirLevelUpLearnset,
- gBagonLevelUpLearnset,
- gShelgonLevelUpLearnset,
- gSalamenceLevelUpLearnset,
- gBeldumLevelUpLearnset,
- gMetangLevelUpLearnset,
- gMetagrossLevelUpLearnset,
- gRegirockLevelUpLearnset,
- gRegiceLevelUpLearnset,
- gRegisteelLevelUpLearnset,
- gKyogreLevelUpLearnset,
- gGroudonLevelUpLearnset,
- gRayquazaLevelUpLearnset,
- gLatiasLevelUpLearnset,
- gLatiosLevelUpLearnset,
- gJirachiLevelUpLearnset,
- gDeoxysLevelUpLearnset,
- gChimechoLevelUpLearnset
+ [SPECIES_NONE] = sBulbasaurLevelUpLearnset,
+ [SPECIES_BULBASAUR] = sBulbasaurLevelUpLearnset,
+ [SPECIES_IVYSAUR] = sIvysaurLevelUpLearnset,
+ [SPECIES_VENUSAUR] = sVenusaurLevelUpLearnset,
+ [SPECIES_CHARMANDER] = sCharmanderLevelUpLearnset,
+ [SPECIES_CHARMELEON] = sCharmeleonLevelUpLearnset,
+ [SPECIES_CHARIZARD] = sCharizardLevelUpLearnset,
+ [SPECIES_SQUIRTLE] = sSquirtleLevelUpLearnset,
+ [SPECIES_WARTORTLE] = sWartortleLevelUpLearnset,
+ [SPECIES_BLASTOISE] = sBlastoiseLevelUpLearnset,
+ [SPECIES_CATERPIE] = sCaterpieLevelUpLearnset,
+ [SPECIES_METAPOD] = sMetapodLevelUpLearnset,
+ [SPECIES_BUTTERFREE] = sButterfreeLevelUpLearnset,
+ [SPECIES_WEEDLE] = sWeedleLevelUpLearnset,
+ [SPECIES_KAKUNA] = sKakunaLevelUpLearnset,
+ [SPECIES_BEEDRILL] = sBeedrillLevelUpLearnset,
+ [SPECIES_PIDGEY] = sPidgeyLevelUpLearnset,
+ [SPECIES_PIDGEOTTO] = sPidgeottoLevelUpLearnset,
+ [SPECIES_PIDGEOT] = sPidgeotLevelUpLearnset,
+ [SPECIES_RATTATA] = sRattataLevelUpLearnset,
+ [SPECIES_RATICATE] = sRaticateLevelUpLearnset,
+ [SPECIES_SPEAROW] = sSpearowLevelUpLearnset,
+ [SPECIES_FEAROW] = sFearowLevelUpLearnset,
+ [SPECIES_EKANS] = sEkansLevelUpLearnset,
+ [SPECIES_ARBOK] = sArbokLevelUpLearnset,
+ [SPECIES_PIKACHU] = sPikachuLevelUpLearnset,
+ [SPECIES_RAICHU] = sRaichuLevelUpLearnset,
+ [SPECIES_SANDSHREW] = sSandshrewLevelUpLearnset,
+ [SPECIES_SANDSLASH] = sSandslashLevelUpLearnset,
+ [SPECIES_NIDORAN_F] = sNidoranFLevelUpLearnset,
+ [SPECIES_NIDORINA] = sNidorinaLevelUpLearnset,
+ [SPECIES_NIDOQUEEN] = sNidoqueenLevelUpLearnset,
+ [SPECIES_NIDORAN_M] = sNidoranMLevelUpLearnset,
+ [SPECIES_NIDORINO] = sNidorinoLevelUpLearnset,
+ [SPECIES_NIDOKING] = sNidokingLevelUpLearnset,
+ [SPECIES_CLEFAIRY] = sClefairyLevelUpLearnset,
+ [SPECIES_CLEFABLE] = sClefableLevelUpLearnset,
+ [SPECIES_VULPIX] = sVulpixLevelUpLearnset,
+ [SPECIES_NINETALES] = sNinetalesLevelUpLearnset,
+ [SPECIES_JIGGLYPUFF] = sJigglypuffLevelUpLearnset,
+ [SPECIES_WIGGLYTUFF] = sWigglytuffLevelUpLearnset,
+ [SPECIES_ZUBAT] = sZubatLevelUpLearnset,
+ [SPECIES_GOLBAT] = sGolbatLevelUpLearnset,
+ [SPECIES_ODDISH] = sOddishLevelUpLearnset,
+ [SPECIES_GLOOM] = sGloomLevelUpLearnset,
+ [SPECIES_VILEPLUME] = sVileplumeLevelUpLearnset,
+ [SPECIES_PARAS] = sParasLevelUpLearnset,
+ [SPECIES_PARASECT] = sParasectLevelUpLearnset,
+ [SPECIES_VENONAT] = sVenonatLevelUpLearnset,
+ [SPECIES_VENOMOTH] = sVenomothLevelUpLearnset,
+ [SPECIES_DIGLETT] = sDiglettLevelUpLearnset,
+ [SPECIES_DUGTRIO] = sDugtrioLevelUpLearnset,
+ [SPECIES_MEOWTH] = sMeowthLevelUpLearnset,
+ [SPECIES_PERSIAN] = sPersianLevelUpLearnset,
+ [SPECIES_PSYDUCK] = sPsyduckLevelUpLearnset,
+ [SPECIES_GOLDUCK] = sGolduckLevelUpLearnset,
+ [SPECIES_MANKEY] = sMankeyLevelUpLearnset,
+ [SPECIES_PRIMEAPE] = sPrimeapeLevelUpLearnset,
+ [SPECIES_GROWLITHE] = sGrowlitheLevelUpLearnset,
+ [SPECIES_ARCANINE] = sArcanineLevelUpLearnset,
+ [SPECIES_POLIWAG] = sPoliwagLevelUpLearnset,
+ [SPECIES_POLIWHIRL] = sPoliwhirlLevelUpLearnset,
+ [SPECIES_POLIWRATH] = sPoliwrathLevelUpLearnset,
+ [SPECIES_ABRA] = sAbraLevelUpLearnset,
+ [SPECIES_KADABRA] = sKadabraLevelUpLearnset,
+ [SPECIES_ALAKAZAM] = sAlakazamLevelUpLearnset,
+ [SPECIES_MACHOP] = sMachopLevelUpLearnset,
+ [SPECIES_MACHOKE] = sMachokeLevelUpLearnset,
+ [SPECIES_MACHAMP] = sMachampLevelUpLearnset,
+ [SPECIES_BELLSPROUT] = sBellsproutLevelUpLearnset,
+ [SPECIES_WEEPINBELL] = sWeepinbellLevelUpLearnset,
+ [SPECIES_VICTREEBEL] = sVictreebelLevelUpLearnset,
+ [SPECIES_TENTACOOL] = sTentacoolLevelUpLearnset,
+ [SPECIES_TENTACRUEL] = sTentacruelLevelUpLearnset,
+ [SPECIES_GEODUDE] = sGeodudeLevelUpLearnset,
+ [SPECIES_GRAVELER] = sGravelerLevelUpLearnset,
+ [SPECIES_GOLEM] = sGolemLevelUpLearnset,
+ [SPECIES_PONYTA] = sPonytaLevelUpLearnset,
+ [SPECIES_RAPIDASH] = sRapidashLevelUpLearnset,
+ [SPECIES_SLOWPOKE] = sSlowpokeLevelUpLearnset,
+ [SPECIES_SLOWBRO] = sSlowbroLevelUpLearnset,
+ [SPECIES_MAGNEMITE] = sMagnemiteLevelUpLearnset,
+ [SPECIES_MAGNETON] = sMagnetonLevelUpLearnset,
+ [SPECIES_FARFETCHD] = sFarfetchdLevelUpLearnset,
+ [SPECIES_DODUO] = sDoduoLevelUpLearnset,
+ [SPECIES_DODRIO] = sDodrioLevelUpLearnset,
+ [SPECIES_SEEL] = sSeelLevelUpLearnset,
+ [SPECIES_DEWGONG] = sDewgongLevelUpLearnset,
+ [SPECIES_GRIMER] = sGrimerLevelUpLearnset,
+ [SPECIES_MUK] = sMukLevelUpLearnset,
+ [SPECIES_SHELLDER] = sShellderLevelUpLearnset,
+ [SPECIES_CLOYSTER] = sCloysterLevelUpLearnset,
+ [SPECIES_GASTLY] = sGastlyLevelUpLearnset,
+ [SPECIES_HAUNTER] = sHaunterLevelUpLearnset,
+ [SPECIES_GENGAR] = sGengarLevelUpLearnset,
+ [SPECIES_ONIX] = sOnixLevelUpLearnset,
+ [SPECIES_DROWZEE] = sDrowzeeLevelUpLearnset,
+ [SPECIES_HYPNO] = sHypnoLevelUpLearnset,
+ [SPECIES_KRABBY] = sKrabbyLevelUpLearnset,
+ [SPECIES_KINGLER] = sKinglerLevelUpLearnset,
+ [SPECIES_VOLTORB] = sVoltorbLevelUpLearnset,
+ [SPECIES_ELECTRODE] = sElectrodeLevelUpLearnset,
+ [SPECIES_EXEGGCUTE] = sExeggcuteLevelUpLearnset,
+ [SPECIES_EXEGGUTOR] = sExeggutorLevelUpLearnset,
+ [SPECIES_CUBONE] = sCuboneLevelUpLearnset,
+ [SPECIES_MAROWAK] = sMarowakLevelUpLearnset,
+ [SPECIES_HITMONLEE] = sHitmonleeLevelUpLearnset,
+ [SPECIES_HITMONCHAN] = sHitmonchanLevelUpLearnset,
+ [SPECIES_LICKITUNG] = sLickitungLevelUpLearnset,
+ [SPECIES_KOFFING] = sKoffingLevelUpLearnset,
+ [SPECIES_WEEZING] = sWeezingLevelUpLearnset,
+ [SPECIES_RHYHORN] = sRhyhornLevelUpLearnset,
+ [SPECIES_RHYDON] = sRhydonLevelUpLearnset,
+ [SPECIES_CHANSEY] = sChanseyLevelUpLearnset,
+ [SPECIES_TANGELA] = sTangelaLevelUpLearnset,
+ [SPECIES_KANGASKHAN] = sKangaskhanLevelUpLearnset,
+ [SPECIES_HORSEA] = sHorseaLevelUpLearnset,
+ [SPECIES_SEADRA] = sSeadraLevelUpLearnset,
+ [SPECIES_GOLDEEN] = sGoldeenLevelUpLearnset,
+ [SPECIES_SEAKING] = sSeakingLevelUpLearnset,
+ [SPECIES_STARYU] = sStaryuLevelUpLearnset,
+ [SPECIES_STARMIE] = sStarmieLevelUpLearnset,
+ [SPECIES_MR_MIME] = sMrmimeLevelUpLearnset,
+ [SPECIES_SCYTHER] = sScytherLevelUpLearnset,
+ [SPECIES_JYNX] = sJynxLevelUpLearnset,
+ [SPECIES_ELECTABUZZ] = sElectabuzzLevelUpLearnset,
+ [SPECIES_MAGMAR] = sMagmarLevelUpLearnset,
+ [SPECIES_PINSIR] = sPinsirLevelUpLearnset,
+ [SPECIES_TAUROS] = sTaurosLevelUpLearnset,
+ [SPECIES_MAGIKARP] = sMagikarpLevelUpLearnset,
+ [SPECIES_GYARADOS] = sGyaradosLevelUpLearnset,
+ [SPECIES_LAPRAS] = sLaprasLevelUpLearnset,
+ [SPECIES_DITTO] = sDittoLevelUpLearnset,
+ [SPECIES_EEVEE] = sEeveeLevelUpLearnset,
+ [SPECIES_VAPOREON] = sVaporeonLevelUpLearnset,
+ [SPECIES_JOLTEON] = sJolteonLevelUpLearnset,
+ [SPECIES_FLAREON] = sFlareonLevelUpLearnset,
+ [SPECIES_PORYGON] = sPorygonLevelUpLearnset,
+ [SPECIES_OMANYTE] = sOmanyteLevelUpLearnset,
+ [SPECIES_OMASTAR] = sOmastarLevelUpLearnset,
+ [SPECIES_KABUTO] = sKabutoLevelUpLearnset,
+ [SPECIES_KABUTOPS] = sKabutopsLevelUpLearnset,
+ [SPECIES_AERODACTYL] = sAerodactylLevelUpLearnset,
+ [SPECIES_SNORLAX] = sSnorlaxLevelUpLearnset,
+ [SPECIES_ARTICUNO] = sArticunoLevelUpLearnset,
+ [SPECIES_ZAPDOS] = sZapdosLevelUpLearnset,
+ [SPECIES_MOLTRES] = sMoltresLevelUpLearnset,
+ [SPECIES_DRATINI] = sDratiniLevelUpLearnset,
+ [SPECIES_DRAGONAIR] = sDragonairLevelUpLearnset,
+ [SPECIES_DRAGONITE] = sDragoniteLevelUpLearnset,
+ [SPECIES_MEWTWO] = sMewtwoLevelUpLearnset,
+ [SPECIES_MEW] = sMewLevelUpLearnset,
+ [SPECIES_CHIKORITA] = sChikoritaLevelUpLearnset,
+ [SPECIES_BAYLEEF] = sBayleefLevelUpLearnset,
+ [SPECIES_MEGANIUM] = sMeganiumLevelUpLearnset,
+ [SPECIES_CYNDAQUIL] = sCyndaquilLevelUpLearnset,
+ [SPECIES_QUILAVA] = sQuilavaLevelUpLearnset,
+ [SPECIES_TYPHLOSION] = sTyphlosionLevelUpLearnset,
+ [SPECIES_TOTODILE] = sTotodileLevelUpLearnset,
+ [SPECIES_CROCONAW] = sCroconawLevelUpLearnset,
+ [SPECIES_FERALIGATR] = sFeraligatrLevelUpLearnset,
+ [SPECIES_SENTRET] = sSentretLevelUpLearnset,
+ [SPECIES_FURRET] = sFurretLevelUpLearnset,
+ [SPECIES_HOOTHOOT] = sHoothootLevelUpLearnset,
+ [SPECIES_NOCTOWL] = sNoctowlLevelUpLearnset,
+ [SPECIES_LEDYBA] = sLedybaLevelUpLearnset,
+ [SPECIES_LEDIAN] = sLedianLevelUpLearnset,
+ [SPECIES_SPINARAK] = sSpinarakLevelUpLearnset,
+ [SPECIES_ARIADOS] = sAriadosLevelUpLearnset,
+ [SPECIES_CROBAT] = sCrobatLevelUpLearnset,
+ [SPECIES_CHINCHOU] = sChinchouLevelUpLearnset,
+ [SPECIES_LANTURN] = sLanturnLevelUpLearnset,
+ [SPECIES_PICHU] = sPichuLevelUpLearnset,
+ [SPECIES_CLEFFA] = sCleffaLevelUpLearnset,
+ [SPECIES_IGGLYBUFF] = sIgglybuffLevelUpLearnset,
+ [SPECIES_TOGEPI] = sTogepiLevelUpLearnset,
+ [SPECIES_TOGETIC] = sTogeticLevelUpLearnset,
+ [SPECIES_NATU] = sNatuLevelUpLearnset,
+ [SPECIES_XATU] = sXatuLevelUpLearnset,
+ [SPECIES_MAREEP] = sMareepLevelUpLearnset,
+ [SPECIES_FLAAFFY] = sFlaaffyLevelUpLearnset,
+ [SPECIES_AMPHAROS] = sAmpharosLevelUpLearnset,
+ [SPECIES_BELLOSSOM] = sBellossomLevelUpLearnset,
+ [SPECIES_MARILL] = sMarillLevelUpLearnset,
+ [SPECIES_AZUMARILL] = sAzumarillLevelUpLearnset,
+ [SPECIES_SUDOWOODO] = sSudowoodoLevelUpLearnset,
+ [SPECIES_POLITOED] = sPolitoedLevelUpLearnset,
+ [SPECIES_HOPPIP] = sHoppipLevelUpLearnset,
+ [SPECIES_SKIPLOOM] = sSkiploomLevelUpLearnset,
+ [SPECIES_JUMPLUFF] = sJumpluffLevelUpLearnset,
+ [SPECIES_AIPOM] = sAipomLevelUpLearnset,
+ [SPECIES_SUNKERN] = sSunkernLevelUpLearnset,
+ [SPECIES_SUNFLORA] = sSunfloraLevelUpLearnset,
+ [SPECIES_YANMA] = sYanmaLevelUpLearnset,
+ [SPECIES_WOOPER] = sWooperLevelUpLearnset,
+ [SPECIES_QUAGSIRE] = sQuagsireLevelUpLearnset,
+ [SPECIES_ESPEON] = sEspeonLevelUpLearnset,
+ [SPECIES_UMBREON] = sUmbreonLevelUpLearnset,
+ [SPECIES_MURKROW] = sMurkrowLevelUpLearnset,
+ [SPECIES_SLOWKING] = sSlowkingLevelUpLearnset,
+ [SPECIES_MISDREAVUS] = sMisdreavusLevelUpLearnset,
+ [SPECIES_UNOWN] = sUnownLevelUpLearnset,
+ [SPECIES_WOBBUFFET] = sWobbuffetLevelUpLearnset,
+ [SPECIES_GIRAFARIG] = sGirafarigLevelUpLearnset,
+ [SPECIES_PINECO] = sPinecoLevelUpLearnset,
+ [SPECIES_FORRETRESS] = sForretressLevelUpLearnset,
+ [SPECIES_DUNSPARCE] = sDunsparceLevelUpLearnset,
+ [SPECIES_GLIGAR] = sGligarLevelUpLearnset,
+ [SPECIES_STEELIX] = sSteelixLevelUpLearnset,
+ [SPECIES_SNUBBULL] = sSnubbullLevelUpLearnset,
+ [SPECIES_GRANBULL] = sGranbullLevelUpLearnset,
+ [SPECIES_QWILFISH] = sQwilfishLevelUpLearnset,
+ [SPECIES_SCIZOR] = sScizorLevelUpLearnset,
+ [SPECIES_SHUCKLE] = sShuckleLevelUpLearnset,
+ [SPECIES_HERACROSS] = sHeracrossLevelUpLearnset,
+ [SPECIES_SNEASEL] = sSneaselLevelUpLearnset,
+ [SPECIES_TEDDIURSA] = sTeddiursaLevelUpLearnset,
+ [SPECIES_URSARING] = sUrsaringLevelUpLearnset,
+ [SPECIES_SLUGMA] = sSlugmaLevelUpLearnset,
+ [SPECIES_MAGCARGO] = sMagcargoLevelUpLearnset,
+ [SPECIES_SWINUB] = sSwinubLevelUpLearnset,
+ [SPECIES_PILOSWINE] = sPiloswineLevelUpLearnset,
+ [SPECIES_CORSOLA] = sCorsolaLevelUpLearnset,
+ [SPECIES_REMORAID] = sRemoraidLevelUpLearnset,
+ [SPECIES_OCTILLERY] = sOctilleryLevelUpLearnset,
+ [SPECIES_DELIBIRD] = sDelibirdLevelUpLearnset,
+ [SPECIES_MANTINE] = sMantineLevelUpLearnset,
+ [SPECIES_SKARMORY] = sSkarmoryLevelUpLearnset,
+ [SPECIES_HOUNDOUR] = sHoundourLevelUpLearnset,
+ [SPECIES_HOUNDOOM] = sHoundoomLevelUpLearnset,
+ [SPECIES_KINGDRA] = sKingdraLevelUpLearnset,
+ [SPECIES_PHANPY] = sPhanpyLevelUpLearnset,
+ [SPECIES_DONPHAN] = sDonphanLevelUpLearnset,
+ [SPECIES_PORYGON2] = sPorygon2LevelUpLearnset,
+ [SPECIES_STANTLER] = sStantlerLevelUpLearnset,
+ [SPECIES_SMEARGLE] = sSmeargleLevelUpLearnset,
+ [SPECIES_TYROGUE] = sTyrogueLevelUpLearnset,
+ [SPECIES_HITMONTOP] = sHitmontopLevelUpLearnset,
+ [SPECIES_SMOOCHUM] = sSmoochumLevelUpLearnset,
+ [SPECIES_ELEKID] = sElekidLevelUpLearnset,
+ [SPECIES_MAGBY] = sMagbyLevelUpLearnset,
+ [SPECIES_MILTANK] = sMiltankLevelUpLearnset,
+ [SPECIES_BLISSEY] = sBlisseyLevelUpLearnset,
+ [SPECIES_RAIKOU] = sRaikouLevelUpLearnset,
+ [SPECIES_ENTEI] = sEnteiLevelUpLearnset,
+ [SPECIES_SUICUNE] = sSuicuneLevelUpLearnset,
+ [SPECIES_LARVITAR] = sLarvitarLevelUpLearnset,
+ [SPECIES_PUPITAR] = sPupitarLevelUpLearnset,
+ [SPECIES_TYRANITAR] = sTyranitarLevelUpLearnset,
+ [SPECIES_LUGIA] = sLugiaLevelUpLearnset,
+ [SPECIES_HO_OH] = sHoOhLevelUpLearnset,
+ [SPECIES_CELEBI] = sCelebiLevelUpLearnset,
+ [SPECIES_OLD_UNOWN_B] = sSpecies252LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_C] = sSpecies253LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_D] = sSpecies254LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_E] = sSpecies255LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_F] = sSpecies256LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_G] = sSpecies257LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_H] = sSpecies258LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_I] = sSpecies259LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_J] = sSpecies260LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_K] = sSpecies261LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_L] = sSpecies262LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_M] = sSpecies263LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_N] = sSpecies264LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_O] = sSpecies265LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_P] = sSpecies266LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_Q] = sSpecies267LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_R] = sSpecies268LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_S] = sSpecies269LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_T] = sSpecies270LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_U] = sSpecies271LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_V] = sSpecies272LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_W] = sSpecies273LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_X] = sSpecies274LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_Y] = sSpecies275LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_Z] = sSpecies276LevelUpLearnset,
+ [SPECIES_TREECKO] = sTreeckoLevelUpLearnset,
+ [SPECIES_GROVYLE] = sGrovyleLevelUpLearnset,
+ [SPECIES_SCEPTILE] = sSceptileLevelUpLearnset,
+ [SPECIES_TORCHIC] = sTorchicLevelUpLearnset,
+ [SPECIES_COMBUSKEN] = sCombuskenLevelUpLearnset,
+ [SPECIES_BLAZIKEN] = sBlazikenLevelUpLearnset,
+ [SPECIES_MUDKIP] = sMudkipLevelUpLearnset,
+ [SPECIES_MARSHTOMP] = sMarshtompLevelUpLearnset,
+ [SPECIES_SWAMPERT] = sSwampertLevelUpLearnset,
+ [SPECIES_POOCHYENA] = sPoochyenaLevelUpLearnset,
+ [SPECIES_MIGHTYENA] = sMightyenaLevelUpLearnset,
+ [SPECIES_ZIGZAGOON] = sZigzagoonLevelUpLearnset,
+ [SPECIES_LINOONE] = sLinooneLevelUpLearnset,
+ [SPECIES_WURMPLE] = sWurmpleLevelUpLearnset,
+ [SPECIES_SILCOON] = sSilcoonLevelUpLearnset,
+ [SPECIES_BEAUTIFLY] = sBeautiflyLevelUpLearnset,
+ [SPECIES_CASCOON] = sCascoonLevelUpLearnset,
+ [SPECIES_DUSTOX] = sDustoxLevelUpLearnset,
+ [SPECIES_LOTAD] = sLotadLevelUpLearnset,
+ [SPECIES_LOMBRE] = sLombreLevelUpLearnset,
+ [SPECIES_LUDICOLO] = sLudicoloLevelUpLearnset,
+ [SPECIES_SEEDOT] = sSeedotLevelUpLearnset,
+ [SPECIES_NUZLEAF] = sNuzleafLevelUpLearnset,
+ [SPECIES_SHIFTRY] = sShiftryLevelUpLearnset,
+ [SPECIES_NINCADA] = sNincadaLevelUpLearnset,
+ [SPECIES_NINJASK] = sNinjaskLevelUpLearnset,
+ [SPECIES_SHEDINJA] = sShedinjaLevelUpLearnset,
+ [SPECIES_TAILLOW] = sTaillowLevelUpLearnset,
+ [SPECIES_SWELLOW] = sSwellowLevelUpLearnset,
+ [SPECIES_SHROOMISH] = sShroomishLevelUpLearnset,
+ [SPECIES_BRELOOM] = sBreloomLevelUpLearnset,
+ [SPECIES_SPINDA] = sSpindaLevelUpLearnset,
+ [SPECIES_WINGULL] = sWingullLevelUpLearnset,
+ [SPECIES_PELIPPER] = sPelipperLevelUpLearnset,
+ [SPECIES_SURSKIT] = sSurskitLevelUpLearnset,
+ [SPECIES_MASQUERAIN] = sMasquerainLevelUpLearnset,
+ [SPECIES_WAILMER] = sWailmerLevelUpLearnset,
+ [SPECIES_WAILORD] = sWailordLevelUpLearnset,
+ [SPECIES_SKITTY] = sSkittyLevelUpLearnset,
+ [SPECIES_DELCATTY] = sDelcattyLevelUpLearnset,
+ [SPECIES_KECLEON] = sKecleonLevelUpLearnset,
+ [SPECIES_BALTOY] = sBaltoyLevelUpLearnset,
+ [SPECIES_CLAYDOL] = sClaydolLevelUpLearnset,
+ [SPECIES_NOSEPASS] = sNosepassLevelUpLearnset,
+ [SPECIES_TORKOAL] = sTorkoalLevelUpLearnset,
+ [SPECIES_SABLEYE] = sSableyeLevelUpLearnset,
+ [SPECIES_BARBOACH] = sBarboachLevelUpLearnset,
+ [SPECIES_WHISCASH] = sWhiscashLevelUpLearnset,
+ [SPECIES_LUVDISC] = sLuvdiscLevelUpLearnset,
+ [SPECIES_CORPHISH] = sCorphishLevelUpLearnset,
+ [SPECIES_CRAWDAUNT] = sCrawdauntLevelUpLearnset,
+ [SPECIES_FEEBAS] = sFeebasLevelUpLearnset,
+ [SPECIES_MILOTIC] = sMiloticLevelUpLearnset,
+ [SPECIES_CARVANHA] = sCarvanhaLevelUpLearnset,
+ [SPECIES_SHARPEDO] = sSharpedoLevelUpLearnset,
+ [SPECIES_TRAPINCH] = sTrapinchLevelUpLearnset,
+ [SPECIES_VIBRAVA] = sVibravaLevelUpLearnset,
+ [SPECIES_FLYGON] = sFlygonLevelUpLearnset,
+ [SPECIES_MAKUHITA] = sMakuhitaLevelUpLearnset,
+ [SPECIES_HARIYAMA] = sHariyamaLevelUpLearnset,
+ [SPECIES_ELECTRIKE] = sElectrikeLevelUpLearnset,
+ [SPECIES_MANECTRIC] = sManectricLevelUpLearnset,
+ [SPECIES_NUMEL] = sNumelLevelUpLearnset,
+ [SPECIES_CAMERUPT] = sCameruptLevelUpLearnset,
+ [SPECIES_SPHEAL] = sSphealLevelUpLearnset,
+ [SPECIES_SEALEO] = sSealeoLevelUpLearnset,
+ [SPECIES_WALREIN] = sWalreinLevelUpLearnset,
+ [SPECIES_CACNEA] = sCacneaLevelUpLearnset,
+ [SPECIES_CACTURNE] = sCacturneLevelUpLearnset,
+ [SPECIES_SNORUNT] = sSnoruntLevelUpLearnset,
+ [SPECIES_GLALIE] = sGlalieLevelUpLearnset,
+ [SPECIES_LUNATONE] = sLunatoneLevelUpLearnset,
+ [SPECIES_SOLROCK] = sSolrockLevelUpLearnset,
+ [SPECIES_AZURILL] = sAzurillLevelUpLearnset,
+ [SPECIES_SPOINK] = sSpoinkLevelUpLearnset,
+ [SPECIES_GRUMPIG] = sGrumpigLevelUpLearnset,
+ [SPECIES_PLUSLE] = sPlusleLevelUpLearnset,
+ [SPECIES_MINUN] = sMinunLevelUpLearnset,
+ [SPECIES_MAWILE] = sMawileLevelUpLearnset,
+ [SPECIES_MEDITITE] = sMedititeLevelUpLearnset,
+ [SPECIES_MEDICHAM] = sMedichamLevelUpLearnset,
+ [SPECIES_SWABLU] = sSwabluLevelUpLearnset,
+ [SPECIES_ALTARIA] = sAltariaLevelUpLearnset,
+ [SPECIES_WYNAUT] = sWynautLevelUpLearnset,
+ [SPECIES_DUSKULL] = sDuskullLevelUpLearnset,
+ [SPECIES_DUSCLOPS] = sDusclopsLevelUpLearnset,
+ [SPECIES_ROSELIA] = sRoseliaLevelUpLearnset,
+ [SPECIES_SLAKOTH] = sSlakothLevelUpLearnset,
+ [SPECIES_VIGOROTH] = sVigorothLevelUpLearnset,
+ [SPECIES_SLAKING] = sSlakingLevelUpLearnset,
+ [SPECIES_GULPIN] = sGulpinLevelUpLearnset,
+ [SPECIES_SWALOT] = sSwalotLevelUpLearnset,
+ [SPECIES_TROPIUS] = sTropiusLevelUpLearnset,
+ [SPECIES_WHISMUR] = sWhismurLevelUpLearnset,
+ [SPECIES_LOUDRED] = sLoudredLevelUpLearnset,
+ [SPECIES_EXPLOUD] = sExploudLevelUpLearnset,
+ [SPECIES_CLAMPERL] = sClamperlLevelUpLearnset,
+ [SPECIES_HUNTAIL] = sHuntailLevelUpLearnset,
+ [SPECIES_GOREBYSS] = sGorebyssLevelUpLearnset,
+ [SPECIES_ABSOL] = sAbsolLevelUpLearnset,
+ [SPECIES_SHUPPET] = sShuppetLevelUpLearnset,
+ [SPECIES_BANETTE] = sBanetteLevelUpLearnset,
+ [SPECIES_SEVIPER] = sSeviperLevelUpLearnset,
+ [SPECIES_ZANGOOSE] = sZangooseLevelUpLearnset,
+ [SPECIES_RELICANTH] = sRelicanthLevelUpLearnset,
+ [SPECIES_ARON] = sAronLevelUpLearnset,
+ [SPECIES_LAIRON] = sLaironLevelUpLearnset,
+ [SPECIES_AGGRON] = sAggronLevelUpLearnset,
+ [SPECIES_CASTFORM] = sCastformLevelUpLearnset,
+ [SPECIES_VOLBEAT] = sVolbeatLevelUpLearnset,
+ [SPECIES_ILLUMISE] = sIllumiseLevelUpLearnset,
+ [SPECIES_LILEEP] = sLileepLevelUpLearnset,
+ [SPECIES_CRADILY] = sCradilyLevelUpLearnset,
+ [SPECIES_ANORITH] = sAnorithLevelUpLearnset,
+ [SPECIES_ARMALDO] = sArmaldoLevelUpLearnset,
+ [SPECIES_RALTS] = sRaltsLevelUpLearnset,
+ [SPECIES_KIRLIA] = sKirliaLevelUpLearnset,
+ [SPECIES_GARDEVOIR] = sGardevoirLevelUpLearnset,
+ [SPECIES_BAGON] = sBagonLevelUpLearnset,
+ [SPECIES_SHELGON] = sShelgonLevelUpLearnset,
+ [SPECIES_SALAMENCE] = sSalamenceLevelUpLearnset,
+ [SPECIES_BELDUM] = sBeldumLevelUpLearnset,
+ [SPECIES_METANG] = sMetangLevelUpLearnset,
+ [SPECIES_METAGROSS] = sMetagrossLevelUpLearnset,
+ [SPECIES_REGIROCK] = sRegirockLevelUpLearnset,
+ [SPECIES_REGICE] = sRegiceLevelUpLearnset,
+ [SPECIES_REGISTEEL] = sRegisteelLevelUpLearnset,
+ [SPECIES_KYOGRE] = sKyogreLevelUpLearnset,
+ [SPECIES_GROUDON] = sGroudonLevelUpLearnset,
+ [SPECIES_RAYQUAZA] = sRayquazaLevelUpLearnset,
+ [SPECIES_LATIAS] = sLatiasLevelUpLearnset,
+ [SPECIES_LATIOS] = sLatiosLevelUpLearnset,
+ [SPECIES_JIRACHI] = sJirachiLevelUpLearnset,
+ [SPECIES_DEOXYS] = sDeoxysLevelUpLearnset,
+ [SPECIES_CHIMECHO] = sChimechoLevelUpLearnset,
};
#endif //POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
diff --git a/include/data/pokemon/level_up_learnsets.h b/include/data/pokemon/level_up_learnsets.h
index 4035dc66a..062873aee 100644
--- a/include/data/pokemon/level_up_learnsets.h
+++ b/include/data/pokemon/level_up_learnsets.h
@@ -4,7 +4,7 @@
#define LEVEL_UP_MOVE(lvl, move) ((lvl << 9) | move)
#define LEVEL_UP_END 0xffff
-const u16 gBulbasaurLevelUpLearnset[] = {
+static const u16 sBulbasaurLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
@@ -19,7 +19,7 @@ const u16 gBulbasaurLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gIvysaurLevelUpLearnset[] = {
+static const u16 sIvysaurLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
@@ -36,7 +36,7 @@ const u16 gIvysaurLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVenusaurLevelUpLearnset[] = {
+static const u16 sVenusaurLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
@@ -54,7 +54,7 @@ const u16 gVenusaurLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCharmanderLevelUpLearnset[] = {
+static const u16 sCharmanderLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_EMBER),
@@ -68,7 +68,7 @@ const u16 gCharmanderLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCharmeleonLevelUpLearnset[] = {
+static const u16 sCharmeleonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
@@ -83,7 +83,7 @@ const u16 gCharmeleonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCharizardLevelUpLearnset[] = {
+static const u16 sCharizardLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
@@ -100,7 +100,7 @@ const u16 gCharizardLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSquirtleLevelUpLearnset[] = {
+static const u16 sSquirtleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
@@ -115,7 +115,7 @@ const u16 gSquirtleLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWartortleLevelUpLearnset[] = {
+static const u16 sWartortleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
@@ -132,7 +132,7 @@ const u16 gWartortleLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBlastoiseLevelUpLearnset[] = {
+static const u16 sBlastoiseLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
@@ -150,19 +150,19 @@ const u16 gBlastoiseLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCaterpieLevelUpLearnset[] = {
+static const u16 sCaterpieLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
LEVEL_UP_END
};
-const u16 gMetapodLevelUpLearnset[] = {
+static const u16 sMetapodLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_END
};
-const u16 gButterfreeLevelUpLearnset[] = {
+static const u16 sButterfreeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE(10, MOVE_CONFUSION),
LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
@@ -177,19 +177,19 @@ const u16 gButterfreeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWeedleLevelUpLearnset[] = {
+static const u16 sWeedleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
LEVEL_UP_END
};
-const u16 gKakunaLevelUpLearnset[] = {
+static const u16 sKakunaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_END
};
-const u16 gBeedrillLevelUpLearnset[] = {
+static const u16 sBeedrillLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK),
LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
@@ -202,7 +202,7 @@ const u16 gBeedrillLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPidgeyLevelUpLearnset[] = {
+static const u16 sPidgeyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE( 9, MOVE_GUST),
@@ -215,7 +215,7 @@ const u16 gPidgeyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPidgeottoLevelUpLearnset[] = {
+static const u16 sPidgeottoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_GUST),
@@ -230,7 +230,7 @@ const u16 gPidgeottoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPidgeotLevelUpLearnset[] = {
+static const u16 sPidgeotLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_GUST),
@@ -246,7 +246,7 @@ const u16 gPidgeotLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRattataLevelUpLearnset[] = {
+static const u16 sRattataLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
@@ -258,7 +258,7 @@ const u16 gRattataLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRaticateLevelUpLearnset[] = {
+static const u16 sRaticateLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
@@ -271,7 +271,7 @@ const u16 gRaticateLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSpearowLevelUpLearnset[] = {
+static const u16 sSpearowLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_LEER),
@@ -284,7 +284,7 @@ const u16 gSpearowLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFearowLevelUpLearnset[] = {
+static const u16 sFearowLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_LEER),
@@ -298,7 +298,7 @@ const u16 gFearowLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gEkansLevelUpLearnset[] = {
+static const u16 sEkansLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 8, MOVE_POISON_STING),
@@ -313,7 +313,7 @@ const u16 gEkansLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gArbokLevelUpLearnset[] = {
+static const u16 sArbokLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
@@ -330,7 +330,7 @@ const u16 gArbokLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPikachuLevelUpLearnset[] = {
+static const u16 sPikachuLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
@@ -345,7 +345,7 @@ const u16 gPikachuLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRaichuLevelUpLearnset[] = {
+static const u16 sRaichuLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
@@ -353,7 +353,7 @@ const u16 gRaichuLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSandshrewLevelUpLearnset[] = {
+static const u16 sSandshrewLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK),
@@ -366,7 +366,7 @@ const u16 gSandshrewLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSandslashLevelUpLearnset[] = {
+static const u16 sSandslashLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
@@ -381,7 +381,7 @@ const u16 gSandslashLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNidoranFLevelUpLearnset[] = {
+static const u16 sNidoranFLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP),
@@ -395,7 +395,7 @@ const u16 gNidoranFLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNidorinaLevelUpLearnset[] = {
+static const u16 sNidorinaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP),
@@ -409,7 +409,7 @@ const u16 gNidorinaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNidoqueenLevelUpLearnset[] = {
+static const u16 sNidoqueenLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
@@ -418,7 +418,7 @@ const u16 gNidoqueenLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNidoranMLevelUpLearnset[] = {
+static const u16 sNidoranMLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
@@ -432,7 +432,7 @@ const u16 gNidoranMLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNidorinoLevelUpLearnset[] = {
+static const u16 sNidorinoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
@@ -446,7 +446,7 @@ const u16 gNidorinoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNidokingLevelUpLearnset[] = {
+static const u16 sNidokingLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
@@ -455,7 +455,7 @@ const u16 gNidokingLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gClefairyLevelUpLearnset[] = {
+static const u16 sClefairyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 5, MOVE_ENCORE),
@@ -472,7 +472,7 @@ const u16 gClefairyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gClefableLevelUpLearnset[] = {
+static const u16 sClefableLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SING),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
@@ -480,7 +480,7 @@ const u16 gClefableLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVulpixLevelUpLearnset[] = {
+static const u16 sVulpixLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 9, MOVE_ROAR),
@@ -495,7 +495,7 @@ const u16 gVulpixLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNinetalesLevelUpLearnset[] = {
+static const u16 sNinetalesLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
@@ -504,7 +504,7 @@ const u16 gNinetalesLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gJigglypuffLevelUpLearnset[] = {
+static const u16 sJigglypuffLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SING),
LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 9, MOVE_POUND),
@@ -519,7 +519,7 @@ const u16 gJigglypuffLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWigglytuffLevelUpLearnset[] = {
+static const u16 sWigglytuffLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SING),
LEVEL_UP_MOVE( 1, MOVE_DISABLE),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
@@ -527,7 +527,7 @@ const u16 gWigglytuffLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gZubatLevelUpLearnset[] = {
+static const u16 sZubatLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
LEVEL_UP_MOVE(11, MOVE_ASTONISH),
@@ -541,7 +541,7 @@ const u16 gZubatLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGolbatLevelUpLearnset[] = {
+static const u16 sGolbatLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCREECH),
LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
@@ -558,7 +558,7 @@ const u16 gGolbatLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gOddishLevelUpLearnset[] = {
+static const u16 sOddishLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT),
LEVEL_UP_MOVE(14, MOVE_POISON_POWDER),
@@ -570,7 +570,7 @@ const u16 gOddishLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGloomLevelUpLearnset[] = {
+static const u16 sGloomLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
@@ -584,7 +584,7 @@ const u16 gGloomLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVileplumeLevelUpLearnset[] = {
+static const u16 sVileplumeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
@@ -593,7 +593,7 @@ const u16 gVileplumeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gParasLevelUpLearnset[] = {
+static const u16 sParasLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
@@ -606,7 +606,7 @@ const u16 gParasLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gParasectLevelUpLearnset[] = {
+static const u16 sParasectLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
@@ -621,7 +621,7 @@ const u16 gParasectLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVenonatLevelUpLearnset[] = {
+static const u16 sVenonatLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_DISABLE),
LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
@@ -636,7 +636,7 @@ const u16 gVenonatLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVenomothLevelUpLearnset[] = {
+static const u16 sVenomothLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SILVER_WIND),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_DISABLE),
@@ -654,7 +654,7 @@ const u16 gVenomothLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDiglettLevelUpLearnset[] = {
+static const u16 sDiglettLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE( 5, MOVE_GROWL),
@@ -667,7 +667,7 @@ const u16 gDiglettLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDugtrioLevelUpLearnset[] = {
+static const u16 sDugtrioLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
@@ -683,7 +683,7 @@ const u16 gDugtrioLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMeowthLevelUpLearnset[] = {
+static const u16 sMeowthLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE(11, MOVE_BITE),
@@ -696,7 +696,7 @@ const u16 gMeowthLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPersianLevelUpLearnset[] = {
+static const u16 sPersianLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_BITE),
@@ -710,7 +710,7 @@ const u16 gPersianLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPsyduckLevelUpLearnset[] = {
+static const u16 sPsyduckLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
@@ -723,7 +723,7 @@ const u16 gPsyduckLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGolduckLevelUpLearnset[] = {
+static const u16 sGolduckLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
@@ -738,7 +738,7 @@ const u16 gGolduckLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMankeyLevelUpLearnset[] = {
+static const u16 sMankeyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 9, MOVE_LOW_KICK),
@@ -752,7 +752,7 @@ const u16 gMankeyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPrimeapeLevelUpLearnset[] = {
+static const u16 sPrimeapeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
@@ -769,7 +769,7 @@ const u16 gPrimeapeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGrowlitheLevelUpLearnset[] = {
+static const u16 sGrowlitheLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_ROAR),
LEVEL_UP_MOVE( 7, MOVE_EMBER),
@@ -783,7 +783,7 @@ const u16 gGrowlitheLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gArcanineLevelUpLearnset[] = {
+static const u16 sArcanineLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_ROAR),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
@@ -792,7 +792,7 @@ const u16 gArcanineLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPoliwagLevelUpLearnset[] = {
+static const u16 sPoliwagLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS),
LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
@@ -804,7 +804,7 @@ const u16 gPoliwagLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPoliwhirlLevelUpLearnset[] = {
+static const u16 sPoliwhirlLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
@@ -818,7 +818,7 @@ const u16 gPoliwhirlLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPoliwrathLevelUpLearnset[] = {
+static const u16 sPoliwrathLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
@@ -828,12 +828,12 @@ const u16 gPoliwrathLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAbraLevelUpLearnset[] = {
+static const u16 sAbraLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
LEVEL_UP_END
};
-const u16 gKadabraLevelUpLearnset[] = {
+static const u16 sKadabraLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
LEVEL_UP_MOVE( 1, MOVE_KINESIS),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
@@ -849,7 +849,7 @@ const u16 gKadabraLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAlakazamLevelUpLearnset[] = {
+static const u16 sAlakazamLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
LEVEL_UP_MOVE( 1, MOVE_KINESIS),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
@@ -865,7 +865,7 @@ const u16 gAlakazamLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMachopLevelUpLearnset[] = {
+static const u16 sMachopLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
@@ -881,7 +881,7 @@ const u16 gMachopLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMachokeLevelUpLearnset[] = {
+static const u16 sMachokeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
@@ -898,7 +898,7 @@ const u16 gMachokeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMachampLevelUpLearnset[] = {
+static const u16 sMachampLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
@@ -915,7 +915,7 @@ const u16 gMachampLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBellsproutLevelUpLearnset[] = {
+static const u16 sBellsproutLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
LEVEL_UP_MOVE( 6, MOVE_GROWTH),
LEVEL_UP_MOVE(11, MOVE_WRAP),
@@ -929,7 +929,7 @@ const u16 gBellsproutLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWeepinbellLevelUpLearnset[] = {
+static const u16 sWeepinbellLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
LEVEL_UP_MOVE( 1, MOVE_GROWTH),
LEVEL_UP_MOVE( 1, MOVE_WRAP),
@@ -945,7 +945,7 @@ const u16 gWeepinbellLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVictreebelLevelUpLearnset[] = {
+static const u16 sVictreebelLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER),
LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
@@ -953,7 +953,7 @@ const u16 gVictreebelLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTentacoolLevelUpLearnset[] = {
+static const u16 sTentacoolLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
LEVEL_UP_MOVE(12, MOVE_CONSTRICT),
@@ -966,7 +966,7 @@ const u16 gTentacoolLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTentacruelLevelUpLearnset[] = {
+static const u16 sTentacruelLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
@@ -981,7 +981,7 @@ const u16 gTentacruelLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGeodudeLevelUpLearnset[] = {
+static const u16 sGeodudeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
@@ -996,7 +996,7 @@ const u16 gGeodudeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGravelerLevelUpLearnset[] = {
+static const u16 sGravelerLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
@@ -1013,7 +1013,7 @@ const u16 gGravelerLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGolemLevelUpLearnset[] = {
+static const u16 sGolemLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
@@ -1030,7 +1030,7 @@ const u16 gGolemLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPonytaLevelUpLearnset[] = {
+static const u16 sPonytaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_GROWL),
LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
@@ -1044,7 +1044,7 @@ const u16 gPonytaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRapidashLevelUpLearnset[] = {
+static const u16 sRapidashLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
@@ -1062,7 +1062,7 @@ const u16 gRapidashLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSlowpokeLevelUpLearnset[] = {
+static const u16 sSlowpokeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CURSE),
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
@@ -1076,7 +1076,7 @@ const u16 gSlowpokeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSlowbroLevelUpLearnset[] = {
+static const u16 sSlowbroLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CURSE),
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
@@ -1092,7 +1092,7 @@ const u16 gSlowbroLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMagnemiteLevelUpLearnset[] = {
+static const u16 sMagnemiteLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK),
@@ -1107,7 +1107,7 @@ const u16 gMagnemiteLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMagnetonLevelUpLearnset[] = {
+static const u16 sMagnetonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
@@ -1124,7 +1124,7 @@ const u16 gMagnetonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFarfetchdLevelUpLearnset[] = {
+static const u16 sFarfetchdLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE(11, MOVE_LEER),
@@ -1138,7 +1138,7 @@ const u16 gFarfetchdLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDoduoLevelUpLearnset[] = {
+static const u16 sDoduoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 9, MOVE_PURSUIT),
@@ -1151,7 +1151,7 @@ const u16 gDoduoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDodrioLevelUpLearnset[] = {
+static const u16 sDodrioLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
@@ -1166,7 +1166,7 @@ const u16 gDodrioLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSeelLevelUpLearnset[] = {
+static const u16 sSeelLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
LEVEL_UP_MOVE( 9, MOVE_GROWL),
LEVEL_UP_MOVE(17, MOVE_ICY_WIND),
@@ -1178,7 +1178,7 @@ const u16 gSeelLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDewgongLevelUpLearnset[] = {
+static const u16 sDewgongLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
@@ -1194,7 +1194,7 @@ const u16 gDewgongLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGrimerLevelUpLearnset[] = {
+static const u16 sGrimerLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 4, MOVE_HARDEN),
@@ -1208,7 +1208,7 @@ const u16 gGrimerLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMukLevelUpLearnset[] = {
+static const u16 sMukLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
@@ -1223,7 +1223,7 @@ const u16 gMukLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShellderLevelUpLearnset[] = {
+static const u16 sShellderLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC),
@@ -1235,7 +1235,7 @@ const u16 gShellderLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCloysterLevelUpLearnset[] = {
+static const u16 sCloysterLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM),
@@ -1245,7 +1245,7 @@ const u16 gCloysterLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGastlyLevelUpLearnset[] = {
+static const u16 sGastlyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_LICK),
LEVEL_UP_MOVE( 8, MOVE_SPITE),
@@ -1258,7 +1258,7 @@ const u16 gGastlyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHaunterLevelUpLearnset[] = {
+static const u16 sHaunterLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_LICK),
LEVEL_UP_MOVE( 1, MOVE_SPITE),
@@ -1273,7 +1273,7 @@ const u16 gHaunterLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGengarLevelUpLearnset[] = {
+static const u16 sGengarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_LICK),
LEVEL_UP_MOVE( 1, MOVE_SPITE),
@@ -1288,7 +1288,7 @@ const u16 gGengarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gOnixLevelUpLearnset[] = {
+static const u16 sOnixLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SCREECH),
LEVEL_UP_MOVE( 9, MOVE_BIND),
@@ -1303,7 +1303,7 @@ const u16 gOnixLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDrowzeeLevelUpLearnset[] = {
+static const u16 sDrowzeeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE(10, MOVE_DISABLE),
@@ -1317,7 +1317,7 @@ const u16 gDrowzeeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHypnoLevelUpLearnset[] = {
+static const u16 sHypnoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_DISABLE),
@@ -1333,7 +1333,7 @@ const u16 gHypnoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKrabbyLevelUpLearnset[] = {
+static const u16 sKrabbyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 5, MOVE_LEER),
LEVEL_UP_MOVE(12, MOVE_VICE_GRIP),
@@ -1346,7 +1346,7 @@ const u16 gKrabbyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKinglerLevelUpLearnset[] = {
+static const u16 sKinglerLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
@@ -1361,7 +1361,7 @@ const u16 gKinglerLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVoltorbLevelUpLearnset[] = {
+static const u16 sVoltorbLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CHARGE),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 8, MOVE_SCREECH),
@@ -1376,7 +1376,7 @@ const u16 gVoltorbLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gElectrodeLevelUpLearnset[] = {
+static const u16 sElectrodeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CHARGE),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SCREECH),
@@ -1393,7 +1393,7 @@ const u16 gElectrodeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gExeggcuteLevelUpLearnset[] = {
+static const u16 sExeggcuteLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BARRAGE),
LEVEL_UP_MOVE( 1, MOVE_UPROAR),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
@@ -1407,7 +1407,7 @@ const u16 gExeggcuteLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gExeggutorLevelUpLearnset[] = {
+static const u16 sExeggutorLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BARRAGE),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
@@ -1416,7 +1416,7 @@ const u16 gExeggutorLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCuboneLevelUpLearnset[] = {
+static const u16 sCuboneLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB),
@@ -1432,7 +1432,7 @@ const u16 gCuboneLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMarowakLevelUpLearnset[] = {
+static const u16 sMarowakLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB),
@@ -1451,7 +1451,7 @@ const u16 gMarowakLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHitmonleeLevelUpLearnset[] = {
+static const u16 sHitmonleeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_REVENGE),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
LEVEL_UP_MOVE( 6, MOVE_MEDITATE),
@@ -1468,7 +1468,7 @@ const u16 gHitmonleeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHitmonchanLevelUpLearnset[] = {
+static const u16 sHitmonchanLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_REVENGE),
LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH),
LEVEL_UP_MOVE( 7, MOVE_AGILITY),
@@ -1484,7 +1484,7 @@ const u16 gHitmonchanLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLickitungLevelUpLearnset[] = {
+static const u16 sLickitungLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LICK),
LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
LEVEL_UP_MOVE(12, MOVE_DEFENSE_CURL),
@@ -1498,7 +1498,7 @@ const u16 gLickitungLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKoffingLevelUpLearnset[] = {
+static const u16 sKoffingLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 9, MOVE_SMOG),
@@ -1512,7 +1512,7 @@ const u16 gKoffingLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWeezingLevelUpLearnset[] = {
+static const u16 sWeezingLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SMOG),
@@ -1528,7 +1528,7 @@ const u16 gWeezingLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRhyhornLevelUpLearnset[] = {
+static const u16 sRhyhornLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE(10, MOVE_STOMP),
@@ -1542,7 +1542,7 @@ const u16 gRhyhornLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRhydonLevelUpLearnset[] = {
+static const u16 sRhydonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_STOMP),
@@ -1558,7 +1558,7 @@ const u16 gRhydonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gChanseyLevelUpLearnset[] = {
+static const u16 sChanseyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
@@ -1574,7 +1574,7 @@ const u16 gChanseyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTangelaLevelUpLearnset[] = {
+static const u16 sTangelaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER),
@@ -1590,7 +1590,7 @@ const u16 gTangelaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKangaskhanLevelUpLearnset[] = {
+static const u16 sKangaskhanLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 7, MOVE_BITE),
@@ -1604,7 +1604,7 @@ const u16 gKangaskhanLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHorseaLevelUpLearnset[] = {
+static const u16 sHorseaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
LEVEL_UP_MOVE(15, MOVE_LEER),
@@ -1616,7 +1616,7 @@ const u16 gHorseaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSeadraLevelUpLearnset[] = {
+static const u16 sSeadraLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
LEVEL_UP_MOVE( 1, MOVE_LEER),
@@ -1631,7 +1631,7 @@ const u16 gSeadraLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGoldeenLevelUpLearnset[] = {
+static const u16 sGoldeenLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
@@ -1645,7 +1645,7 @@ const u16 gGoldeenLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSeakingLevelUpLearnset[] = {
+static const u16 sSeakingLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
@@ -1660,7 +1660,7 @@ const u16 gSeakingLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gStaryuLevelUpLearnset[] = {
+static const u16 sStaryuLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
@@ -1676,7 +1676,7 @@ const u16 gStaryuLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gStarmieLevelUpLearnset[] = {
+static const u16 sStarmieLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
LEVEL_UP_MOVE( 1, MOVE_RECOVER),
@@ -1685,7 +1685,7 @@ const u16 gStarmieLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMrmimeLevelUpLearnset[] = {
+static const u16 sMrmimeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BARRIER),
LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
LEVEL_UP_MOVE( 9, MOVE_SUBSTITUTE),
@@ -1704,7 +1704,7 @@ const u16 gMrmimeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gScytherLevelUpLearnset[] = {
+static const u16 sScytherLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
@@ -1719,7 +1719,7 @@ const u16 gScytherLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gJynxLevelUpLearnset[] = {
+static const u16 sJynxLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_LICK),
LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS),
@@ -1736,7 +1736,7 @@ const u16 gJynxLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gElectabuzzLevelUpLearnset[] = {
+static const u16 sElectabuzzLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
@@ -1749,7 +1749,7 @@ const u16 gElectabuzzLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMagmarLevelUpLearnset[] = {
+static const u16 sMagmarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_SMOG),
@@ -1765,7 +1765,7 @@ const u16 gMagmarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPinsirLevelUpLearnset[] = {
+static const u16 sPinsirLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
LEVEL_UP_MOVE( 7, MOVE_BIND),
@@ -1779,7 +1779,7 @@ const u16 gPinsirLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTaurosLevelUpLearnset[] = {
+static const u16 sTaurosLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 8, MOVE_RAGE),
@@ -1792,14 +1792,14 @@ const u16 gTaurosLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMagikarpLevelUpLearnset[] = {
+static const u16 sMagikarpLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE(15, MOVE_TACKLE),
LEVEL_UP_MOVE(30, MOVE_FLAIL),
LEVEL_UP_END
};
-const u16 gGyaradosLevelUpLearnset[] = {
+static const u16 sGyaradosLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_THRASH),
LEVEL_UP_MOVE(20, MOVE_BITE),
LEVEL_UP_MOVE(25, MOVE_DRAGON_RAGE),
@@ -1812,7 +1812,7 @@ const u16 gGyaradosLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLaprasLevelUpLearnset[] = {
+static const u16 sLaprasLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_SING),
@@ -1828,12 +1828,12 @@ const u16 gLaprasLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDittoLevelUpLearnset[] = {
+static const u16 sDittoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TRANSFORM),
LEVEL_UP_END
};
-const u16 gEeveeLevelUpLearnset[] = {
+static const u16 sEeveeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
@@ -1846,7 +1846,7 @@ const u16 gEeveeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVaporeonLevelUpLearnset[] = {
+static const u16 sVaporeonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
@@ -1861,7 +1861,7 @@ const u16 gVaporeonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gJolteonLevelUpLearnset[] = {
+static const u16 sJolteonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
@@ -1876,7 +1876,7 @@ const u16 gJolteonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFlareonLevelUpLearnset[] = {
+static const u16 sFlareonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
@@ -1891,7 +1891,7 @@ const u16 gFlareonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPorygonLevelUpLearnset[] = {
+static const u16 sPorygonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
@@ -1906,7 +1906,7 @@ const u16 gPorygonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gOmanyteLevelUpLearnset[] = {
+static const u16 sOmanyteLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
LEVEL_UP_MOVE(13, MOVE_BITE),
@@ -1920,7 +1920,7 @@ const u16 gOmanyteLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gOmastarLevelUpLearnset[] = {
+static const u16 sOmastarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
LEVEL_UP_MOVE( 1, MOVE_BITE),
@@ -1936,7 +1936,7 @@ const u16 gOmastarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKabutoLevelUpLearnset[] = {
+static const u16 sKabutoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE(13, MOVE_ABSORB),
@@ -1950,7 +1950,7 @@ const u16 gKabutoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKabutopsLevelUpLearnset[] = {
+static const u16 sKabutopsLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
@@ -1966,7 +1966,7 @@ const u16 gKabutopsLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAerodactylLevelUpLearnset[] = {
+static const u16 sAerodactylLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
LEVEL_UP_MOVE( 8, MOVE_AGILITY),
LEVEL_UP_MOVE(15, MOVE_BITE),
@@ -1978,7 +1978,7 @@ const u16 gAerodactylLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSnorlaxLevelUpLearnset[] = {
+static const u16 sSnorlaxLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 6, MOVE_AMNESIA),
LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL),
@@ -1995,7 +1995,7 @@ const u16 gSnorlaxLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gArticunoLevelUpLearnset[] = {
+static const u16 sArticunoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GUST),
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
LEVEL_UP_MOVE(13, MOVE_MIST),
@@ -2008,7 +2008,7 @@ const u16 gArticunoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gZapdosLevelUpLearnset[] = {
+static const u16 sZapdosLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE),
@@ -2021,7 +2021,7 @@ const u16 gZapdosLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMoltresLevelUpLearnset[] = {
+static const u16 sMoltresLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE(13, MOVE_FIRE_SPIN),
@@ -2034,7 +2034,7 @@ const u16 gMoltresLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDratiniLevelUpLearnset[] = {
+static const u16 sDratiniLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
@@ -2048,7 +2048,7 @@ const u16 gDratiniLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDragonairLevelUpLearnset[] = {
+static const u16 sDragonairLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
@@ -2064,7 +2064,7 @@ const u16 gDragonairLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDragoniteLevelUpLearnset[] = {
+static const u16 sDragoniteLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
@@ -2081,7 +2081,7 @@ const u16 gDragoniteLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMewtwoLevelUpLearnset[] = {
+static const u16 sMewtwoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_DISABLE),
LEVEL_UP_MOVE(11, MOVE_BARRIER),
@@ -2096,7 +2096,7 @@ const u16 gMewtwoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMewLevelUpLearnset[] = {
+static const u16 sMewLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE(10, MOVE_TRANSFORM),
LEVEL_UP_MOVE(20, MOVE_MEGA_PUNCH),
@@ -2106,7 +2106,7 @@ const u16 gMewLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gChikoritaLevelUpLearnset[] = {
+static const u16 sChikoritaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF),
@@ -2120,7 +2120,7 @@ const u16 gChikoritaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBayleefLevelUpLearnset[] = {
+static const u16 sBayleefLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
@@ -2136,7 +2136,7 @@ const u16 gBayleefLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMeganiumLevelUpLearnset[] = {
+static const u16 sMeganiumLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
@@ -2152,7 +2152,7 @@ const u16 gMeganiumLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCyndaquilLevelUpLearnset[] = {
+static const u16 sCyndaquilLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
@@ -2164,7 +2164,7 @@ const u16 gCyndaquilLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gQuilavaLevelUpLearnset[] = {
+static const u16 sQuilavaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
@@ -2177,7 +2177,7 @@ const u16 gQuilavaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTyphlosionLevelUpLearnset[] = {
+static const u16 sTyphlosionLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
@@ -2191,7 +2191,7 @@ const u16 gTyphlosionLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTotodileLevelUpLearnset[] = {
+static const u16 sTotodileLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 7, MOVE_RAGE),
@@ -2204,7 +2204,7 @@ const u16 gTotodileLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCroconawLevelUpLearnset[] = {
+static const u16 sCroconawLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_RAGE),
@@ -2218,7 +2218,7 @@ const u16 gCroconawLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFeraligatrLevelUpLearnset[] = {
+static const u16 sFeraligatrLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_RAGE),
@@ -2233,7 +2233,7 @@ const u16 gFeraligatrLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSentretLevelUpLearnset[] = {
+static const u16 sSentretLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
@@ -2246,7 +2246,7 @@ const u16 gSentretLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFurretLevelUpLearnset[] = {
+static const u16 sFurretLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
@@ -2261,7 +2261,7 @@ const u16 gFurretLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHoothootLevelUpLearnset[] = {
+static const u16 sHoothootLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 6, MOVE_FORESIGHT),
@@ -2274,7 +2274,7 @@ const u16 gHoothootLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNoctowlLevelUpLearnset[] = {
+static const u16 sNoctowlLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
@@ -2289,7 +2289,7 @@ const u16 gNoctowlLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLedybaLevelUpLearnset[] = {
+static const u16 sLedybaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH),
@@ -2303,7 +2303,7 @@ const u16 gLedybaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLedianLevelUpLearnset[] = {
+static const u16 sLedianLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
@@ -2318,7 +2318,7 @@ const u16 gLedianLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSpinarakLevelUpLearnset[] = {
+static const u16 sSpinarakLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE),
@@ -2332,7 +2332,7 @@ const u16 gSpinarakLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAriadosLevelUpLearnset[] = {
+static const u16 sAriadosLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
@@ -2348,7 +2348,7 @@ const u16 gAriadosLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCrobatLevelUpLearnset[] = {
+static const u16 sCrobatLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCREECH),
LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
@@ -2365,7 +2365,7 @@ const u16 gCrobatLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gChinchouLevelUpLearnset[] = {
+static const u16 sChinchouLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
@@ -2379,7 +2379,7 @@ const u16 gChinchouLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLanturnLevelUpLearnset[] = {
+static const u16 sLanturnLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
@@ -2394,7 +2394,7 @@ const u16 gLanturnLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPichuLevelUpLearnset[] = {
+static const u16 sPichuLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
LEVEL_UP_MOVE( 1, MOVE_CHARM),
LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
@@ -2403,7 +2403,7 @@ const u16 gPichuLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCleffaLevelUpLearnset[] = {
+static const u16 sCleffaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_CHARM),
LEVEL_UP_MOVE( 4, MOVE_ENCORE),
@@ -2412,7 +2412,7 @@ const u16 gCleffaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gIgglybuffLevelUpLearnset[] = {
+static const u16 sIgglybuffLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SING),
LEVEL_UP_MOVE( 1, MOVE_CHARM),
LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
@@ -2421,7 +2421,7 @@ const u16 gIgglybuffLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTogepiLevelUpLearnset[] = {
+static const u16 sTogepiLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_CHARM),
LEVEL_UP_MOVE( 6, MOVE_METRONOME),
@@ -2435,7 +2435,7 @@ const u16 gTogepiLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTogeticLevelUpLearnset[] = {
+static const u16 sTogeticLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_CHARM),
LEVEL_UP_MOVE( 6, MOVE_METRONOME),
@@ -2449,7 +2449,7 @@ const u16 gTogeticLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNatuLevelUpLearnset[] = {
+static const u16 sNatuLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE),
@@ -2461,7 +2461,7 @@ const u16 gNatuLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gXatuLevelUpLearnset[] = {
+static const u16 sXatuLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE),
@@ -2473,7 +2473,7 @@ const u16 gXatuLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMareepLevelUpLearnset[] = {
+static const u16 sMareepLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK),
@@ -2484,7 +2484,7 @@ const u16 gMareepLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFlaaffyLevelUpLearnset[] = {
+static const u16 sFlaaffyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
@@ -2496,7 +2496,7 @@ const u16 gFlaaffyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAmpharosLevelUpLearnset[] = {
+static const u16 sAmpharosLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
@@ -2510,7 +2510,7 @@ const u16 gAmpharosLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBellossomLevelUpLearnset[] = {
+static const u16 sBellossomLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
@@ -2520,7 +2520,7 @@ const u16 gBellossomLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMarillLevelUpLearnset[] = {
+static const u16 sMarillLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
@@ -2533,7 +2533,7 @@ const u16 gMarillLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAzumarillLevelUpLearnset[] = {
+static const u16 sAzumarillLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
@@ -2549,7 +2549,7 @@ const u16 gAzumarillLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSudowoodoLevelUpLearnset[] = {
+static const u16 sSudowoodoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
LEVEL_UP_MOVE( 1, MOVE_MIMIC),
LEVEL_UP_MOVE( 9, MOVE_FLAIL),
@@ -2562,7 +2562,7 @@ const u16 gSudowoodoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPolitoedLevelUpLearnset[] = {
+static const u16 sPolitoedLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
@@ -2572,7 +2572,7 @@ const u16 gPolitoedLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHoppipLevelUpLearnset[] = {
+static const u16 sHoppipLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS),
LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
@@ -2586,7 +2586,7 @@ const u16 gHoppipLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSkiploomLevelUpLearnset[] = {
+static const u16 sSkiploomLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
@@ -2603,7 +2603,7 @@ const u16 gSkiploomLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gJumpluffLevelUpLearnset[] = {
+static const u16 sJumpluffLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
@@ -2620,7 +2620,7 @@ const u16 gJumpluffLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAipomLevelUpLearnset[] = {
+static const u16 sAipomLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
@@ -2634,7 +2634,7 @@ const u16 gAipomLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSunkernLevelUpLearnset[] = {
+static const u16 sSunkernLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 6, MOVE_GROWTH),
LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
@@ -2646,7 +2646,7 @@ const u16 gSunkernLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSunfloraLevelUpLearnset[] = {
+static const u16 sSunfloraLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 6, MOVE_GROWTH),
@@ -2659,7 +2659,7 @@ const u16 gSunfloraLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gYanmaLevelUpLearnset[] = {
+static const u16 sYanmaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
@@ -2673,7 +2673,7 @@ const u16 gYanmaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWooperLevelUpLearnset[] = {
+static const u16 sWooperLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE(11, MOVE_SLAM),
@@ -2687,7 +2687,7 @@ const u16 gWooperLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gQuagsireLevelUpLearnset[] = {
+static const u16 sQuagsireLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE(11, MOVE_SLAM),
@@ -2701,7 +2701,7 @@ const u16 gQuagsireLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gEspeonLevelUpLearnset[] = {
+static const u16 sEspeonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
@@ -2716,7 +2716,7 @@ const u16 gEspeonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gUmbreonLevelUpLearnset[] = {
+static const u16 sUmbreonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
@@ -2731,7 +2731,7 @@ const u16 gUmbreonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMurkrowLevelUpLearnset[] = {
+static const u16 sMurkrowLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
LEVEL_UP_MOVE(14, MOVE_PURSUIT),
@@ -2743,7 +2743,7 @@ const u16 gMurkrowLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSlowkingLevelUpLearnset[] = {
+static const u16 sSlowkingLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CURSE),
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
@@ -2757,7 +2757,7 @@ const u16 gSlowkingLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMisdreavusLevelUpLearnset[] = {
+static const u16 sMisdreavusLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
LEVEL_UP_MOVE( 6, MOVE_SPITE),
@@ -2771,12 +2771,12 @@ const u16 gMisdreavusLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gUnownLevelUpLearnset[] = {
+static const u16 sUnownLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER),
LEVEL_UP_END
};
-const u16 gWobbuffetLevelUpLearnset[] = {
+static const u16 sWobbuffetLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_COUNTER),
LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
@@ -2784,7 +2784,7 @@ const u16 gWobbuffetLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGirafarigLevelUpLearnset[] = {
+static const u16 sGirafarigLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
@@ -2798,7 +2798,7 @@ const u16 gGirafarigLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPinecoLevelUpLearnset[] = {
+static const u16 sPinecoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_PROTECT),
LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT),
@@ -2811,7 +2811,7 @@ const u16 gPinecoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gForretressLevelUpLearnset[] = {
+static const u16 sForretressLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_PROTECT),
LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT),
@@ -2825,7 +2825,7 @@ const u16 gForretressLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDunsparceLevelUpLearnset[] = {
+static const u16 sDunsparceLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_RAGE),
LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE(11, MOVE_YAWN),
@@ -2838,7 +2838,7 @@ const u16 gDunsparceLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGligarLevelUpLearnset[] = {
+static const u16 sGligarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE(13, MOVE_HARDEN),
@@ -2850,7 +2850,7 @@ const u16 gGligarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSteelixLevelUpLearnset[] = {
+static const u16 sSteelixLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SCREECH),
LEVEL_UP_MOVE( 9, MOVE_BIND),
@@ -2865,7 +2865,7 @@ const u16 gSteelixLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSnubbullLevelUpLearnset[] = {
+static const u16 sSnubbullLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
@@ -2879,7 +2879,7 @@ const u16 gSnubbullLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGranbullLevelUpLearnset[] = {
+static const u16 sGranbullLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
@@ -2893,7 +2893,7 @@ const u16 gGranbullLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gQwilfishLevelUpLearnset[] = {
+static const u16 sQwilfishLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPIKES),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
@@ -2906,7 +2906,7 @@ const u16 gQwilfishLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gScizorLevelUpLearnset[] = {
+static const u16 sScizorLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
@@ -2921,7 +2921,7 @@ const u16 gScizorLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShuckleLevelUpLearnset[] = {
+static const u16 sShuckleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
LEVEL_UP_MOVE( 9, MOVE_WRAP),
@@ -2932,7 +2932,7 @@ const u16 gShuckleLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHeracrossLevelUpLearnset[] = {
+static const u16 sHeracrossLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 6, MOVE_HORN_ATTACK),
@@ -2946,7 +2946,7 @@ const u16 gHeracrossLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSneaselLevelUpLearnset[] = {
+static const u16 sSneaselLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_TAUNT),
@@ -2962,7 +2962,7 @@ const u16 gSneaselLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTeddiursaLevelUpLearnset[] = {
+static const u16 sTeddiursaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 7, MOVE_LICK),
@@ -2976,7 +2976,7 @@ const u16 gTeddiursaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gUrsaringLevelUpLearnset[] = {
+static const u16 sUrsaringLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_LICK),
@@ -2992,7 +2992,7 @@ const u16 gUrsaringLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSlugmaLevelUpLearnset[] = {
+static const u16 sSlugmaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_SMOG),
LEVEL_UP_MOVE( 8, MOVE_EMBER),
@@ -3005,7 +3005,7 @@ const u16 gSlugmaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMagcargoLevelUpLearnset[] = {
+static const u16 sMagcargoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_SMOG),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
@@ -3020,7 +3020,7 @@ const u16 gMagcargoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSwinubLevelUpLearnset[] = {
+static const u16 sSwinubLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
@@ -3032,7 +3032,7 @@ const u16 gSwinubLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPiloswineLevelUpLearnset[] = {
+static const u16 sPiloswineLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
@@ -3047,7 +3047,7 @@ const u16 gPiloswineLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCorsolaLevelUpLearnset[] = {
+static const u16 sCorsolaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 6, MOVE_HARDEN),
LEVEL_UP_MOVE(12, MOVE_BUBBLE),
@@ -3061,7 +3061,7 @@ const u16 gCorsolaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRemoraidLevelUpLearnset[] = {
+static const u16 sRemoraidLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE(11, MOVE_LOCK_ON),
LEVEL_UP_MOVE(22, MOVE_PSYBEAM),
@@ -3073,7 +3073,7 @@ const u16 gRemoraidLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gOctilleryLevelUpLearnset[] = {
+static const u16 sOctilleryLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE(11, MOVE_CONSTRICT),
LEVEL_UP_MOVE(22, MOVE_PSYBEAM),
@@ -3086,12 +3086,12 @@ const u16 gOctilleryLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDelibirdLevelUpLearnset[] = {
+static const u16 sDelibirdLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PRESENT),
LEVEL_UP_END
};
-const u16 gMantineLevelUpLearnset[] = {
+static const u16 sMantineLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
@@ -3104,7 +3104,7 @@ const u16 gMantineLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSkarmoryLevelUpLearnset[] = {
+static const u16 sSkarmoryLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
@@ -3118,7 +3118,7 @@ const u16 gSkarmoryLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHoundourLevelUpLearnset[] = {
+static const u16 sHoundourLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 7, MOVE_HOWL),
@@ -3132,7 +3132,7 @@ const u16 gHoundourLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHoundoomLevelUpLearnset[] = {
+static const u16 sHoundoomLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 1, MOVE_HOWL),
@@ -3147,7 +3147,7 @@ const u16 gHoundoomLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKingdraLevelUpLearnset[] = {
+static const u16 sKingdraLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
LEVEL_UP_MOVE( 1, MOVE_LEER),
@@ -3162,7 +3162,7 @@ const u16 gKingdraLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPhanpyLevelUpLearnset[] = {
+static const u16 sPhanpyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
@@ -3175,7 +3175,7 @@ const u16 gPhanpyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDonphanLevelUpLearnset[] = {
+static const u16 sDonphanLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
@@ -3188,7 +3188,7 @@ const u16 gDonphanLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPorygon2LevelUpLearnset[] = {
+static const u16 sPorygon2LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
@@ -3203,7 +3203,7 @@ const u16 gPorygon2LevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gStantlerLevelUpLearnset[] = {
+static const u16 sStantlerLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 7, MOVE_LEER),
LEVEL_UP_MOVE(13, MOVE_ASTONISH),
@@ -3216,7 +3216,7 @@ const u16 gStantlerLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSmeargleLevelUpLearnset[] = {
+static const u16 sSmeargleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SKETCH),
LEVEL_UP_MOVE(11, MOVE_SKETCH),
LEVEL_UP_MOVE(21, MOVE_SKETCH),
@@ -3230,12 +3230,12 @@ const u16 gSmeargleLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTyrogueLevelUpLearnset[] = {
+static const u16 sTyrogueLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gHitmontopLevelUpLearnset[] = {
+static const u16 sHitmontopLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_REVENGE),
LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK),
LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
@@ -3250,7 +3250,7 @@ const u16 gHitmontopLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSmoochumLevelUpLearnset[] = {
+static const u16 sSmoochumLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_LICK),
LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS),
@@ -3265,7 +3265,7 @@ const u16 gSmoochumLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gElekidLevelUpLearnset[] = {
+static const u16 sElekidLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH),
@@ -3277,7 +3277,7 @@ const u16 gElekidLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMagbyLevelUpLearnset[] = {
+static const u16 sMagbyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 7, MOVE_LEER),
LEVEL_UP_MOVE(13, MOVE_SMOG),
@@ -3290,7 +3290,7 @@ const u16 gMagbyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMiltankLevelUpLearnset[] = {
+static const u16 sMiltankLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_GROWL),
LEVEL_UP_MOVE( 8, MOVE_DEFENSE_CURL),
@@ -3303,7 +3303,7 @@ const u16 gMiltankLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBlisseyLevelUpLearnset[] = {
+static const u16 sBlisseyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
@@ -3319,7 +3319,7 @@ const u16 gBlisseyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRaikouLevelUpLearnset[] = {
+static const u16 sRaikouLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK),
@@ -3333,7 +3333,7 @@ const u16 gRaikouLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gEnteiLevelUpLearnset[] = {
+static const u16 sEnteiLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE(11, MOVE_EMBER),
@@ -3347,7 +3347,7 @@ const u16 gEnteiLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSuicuneLevelUpLearnset[] = {
+static const u16 sSuicuneLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE(11, MOVE_BUBBLE_BEAM),
@@ -3361,7 +3361,7 @@ const u16 gSuicuneLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLarvitarLevelUpLearnset[] = {
+static const u16 sLarvitarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 8, MOVE_SANDSTORM),
@@ -3375,7 +3375,7 @@ const u16 gLarvitarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPupitarLevelUpLearnset[] = {
+static const u16 sPupitarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
@@ -3391,7 +3391,7 @@ const u16 gPupitarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTyranitarLevelUpLearnset[] = {
+static const u16 sTyranitarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
@@ -3407,7 +3407,7 @@ const u16 gTyranitarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLugiaLevelUpLearnset[] = {
+static const u16 sLugiaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
LEVEL_UP_MOVE(11, MOVE_SAFEGUARD),
LEVEL_UP_MOVE(22, MOVE_GUST),
@@ -3421,7 +3421,7 @@ const u16 gLugiaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHoOhLevelUpLearnset[] = {
+static const u16 sHoOhLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
LEVEL_UP_MOVE(11, MOVE_SAFEGUARD),
LEVEL_UP_MOVE(22, MOVE_GUST),
@@ -3435,7 +3435,7 @@ const u16 gHoOhLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCelebiLevelUpLearnset[] = {
+static const u16 sCelebiLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_RECOVER),
@@ -3448,132 +3448,132 @@ const u16 gCelebiLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSpecies252LevelUpLearnset[] = {
+static const u16 sSpecies252LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies253LevelUpLearnset[] = {
+static const u16 sSpecies253LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies254LevelUpLearnset[] = {
+static const u16 sSpecies254LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies255LevelUpLearnset[] = {
+static const u16 sSpecies255LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies256LevelUpLearnset[] = {
+static const u16 sSpecies256LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies257LevelUpLearnset[] = {
+static const u16 sSpecies257LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies258LevelUpLearnset[] = {
+static const u16 sSpecies258LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies259LevelUpLearnset[] = {
+static const u16 sSpecies259LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies260LevelUpLearnset[] = {
+static const u16 sSpecies260LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies261LevelUpLearnset[] = {
+static const u16 sSpecies261LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies262LevelUpLearnset[] = {
+static const u16 sSpecies262LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies263LevelUpLearnset[] = {
+static const u16 sSpecies263LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies264LevelUpLearnset[] = {
+static const u16 sSpecies264LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies265LevelUpLearnset[] = {
+static const u16 sSpecies265LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies266LevelUpLearnset[] = {
+static const u16 sSpecies266LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies267LevelUpLearnset[] = {
+static const u16 sSpecies267LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies268LevelUpLearnset[] = {
+static const u16 sSpecies268LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies269LevelUpLearnset[] = {
+static const u16 sSpecies269LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies270LevelUpLearnset[] = {
+static const u16 sSpecies270LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies271LevelUpLearnset[] = {
+static const u16 sSpecies271LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies272LevelUpLearnset[] = {
+static const u16 sSpecies272LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies273LevelUpLearnset[] = {
+static const u16 sSpecies273LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies274LevelUpLearnset[] = {
+static const u16 sSpecies274LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies275LevelUpLearnset[] = {
+static const u16 sSpecies275LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies276LevelUpLearnset[] = {
+static const u16 sSpecies276LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gTreeckoLevelUpLearnset[] = {
+static const u16 sTreeckoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 6, MOVE_ABSORB),
@@ -3588,7 +3588,7 @@ const u16 gTreeckoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGrovyleLevelUpLearnset[] = {
+static const u16 sGrovyleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
@@ -3606,7 +3606,7 @@ const u16 gGrovyleLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSceptileLevelUpLearnset[] = {
+static const u16 sSceptileLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
@@ -3624,7 +3624,7 @@ const u16 gSceptileLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTorchicLevelUpLearnset[] = {
+static const u16 sTorchicLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
@@ -3639,7 +3639,7 @@ const u16 gTorchicLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCombuskenLevelUpLearnset[] = {
+static const u16 sCombuskenLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
@@ -3657,7 +3657,7 @@ const u16 gCombuskenLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBlazikenLevelUpLearnset[] = {
+static const u16 sBlazikenLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
@@ -3677,7 +3677,7 @@ const u16 gBlazikenLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMudkipLevelUpLearnset[] = {
+static const u16 sMudkipLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
@@ -3693,7 +3693,7 @@ const u16 gMudkipLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMarshtompLevelUpLearnset[] = {
+static const u16 sMarshtompLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
@@ -3712,7 +3712,7 @@ const u16 gMarshtompLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSwampertLevelUpLearnset[] = {
+static const u16 sSwampertLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
@@ -3731,7 +3731,7 @@ const u16 gSwampertLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPoochyenaLevelUpLearnset[] = {
+static const u16 sPoochyenaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_HOWL),
LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
@@ -3747,7 +3747,7 @@ const u16 gPoochyenaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMightyenaLevelUpLearnset[] = {
+static const u16 sMightyenaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HOWL),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
@@ -3766,7 +3766,7 @@ const u16 gMightyenaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gZigzagoonLevelUpLearnset[] = {
+static const u16 sZigzagoonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
@@ -3782,7 +3782,7 @@ const u16 gZigzagoonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLinooneLevelUpLearnset[] = {
+static const u16 sLinooneLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
@@ -3800,20 +3800,20 @@ const u16 gLinooneLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWurmpleLevelUpLearnset[] = {
+static const u16 sWurmpleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
LEVEL_UP_MOVE( 5, MOVE_POISON_STING),
LEVEL_UP_END
};
-const u16 gSilcoonLevelUpLearnset[] = {
+static const u16 sSilcoonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_END
};
-const u16 gBeautiflyLevelUpLearnset[] = {
+static const u16 sBeautiflyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE(10, MOVE_ABSORB),
LEVEL_UP_MOVE(13, MOVE_GUST),
@@ -3827,13 +3827,13 @@ const u16 gBeautiflyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCascoonLevelUpLearnset[] = {
+static const u16 sCascoonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_END
};
-const u16 gDustoxLevelUpLearnset[] = {
+static const u16 sDustoxLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE(10, MOVE_CONFUSION),
LEVEL_UP_MOVE(13, MOVE_GUST),
@@ -3847,7 +3847,7 @@ const u16 gDustoxLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLotadLevelUpLearnset[] = {
+static const u16 sLotadLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
LEVEL_UP_MOVE( 3, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_ABSORB),
@@ -3858,7 +3858,7 @@ const u16 gLotadLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLombreLevelUpLearnset[] = {
+static const u16 sLombreLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
LEVEL_UP_MOVE( 3, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_ABSORB),
@@ -3872,7 +3872,7 @@ const u16 gLombreLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLudicoloLevelUpLearnset[] = {
+static const u16 sLudicoloLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
@@ -3880,7 +3880,7 @@ const u16 gLudicoloLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSeedotLevelUpLearnset[] = {
+static const u16 sSeedotLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BIDE),
LEVEL_UP_MOVE( 3, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_GROWTH),
@@ -3891,7 +3891,7 @@ const u16 gSeedotLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNuzleafLevelUpLearnset[] = {
+static const u16 sNuzleafLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 3, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_GROWTH),
@@ -3905,7 +3905,7 @@ const u16 gNuzleafLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShiftryLevelUpLearnset[] = {
+static const u16 sShiftryLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_GROWTH),
@@ -3913,7 +3913,7 @@ const u16 gShiftryLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNincadaLevelUpLearnset[] = {
+static const u16 sNincadaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
@@ -3927,7 +3927,7 @@ const u16 gNincadaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNinjaskLevelUpLearnset[] = {
+static const u16 sNinjaskLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
@@ -3946,7 +3946,7 @@ const u16 gNinjaskLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShedinjaLevelUpLearnset[] = {
+static const u16 sShedinjaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
@@ -3960,7 +3960,7 @@ const u16 gShedinjaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTaillowLevelUpLearnset[] = {
+static const u16 sTaillowLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
@@ -3973,7 +3973,7 @@ const u16 gTaillowLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSwellowLevelUpLearnset[] = {
+static const u16 sSwellowLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
@@ -3988,7 +3988,7 @@ const u16 gSwellowLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShroomishLevelUpLearnset[] = {
+static const u16 sShroomishLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 4, MOVE_TACKLE),
LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
@@ -4002,7 +4002,7 @@ const u16 gShroomishLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBreloomLevelUpLearnset[] = {
+static const u16 sBreloomLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
@@ -4020,7 +4020,7 @@ const u16 gBreloomLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSpindaLevelUpLearnset[] = {
+static const u16 sSpindaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_UPROAR),
LEVEL_UP_MOVE(12, MOVE_FAINT_ATTACK),
@@ -4035,7 +4035,7 @@ const u16 gSpindaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWingullLevelUpLearnset[] = {
+static const u16 sWingullLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
@@ -4047,7 +4047,7 @@ const u16 gWingullLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPelipperLevelUpLearnset[] = {
+static const u16 sPelipperLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
@@ -4064,7 +4064,7 @@ const u16 gPelipperLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSurskitLevelUpLearnset[] = {
+static const u16 sSurskitLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT),
@@ -4076,7 +4076,7 @@ const u16 gSurskitLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMasquerainLevelUpLearnset[] = {
+static const u16 sMasquerainLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
@@ -4092,7 +4092,7 @@ const u16 gMasquerainLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWailmerLevelUpLearnset[] = {
+static const u16 sWailmerLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 5, MOVE_GROWL),
LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
@@ -4108,7 +4108,7 @@ const u16 gWailmerLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWailordLevelUpLearnset[] = {
+static const u16 sWailordLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
@@ -4127,7 +4127,7 @@ const u16 gWailordLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSkittyLevelUpLearnset[] = {
+static const u16 sSkittyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
@@ -4143,7 +4143,7 @@ const u16 gSkittyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDelcattyLevelUpLearnset[] = {
+static const u16 sDelcattyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
LEVEL_UP_MOVE( 1, MOVE_SING),
@@ -4151,7 +4151,7 @@ const u16 gDelcattyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKecleonLevelUpLearnset[] = {
+static const u16 sKecleonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_THIEF),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
@@ -4168,7 +4168,7 @@ const u16 gKecleonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBaltoyLevelUpLearnset[] = {
+static const u16 sBaltoyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 3, MOVE_HARDEN),
LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN),
@@ -4183,7 +4183,7 @@ const u16 gBaltoyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gClaydolLevelUpLearnset[] = {
+static const u16 sClaydolLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
@@ -4202,7 +4202,7 @@ const u16 gClaydolLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNosepassLevelUpLearnset[] = {
+static const u16 sNosepassLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
@@ -4216,7 +4216,7 @@ const u16 gNosepassLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTorkoalLevelUpLearnset[] = {
+static const u16 sTorkoalLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 4, MOVE_SMOG),
LEVEL_UP_MOVE( 7, MOVE_CURSE),
@@ -4232,7 +4232,7 @@ const u16 gTorkoalLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSableyeLevelUpLearnset[] = {
+static const u16 sSableyeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 5, MOVE_FORESIGHT),
@@ -4249,7 +4249,7 @@ const u16 gSableyeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBarboachLevelUpLearnset[] = {
+static const u16 sBarboachLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT),
@@ -4264,7 +4264,7 @@ const u16 gBarboachLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWhiscashLevelUpLearnset[] = {
+static const u16 sWhiscashLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TICKLE),
LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
@@ -4282,7 +4282,7 @@ const u16 gWhiscashLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLuvdiscLevelUpLearnset[] = {
+static const u16 sLuvdiscLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_CHARM),
LEVEL_UP_MOVE(12, MOVE_WATER_GUN),
@@ -4295,7 +4295,7 @@ const u16 gLuvdiscLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCorphishLevelUpLearnset[] = {
+static const u16 sCorphishLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_MOVE(10, MOVE_VICE_GRIP),
@@ -4310,7 +4310,7 @@ const u16 gCorphishLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCrawdauntLevelUpLearnset[] = {
+static const u16 sCrawdauntLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
@@ -4328,14 +4328,14 @@ const u16 gCrawdauntLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFeebasLevelUpLearnset[] = {
+static const u16 sFeebasLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE(15, MOVE_TACKLE),
LEVEL_UP_MOVE(30, MOVE_FLAIL),
LEVEL_UP_END
};
-const u16 gMiloticLevelUpLearnset[] = {
+static const u16 sMiloticLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 5, MOVE_WRAP),
LEVEL_UP_MOVE(10, MOVE_WATER_SPORT),
@@ -4350,7 +4350,7 @@ const u16 gMiloticLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCarvanhaLevelUpLearnset[] = {
+static const u16 sCarvanhaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 7, MOVE_RAGE),
@@ -4364,7 +4364,7 @@ const u16 gCarvanhaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSharpedoLevelUpLearnset[] = {
+static const u16 sSharpedoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_RAGE),
@@ -4382,7 +4382,7 @@ const u16 gSharpedoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTrapinchLevelUpLearnset[] = {
+static const u16 sTrapinchLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK),
@@ -4394,7 +4394,7 @@ const u16 gTrapinchLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVibravaLevelUpLearnset[] = {
+static const u16 sVibravaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK),
@@ -4410,7 +4410,7 @@ const u16 gVibravaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFlygonLevelUpLearnset[] = {
+static const u16 sFlygonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK),
@@ -4426,7 +4426,7 @@ const u16 gFlygonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMakuhitaLevelUpLearnset[] = {
+static const u16 sMakuhitaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
@@ -4443,7 +4443,7 @@ const u16 gMakuhitaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHariyamaLevelUpLearnset[] = {
+static const u16 sHariyamaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
@@ -4462,7 +4462,7 @@ const u16 gHariyamaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gElectrikeLevelUpLearnset[] = {
+static const u16 sElectrikeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
LEVEL_UP_MOVE( 9, MOVE_LEER),
@@ -4477,7 +4477,7 @@ const u16 gElectrikeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gManectricLevelUpLearnset[] = {
+static const u16 sManectricLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
@@ -4495,7 +4495,7 @@ const u16 gManectricLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNumelLevelUpLearnset[] = {
+static const u16 sNumelLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE(11, MOVE_EMBER),
@@ -4509,7 +4509,7 @@ const u16 gNumelLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCameruptLevelUpLearnset[] = {
+static const u16 sCameruptLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
@@ -4526,7 +4526,7 @@ const u16 gCameruptLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSphealLevelUpLearnset[] = {
+static const u16 sSphealLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
@@ -4542,7 +4542,7 @@ const u16 gSphealLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSealeoLevelUpLearnset[] = {
+static const u16 sSealeoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
@@ -4559,7 +4559,7 @@ const u16 gSealeoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWalreinLevelUpLearnset[] = {
+static const u16 sWalreinLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
@@ -4576,7 +4576,7 @@ const u16 gWalreinLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCacneaLevelUpLearnset[] = {
+static const u16 sCacneaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 5, MOVE_ABSORB),
@@ -4593,7 +4593,7 @@ const u16 gCacneaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCacturneLevelUpLearnset[] = {
+static const u16 sCacturneLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
@@ -4612,7 +4612,7 @@ const u16 gCacturneLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSnoruntLevelUpLearnset[] = {
+static const u16 sSnoruntLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM),
@@ -4627,7 +4627,7 @@ const u16 gSnoruntLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGlalieLevelUpLearnset[] = {
+static const u16 sGlalieLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
@@ -4645,7 +4645,7 @@ const u16 gGlalieLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLunatoneLevelUpLearnset[] = {
+static const u16 sLunatoneLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
@@ -4659,7 +4659,7 @@ const u16 gLunatoneLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSolrockLevelUpLearnset[] = {
+static const u16 sSolrockLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
@@ -4673,7 +4673,7 @@ const u16 gSolrockLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAzurillLevelUpLearnset[] = {
+static const u16 sAzurillLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 3, MOVE_CHARM),
LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
@@ -4683,7 +4683,7 @@ const u16 gAzurillLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSpoinkLevelUpLearnset[] = {
+static const u16 sSpoinkLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 7, MOVE_PSYWAVE),
LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH),
@@ -4698,7 +4698,7 @@ const u16 gSpoinkLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGrumpigLevelUpLearnset[] = {
+static const u16 sGrumpigLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
@@ -4716,7 +4716,7 @@ const u16 gGrumpigLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPlusleLevelUpLearnset[] = {
+static const u16 sPlusleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
@@ -4731,7 +4731,7 @@ const u16 gPlusleLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMinunLevelUpLearnset[] = {
+static const u16 sMinunLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
@@ -4746,7 +4746,7 @@ const u16 gMinunLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMawileLevelUpLearnset[] = {
+static const u16 sMawileLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS),
LEVEL_UP_MOVE(11, MOVE_BITE),
@@ -4762,7 +4762,7 @@ const u16 gMawileLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMedititeLevelUpLearnset[] = {
+static const u16 sMedititeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BIDE),
LEVEL_UP_MOVE( 4, MOVE_MEDITATE),
LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
@@ -4777,7 +4777,7 @@ const u16 gMedititeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMedichamLevelUpLearnset[] = {
+static const u16 sMedichamLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
@@ -4798,7 +4798,7 @@ const u16 gMedichamLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSwabluLevelUpLearnset[] = {
+static const u16 sSwabluLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
@@ -4813,7 +4813,7 @@ const u16 gSwabluLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAltariaLevelUpLearnset[] = {
+static const u16 sAltariaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
@@ -4832,7 +4832,7 @@ const u16 gAltariaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWynautLevelUpLearnset[] = {
+static const u16 sWynautLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 1, MOVE_CHARM),
LEVEL_UP_MOVE( 1, MOVE_ENCORE),
@@ -4843,7 +4843,7 @@ const u16 gWynautLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDuskullLevelUpLearnset[] = {
+static const u16 sDuskullLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
LEVEL_UP_MOVE( 5, MOVE_DISABLE),
@@ -4858,7 +4858,7 @@ const u16 gDuskullLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDusclopsLevelUpLearnset[] = {
+static const u16 sDusclopsLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BIND),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
@@ -4876,7 +4876,7 @@ const u16 gDusclopsLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRoseliaLevelUpLearnset[] = {
+static const u16 sRoseliaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 5, MOVE_GROWTH),
LEVEL_UP_MOVE( 9, MOVE_POISON_STING),
@@ -4895,7 +4895,7 @@ const u16 gRoseliaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSlakothLevelUpLearnset[] = {
+static const u16 sSlakothLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 7, MOVE_ENCORE),
@@ -4908,7 +4908,7 @@ const u16 gSlakothLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVigorothLevelUpLearnset[] = {
+static const u16 sVigorothLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
LEVEL_UP_MOVE( 1, MOVE_ENCORE),
@@ -4924,7 +4924,7 @@ const u16 gVigorothLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSlakingLevelUpLearnset[] = {
+static const u16 sSlakingLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_ENCORE),
@@ -4940,7 +4940,7 @@ const u16 gSlakingLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGulpinLevelUpLearnset[] = {
+static const u16 sGulpinLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 6, MOVE_YAWN),
LEVEL_UP_MOVE( 9, MOVE_POISON_GAS),
@@ -4955,7 +4955,7 @@ const u16 gGulpinLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSwalotLevelUpLearnset[] = {
+static const u16 sSwalotLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
@@ -4974,7 +4974,7 @@ const u16 gSwalotLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTropiusLevelUpLearnset[] = {
+static const u16 sTropiusLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_GUST),
LEVEL_UP_MOVE( 7, MOVE_GROWTH),
@@ -4989,7 +4989,7 @@ const u16 gTropiusLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWhismurLevelUpLearnset[] = {
+static const u16 sWhismurLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 5, MOVE_UPROAR),
LEVEL_UP_MOVE(11, MOVE_ASTONISH),
@@ -5004,7 +5004,7 @@ const u16 gWhismurLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLoudredLevelUpLearnset[] = {
+static const u16 sLoudredLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_UPROAR),
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
@@ -5022,7 +5022,7 @@ const u16 gLoudredLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gExploudLevelUpLearnset[] = {
+static const u16 sExploudLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_UPROAR),
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
@@ -5041,7 +5041,7 @@ const u16 gExploudLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gClamperlLevelUpLearnset[] = {
+static const u16 sClamperlLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CLAMP),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
@@ -5049,7 +5049,7 @@ const u16 gClamperlLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHuntailLevelUpLearnset[] = {
+static const u16 sHuntailLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
LEVEL_UP_MOVE( 8, MOVE_BITE),
LEVEL_UP_MOVE(15, MOVE_SCREECH),
@@ -5061,7 +5061,7 @@ const u16 gHuntailLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGorebyssLevelUpLearnset[] = {
+static const u16 sGorebyssLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
LEVEL_UP_MOVE( 8, MOVE_CONFUSION),
LEVEL_UP_MOVE(15, MOVE_AGILITY),
@@ -5073,7 +5073,7 @@ const u16 gGorebyssLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAbsolLevelUpLearnset[] = {
+static const u16 sAbsolLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 5, MOVE_LEER),
LEVEL_UP_MOVE( 9, MOVE_TAUNT),
@@ -5088,7 +5088,7 @@ const u16 gAbsolLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShuppetLevelUpLearnset[] = {
+static const u16 sShuppetLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
LEVEL_UP_MOVE( 8, MOVE_SCREECH),
LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE),
@@ -5102,7 +5102,7 @@ const u16 gShuppetLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBanetteLevelUpLearnset[] = {
+static const u16 sBanetteLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
LEVEL_UP_MOVE( 1, MOVE_SCREECH),
LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
@@ -5119,7 +5119,7 @@ const u16 gBanetteLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSeviperLevelUpLearnset[] = {
+static const u16 sSeviperLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 7, MOVE_LICK),
LEVEL_UP_MOVE(10, MOVE_BITE),
@@ -5133,7 +5133,7 @@ const u16 gSeviperLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gZangooseLevelUpLearnset[] = {
+static const u16 sZangooseLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 4, MOVE_LEER),
LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
@@ -5148,7 +5148,7 @@ const u16 gZangooseLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRelicanthLevelUpLearnset[] = {
+static const u16 sRelicanthLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 8, MOVE_WATER_GUN),
@@ -5163,7 +5163,7 @@ const u16 gRelicanthLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAronLevelUpLearnset[] = {
+static const u16 sAronLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
@@ -5179,7 +5179,7 @@ const u16 gAronLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLaironLevelUpLearnset[] = {
+static const u16 sLaironLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
@@ -5198,7 +5198,7 @@ const u16 gLaironLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAggronLevelUpLearnset[] = {
+static const u16 sAggronLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
@@ -5217,7 +5217,7 @@ const u16 gAggronLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCastformLevelUpLearnset[] = {
+static const u16 sCastformLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
LEVEL_UP_MOVE(10, MOVE_EMBER),
@@ -5229,7 +5229,7 @@ const u16 gCastformLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVolbeatLevelUpLearnset[] = {
+static const u16 sVolbeatLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_CONFUSE_RAY),
LEVEL_UP_MOVE( 9, MOVE_DOUBLE_TEAM),
@@ -5243,7 +5243,7 @@ const u16 gVolbeatLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gIllumiseLevelUpLearnset[] = {
+static const u16 sIllumiseLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT),
LEVEL_UP_MOVE( 9, MOVE_CHARM),
@@ -5257,7 +5257,7 @@ const u16 gIllumiseLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLileepLevelUpLearnset[] = {
+static const u16 sLileepLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
LEVEL_UP_MOVE( 8, MOVE_CONSTRICT),
LEVEL_UP_MOVE(15, MOVE_ACID),
@@ -5271,7 +5271,7 @@ const u16 gLileepLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCradilyLevelUpLearnset[] = {
+static const u16 sCradilyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
LEVEL_UP_MOVE( 1, MOVE_ACID),
@@ -5288,7 +5288,7 @@ const u16 gCradilyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAnorithLevelUpLearnset[] = {
+static const u16 sAnorithLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_MOVE(13, MOVE_MUD_SPORT),
@@ -5302,7 +5302,7 @@ const u16 gAnorithLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gArmaldoLevelUpLearnset[] = {
+static const u16 sArmaldoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
@@ -5319,7 +5319,7 @@ const u16 gArmaldoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRaltsLevelUpLearnset[] = {
+static const u16 sRaltsLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
@@ -5333,7 +5333,7 @@ const u16 gRaltsLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKirliaLevelUpLearnset[] = {
+static const u16 sKirliaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
@@ -5350,7 +5350,7 @@ const u16 gKirliaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGardevoirLevelUpLearnset[] = {
+static const u16 sGardevoirLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
@@ -5367,7 +5367,7 @@ const u16 gGardevoirLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBagonLevelUpLearnset[] = {
+static const u16 sBagonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_RAGE),
LEVEL_UP_MOVE( 5, MOVE_BITE),
LEVEL_UP_MOVE( 9, MOVE_LEER),
@@ -5382,7 +5382,7 @@ const u16 gBagonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShelgonLevelUpLearnset[] = {
+static const u16 sShelgonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_RAGE),
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
@@ -5401,7 +5401,7 @@ const u16 gShelgonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSalamenceLevelUpLearnset[] = {
+static const u16 sSalamenceLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_RAGE),
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
@@ -5421,12 +5421,12 @@ const u16 gSalamenceLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBeldumLevelUpLearnset[] = {
+static const u16 sBeldumLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
LEVEL_UP_END
};
-const u16 gMetangLevelUpLearnset[] = {
+static const u16 sMetangLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
LEVEL_UP_MOVE(20, MOVE_CONFUSION),
LEVEL_UP_MOVE(20, MOVE_METAL_CLAW),
@@ -5440,7 +5440,7 @@ const u16 gMetangLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMetagrossLevelUpLearnset[] = {
+static const u16 sMetagrossLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
@@ -5457,7 +5457,7 @@ const u16 gMetagrossLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRegirockLevelUpLearnset[] = {
+static const u16 sRegirockLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW),
LEVEL_UP_MOVE(17, MOVE_CURSE),
@@ -5470,7 +5470,7 @@ const u16 gRegirockLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRegiceLevelUpLearnset[] = {
+static const u16 sRegiceLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
LEVEL_UP_MOVE( 9, MOVE_ICY_WIND),
LEVEL_UP_MOVE(17, MOVE_CURSE),
@@ -5483,7 +5483,7 @@ const u16 gRegiceLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRegisteelLevelUpLearnset[] = {
+static const u16 sRegisteelLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW),
LEVEL_UP_MOVE(17, MOVE_CURSE),
@@ -5497,7 +5497,7 @@ const u16 gRegisteelLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKyogreLevelUpLearnset[] = {
+static const u16 sKyogreLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
@@ -5512,7 +5512,7 @@ const u16 gKyogreLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGroudonLevelUpLearnset[] = {
+static const u16 sGroudonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
@@ -5527,7 +5527,7 @@ const u16 gGroudonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRayquazaLevelUpLearnset[] = {
+static const u16 sRayquazaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TWISTER),
LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
@@ -5542,7 +5542,7 @@ const u16 gRayquazaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLatiasLevelUpLearnset[] = {
+static const u16 sLatiasLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
LEVEL_UP_MOVE( 5, MOVE_WISH),
LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
@@ -5557,7 +5557,7 @@ const u16 gLatiasLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLatiosLevelUpLearnset[] = {
+static const u16 sLatiosLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
LEVEL_UP_MOVE( 5, MOVE_MEMENTO),
LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
@@ -5572,7 +5572,7 @@ const u16 gLatiosLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gJirachiLevelUpLearnset[] = {
+static const u16 sJirachiLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WISH),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 5, MOVE_REST),
@@ -5588,7 +5588,7 @@ const u16 gJirachiLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDeoxysLevelUpLearnset[] = {
+static const u16 sDeoxysLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE),
@@ -5604,7 +5604,7 @@ const u16 gDeoxysLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gChimechoLevelUpLearnset[] = {
+static const u16 sChimechoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 6, MOVE_GROWL),
LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
diff --git a/include/data2.h b/include/data2.h
index d71958201..176365146 100644
--- a/include/data2.h
+++ b/include/data2.h
@@ -1,6 +1,8 @@
#ifndef GUARD_DATA2_H
#define GUARD_DATA2_H
+#define MOVE_NAME_LENGTH 12
+
struct MonCoords
{
// This would use a bitfield, but some function
@@ -13,10 +15,10 @@ extern struct MonCoords gTrainerBackPicCoords[];
extern struct MonCoords gTrainerFrontPicCoords[];
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
-extern const u8 gMoveNames[][13];
+extern const u8 gMoveNames[][MOVE_NAME_LENGTH + 1];
extern struct CompressedSpriteSheet gUnknown_0831C620;
extern struct CompressedSpritePalette gUnknown_0831C628;
extern const struct SpriteTemplate gUnknown_0831C688;
-
+extern const struct CompressedSpriteSheet gMonBackPicTable[];
#endif // GUARD_DATA2_H
diff --git a/include/decoration.h b/include/decoration.h
index 76b2f2ec4..f613c25d2 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -73,5 +73,6 @@ void sub_8126B2C(u8 taskId);
void sub_8127208(u8 taskId);
void sub_8127250(u8 *dest, u8 decorCat);
bool8 IsSelectedDecorInThePC(void);
+u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u16 paletteTag);
#endif //GUARD_DECORATION_H
diff --git a/include/event_object_movement.h b/include/event_object_movement.h
index a8f5caa28..1a473eea9 100644
--- a/include/event_object_movement.h
+++ b/include/event_object_movement.h
@@ -146,6 +146,7 @@ u8 GetJumpInPlaceMovementAction(u32);
bool8 EventObjectSetHeldMovement(struct EventObject *eventObject, u8 specialAnimId);
bool8 EventObjectIsMovementOverridden(struct EventObject *eventObject);
u8 EventObjectCheckHeldMovementStatus(struct EventObject *eventObject);
+u8 EventObjectGetHeldMovementActionId(struct EventObject *eventObject);
void TryOverrideTemplateCoordsForEventObject(const struct EventObject *eventObject, u8 movementType);
void OverrideTemplateCoordsForEventObject(const struct EventObject *eventObject);
void ShiftStillEventObjectCoords(struct EventObject *pObject);
@@ -185,6 +186,8 @@ bool8 FreezeEventObject(struct EventObject *eventObject);
u8 GetMoveDirectionFastAnimNum(u8);
u8 GetMoveDirectionFasterAnimNum(u8);
u8 GetMoveDirectionFastestAnimNum(u8);
+u8 GetLedgeJumpDirection(s16, s16, u8);
+void CameraObjectSetFollowedObjectId(u8 objectId);
void MovementType_None(struct Sprite *);
void MovementType_LookAround(struct Sprite *);
diff --git a/include/event_scripts.h b/include/event_scripts.h
index c187682b0..4f85156aa 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -394,6 +394,10 @@ extern const u8 Route111_EventScript_2907F0[];
extern const u8 LittlerootTown_BrendansHouse_2F_EventScript_1F863F[];
extern const u8 LittlerootTown_MaysHouse_2F_EventScript_1F958F[];
+//contest_strings
+extern const u8 gText_0827D507[];
+extern const u8 gText_0827D531[];
+
//mauville_old_man
extern const u8 gOtherText_Is[];
extern const u8 gOtherText_DontYouAgree[];
diff --git a/include/field_effect.h b/include/field_effect.h
index 9c9501bfa..cdabd5c99 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -74,7 +74,10 @@ enum FieldEffectScriptIdx
FLDEFF_USE_FLY_ANCIENT_TOMB,
FLDEFF_PCTURN_ON,
FLDEFF_HALL_OF_FAME_RECORD,
- FLDEFF_USE_TELEPORT
+ FLDEFF_USE_TELEPORT,
+ FLDEFF_64,
+ FLDEFF_65,
+ FLDEFF_66,
};
extern s32 gFieldEffectArguments[8];
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 8cd6c275b..b11b5e21a 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -45,4 +45,22 @@ void SetPlayerAvatarStateMask(u8 a);
u8 GetPlayerAvatarGraphicsIdByStateId(u8 a);
u8 GetJumpSpecialMovementAction(u32);
+bool8 ForcedMovement_None(void);
+bool8 ForcedMovement_Slip(void);
+bool8 ForcedMovement_WalkSouth(void);
+bool8 ForcedMovement_WalkNorth(void);
+bool8 ForcedMovement_WalkWest(void);
+bool8 ForcedMovement_WalkEast(void);
+bool8 ForcedMovement_PushedSouthByCurrent(void);
+bool8 ForcedMovement_PushedNorthByCurrent(void);
+bool8 ForcedMovement_PushedWestByCurrent(void);
+bool8 ForcedMovement_PushedEastByCurrent(void);
+bool8 ForcedMovement_SlideSouth(void);
+bool8 ForcedMovement_SlideNorth(void);
+bool8 ForcedMovement_SlideWest(void);
+bool8 ForcedMovement_SlideEast(void);
+bool8 ForcedMovement_0xBB(void);
+bool8 ForcedMovement_0xBC(void);
+bool8 ForcedMovement_MuddySlope(void);
+
#endif // GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/field_region_map.h b/include/field_region_map.h
new file mode 100644
index 000000000..d50f1265c
--- /dev/null
+++ b/include/field_region_map.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_FIELD_REGION_MAP_H
+#define GUARD_FIELD_REGION_MAP_H
+
+void FieldInitRegionMap(MainCallback callback);
+
+#endif // GUARD_FIELD_REGION_MAP_H
diff --git a/include/field_screen.h b/include/field_screen.h
index 268b9312e..bf1502405 100644
--- a/include/field_screen.h
+++ b/include/field_screen.h
@@ -15,5 +15,6 @@ void sub_80AC3D0(void);
void sub_80AC3E4(void);
void PreservePaletteInWeather(u8);
void sub_80AF128(void);
+void sub_80AB104(u8);
#endif //GUARD_FIELD_SCREEN_H
diff --git a/include/gba/types.h b/include/gba/types.h
index 9f63489aa..a7dbf3e03 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -28,6 +28,17 @@ typedef u8 bool8;
typedef u16 bool16;
typedef u32 bool32;
+struct BgCnt
+{
+ u16 priority:2;
+ u16 charBaseBlock:2;
+ u16 dummy:4;
+ u16 screenBaseBlock:5;
+ u16 areaOverflowMode:1;
+ u16 screenSize:2;
+};
+typedef volatile struct BgCnt vBgCnt;
+
struct PlttData
{
u16 r:5; // red
diff --git a/include/global.h b/include/global.h
index eaac5ea89..1a179d858 100644
--- a/include/global.h
+++ b/include/global.h
@@ -163,6 +163,16 @@ enum
OPTIONS_BATTLE_STYLE_SET
};
+struct Coords8 {
+ s8 x;
+ s8 y;
+};
+
+struct UCoords8 {
+ u8 x;
+ u8 y;
+};
+
struct Coords16
{
s16 x;
@@ -344,7 +354,8 @@ struct BattleFrontier
/*0xCA9*/ u8 field_CA9_f:1; // 0x80
/*0xCAA*/ u16 field_CAA[4];
/*0xCB2*/ u16 field_CB2;
- /*0xCB4*/ u16 field_CB4[30];
+ /*0xCB4*/ u16 field_CB4[22];
+ /*0xCE0*/ u16 field_CE0[4][2];
/*0xCF0*/ u16 field_CF0[2];
/*0xCF4*/ u16 field_CF4[2];
/*0xCF8*/ u16 field_CF8[2];
@@ -355,24 +366,21 @@ struct BattleFrontier
/*0xD09*/ u8 filler_D09;
/*0xD0A*/ u8 filler_D0A;
/*0xD0B*/ u8 filler_D0B;
- /*0xD0C*/ u8 filler_D0C;
- /*0xD0D*/ u8 filler_D0D;
- /*0xD0E*/ u8 filler_D0E;
- /*0xD0F*/ u8 filler_D0F;
+ /*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[0xB8];
+ /*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];
/*0xDD8*/ u16 field_DD8;
- /*0xDDA*/ u16 field_DDA;
- /*0xDDC*/ u16 field_DDC;
+ /*0xDDA*/ u16 field_DDA[2];
/*0xDDE*/ u16 field_DDE[2];
- /*0xDE2*/ u16 field_DE2;
- /*0xDE4*/ u16 field_DE4;
+ /*0xDE2*/ u16 field_DE2[2];
/*0xDE6*/ u16 field_DE6;
/*0xDE8*/ u16 field_DE8;
/*0xDEA*/ u16 field_DEA[2];
@@ -387,11 +395,9 @@ struct BattleFrontier
/*0xDFE*/ u16 field_DFE;
/*0xE00*/ u16 field_E00;
/*0xE02*/ u16 field_E02;
- /*0xE04*/ u16 field_E04;
- /*0xE06*/ u16 field_E06;
+ /*0xE04*/ u16 field_E04[2];
/*0xE08*/ u16 field_E08[9];
- /*0xE1A*/ u16 field_E1A;
- /*0xE1C*/ u16 field_E1C;
+ /*0xE1A*/ u16 field_E1A[2];
/*0xE1E*/ u16 field_E1E[7];
/*0xE2C*/ struct PyramidBag pyramidBag;
/*0xE58*/ u16 field_E58;
diff --git a/include/heal_location.h b/include/heal_location.h
index 1f966f1ae..46f0d785a 100644
--- a/include/heal_location.h
+++ b/include/heal_location.h
@@ -1,13 +1,6 @@
#ifndef GUARD_HEAL_LOCATION_H
#define GUARD_HEAL_LOCATION_H
-// Exported type declarations
-
-struct UnkStruct_0859F534 {
- const union AffineAnimCmd *const *const affineAnims;
- void (* callback)(struct Sprite *sprite);
-};
-
struct HealLocation
{
s8 group;
@@ -16,10 +9,8 @@ struct HealLocation
u16 y;
};
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-const struct HealLocation *GetHealLocationPointer(u32 loc);
+u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum);
+const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum);
+const struct HealLocation *GetHealLocation(u32 index);
-#endif //GUARD_HEAL_LOCATION_H
+#endif // GUARD_HEAL_LOCATION_H
diff --git a/include/match_call.h b/include/match_call.h
index 9698e7cd3..1f431bfaf 100644
--- a/include/match_call.h
+++ b/include/match_call.h
@@ -10,4 +10,6 @@ enum {
MATCH_CALL_TYPE_GYMLEADER_ELITEFOUR
};
+s32 GetRematchIdxByTrainerIdx(s32 trainerIdx);
+
#endif //GUARD_MATCH_CALL_H
diff --git a/include/menu.h b/include/menu.h
index 888d898b6..4cc43dd4c 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -51,7 +51,7 @@ void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
void reset_temp_tile_data_buffers(void);
void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode);
bool8 free_temp_tile_data_buffers_if_possible(void);
-struct WindowTemplate sub_8198A50(u8, u8, u8, u8, u8, u8, u16);
+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);
s8 ProcessMenuInputNoWrap_(void);
@@ -84,5 +84,6 @@ void sub_819A344(u8 a0, u8 *dest, u8 color);
void RemoveMapNamePopUpWindow(void);
u8 GetMapNamePopUpWindowId(void);
u8 AddMapNamePopUpWindow(void);
+void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing);
#endif // GUARD_MENU_H
diff --git a/include/party_menu.h b/include/party_menu.h
index 6e1344213..cb2c38891 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -34,6 +34,8 @@ struct Struct203CEC8
extern struct Struct203CEC8 gUnknown_0203CEC8;
+extern const u16 gUnknown_0861500C[];
+
bool8 pokemon_has_move(struct Pokemon *, u16);
void sub_81B58A8(void);
void DoWallyTutorialBagMenu(void);
@@ -54,5 +56,6 @@ void sub_81B8518(u8 unused);
u8 sub_81B1360(void);
void sub_81B8904(u8 arg0, void (*callback)(void));
void OpenPartyMenuInBattle(u8 caseId);
+u16 ItemIdToBattleMoveId(u16 itemId);
#endif // GUARD_PARTY_MENU_H
diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h
new file mode 100644
index 000000000..5cfde0093
--- /dev/null
+++ b/include/pc_screen_effect.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_PC_SCREEN_EFFECT_H
+#define GUARD_PC_SCREEN_EFFECT_H
+
+struct PCScreenEffectStruct
+{
+ /*0x00*/ u16 tileTag;
+ /*0x02*/ u16 paletteTag;
+ /*0x04*/ u16 unk04;
+ /*0x06*/ u16 unk06;
+ /*0x08*/ u16 unk08;
+ /*0x0A*/ u16 unk0A;
+ /*0x0C*/ s16 unk0C;
+ /*0x10*/ u32 selectedPalettes;
+};
+
+#endif //GUARD_PC_SCREEN_EFFECT_H
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index 9fcfdba96..03f4e0da6 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -4,10 +4,84 @@
#define TOTAL_BOXES_COUNT 14
#define IN_BOX_COUNT 30
+#include "pc_screen_effect.h"
+#include "mon_markings.h"
+
+struct PokemonStorageSystemFunc
+{
+ u8 (*func)(void);
+ s8 unk4;
+};
+
+struct StorageAction
+{
+ const u8 *text;
+ u8 format;
+};
+
+struct StorageText
+{
+ const u8 *text;
+ int textId;
+};
+
+struct PSS_MenuStringPtrs
+{
+ const u8 *text;
+ const u8 *desc;
+};
+
+struct UnkStruct_2000028
+{
+ const u8 *unk_00;
+ u8 *unk_04;
+ u16 unk_08;
+ u16 unk_0a;
+ void (*unk_0c)(struct UnkStruct_2000028 *data);
+};
+
+struct UnkStruct_2000020
+{
+ struct UnkStruct_2000028 *unk_00;
+ u8 unk_04;
+ u8 unk_05;
+};
+
+struct UnkPSSStruct_2002370
+{
+ struct Sprite *unk_0000;
+ struct Sprite *unk_0004[4];
+ u32 unk_0014[3];
+ struct Sprite *unk_0020[2];
+ u8 filler_0028[0x214];
+ u32 unk_023c;
+ u16 unk_0240;
+ u16 unk_0242;
+ u8 curBox;
+ u8 unk_0245;
+ u8 unk_0246;
+};
+
+struct PokemonStorageSystemData
+{
+ u8 state;
+ u8 boxOption;
+ u8 unk_0002;
+ u8 unk_0003;
+ u8 taskId;
+ u8 unk_0005[710];
+ u16 bg2_X;
+};
+
+extern struct UnkPSSStruct_2002370 *gUnknown_02039D04;
+extern struct PokemonStorageSystemData *gUnknown_02039D08;
+
u8* GetBoxNamePtr(u8 boxNumber);
struct BoxPokemon *GetBoxedMonPtr(u8, u8);
void SetBoxMonNickFromAnyBox(u8, u8, u8 *);
void CompactPartySlots(void);
u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
+bool8 CheckFreePokemonStorageSpace(void);
+u8 StorageGetCurrentBox(void);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/rom_8011DC0.h b/include/rom_8011DC0.h
index fd8c35f56..f71e5d97d 100644
--- a/include/rom_8011DC0.h
+++ b/include/rom_8011DC0.h
@@ -8,5 +8,6 @@
// Exported ROM declarations
void sub_8018438(void);
+u16 mevent_081445C0(u8);
#endif //GUARD_rom_8011DC0_H
diff --git a/include/rotating_gate.h b/include/rotating_gate.h
index 50a838953..2ae26aa5b 100644
--- a/include/rotating_gate.h
+++ b/include/rotating_gate.h
@@ -4,5 +4,6 @@
void RotatingGatePuzzleCameraUpdate(s16, s16);
void RotatingGate_InitPuzzleAndGraphics();
u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16);
+bool32 CheckForRotatingGatePuzzleCollisionWithoutAnimation(u8, s16, s16);
#endif // GUARD_ROTATING_GATE_H
diff --git a/include/script_menu.h b/include/script_menu.h
index 0555d0f78..c50bef00f 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -9,8 +9,9 @@ bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
-u8 convert_pixel_width_to_tile_width(s32);
+s32 convert_pixel_width_to_tile_width(s32);
u8 CreateWindowFromRect(u8, u8, u8, u8);
void sub_80E2A78(u8);
+u32 display_text_and_get_width(const u8*, u32);
#endif //GUARD_SCRIPT_MENU_H
diff --git a/include/script_pokemon_util_80F87D8.h b/include/script_pokemon_util_80F87D8.h
new file mode 100644
index 000000000..555b3428b
--- /dev/null
+++ b/include/script_pokemon_util_80F87D8.h
@@ -0,0 +1,7 @@
+
+#ifndef GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H
+#define GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H
+
+u16 sub_80F903C(void);
+
+#endif // GUARD_SCRIPT_POKEMON_UTIL_80F87D8_H
diff --git a/include/strings.h b/include/strings.h
index 4736fdc5d..2577579c5 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -451,6 +451,8 @@ extern const u8 gText_TooImportantToToss[];
extern const u8 gText_ConfirmTossItems[];
extern const u8 gText_MoveVar1Where[];
+extern const u8 gText_ColorLightShadowDarkGrey[];
+extern const u8 gText_ColorBlue[];
extern const u8 gText_Friend[];
extern const u8 gText_Tristan[];
extern const u8 gText_Philip[];
@@ -461,5 +463,307 @@ extern const u8 gText_FiveMarks[];
extern const u8 gText_TotalRecordWLD[];
extern const u8 gText_PlayersBattleResults[];
extern const u8 gText_WinLoseDraw[];
+extern const u8 gText_ColorTransparent[];
+extern const u8 gText_Slash[];
+
+extern const u8 gText_99TimesPlus[];
+extern const u8 gText_1MinutePlus[];
+extern const u8 gText_SpaceSeconds[];
+extern const u8 gText_SpaceTimes[];
+
+extern const u8 gText_BigGuy[];
+extern const u8 gText_BigGirl[];
+extern const u8 gText_Son[];
+extern const u8 gText_Daughter[];
+
+extern const u8 gText_1F[];
+extern const u8 gText_2F[];
+extern const u8 gText_3F[];
+extern const u8 gText_4F[];
+extern const u8 gText_5F[];
+extern const u8 gText_6F[];
+extern const u8 gText_7F[];
+extern const u8 gText_8F[];
+extern const u8 gText_9F[];
+extern const u8 gText_10F[];
+extern const u8 gText_11F[];
+extern const u8 gText_B1F[];
+extern const u8 gText_B2F[];
+extern const u8 gText_B3F[];
+extern const u8 gText_B4F[];
+extern const u8 gText_Rooftop[];
+extern const u8 gText_ElevatorNowOn[];
+
+extern const u8 gText_Exit[];
+
+extern const u8 gText_BlueFlute[];
+extern const u8 gText_YellowFlute[];
+extern const u8 gText_RedFlute[];
+extern const u8 gText_WhiteFlute[];
+extern const u8 gText_BlackFlute[];
+extern const u8 gText_PrettyChair[];
+extern const u8 gText_PrettyDesk[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_0Pts[];
+extern const u8 gText_10Pts[];
+extern const u8 gText_20Pts[];
+extern const u8 gText_30Pts[];
+extern const u8 gText_40Pts[];
+extern const u8 gText_50Pts[];
+extern const u8 gText_60Pts[];
+extern const u8 gText_70Pts[];
+extern const u8 gText_80Pts[];
+extern const u8 gText_90Pts[];
+extern const u8 gText_100Pts[];
+extern const u8 gText_QuestionMark[];
+
+extern const u8 gText_KissPoster16BP[];
+extern const u8 gText_KissCushion32BP[];
+extern const u8 gText_SmoochumDoll32BP[];
+extern const u8 gText_TogepiDoll48BP[];
+extern const u8 gText_MeowthDoll48BP[];
+extern const u8 gText_ClefairyDoll48BP[];
+extern const u8 gText_DittoDoll48BP[];
+extern const u8 gText_CyndaquilDoll80BP[];
+extern const u8 gText_ChikoritaDoll80BP[];
+extern const u8 gText_TotodileDoll80BP[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_LaprasDoll128BP[];
+extern const u8 gText_SnorlaxDoll128BP[];
+extern const u8 gText_VenusaurDoll256BP[];
+extern const u8 gText_CharizardDoll256BP[];
+extern const u8 gText_BlastoiseDoll256BP[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_Protein1BP[];
+extern const u8 gText_Calcium1BP[];
+extern const u8 gText_Iron1BP[];
+extern const u8 gText_Zinc1BP[];
+extern const u8 gText_Carbos1BP[];
+extern const u8 gText_HpUp1BP[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_Leftovers48BP[];
+extern const u8 gText_WhiteHerb48BP[];
+extern const u8 gText_QuickClaw48BP[];
+extern const u8 gText_MentalHerb48BP[];
+extern const u8 gText_BrightPowder64BP[];
+extern const u8 gText_ChoiceBand64BP[];
+extern const u8 gText_KingsRock64BP[];
+extern const u8 gText_FocusBand64BP[];
+extern const u8 gText_ScopeLens64BP[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_EnergyPowder50[];
+extern const u8 gText_EnergyRoot80[];
+extern const u8 gText_HealPowder50[];
+extern const u8 gText_RevivalHerb300[];
+extern const u8 gText_Protein1000[];
+extern const u8 gText_Iron1000[];
+extern const u8 gText_Carbos1000[];
+extern const u8 gText_Calcium1000[];
+extern const u8 gText_Zinc1000[];
+extern const u8 gText_HPUp1000[];
+extern const u8 gText_PPUp3000[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_BattleTower2[];
+extern const u8 gText_BattleDome[];
+extern const u8 gText_BattlePalace[];
+extern const u8 gText_BattleArena[];
+extern const u8 gText_BattleFactory[];
+extern const u8 gText_BattlePike[];
+extern const u8 gText_BattlePyramid[];
+extern const u8 gText_RankingHall[];
+extern const u8 gText_ExchangeService[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_Softboiled16BP[];
+extern const u8 gText_SeismicToss24BP[];
+extern const u8 gText_DreamEater24BP[];
+extern const u8 gText_MegaPunch24BP[];
+extern const u8 gText_MegaKick48BP[];
+extern const u8 gText_BodySlam48BP[];
+extern const u8 gText_RockSlide48BP[];
+extern const u8 gText_Counter48BP[];
+extern const u8 gText_ThunderWave48BP[];
+extern const u8 gText_SwordsDance48BP[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_DefenseCurl16BP[];
+extern const u8 gText_Snore24BP[];
+extern const u8 gText_MudSlap24BP[];
+extern const u8 gText_Swift24BP[];
+extern const u8 gText_IcyWind24BP[];
+extern const u8 gText_Endure48BP[];
+extern const u8 gText_PsychUp48BP[];
+extern const u8 gText_IcePunch48BP[];
+extern const u8 gText_ThunderPunch48BP[];
+extern const u8 gText_FirePunch48BP[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_SlateportCity[];
+extern const u8 gText_BattleFrontier[];
+extern const u8 gText_SouthernIsland[];
+extern const u8 gText_NavelRock[];
+extern const u8 gText_BirthIsland[];
+extern const u8 gText_FarawayIsland[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_BattleTrainers[];
+extern const u8 gText_BattleBasics[];
+extern const u8 gText_PokemonNature[];
+extern const u8 gText_PokemonMoves[];
+extern const u8 gText_Underpowered[];
+extern const u8 gText_WhenInDanger[];
+extern const u8 gText_Exit[];
+
+extern const u8 BattleFrontier_Lounge2_Text_260971[];
+extern const u8 BattleFrontier_Lounge2_Text_260A1E[];
+extern const u8 BattleFrontier_Lounge2_Text_260AE7[];
+extern const u8 BattleFrontier_Lounge2_Text_2619AC[];
+extern const u8 BattleFrontier_Lounge2_Text_261A91[];
+extern const u8 BattleFrontier_Lounge2_Text_261B0C[];
+extern const u8 BattleFrontier_Lounge2_Text_261B95[];
+extern const u8 BattleFrontier_Lounge2_Text_261B95[];
+extern const u8 BattleFrontier_Lounge2_Text_261B95[];
+extern const u8 BattleFrontier_Lounge2_Text_261C1A[];
+extern const u8 BattleFrontier_Lounge2_Text_261C1A[];
+extern const u8 BattleFrontier_Lounge2_Text_261C1A[];
+extern const u8 BattleFrontier_Lounge2_Text_260BC4[];
+extern const u8 BattleFrontier_Lounge2_Text_260C6D[];
+extern const u8 BattleFrontier_Lounge2_Text_260D3A[];
+extern const u8 BattleFrontier_Lounge2_Text_260E1E[];
+extern const u8 BattleFrontier_Lounge2_Text_260EC7[];
+extern const u8 BattleFrontier_Lounge2_Text_260F74[];
+extern const u8 BattleFrontier_Lounge2_Text_2614E6[];
+extern const u8 BattleFrontier_Lounge2_Text_261591[];
+extern const u8 BattleFrontier_Lounge2_Text_26166F[];
+extern const u8 BattleFrontier_Lounge2_Text_261282[];
+extern const u8 BattleFrontier_Lounge2_Text_261329[];
+extern const u8 BattleFrontier_Lounge2_Text_261403[];
+extern const u8 BattleFrontier_Lounge2_Text_261026[];
+extern const u8 BattleFrontier_Lounge2_Text_2610CC[];
+extern const u8 BattleFrontier_Lounge2_Text_261194[];
+extern const u8 BattleFrontier_Lounge2_Text_26174D[];
+extern const u8 BattleFrontier_Lounge2_Text_2617F9[];
+extern const u8 BattleFrontier_Lounge2_Text_2618C4[];
+
+extern const u8 BattleFrontier_Lounge5_Text_26468D[];
+extern const u8 BattleFrontier_Lounge5_Text_2646E5[];
+extern const u8 BattleFrontier_Lounge5_Text_264741[];
+extern const u8 BattleFrontier_Lounge5_Text_2647A4[];
+extern const u8 BattleFrontier_Lounge5_Text_2647FC[];
+extern const u8 BattleFrontier_Lounge5_Text_264858[];
+extern const u8 BattleFrontier_Lounge5_Text_2648BE[];
+extern const u8 BattleFrontier_Lounge5_Text_264916[];
+extern const u8 BattleFrontier_Lounge5_Text_264972[];
+extern const u8 BattleFrontier_Lounge5_Text_2649D5[];
+extern const u8 BattleFrontier_Lounge5_Text_264A3F[];
+extern const u8 BattleFrontier_Lounge5_Text_264A9B[];
+extern const u8 BattleFrontier_Lounge5_Text_264AF3[];
+extern const u8 BattleFrontier_Lounge5_Text_264B5D[];
+extern const u8 BattleFrontier_Lounge5_Text_2648BE[];
+extern const u8 BattleFrontier_Lounge5_Text_264BC3[];
+extern const u8 BattleFrontier_Lounge5_Text_264C36[];
+extern const u8 BattleFrontier_Lounge5_Text_2648BE[];
+extern const u8 BattleFrontier_Lounge5_Text_264C95[];
+extern const u8 BattleFrontier_Lounge5_Text_264D01[];
+extern const u8 BattleFrontier_Lounge5_Text_264D6B[];
+extern const u8 BattleFrontier_Lounge5_Text_264DD7[];
+extern const u8 BattleFrontier_Lounge5_Text_264E33[];
+extern const u8 BattleFrontier_Lounge5_Text_264E8F[];
+extern const u8 BattleFrontier_Lounge5_Text_2648BE[];
+
+extern const u8 BattleFrontier_Lounge3_Text_262261[];
+extern const u8 BattleFrontier_Lounge3_Text_26230D[];
+extern const u8 BattleFrontier_Lounge3_Text_2623B9[];
+extern const u8 BattleFrontier_Lounge3_Text_262464[];
+extern const u8 BattleFrontier_Lounge3_Text_26250E[];
+extern const u8 BattleFrontier_Lounge3_Text_2625B8[];
+extern const u8 BattleFrontier_Lounge3_Text_26266A[];
+extern const u8 BattleFrontier_Lounge3_Text_26271C[];
+extern const u8 BattleFrontier_Lounge3_Text_2627C9[];
+extern const u8 BattleFrontier_Lounge3_Text_262876[];
+extern const u8 BattleFrontier_Lounge3_Text_26291A[];
+extern const u8 BattleFrontier_Lounge3_Text_2629BC[];
+
+extern const u8 BattleFrontier_Lounge3_Text_262C04[];
+extern const u8 BattleFrontier_Lounge3_Text_262C90[];
+extern const u8 BattleFrontier_Lounge3_Text_262D1C[];
+extern const u8 BattleFrontier_Lounge3_Text_262DA7[];
+extern const u8 BattleFrontier_Lounge3_Text_262E34[];
+extern const u8 BattleFrontier_Lounge3_Text_262EC1[];
+extern const u8 BattleFrontier_Lounge3_Text_262F56[];
+extern const u8 BattleFrontier_Lounge3_Text_262FEB[];
+extern const u8 BattleFrontier_Lounge3_Text_263078[];
+extern const u8 BattleFrontier_Lounge3_Text_263105[];
+extern const u8 BattleFrontier_Lounge3_Text_26318C[];
+extern const u8 BattleFrontier_Lounge3_Text_263211[];
+
+extern const u8 gText_BP[];
+
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260201[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260287[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E[];
+
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C[];
+
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260397[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260436[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C[];
+
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260542[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260575[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260613[];
+
+extern const u8 BattleFrontier_Lounge7_Text_265E30[];
+extern const u8 BattleFrontier_Lounge7_Text_265E5B[];
+extern const u8 BattleFrontier_Lounge7_Text_265E8A[];
+extern const u8 BattleFrontier_Lounge7_Text_265EC0[];
+extern const u8 BattleFrontier_Lounge7_Text_265EED[];
+extern const u8 BattleFrontier_Lounge7_Text_265F1C[];
+extern const u8 BattleFrontier_Lounge7_Text_265F47[];
+extern const u8 BattleFrontier_Lounge7_Text_265F77[];
+extern const u8 BattleFrontier_Lounge7_Text_265FAA[];
+extern const u8 BattleFrontier_Lounge7_Text_265FDD[];
+
+extern const u8 BattleFrontier_Lounge7_Text_26600A[];
+extern const u8 BattleFrontier_Lounge7_Text_26603E[];
+extern const u8 BattleFrontier_Lounge7_Text_266070[];
+extern const u8 BattleFrontier_Lounge7_Text_2660A6[];
+extern const u8 BattleFrontier_Lounge7_Text_2660D0[];
+extern const u8 BattleFrontier_Lounge7_Text_2660FF[];
+extern const u8 BattleFrontier_Lounge7_Text_26612D[];
+extern const u8 BattleFrontier_Lounge7_Text_26615F[];
+extern const u8 BattleFrontier_Lounge7_Text_266185[];
+extern const u8 BattleFrontier_Lounge7_Text_2661B5[];
+
+extern const u8 gText_YourPartnerHasRetired[];
+
+extern const u8 gText_Wallace[];
+extern const u8 gText_Steven[];
+extern const u8 gText_Brawly[];
+extern const u8 gText_Winona[];
+extern const u8 gText_Phoebe[];
+extern const u8 gText_Glacia[];
#endif //GUARD_STRINGS_H
diff --git a/include/tv.h b/include/tv.h
index 17be8c43c..7a938f888 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -47,6 +47,8 @@ void UpdateTVShowsPerDay(u16 days);
void PutPokemonTodayCaughtOnAir(void);
void TV_PutSecretBaseVisitOnTheAir(void);
void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlayer, u16 speciesOpponent);
+void BravoTrainerPokemonProfile_BeforeInterview1(u16 move);
void UpdateTVScreensOnMap(int, int);
+void TV_PrintIntToStringVar(u8 varIdx, int value);
#endif //GUARD_TV_H
diff --git a/include/wallclock.h b/include/wallclock.h
index 48697c19f..208af9324 100644
--- a/include/wallclock.h
+++ b/include/wallclock.h
@@ -1,6 +1,7 @@
#ifndef GUARD_WALLCLOCK_H
#define GUARD_WALLCLOCK_H
-void Cb2_StartWallClock(void);
+void CB2_StartWallClock(void);
+void CB2_ViewWallClock(void);
#endif //GUARD_WALLCLOCK_H
diff --git a/ld_script.txt b/ld_script.txt
index edec60a3b..453ea28e8 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -92,6 +92,7 @@ SECTIONS {
src/metatile_behavior.o(.text);
src/field_camera.o(.text);
src/field_door.o(.text);
+ src/field_player_avatar.o(.text);
asm/field_player_avatar.o(.text);
src/event_object_movement.o(.text);
src/field_message_box.o(.text);
@@ -135,6 +136,7 @@ SECTIONS {
src/item_menu_icons.o(.text);
asm/battle_anim_80D51AC.o(.text);
src/item.o(.text);
+ src/contest.o(.text);
asm/contest.o(.text);
asm/shop.o(.text);
src/berry.o(.text);
@@ -181,7 +183,7 @@ SECTIONS {
src/time_events.o(.text);
src/birch_pc.o(.text);
src/hof_pc.o(.text);
- asm/field_specials.o(.text);
+ src/field_specials.o(.text);
src/battle_records.o(.text);
asm/pokedex_area_screen.o(.text);
src/evolution_scene.o(.text);
@@ -400,6 +402,7 @@ SECTIONS {
src/fieldmap.o(.rodata);
src/metatile_behavior.o(.rodata);
src/field_door.o(.rodata);
+ src/field_player_avatar.o(.rodata);
data/field_player_avatar.o(.rodata);
src/event_object_movement.o(.rodata);
src/text_window.o(.rodata);
@@ -470,7 +473,7 @@ SECTIONS {
src/pokeblock.o(.rodata);
src/fldeff_flash.o(.rodata);
src/time_events.o(.rodata);
- data/field_specials.o(.rodata);
+ src/field_specials.o(.rodata);
src/battle_records.o(.rodata);
data/pokedex_area_screen.o(.rodata);
src/evolution_scene.o(.rodata);
@@ -531,6 +534,7 @@ SECTIONS {
src/fossil_specials.o(.rodata);
src/fldeff_groundshake.o(.rodata);
src/berry_fix_program.o(.rodata);
+ src/pokemon_summary_screen.o(.rodata);
data/pokemon_summary_screen.o(.rodata);
data/pokenav.o(.rodata);
src/match_call.o(.rodata);
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 5c0b78240..7f5a4fb48 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -7230,7 +7230,7 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
PREPARE_STAT_BUFFER(gBattleTextBuff1, statId)
- if ((statValue << 0x18) < 0) // stat decrease
+ if (statValue <= -1) // Stat decrease.
{
if (gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].mistTimer
&& !certain && gCurrentMove != MOVE_CURSE)
diff --git a/src/battle_setup.c b/src/battle_setup.c
index e478af936..2955a33fc 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -900,7 +900,7 @@ static void CB2_GiveStarter(void)
{
u16 starterMon;
- *GetVarPointer(VAR_FIRST_POKE) = gSpecialVar_Result;
+ *GetVarPointer(VAR_STARTER_MON) = gSpecialVar_Result;
starterMon = GetStarterPokemon(gSpecialVar_Result);
ScriptGiveMon(starterMon, 5, 0, 0, 0, 0);
ResetTasks();
diff --git a/src/clock.c b/src/clock.c
index ccbb0c24b..91eb5f16d 100644
--- a/src/clock.c
+++ b/src/clock.c
@@ -88,6 +88,6 @@ static void ReturnFromStartWallClock(void)
void StartWallClock(void)
{
- SetMainCallback2(Cb2_StartWallClock);
+ SetMainCallback2(CB2_StartWallClock);
gMain.savedCallback = ReturnFromStartWallClock;
}
diff --git a/src/contest.c b/src/contest.c
new file mode 100644
index 000000000..8513fc4a9
--- /dev/null
+++ b/src/contest.c
@@ -0,0 +1,2761 @@
+#include "global.h"
+#include "gpu_regs.h"
+#include "bg.h"
+#include "malloc.h"
+#include "constants/items.h"
+#include "constants/event_objects.h"
+#include "constants/moves.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "constants/flags.h"
+#include "battle.h"
+#include "battle_anim.h"
+#include "blend_palette.h"
+#include "contest.h"
+#include "data2.h"
+#include "decompress.h"
+#include "graphics.h"
+#include "link.h"
+#include "m4a.h"
+#include "main.h"
+#include "menu.h"
+#include "overworld.h"
+#include "palette.h"
+#include "random.h"
+#include "script.h"
+#include "sound.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+#include "tv.h"
+#include "scanline_effect.h"
+#include "util.h"
+#include "contest_link_80F57C4.h"
+#include "dma3.h"
+#include "battle_message.h"
+#include "event_scripts.h"
+#include "event_data.h"
+#include "strings.h"
+#include "contest_effect.h"
+#include "contest_link_80FC4F4.h"
+#include "script_pokemon_util_80F87D8.h"
+#include "international_string_util.h"
+#include "data2.h"
+#include "constants/rgb.h"
+
+extern void (*gFieldCallback)(void);
+
+void sub_80D782C(void);
+void sub_80D7C7C(u8 taskId);
+void sub_80D7CB4(u8 taskId);
+void sub_80D7DAC(u8 taskId);
+void sub_80D7DC8(u8 taskId);
+void sub_80D7DE8(u8 taskId);
+bool8 sub_80D7E44(u8 *);
+void sub_80D80C8(u8 taskId);
+void sub_80D8108(u8 taskId);
+void vblank_cb_battle(void);
+void sub_80D823C(void);
+void sub_80D833C(u8 taskId);
+void sub_80D8424(u8 taskId);
+void sub_80D8610(u8 taskId);
+void sub_80D8490(u8 taskId);
+void sub_80D880C(s8);
+void sub_80D883C(s8);
+void sub_80D8894(u8 taskId);
+void sub_80D892C(u8 taskId);
+void sub_80D895C(u8 taskId);
+void sub_80D8A04(u8 taskId);
+void sub_80D8A50(u8 taskId);
+void sub_80D8A88(u8 taskId);
+void sub_80D8B38(u8 taskId);
+void sub_80DA110(u8);
+void sub_80DA134(struct Sprite *);
+void sub_80DA164(struct Sprite *);
+void sub_80DA198(u8);
+void sub_80DA25C(u8);
+void sub_80DA28C(u8);
+void sub_80DA31C(u8);
+void sub_80DA348(u8);
+void sub_80DA38C(u8);
+void sub_80DA3CC(u8);
+void sub_80DA464(u8);
+void sub_80DA49C(u8);
+void sub_80DA4CC(u8);
+void sub_80DA51C(u8);
+void sub_80DA5B4(u8);
+void sub_80DA5E8(u8);
+void sub_80DA6B4(u8);
+void sub_80DA700(u8);
+void sub_80DA740(u8);
+void sub_80DA7A0(u8);
+void sub_80DA7EC(u8);
+void sub_80DA830(u8);
+void sub_80DA874(void);
+bool8 sub_80DA8A4(void);
+void sub_80DAF04(u8);
+void sub_80DAF1C(u8 a0, u8 a1);
+void sub_80DAF88(u8);
+void sub_80DAFA0(u8, u8);
+u8 sub_80DB0C4(void);
+u8 sub_80DB120(void);
+u8 sub_80DB174(u16, u32, u32, u32);
+void sub_80DB2BC(void);
+void prints_contest_move_description(u16);
+u16 sub_80DE84C(u16);
+void sub_80DB89C(void);
+u16 sub_80DB8B8(u8);
+void sub_80DB918(void);
+bool8 sub_80DBCA8(u8);
+void sub_80DBF68(void);
+void sub_80DBF90(void);
+void sub_80DC2BC(void);
+void sub_80DC490(bool8);
+void sub_80DC4F0(void);
+void sub_80DC594(void);
+void sub_80DC5E8(void);
+void sub_80DC7EC(void);
+void sub_80DCD48(void);
+void sub_80DCE58(u8);
+void sub_80DD04C(void);
+void sub_80DD590(void);
+void sub_80DDB0C(void);
+void sub_80DDBE8(void);
+bool8 sub_80DE1E8(u8);
+void sub_80DE224(void);
+void sub_80DE350(void);
+void sub_80DE424(u8);
+void sub_80DE69C(u8);
+void sub_80DEA20(void);
+void Contest_PrintTextToBg0WindowAt(u32, u8 *, s32, u8, u8);
+void Contest_StartTextPrinter(const u8 *, u8);
+void ContestBG_FillBoxWithIncrementingTile(u8, u16, u8, u8, u8, u8, u8, u8);
+bool32 Contest_RunTextPrinters(void);
+void Contest_SetBgCopyFlags(u32);
+void sub_80FC9F8(u8);
+bool8 AreMovesContestCombo(u16, u16);
+void sub_80DBD18(void);
+void sub_80DF250(void);
+void sub_80DF4F8(void);
+void sub_80DD080(u8);
+void sub_80DF080(u8);
+void sub_80DF750(void);
+void sub_80DE9DC(u8);
+void sub_80DCBE8(u8, u8);
+u8 sub_80DC9EC(u8);
+u16 sub_80DE834(u16);
+void sub_80DE864(u8);
+void sub_80DEAA8(u16);
+void sub_80DE9B0(u8);
+void sub_80DC674(u8);
+void sub_80DE12C(void);
+void sub_80DD45C(u8, u8);
+void sub_80DD720(u8);
+void sub_80DE008(bool8);
+void sub_80DC028(s16, s16, u8);
+bool8 sub_80DB5B8(u8, u8);
+bool8 sub_80DB798(u8);
+void sub_80DB884(void);
+void sub_80DC9B4(u8);
+void sub_80DDED0(s8, s8);
+void sub_80DDCDC(s8);
+void sub_80DDE0C(void);
+void sub_80DD940(void);
+void sub_80DB944(void);
+void sub_80DBA18(void);
+void sub_80DC3AC(void);
+bool8 sub_80DC3C4(void);
+void sub_80DF9D4(u8 *);
+void sub_80DF9E0(u8 *, s32);
+void ContestBG_FillBoxWithTile(u8, u16, u8, u8, u8, u8, u8);
+void Contest_PrintTextToBg0WindowStd(u8, const u8 *);
+
+EWRAM_DATA struct ContestPokemon gContestMons[4] = {0};
+EWRAM_DATA s16 gContestMonConditions[4] = {0};
+EWRAM_DATA s16 gUnknown_02039F08[4] = {0};
+EWRAM_DATA s16 gUnknown_02039F10[4] = {0};
+EWRAM_DATA s16 gUnknown_02039F18[4] = {0};
+EWRAM_DATA u8 gContestFinalStandings[4] = {0};
+EWRAM_DATA u8 gUnknown_02039F24 = 0;
+EWRAM_DATA u8 gContestPlayerMonIndex = 0;
+EWRAM_DATA u8 gUnknown_02039F26[4] = {0};
+EWRAM_DATA u8 gIsLinkContest = 0;
+// Bit 0: Is a link contest
+// Bit 1: Link contest uses wireless adapter
+EWRAM_DATA u8 gUnknown_02039F2B = 0;
+EWRAM_DATA u16 gSpecialVar_ContestCategory = 0;
+EWRAM_DATA u16 gSpecialVar_ContestRank = 0;
+EWRAM_DATA u8 gUnknown_02039F30 = 0;
+EWRAM_DATA u8 gUnknown_02039F31 = 0;
+EWRAM_DATA struct ContestResources * gContestResources = NULL;
+EWRAM_DATA u8 sContestBgCopyFlags = 0;
+EWRAM_DATA struct ContestWinner gUnknown_02039F3C = {0};
+
+u32 gContestRngValue;
+
+extern u16 gBattle_BG0_X;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG1_X;
+extern s16 gBattle_BG1_Y;
+extern u16 gBattle_BG2_X;
+extern u16 gBattle_BG2_Y;
+extern u16 gBattle_BG3_X;
+extern u16 gBattle_BG3_Y;
+extern u16 gBattle_WIN0H;
+extern u16 gBattle_WIN0V;
+extern u16 gBattle_WIN1H;
+extern u16 gBattle_WIN1V;
+
+extern const u8 gContestMiscGfx[];
+extern const u8 gContestAudienceGfx[];
+extern const u8 gUnknown_08C16FA8[];
+extern const u8 gUnknown_08C16E90[];
+extern const u8 gUnknown_08C17170[];
+extern const u16 gUnknown_08587C30[];
+extern const struct BgTemplate gUnknown_08587F34[4];
+extern const struct WindowTemplate gUnknown_08587F44[];
+extern const u8 *const gUnknown_08587D90[];
+extern const u8 *const gUnknown_08587F08[];
+extern const u8 *const gUnknown_08587F1C[];
+extern const u8 gText_0827D55A[];
+extern const u8 gText_0827E793[];
+extern const u8 gText_0827E32E[];
+extern const u8 gText_0827E35B[];
+extern const u8 gText_0827E38D[];
+extern const u8 gText_0827E2FE[];
+extern const u8 gText_0827E6E3[];
+extern const u8 gText_0827E73C[];
+extern const u8 gText_0827E717[];
+extern const u8 gText_0827E76A[];
+extern const u8 gText_0827E7EA[];
+extern const u8 gText_0827E817[];
+extern const u8 gText_0827E58A[];
+extern const u8 gText_0827D56F[];
+extern const u8 gText_0827D597[];
+extern const struct ContestPokemon gContestOpponents[96];
+extern const u8 gUnknown_085898A4[96];
+extern const struct CompressedSpriteSheet gUnknown_08587C00;
+extern const u8 gContest2Pal[];
+extern const struct SpriteTemplate gSpriteTemplate_8587BE8;
+extern const struct CompressedSpriteSheet gUnknown_08587C08;
+extern const struct CompressedSpritePalette gUnknown_08587C10;
+extern const struct SpriteTemplate gSpriteTemplate_8587C18;
+extern const union AffineAnimCmd *const gUnknown_082FF6C0[];
+extern const union AffineAnimCmd *const gUnknown_082FF694[];
+extern const u8 *const gContestEffectDescriptionPointers[];
+
+void TaskDummy1(u8 taskId)
+{
+}
+
+void ResetLinkContestBoolean(void)
+{
+ gIsLinkContest = 0;
+}
+
+void sub_80D7678(void)
+{
+ u16 savedIme;
+
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR);
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3 | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR);
+ SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON);
+
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
+ gBattle_WIN0H = 0;
+ gBattle_WIN0V = 0;
+ gBattle_WIN1H = 0;
+ gBattle_WIN1V = 0;
+}
+
+void LoadContestBgAfterMoveAnim(void)
+{
+ s32 i;
+
+ LZDecompressVram(gContestMiscGfx, (void *)VRAM);
+ LZDecompressVram(gContestAudienceGfx, (void *)(VRAM + 0x2000));
+ CopyToBgTilemapBuffer(3, gUnknown_08C16FA8, 0, 0);
+ CopyBgTilemapBufferToVram(3);
+ LoadCompressedPalette(gUnknown_08C16E90, 0, 0x200);
+ sub_80D782C();
+ for (i = 0; i < 4; i++)
+ {
+ u32 var = 5 + i;
+
+ LoadPalette(shared18000.unk18004[var], 16 * (5 + gUnknown_02039F26[i]), 16 * sizeof(u16));
+ }
+}
+
+void sub_80D779C(void)
+{
+ s32 i;
+
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, gUnknown_08587F34, ARRAY_COUNT(gUnknown_08587F34));
+ SetBgAttribute(3, BG_CTRL_ATTR_PRIORITY, 1);
+ for (i = 0; i < 4; i++)
+ {
+ SetBgTilemapBuffer(i, gContestResources->field_24[i]);
+ }
+}
+
+void sub_80D77E4(void)
+{
+ InitWindows(gUnknown_08587F44);
+ DeactivateAllTextPrinters();
+ if (gIsLinkContest & 1)
+ {
+ gTextFlags.flag_0 = FALSE;
+ }
+ else
+ {
+ gTextFlags.flag_0 = TRUE;
+ }
+}
+
+void sub_80D782C(void)
+{
+ s32 i;
+
+ LoadPalette(gUnknown_08587C30, 0xf0, 0x20);
+ FillPalette(RGB_BLACK, 0, 2);
+ for (i = 10; i < 14; i++)
+ LoadPalette(gPlttBufferUnfaded + 241, 240 + i, 2);
+ FillPalette(RGB(31, 17, 31), 0xF3, 2);
+}
+
+void sub_80D787C(void)
+{
+ s32 i;
+
+ *gContestResources->field_0 = (struct Contest){};
+ for (i = 0; i < 4; i++)
+ {
+ gContestResources->field_0->unk19206[i] = 0xFF;
+ }
+ for (i = 0; i < 4; i++)
+ {
+ gContestResources->field_4[i] = (struct ContestantStatus){};
+ }
+ for (i = 0; i < 4; i++)
+ {
+ gContestResources->field_4[i].unkB_0 = 0;
+ gContestResources->field_4[i].effectStringId = CONTEST_STRING_NONE;
+ gContestResources->field_4[i].effectStringId2 = CONTEST_STRING_NONE;
+ }
+ *gContestResources->field_8 = (struct UnknownContestStruct7){};
+ *gContestResources->field_C = (struct ContestAIInfo){};
+ *gContestResources->field_10 = (struct UnknownContestStruct5){};
+ memset(gContestResources->field_14, 0, 4 * sizeof(struct UnknownContestStruct4));
+ if (!(gIsLinkContest & 1))
+ sub_80DCE58(0);
+ for (i = 0; i < 4; i++)
+ {
+ gContestResources->field_4[i].nextTurnOrder = 0xFF;
+ gContestResources->field_0->unk19218[i] = gUnknown_02039F26[i];
+ }
+ sub_80DD590();
+ *gContestResources->field_1c = (struct ContestResourcesField1C){};
+}
+
+void sub_80D7988(void)
+{
+ gContestResources = AllocZeroed(sizeof(struct ContestResources));
+ gContestResources->field_0 = AllocZeroed(sizeof(struct Contest));
+ gContestResources->field_4 = AllocZeroed(sizeof(struct ContestantStatus) * 4);
+ gContestResources->field_8 = AllocZeroed(sizeof(struct UnknownContestStruct7));
+ gContestResources->field_C = AllocZeroed(sizeof(struct ContestAIInfo));
+ gContestResources->field_10 = AllocZeroed(sizeof(struct UnknownContestStruct5) * 4);
+ gContestResources->field_14 = AllocZeroed(sizeof(struct UnknownContestStruct4) * 4);
+ gContestResources->field_18 = AllocZeroed(sizeof(struct ContestStruct_field_18));
+ gContestResources->field_1c = AllocZeroed(sizeof(struct ContestResourcesField1C));
+ gContestResources->field_20 = AllocZeroed(sizeof(struct ContestResourcesField20));
+ gContestResources->field_24[0] = AllocZeroed(0x1000);
+ gContestResources->field_24[1] = AllocZeroed(0x1000);
+ gContestResources->field_24[2] = AllocZeroed(0x1000);
+ gContestResources->field_24[3] = AllocZeroed(0x1000);
+ gContestResources->field_34 = AllocZeroed(0x800);
+ gContestResources->field_38 = AllocZeroed(0x800);
+ gContestResources->field_3c = AllocZeroed(0x2000);
+ gUnknown_0202305C = gContestResources->field_3c;
+ gUnknown_02023060 = gContestResources->field_24[1];
+}
+
+void sub_80D7A5C(void)
+{
+ FREE_AND_SET_NULL(gContestResources->field_0);
+ FREE_AND_SET_NULL(gContestResources->field_4);
+ FREE_AND_SET_NULL(gContestResources->field_8);
+ FREE_AND_SET_NULL(gContestResources->field_C);
+ FREE_AND_SET_NULL(gContestResources->field_10);
+ FREE_AND_SET_NULL(gContestResources->field_14);
+ FREE_AND_SET_NULL(gContestResources->field_18);
+ FREE_AND_SET_NULL(gContestResources->field_1c);
+ FREE_AND_SET_NULL(gContestResources->field_20);
+ FREE_AND_SET_NULL(gContestResources->field_24[0]);
+ FREE_AND_SET_NULL(gContestResources->field_24[1]);
+ FREE_AND_SET_NULL(gContestResources->field_24[2]);
+ FREE_AND_SET_NULL(gContestResources->field_24[3]);
+ FREE_AND_SET_NULL(gContestResources->field_34);
+ FREE_AND_SET_NULL(gContestResources->field_38);
+ FREE_AND_SET_NULL(gContestResources->field_3c);
+ FREE_AND_SET_NULL(gContestResources);
+ gUnknown_0202305C = NULL;
+ gUnknown_02023060 = NULL;
+}
+
+void sub_80D7B24(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ sContestBgCopyFlags = 0;
+ sub_80D7988();
+ AllocateMonSpritesGfx();
+ FREE_AND_SET_NULL(gMonSpritesGfxPtr->firstDecompressed);
+ gMonSpritesGfxPtr->firstDecompressed = AllocZeroed(0x4000);
+ SetVBlankCallback(NULL);
+ sub_80D779C();
+ sub_80D77E4();
+ sub_80D7678();
+ ScanlineEffect_Clear();
+ ResetPaletteFade();
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ ResetSpriteData();
+ ResetTasks();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 4;
+ //shared18000.unk18000 = 0;
+ gHeap[0x1a000] = 0;
+ ClearBattleMonForms();
+ sub_80D787C();
+ gMain.state++;
+ break;
+ case 1:
+ gMain.state++;
+ break;
+ case 2:
+ if (sub_80D7E44(&gContestResources->field_0->unk1925D))
+ {
+ gContestResources->field_0->unk1925D = 0;
+ gMain.state++;
+ }
+ break;
+ case 3:
+ sub_80DE224();
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ BeginFastPaletteFade(2);
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ SetVBlankCallback(vblank_cb_battle);
+ gContestResources->field_0->mainTaskId = CreateTask(sub_80D7C7C, 10);
+ SetMainCallback2(sub_80D823C);
+ if (gIsLinkContest & 2)
+ {
+ sub_800E0E8();
+ CreateWirelessStatusIndicatorSprite(8, 8);
+ }
+ break;
+ }
+}
+
+void sub_80D7C7C(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_80D7CB4;
+ }
+}
+
+void sub_80D7CB4(u8 taskId)
+{
+ if (gIsLinkContest & 1)
+ {
+ if (gIsLinkContest & 2)
+ {
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ sub_80DBF68();
+ gTasks[taskId].data[0]++;
+ // fallthrough
+ case 1:
+ if (sub_800A520())
+ {
+ sub_800ADF8();
+ gTasks[taskId].data[0]++;
+ }
+ return;
+ case 2:
+ if (sub_800A520() != TRUE)
+ return;
+ gTasks[taskId].data[0]++;
+ break;
+ }
+ }
+
+ if (!gPaletteFade.active)
+ {
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ if (!(gIsLinkContest & 2))
+ sub_80DBF68();
+ CreateTask(sub_80D7DAC, 0);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = TaskDummy1;
+ }
+ }
+ else
+ {
+ gTasks[taskId].func = sub_80D80C8;
+ }
+}
+
+void sub_80D7DAC(u8 taskId)
+{
+ SetTaskFuncWithFollowupFunc(taskId, sub_80FC998, sub_80D7DC8);
+}
+
+void sub_80D7DC8(u8 taskId)
+{
+ gTasks[taskId].data[0] = 1;
+ gTasks[taskId].func = sub_80D7DE8;
+}
+
+void sub_80D7DE8(u8 taskId)
+{
+ gTasks[taskId].data[0]--;
+ if (gTasks[taskId].data[0] <= 0)
+ {
+ GetMultiplayerId(); // unused return value
+ DestroyTask(taskId);
+ gTasks[gContestResources->field_0->mainTaskId].func = sub_80D80C8;
+ gRngValue = gContestRngValue;
+ }
+}
+
+u8 sub_80D7E44(u8 *a)
+{
+ u16 sp0[16];
+ u16 sp20[16];
+
+ switch (*a)
+ {
+ case 0:
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ RequestDma3Fill(0, (void *)VRAM, 0x8000, 1);
+ RequestDma3Fill(0, (void *)VRAM + 0x8000, 0x8000, 1);
+ RequestDma3Fill(0, (void *)VRAM + 0x10000, 0x8000, 1);
+ break;
+ case 1:
+ LZDecompressVram(gContestMiscGfx, (void *)VRAM);
+ break;
+ case 2:
+ LZDecompressVram(gContestAudienceGfx, (void *)(VRAM + 0x2000));
+ DmaCopyLarge32(3, (void *)(VRAM + 0x2000), shared15800, 0x2000, 0x1000);
+ break;
+ case 3:
+ CopyToBgTilemapBuffer(3, gUnknown_08C16FA8, 0, 0);
+ CopyBgTilemapBufferToVram(3);
+ break;
+ case 4:
+ CopyToBgTilemapBuffer(2, gUnknown_08C17170, 0, 0);
+ CopyBgTilemapBufferToVram(2);
+ DmaCopy32Defvars(3, gContestResources->field_24[2], shared18000.unk18A04, 0x800);
+ break;
+ case 5:
+ LoadCompressedPalette(gUnknown_08C16E90, 0, 0x200);
+ CpuCopy32(gPlttBufferUnfaded + 128, sp0, 16 * sizeof(u16));
+ CpuCopy32(gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, sp20, 16 * sizeof(u16));
+ CpuCopy32(sp20, gPlttBufferUnfaded + 128, 16 * sizeof(u16));
+ CpuCopy32(sp0, gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, 16 * sizeof(u16));
+ DmaCopy32Defvars(3, gPlttBufferUnfaded, shared18000.unk18004, 0x200);
+ sub_80D782C();
+ break;
+ case 6:
+ sub_80DD04C();
+ sub_80DBF90();
+ sub_80DB2BC();
+ gContestResources->field_0->unk19216 = sub_80DB120();
+ sub_80DC2BC();
+ sub_80DC4F0();
+ sub_80DC594();
+ sub_80DC5E8();
+ sub_80DC7EC();
+ gBattlerPositions[0] = 0;
+ gBattlerPositions[1] = 1;
+ gBattlerPositions[2] = 3;
+ gBattlerPositions[3] = 2;
+ gBattleTypeFlags = 0;
+ gBattlerAttacker = 2;
+ gBattlerTarget = 3;
+ gBattlerSpriteIds[gBattlerAttacker] = sub_80DB0C4();
+ sub_80DEA20();
+ CopyBgTilemapBufferToVram(3);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ ShowBg(3);
+ ShowBg(2);
+ ShowBg(0);
+ ShowBg(1);
+ break;
+ default:
+ *a = 0;
+ return 1;
+ }
+
+ (*a)++;
+ return 0;
+}
+
+void sub_80D80C8(u8 taskId)
+{
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ if (!gPaletteFade.active)
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].func = sub_80D8108;
+ }
+}
+
+
+void sub_80D8108(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (gTasks[taskId].data[1]++ <= 60)
+ break;
+ gTasks[taskId].data[1] = 0;
+ PlaySE12WithPanning(SE_C_MAKU_U, 0);
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ if ((gBattle_BG1_Y += 7) <= 160)
+ break;
+ gTasks[taskId].data[0]++;
+ break;
+ case 2:
+ sub_80DE350();
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ {
+ u16 bg0Cnt = GetGpuReg(REG_OFFSET_BG0CNT);
+ u16 bg2Cnt = GetGpuReg(REG_OFFSET_BG2CNT);
+ ((struct BgCnt *)&bg0Cnt)->priority = 0;
+ ((struct BgCnt *)&bg2Cnt)->priority = 0;
+ SetGpuReg(REG_OFFSET_BG0CNT, bg0Cnt);
+ SetGpuReg(REG_OFFSET_BG2CNT, bg2Cnt);
+ sub_80DDB0C();
+ gTasks[taskId].data[0]++;
+ break;
+ }
+ case 4:
+ default:
+ if (gContestResources->field_0->unk1920A_6)
+ break;
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].func = sub_80D833C;
+ break;
+ }
+}
+
+void sub_80D823C(void)
+{
+ s32 i;
+
+ AnimateSprites();
+ RunTasks();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+
+ for (i = 0; i < 4; i++)
+ {
+ if ((sContestBgCopyFlags >> i) & 1)
+ CopyBgTilemapBufferToVram(i);
+ }
+ sContestBgCopyFlags = 0;
+}
+
+void vblank_cb_battle(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);
+ SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X);
+ SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y);
+ SetGpuReg(REG_OFFSET_BG3HOFS, gBattle_BG3_X);
+ SetGpuReg(REG_OFFSET_BG3VOFS, gBattle_BG3_Y);
+ SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H);
+ SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V);
+ SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN1H);
+ SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN1V);
+ TransferPlttBuffer();
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ ScanlineEffect_InitHBlankDmaTransfer();
+}
+
+void sub_80D833C(u8 taskId)
+{
+ if (gTasks[taskId].data[0] == 0)
+ {
+ gBattle_BG0_Y = 0;
+ gBattle_BG2_Y = 0;
+ sub_80DCD48();
+ DmaCopy32Defvars(3, gPlttBufferUnfaded, shared18000.unk18204, 0x400);
+ ConvertIntToDecimalStringN(gStringVar1, gContestResources->field_0->turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1);
+ if (!sub_80DBCA8(gContestPlayerMonIndex))
+ StringCopy(gDisplayedStringBattle, gText_0827D507);
+ else
+ StringCopy(gDisplayedStringBattle, gText_0827D531);
+ sub_80DB89C();
+ StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ if (!Contest_RunTextPrinters())
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_80D8424;
+ }
+ }
+}
+
+void sub_80D8424(u8 taskId)
+{
+ if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys == B_BUTTON))
+ {
+ PlaySE(SE_SELECT);
+ if (!sub_80DBCA8(gContestPlayerMonIndex))
+ {
+ sub_80DC490(TRUE);
+ gTasks[taskId].func = sub_80D8490;
+ }
+ else
+ {
+ gTasks[taskId].func = sub_80D8894;
+ }
+ }
+}
+
+void sub_80D8490(u8 taskId)
+{
+ u8 i;
+ u8 sp8[32];
+
+ gBattle_BG0_Y = 0xA0;
+ gBattle_BG2_Y = 0xA0;
+
+ for (i = 0; i < 4; i++)
+ {
+ u16 move = gContestMons[gContestPlayerMonIndex].moves[i];
+ u8 *r5 = sp8;
+
+ if (gContestResources->field_4[gContestPlayerMonIndex].prevMove != MOVE_NONE
+ && sub_80DE1E8(gContestPlayerMonIndex)
+ && AreMovesContestCombo(gContestResources->field_4[gContestPlayerMonIndex].prevMove, move) != 0
+ && gContestResources->field_4[gContestPlayerMonIndex].hasJudgesAttention)
+ {
+ r5 = StringCopy(sp8, gText_ColorLightShadowDarkGrey);
+ }
+ else if (move != 0
+ && gContestResources->field_4[gContestPlayerMonIndex].prevMove == move
+ && gContestMoves[move].effect != CONTEST_EFFECT_REPETITION_NOT_BORING)
+ {
+ // Gray the text because it is a repeated move
+ r5 = StringCopy(sp8, gText_ColorBlue);
+ }
+ r5 = StringCopy(r5, gMoveNames[move]);
+
+ FillWindowPixelBuffer(i + 5, 0);
+ Contest_PrintTextToBg0WindowAt(i + 5, sp8, 5, 1, 7);
+ }
+
+ sub_80D880C(gContestResources->field_0->playerMoveChoice);
+ prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]);
+ gTasks[taskId].func = sub_80D8610;
+}
+
+void sub_80D8610(u8 taskId)
+{
+ u8 numMoves = 0;
+ s32 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (gContestMons[gContestPlayerMonIndex].moves[i] != MOVE_NONE)
+ numMoves++;
+ }
+
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gTasks[taskId].func = sub_80D8894;
+ }
+ else
+ {
+ switch (gMain.newAndRepeatedKeys)
+ {
+ case B_BUTTON:
+ PlaySE(SE_SELECT);
+ sub_80DC490(FALSE);
+ ConvertIntToDecimalStringN(gStringVar1, gContestResources->field_0->turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1);
+ if (!sub_80DBCA8(gContestPlayerMonIndex))
+ StringCopy(gDisplayedStringBattle, gText_0827D507);
+ else
+ StringCopy(gDisplayedStringBattle, gText_0827D531);
+ sub_80DB89C();
+ StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
+ Contest_StartTextPrinter(gStringVar4, 0);
+ gBattle_BG0_Y = 0;
+ gBattle_BG2_Y = 0;
+ gTasks[taskId].func = sub_80D8424;
+ break;
+ case DPAD_LEFT:
+ case DPAD_RIGHT:
+ break;
+ case DPAD_UP:
+ sub_80D883C(gContestResources->field_0->playerMoveChoice);
+ if (gContestResources->field_0->playerMoveChoice == 0)
+ gContestResources->field_0->playerMoveChoice = numMoves - 1;
+ else
+ gContestResources->field_0->playerMoveChoice--;
+ sub_80D880C(gContestResources->field_0->playerMoveChoice);
+ prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]);
+ if (numMoves > 1)
+ PlaySE(SE_SELECT);
+ break;
+ case DPAD_DOWN:
+ sub_80D883C(gContestResources->field_0->playerMoveChoice);
+ if (gContestResources->field_0->playerMoveChoice == numMoves - 1)
+ gContestResources->field_0->playerMoveChoice = 0;
+ else
+ gContestResources->field_0->playerMoveChoice++;
+ sub_80D880C(gContestResources->field_0->playerMoveChoice);
+ prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]);
+ if (numMoves > 1)
+ PlaySE(SE_SELECT);
+ break;
+ }
+ }
+}
+
+void sub_80D880C(s8 a0)
+{
+ ContestBG_FillBoxWithIncrementingTile(2, 55, 0, 31 + a0 * 2, 2, 2, 17, 1);
+}
+
+void sub_80D883C(s8 a0)
+{
+ ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 31 + a0 * 2, 2, 1, 17, 1);
+ ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 32 + a0 * 2, 2, 1, 17, 1);
+}
+
+void sub_80D8894(u8 taskId)
+{
+ if (gIsLinkContest & 1)
+ {
+ u16 var = sub_80DB8B8(gContestPlayerMonIndex);
+ u8 taskId2;
+
+ gContestResources->field_4[gContestPlayerMonIndex].currMove = var;
+ taskId2 = CreateTask(sub_80FC9F8, 0);
+ SetTaskFuncWithFollowupFunc(taskId2, sub_80FC9F8, sub_80D892C);
+ gTasks[taskId].func = TaskDummy1;
+ sub_80DBF68();
+ sub_80DC490(FALSE);
+ }
+ else
+ {
+ sub_80DB918();
+ gTasks[taskId].func = sub_80D895C;
+ }
+}
+
+void sub_80D892C(u8 taskId)
+{
+ DestroyTask(taskId);
+ gTasks[gContestResources->field_0->mainTaskId].func = sub_80D895C;
+}
+
+void sub_80D895C(u8 taskId)
+{
+ s32 i;
+
+ sub_80DB89C();
+ gBattle_BG0_Y = 0;
+ gBattle_BG2_Y = 0;
+ sub_80DC490(FALSE);
+
+ for (i = 0; i < 4; i++)
+ {
+ FillWindowPixelBuffer(5 + i, 0);
+ PutWindowTilemap(5 + i);
+ CopyWindowToVram(5 + i, 2);
+ }
+ Contest_SetBgCopyFlags(0);
+
+ DmaCopy32Defvars(3, gPlttBufferFaded, shared18000.unk18604, 0x400);
+ LoadPalette(shared18000.unk18204, 0, 0x400);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].func = sub_80D8A04;
+}
+
+void sub_80D8A04(u8 taskId)
+{
+ if (++gTasks[taskId].data[0] > 2)
+ {
+ gTasks[taskId].data[0] = 0;
+ if (++gTasks[taskId].data[1] == 2)
+ {
+ sub_80DDBE8();
+ sub_80DE69C(1);
+ gTasks[taskId].func = sub_80D8A50;
+ }
+ }
+}
+
+void sub_80D8A50(u8 taskId)
+{
+ if (!gContestResources->field_0->unk1920A_6 && !gContestResources->field_0->unk1920B_1)
+ gTasks[taskId].func = sub_80D8A88;
+}
+
+void sub_80D8A88(u8 taskId)
+{
+ if (++gTasks[taskId].data[0] > 19)
+ {
+ gContestResources->field_0->unk19214 = 0;
+ gContestResources->field_0->unk1921C = gRngValue;
+ if ((gIsLinkContest & 1) && sub_80DA8A4())
+ {
+ s32 i;
+
+ for (i = 0; i + gUnknown_02039F30 < 4; i++)
+ {
+ gContestResources->field_4[gUnknown_02039F30 + i].currMove = sub_80DB8B8(gUnknown_02039F30 + i);
+ }
+ }
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_80D8B38;
+ }
+}
+
+void sub_80D8B38(u8 taskId)
+{
+ u8 spriteId;
+ s32 i;
+ u8 r6 = gContestResources->field_0->unk19215;
+ s8 r3;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ sub_80DCD48();
+ for (i = 0; gContestResources->field_0->unk19214 != gContestResources->field_8->turnOrder[i]; i++)
+ ;
+ gContestResources->field_0->unk19215 = i;
+ r6 = gContestResources->field_0->unk19215;
+ if (gIsLinkContest & 1)
+ {
+ u8 taskId2;
+
+ gContestResources->field_0->unk1920B_2 = 1;
+ if (sub_80DA8A4())
+ sub_80DD080(gContestResources->field_0->unk19215);
+ taskId2 = CreateTask(sub_80FCC88, 0);
+ SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110);
+ sub_80DBF68();
+ gTasks[taskId].data[0] = 1;
+ }
+ else
+ {
+ sub_80DD080(gContestResources->field_0->unk19215);
+ gTasks[taskId].data[0] = 2;
+ }
+ return;
+ case 1:
+ if (!gContestResources->field_0->unk1920B_2)
+ gTasks[taskId].data[0] = 2;
+ return;
+ case 2:
+ sub_80DF080(r6);
+ sub_80DF750();
+ if (gContestResources->field_4[r6].numTurnsSkipped != 0
+ || gContestResources->field_4[r6].noMoreTurns)
+ {
+ gTasks[taskId].data[0] = 31;
+ }
+ else
+ {
+ sub_80DB89C();
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 3;
+ }
+ return;
+ case 3:
+ for (i = 0; i < 4; i++)
+ gBattleMonForms[i] = 0;
+ memset(gContestResources->field_18, 0, sizeof(*gContestResources->field_18));
+ sub_80DE9DC(gContestResources->field_0->unk19215);
+ spriteId = sub_80DB174(
+ gContestMons[gContestResources->field_0->unk19215].species,
+ gContestMons[gContestResources->field_0->unk19215].otId,
+ gContestMons[gContestResources->field_0->unk19215].personality,
+ gContestResources->field_0->unk19215);
+ gSprites[spriteId].pos2.x = 120;
+ gSprites[spriteId].callback = sub_80DA134;
+ gTasks[taskId].data[2] = spriteId;
+ gBattlerSpriteIds[gBattlerAttacker] = spriteId;
+ sub_80DCBE8(sub_80DC9EC(gContestResources->field_0->unk19215), FALSE);
+ gTasks[taskId].data[0] = 4;
+ return;
+ case 4:
+ spriteId = gTasks[taskId].data[2];
+ if (gSprites[spriteId].callback == SpriteCallbackDummy)
+ {
+ if (!gContestResources->field_14[r6].unk2_1)
+ gTasks[taskId].data[0] = 5;
+ }
+ return;
+ case 5:
+ if (gContestResources->field_4[r6].nervous)
+ {
+ gTasks[taskId].data[0] = 33;
+ }
+ else
+ {
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ if (gContestResources->field_4[r6].currMove < MOVES_COUNT)
+ StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]);
+ else
+ StringCopy(gStringVar2, gUnknown_08587F1C[gContestResources->field_4[r6].moveCategory]);
+ StringExpandPlaceholders(gStringVar4, gText_0827D55A);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[0] = 6;
+ }
+ return;
+ case 6:
+ if (!Contest_RunTextPrinters())
+ {
+ gContestResources->field_0->unk1925E = 0;
+ gTasks[taskId].data[0] = 7;
+ }
+ return;
+ case 7:
+ {
+ u16 move = sub_80DE834(gContestResources->field_4[gContestResources->field_0->unk19215].currMove);
+
+ sub_80DE864(gContestResources->field_0->unk19215);
+ sub_80DE9DC(gContestResources->field_0->unk19215);
+ sub_80DEAA8(move);
+ DoMoveAnim(move);
+ gTasks[taskId].data[0] = 8;
+ }
+ return;
+ case 8:
+ gAnimScriptCallback();
+ if (!gAnimScriptActive)
+ {
+ sub_80DE9B0(r6);
+ if (gContestResources->field_0->unk1925E != 0)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 9;
+ }
+ else
+ {
+ if (!gContestResources->field_4[r6].hasJudgesAttention)
+ sub_80DC674(r6);
+ sub_80DE12C();
+ gTasks[taskId].data[0] = 23;
+ }
+ }
+ return;
+ case 9:
+ if (gTasks[taskId].data[10]++ > 30)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 7;
+ }
+ return;
+ case 23:
+ gTasks[taskId].data[1] = 0;
+ if (gContestResources->field_4[r6].effectStringId != CONTEST_STRING_NONE)
+ {
+ sub_80DD45C(r6, gContestResources->field_4[r6].effectStringId);
+ gContestResources->field_4[r6].effectStringId = CONTEST_STRING_NONE;
+ gTasks[taskId].data[0] = 24;
+ }
+ else
+ {
+ if (gContestResources->field_4[r6].effectStringId2 != CONTEST_STRING_NONE)
+ {
+ for (i = 0; i < 4; i++)
+ {
+ if (i != r6 && gContestResources->field_4[i].effectStringId != CONTEST_STRING_NONE)
+ break;
+ }
+ if (i == 4)
+ {
+ sub_80DD45C(r6, gContestResources->field_4[r6].effectStringId2);
+ gContestResources->field_4[r6].effectStringId2 = CONTEST_STRING_NONE;
+ gTasks[taskId].data[0] = 24;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 48;
+ }
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 48;
+ }
+ }
+ return;
+ case 24:
+ if (!Contest_RunTextPrinters())
+ gTasks[taskId].data[0] = 23;
+ return;
+ case 48:
+ if (gContestResources->field_4[r6].turnOrderModAction == 1)
+ {
+ sub_80DD720(5);
+ }
+ else if (gContestResources->field_4[r6].turnOrderModAction == 2)
+ {
+ sub_80DD720(6);
+ }
+ else if (gContestResources->field_4[r6].turnOrderModAction == 3)
+ {
+ sub_80DD720(7);
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 47;
+ return;
+ }
+ gTasks[taskId].data[0] = 49;
+ return;
+ case 49:
+ if (!gContestResources->field_0->unk1920A_4)
+ gTasks[taskId].data[0] = 47;
+ return;
+ case 47:
+ sub_80DE008(TRUE);
+ gTasks[taskId].data[0] = 12;
+ return;
+ case 12:
+ sub_80DC028(0, gContestResources->field_4[r6].appeal2, r6);
+ gTasks[taskId].data[0] = 13;
+ return;
+ case 13:
+ if (!gContestResources->field_14[gContestResources->field_0->unk19215].unk2_2)
+ gTasks[taskId].data[0] = 35;
+ return;
+ case 35:
+ if (gContestResources->field_4[r6].conditionMod == 1)
+ sub_80DD720(8);
+ gTasks[taskId].data[0] = 36;
+ return;
+ case 36:
+ if (!gContestResources->field_0->unk1920A_4)
+ gTasks[taskId].data[0] = 37;
+ return;
+ case 37:
+ if (sub_80DB5B8(r6, 1))
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 38;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 50;
+ }
+ return;
+ case 38:
+ if (++gTasks[taskId].data[10] > 20)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 50;
+ }
+ return;
+ case 50:
+ if (sub_80DB798(r6))
+ PlaySE(SE_C_PASI);
+ gTasks[taskId].data[0] = 25;
+ return;
+ case 25:
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[0] = 26;
+ return;
+ case 26:
+ {
+ s32 r2 = 0;
+
+ r3 = 0;
+ for (i = gTasks[taskId].data[1]; i < 4; i++)
+ {
+ r3 = 0;
+ for (r2 = 0; r2 < 4; r2++)
+ {
+ if (r2 != r6 && gUnknown_02039F26[r2] == i
+ && gContestResources->field_4[r2].effectStringId != CONTEST_STRING_NONE)
+ {
+ r3 = 1;
+ break;
+ }
+ }
+ if (r3 != 0)
+ break;
+ }
+ if (r3)
+ {
+ gTasks[taskId].data[1] = gUnknown_02039F26[r2];
+ sub_80DD45C(r2, gContestResources->field_4[r2].effectStringId);
+ gContestResources->field_4[r2].effectStringId = CONTEST_STRING_NONE;
+ gTasks[taskId].data[0] = 27;
+ }
+ else
+ {
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 51;
+ sub_80DB884();
+ }
+ }
+ return;
+ case 27:
+ if (!Contest_RunTextPrinters())
+ gTasks[taskId].data[0] = 28;
+ return;
+ case 28:
+ for (i = 0; gTasks[taskId].data[1] != gUnknown_02039F26[i]; i++)
+ ;
+ sub_80DC028(gContestResources->field_4[i].appeal2 + gContestResources->field_4[i].jam, -gContestResources->field_4[i].jam, i);
+ gTasks[taskId].data[0] = 29;
+ return;
+ case 29:
+ for (i = 0; gTasks[taskId].data[1] != gUnknown_02039F26[i]; i++)
+ ;
+ if (!gContestResources->field_14[i].unk2_2)
+ gTasks[taskId].data[0] = 39;
+ return;
+ case 39:
+ for (i = 0; gTasks[taskId].data[1] != gUnknown_02039F26[i]; i++)
+ ;
+ if (sub_80DB5B8(i, 1))
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 40;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 30;
+ }
+ return;
+ case 40:
+ if (++gTasks[taskId].data[10] > 20)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 30;
+ }
+ return;
+ case 30:
+ for (i = 0; i < 4; i++)
+ {
+ if (gUnknown_02039F26[i] == gTasks[taskId].data[1])
+ break;
+ }
+ if (sub_80DB798(i))
+ PlaySE(SE_C_PASI);
+ else
+ PlaySE(SE_C_SYU);
+ if (gContestResources->field_4[i].judgesAttentionWasRemoved)
+ {
+ sub_80DC674(i);
+ gContestResources->field_4[i].judgesAttentionWasRemoved = 0;
+ }
+ gTasks[taskId].data[1]++;
+ gTasks[taskId].data[0] = 26;
+ return;
+ case 51:
+ if (gTasks[taskId].data[10]++ > 9)
+ {
+ gTasks[taskId].data[10] = 0;
+ if (gContestResources->field_4[r6].numTurnsSkipped != 0
+ || gContestResources->field_4[r6].turnSkipped)
+ {
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ StringExpandPlaceholders(gStringVar4, gText_0827E793);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ }
+ gTasks[taskId].data[0] = 52;
+ }
+ return;
+ case 52:
+ if (!Contest_RunTextPrinters())
+ {
+ if (!gContestResources->field_4[r6].unk15_6)
+ gTasks[taskId].data[0] = 17;
+ else
+ gTasks[taskId].data[0] = 14;
+ }
+ return;
+ case 14:
+ r3 = gContestResources->field_4[r6].unk16;
+ if (gContestResources->field_4[r6].unk16 != 0)
+ {
+ sub_80DB89C();
+ if (r3 == 1)
+ Contest_StartTextPrinter(gText_0827E32E, 1);
+ else if (r3 == 2)
+ Contest_StartTextPrinter(gText_0827E35B, 1);
+ else
+ Contest_StartTextPrinter(gText_0827E38D, 1);
+ sub_80DD720(3);
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 45;
+ }
+ else
+ {
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ StringExpandPlaceholders(gStringVar4, gText_0827E2FE);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ sub_80DD720(2);
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 45;
+ }
+ return;
+ case 45:
+ if (!gContestResources->field_0->unk1920A_4)
+ {
+ sub_80DC9B4(gContestResources->field_0->unk19215);
+ gTasks[taskId].data[0] = 15;
+ }
+ return;
+ case 15:
+ if (!Contest_RunTextPrinters())
+ {
+ if (++gTasks[taskId].data[10] > 50)
+ {
+ if (!gContestResources->field_4[r6].hasJudgesAttention)
+ {
+ sub_80DC028(
+ gContestResources->field_4[r6].appeal2,
+ gContestResources->field_4[r6].unk17,
+ r6);
+ gContestResources->field_4[r6].appeal2 += gContestResources->field_4[r6].unk17;
+ }
+ gTasks[taskId].data[0] = 16;
+ }
+ }
+ return;
+ case 16:
+ if (!gContestResources->field_14[r6].unk2_2)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 17;
+ }
+ return;
+ case 17:
+ if (gContestResources->field_4[r6].disappointedRepeat)
+ {
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ StringExpandPlaceholders(gStringVar4, gText_0827E6E3);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[10] = 0;
+ sub_80DD720(0);
+ gTasks[taskId].data[0] = 46;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 41;
+ }
+ return;
+ case 46:
+ if (!gContestResources->field_0->unk1920A_4)
+ gTasks[taskId].data[0] = 19;
+ return;
+ case 19:
+ if (!Contest_RunTextPrinters())
+ {
+ sub_80DC028(gContestResources->field_4[r6].appeal2, -gContestResources->field_4[r6].unk18, r6);
+ gContestResources->field_4[r6].appeal2 -= gContestResources->field_4[r6].unk18;
+ gTasks[taskId].data[0] = 18;
+ }
+ return;
+ case 18:
+ sub_80DCD48();
+ if (!gContestResources->field_14[r6].unk2_2)
+ {
+ gTasks[taskId].data[10] = 0;
+ sub_80DB89C();
+ gTasks[taskId].data[0] = 41;
+ }
+ return;
+ case 41:
+ if (gContestResources->field_10->excitementFrozen && r6 != gContestResources->field_10->excitementFreezer)
+ {
+ gTasks[taskId].data[0] = 57;
+ }
+ else
+ {
+ r3 = gContestResources->field_10->bits_0;
+ if (gContestResources->field_4[r6].overrideCategoryExcitementMod)
+ {
+ r3 = 1;
+ StringCopy(gStringVar3, gMoveNames[gContestResources->field_4[r6].currMove]);
+ }
+ else
+ {
+ StringCopy(gStringVar3, gUnknown_08587F08[gContestMoves[gContestResources->field_4[r6].currMove].contestCategory]);
+ }
+ if (r3 > 0)
+ {
+ if (gContestResources->field_4[r6].disappointedRepeat)
+ r3 = 0;
+ }
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ gContestResources->field_0->applauseLevel += r3;
+ if (gContestResources->field_0->applauseLevel < 0)
+ gContestResources->field_0->applauseLevel = 0;
+ if (r3 == 0)
+ {
+ gTasks[taskId].data[0] = 55;
+ }
+ else
+ {
+ if (r3 < 0)
+ StringExpandPlaceholders(gStringVar4, gText_0827E73C);
+ else if (r3 > 0 && gContestResources->field_0->applauseLevel <= 4)
+ StringExpandPlaceholders(gStringVar4, gText_0827E717);
+ else
+ StringExpandPlaceholders(gStringVar4, gText_0827E76A);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[11] = 0;
+ if (r3 < 0)
+ gTasks[taskId].data[0] = 53;
+ else
+ gTasks[taskId].data[0] = 54;
+ }
+ }
+ return;
+ case 53:
+ switch (gTasks[taskId].data[10])
+ {
+ case 0:
+ sub_80DDED0(-1, 1);
+ PlayFanfare(MUS_ME_ZANNEN);
+ gTasks[taskId].data[10]++;
+ break;
+ case 1:
+ if (!gContestResources->field_0->unk1920B_0 && !Contest_RunTextPrinters())
+ {
+ sub_80DDCDC(-1);
+ gTasks[taskId].data[10]++;
+ }
+ break;
+ case 2:
+ if (!gContestResources->field_0->unk1920A_5)
+ {
+ if (gTasks[taskId].data[11]++ > 29)
+ {
+ gTasks[taskId].data[11] = 0;
+ sub_80DDED0(-1, -1);
+ gTasks[taskId].data[10]++;
+ }
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[11] = 0;
+ gTasks[taskId].data[0] = 43;
+ }
+ break;
+ }
+ return;
+ case 54:
+ switch (gTasks[taskId].data[10])
+ {
+ case 0:
+ if (!Contest_RunTextPrinters())
+ {
+ sub_80DDED0(1, 1);
+ gTasks[taskId].data[10]++;
+ }
+ break;
+ case 1:
+ if (!gContestResources->field_0->unk1920B_0)
+ {
+ sub_80DDE0C();
+ PlaySE(SE_W227B);
+ sub_80DDCDC(1);
+ gTasks[taskId].data[10]++;
+ }
+ break;
+ case 2:
+ if (!gContestResources->field_0->unk1920A_5)
+ {
+ if (gTasks[taskId].data[11]++ > 29)
+ {
+ gTasks[taskId].data[11] = 0;
+ sub_80DC028(gContestResources->field_4[r6].appeal2, gContestResources->field_10->unk2, r6);
+ gContestResources->field_4[r6].appeal2 += gContestResources->field_10->unk2;
+ gTasks[taskId].data[10]++;
+ }
+ }
+ break;
+ case 3:
+ if (!gContestResources->field_14[r6].unk2_2)
+ {
+ if (!gContestResources->field_0->unk1920A_7)
+ {
+ sub_80DDED0(1, -1);
+ gTasks[taskId].data[10]++;
+ }
+ }
+ break;
+ case 4:
+ if (!gPaletteFade.active)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[11] = 0;
+ gTasks[taskId].data[0] = 43;
+ }
+ break;
+ }
+ return;
+ case 43:
+ if (!gContestResources->field_14[r6].unk2_2)
+ {
+ sub_80DB89C();
+ gTasks[taskId].data[0] = 55;
+ }
+ return;
+ case 57:
+ sub_80DB89C();
+ StringCopy(gStringVar3, gContestMons[gContestResources->field_10->excitementFreezer].nickname);
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]);
+ StringExpandPlaceholders(gStringVar4, gText_0827E7EA);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[0] = 58;
+ return;
+ case 58:
+ if (!Contest_RunTextPrinters())
+ {
+ sub_80DB89C();
+ StringExpandPlaceholders(gStringVar4, gText_0827E817);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[0] = 59;
+ }
+ return;
+ case 59:
+ if (!Contest_RunTextPrinters())
+ {
+ sub_80DB89C();
+ gTasks[taskId].data[0] = 55;
+ }
+ return;
+ case 33:
+ if (gContestResources->field_4[r6].hasJudgesAttention)
+ gContestResources->field_4[r6].hasJudgesAttention = 0;
+ sub_80DC9B4(r6);
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]);
+ StringExpandPlaceholders(gStringVar4, gText_0827E58A);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[0] = 34;
+ return;
+ case 34:
+ if (!Contest_RunTextPrinters())
+ gTasks[taskId].data[0] = 55;
+ return;
+ case 55:
+ sub_80DDBE8();
+ gTasks[taskId].data[0] = 56;
+ return;
+ case 56:
+ if (!gContestResources->field_0->unk1920A_6)
+ {
+ if (gContestResources->field_0->applauseLevel > 4)
+ {
+ gContestResources->field_0->applauseLevel = 0;
+ sub_80DD940();
+ }
+ gTasks[taskId].data[0] = 10;
+ }
+ return;
+ case 10:
+ spriteId = gTasks[taskId].data[2];
+ gSprites[spriteId].callback = sub_80DA164;
+ gTasks[taskId].data[0] = 11;
+ return;
+ case 11:
+ spriteId = gTasks[taskId].data[2];
+ if (gSprites[spriteId].invisible)
+ {
+ FreeSpriteOamMatrix(&gSprites[spriteId]);
+ DestroySprite(&gSprites[spriteId]);
+ gTasks[taskId].data[0] = 20;
+ }
+ return;
+ case 20:
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 21;
+ return;
+ case 31:
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ StringExpandPlaceholders(gStringVar4, gText_0827D56F);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[0] = 32;
+ return;
+ case 32:
+ if (!Contest_RunTextPrinters())
+ gTasks[taskId].data[0] = 21;
+ return;
+ case 21:
+ if (++gTasks[taskId].data[10] > 29)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 22;
+ }
+ return;
+ case 22:
+ if (++gContestResources->field_0->unk19214 == 4)
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = sub_80DA198;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 0;
+ }
+ return;
+ }
+}
+
+void sub_80DA110(u8 taskId)
+{
+ sContest.unk1920B_2 = 0;
+ DestroyTask(taskId);
+}
+
+void sub_80DA134(struct Sprite *sprite)
+{
+ if (sprite->pos2.x != 0)
+ {
+ sprite->pos2.x -= 2;
+ }
+ else
+ {
+ if (++sprite->data[0] == 31)
+ {
+ sprite->data[0] = 0;
+ sprite->callback = SpriteCallbackDummy;
+ }
+ }
+}
+
+void sub_80DA164(struct Sprite *sprite)
+{
+ sprite->pos2.x -= 6;
+ if (sprite->pos1.x + sprite->pos2.x < -32)
+ {
+ sprite->callback = SpriteCallbackDummy;
+ sprite->invisible = TRUE;
+ }
+}
+
+void sub_80DA198(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (gIsLinkContest & 1)
+ {
+ u8 taskId2;
+
+ sContest.unk1920B_2 = 1;
+ if (sub_80DA8A4())
+ {
+ sub_80DB944();
+ sub_80DBA18();
+ }
+ taskId2 = CreateTask(sub_80FCC88, 0);
+ SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110);
+ sub_80DBF68();
+ gTasks[taskId].data[0] = 1;
+ }
+ else
+ {
+ sub_80DB944();
+ sub_80DBA18();
+ gTasks[taskId].data[0] = 2;
+ }
+ break;
+ case 1:
+ if (!sContest.unk1920B_2)
+ gTasks[taskId].data[0] = 2;
+ break;
+ case 2:
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_80DA25C;
+ break;
+ }
+}
+
+void sub_80DA25C(u8 taskId)
+{
+ sub_80DE008(FALSE);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].func = sub_80DA28C;
+}
+
+void sub_80DA28C(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (++gTasks[taskId].data[1] > 20)
+ {
+ sub_80DE69C(2);
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (!sContest.unk1920B_1)
+ {
+ if (++gTasks[taskId].data[1] > 20)
+ {
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[0]++;
+ }
+ }
+ break;
+ case 2:
+ sub_80DC3AC();
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].func = sub_80DA31C;
+ break;
+ }
+}
+
+void sub_80DA31C(u8 taskId)
+{
+ if (sub_80DC3C4())
+ gTasks[taskId].func = sub_80DA348;
+}
+
+void sub_80DA348(u8 taskId)
+{
+ DmaCopy32Defvars(3, shared18000.unk18204, gPlttBufferUnfaded, 0x400);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 2;
+ gTasks[taskId].func = sub_80DA38C;
+}
+
+void sub_80DA38C(u8 taskId)
+{
+ if (++gTasks[taskId].data[0] > 2)
+ {
+ gTasks[taskId].data[0] = 0;
+ if (--gTasks[taskId].data[1] == 0)
+ gTasks[taskId].func = sub_80DA3CC;
+ }
+}
+
+void sub_80DA3CC(u8 taskId)
+{
+ if (gTasks[taskId].data[0] == 0)
+ {
+ u8 r4 = sContestantStatus[gContestPlayerMonIndex].attentionLevel;
+
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[gContestPlayerMonIndex].nickname);
+ StringExpandPlaceholders(gStringVar4, gUnknown_08587D90[r4]);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ if (!Contest_RunTextPrinters())
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_80DA464;
+ sub_80DCD48();
+ }
+ }
+}
+
+void sub_80DA464(u8 taskId)
+{
+ if (gTasks[taskId].data[0]++ > 29)
+ {
+ gTasks[taskId].data[0] = 0;
+ sub_80DC3AC();
+ gTasks[taskId].func = sub_80DA49C;
+ }
+}
+
+void sub_80DA49C(u8 taskId)
+{
+ if (sub_80DC3C4())
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_80DA4CC;
+ }
+}
+
+void sub_80DA4CC(u8 taskId)
+{
+ sub_80DE224();
+ gTasks[taskId].func = sub_80DE424;
+}
+
+void sub_80DA4F4(u8 taskId)
+{
+ sub_80DE350();
+ gTasks[taskId].func = sub_80DA51C;
+}
+
+void sub_80DA51C(u8 taskId)
+{
+ vu16 sp0 = GetGpuReg(REG_OFFSET_BG0CNT);
+ vu16 sp2 = GetGpuReg(REG_OFFSET_BG2CNT);
+ ((vBgCnt *)&sp0)->priority = 0;
+ ((vBgCnt *)&sp2)->priority = 0;
+ SetGpuReg(REG_OFFSET_BG0CNT, sp0);
+ SetGpuReg(REG_OFFSET_BG2CNT, sp2);
+ sContest.turnNumber++;
+ if (sContest.turnNumber == 5)
+ {
+ gTasks[taskId].func = sub_80DA5E8;
+ }
+ else
+ {
+ sub_80DDB0C();
+ gTasks[taskId].func = sub_80DA5B4;
+ }
+}
+
+void sub_80DA5B4(u8 taskId)
+{
+ if (!sContest.unk1920A_6)
+ gTasks[taskId].func = sub_80D833C;
+}
+
+void sub_80DA5E8(u8 taskId)
+{
+ s32 i;
+
+ gBattle_BG0_Y = 0;
+ gBattle_BG2_Y = 0;
+ for (i = 0; i < 4; i++)
+ gUnknown_02039F10[i] = sContestantStatus[i].unk4;
+ sub_80DBD18();
+ sub_80DB89C();
+ if (!(gIsLinkContest & 1))
+ BravoTrainerPokemonProfile_BeforeInterview1(sContestantStatus[gContestPlayerMonIndex].prevMove);
+ else
+ {
+ sub_80DF250();
+ sub_80DF4F8();
+ sub_80DF750();
+ }
+ gContestRngValue = gRngValue;
+ StringExpandPlaceholders(gStringVar4, gText_0827D597);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = sub_80DA6B4;
+}
+
+void sub_80DA6B4(u8 taskId)
+{
+ if (!Contest_RunTextPrinters())
+ {
+ sub_80DE224();
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 160;
+ PlaySE12WithPanning(SE_C_MAKU_D, 0);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_80DA700;
+ }
+}
+
+void sub_80DA700(u8 taskId)
+{
+ gBattle_BG1_Y -= 7;
+ if (gBattle_BG1_Y < 0)
+ gBattle_BG1_Y = 0;
+ if (*(u16 *)&gBattle_BG1_Y == 0) // Why cast?
+ {
+ gTasks[taskId].func = sub_80DA740;
+ gTasks[taskId].data[0] = 0;
+ }
+}
+
+void sub_80DA740(u8 taskId)
+{
+ if (gTasks[taskId].data[0]++ >= 50)
+ {
+ gTasks[taskId].data[0] = 0;
+ if (gIsLinkContest & 1)
+ {
+ gTasks[taskId].func = sub_80DA7A0;
+ }
+ else
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gTasks[taskId].func = sub_80DA830;
+ }
+ }
+}
+
+void sub_80DA7A0(u8 taskId)
+{
+ u8 taskId2 = CreateTask(sub_80FCACC, 0);
+
+ SetTaskFuncWithFollowupFunc(taskId2, sub_80FCACC, sub_80DA7EC);
+ gTasks[taskId].func = TaskDummy1;
+ sub_80DBF68();
+ sub_80DC490(FALSE);
+}
+
+void sub_80DA7EC(u8 taskId)
+{
+ DestroyTask(taskId);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gTasks[sContest.mainTaskId].func = sub_80DA830;
+}
+
+void sub_80DA830(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ DestroyTask(taskId);
+ gFieldCallback = sub_80DA874;
+ FreeAllWindowBuffers();
+ sub_80D7A5C();
+ FreeMonSpritesGfx();
+ SetMainCallback2(CB2_ReturnToField);
+ }
+}
+
+void sub_80DA874(void)
+{
+ ScriptContext2_Disable();
+ EnableBothScriptContexts();
+}
+
+void sub_80DA884(void)
+{
+ if (!(gIsLinkContest & 1))
+ gContestPlayerMonIndex = 3;
+}
+
+bool8 sub_80DA8A4(void)
+{
+ if (gContestPlayerMonIndex == gUnknown_02039F2B)
+ return TRUE;
+ return FALSE;
+}
+
+
+void sub_80DA8C8(u8 partyIndex)
+{
+ u8 name[20];
+ u16 heldItem;
+ s16 cool;
+ s16 beauty;
+ s16 cute;
+ s16 smart;
+ s16 tough;
+
+ StringCopy(name, gSaveBlock2Ptr->playerName);
+ if (gIsLinkContest & 1)
+ {
+ sub_80DF9D4(name);
+ }
+ memcpy(gContestMons[gContestPlayerMonIndex].trainerName, name, 8);
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ gContestMons[gContestPlayerMonIndex].trainerGfxId = EVENT_OBJ_GFX_LINK_BRENDAN;
+ else
+ gContestMons[gContestPlayerMonIndex].trainerGfxId = EVENT_OBJ_GFX_LINK_MAY;
+ gContestMons[gContestPlayerMonIndex].flags = 0;
+ gContestMons[gContestPlayerMonIndex].unk2C[0] = 0;
+ gContestMons[gContestPlayerMonIndex].species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES);
+ GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, name);
+ StringGetEnd10(name);
+ if (gIsLinkContest & 1)
+ {
+ sub_80DF9E0(name, GetMonData(&gPlayerParty[partyIndex], MON_DATA_LANGUAGE));
+ }
+ memcpy(gContestMons[gContestPlayerMonIndex].nickname, name, POKEMON_NAME_LENGTH + 1);
+ StringCopy(gContestMons[gContestPlayerMonIndex].nickname, name);
+ gContestMons[gContestPlayerMonIndex].cool = GetMonData(&gPlayerParty[partyIndex], MON_DATA_COOL);
+ gContestMons[gContestPlayerMonIndex].beauty = GetMonData(&gPlayerParty[partyIndex], MON_DATA_BEAUTY);
+ gContestMons[gContestPlayerMonIndex].cute = GetMonData(&gPlayerParty[partyIndex], MON_DATA_CUTE);
+ gContestMons[gContestPlayerMonIndex].smart = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SMART);
+ gContestMons[gContestPlayerMonIndex].tough = GetMonData(&gPlayerParty[partyIndex], MON_DATA_TOUGH);
+ gContestMons[gContestPlayerMonIndex].sheen = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SHEEN);
+ gContestMons[gContestPlayerMonIndex].moves[0] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE1);
+ gContestMons[gContestPlayerMonIndex].moves[1] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE2);
+ gContestMons[gContestPlayerMonIndex].moves[2] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE3);
+ gContestMons[gContestPlayerMonIndex].moves[3] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE4);
+ gContestMons[gContestPlayerMonIndex].personality = GetMonData(&gPlayerParty[partyIndex], MON_DATA_PERSONALITY);
+ gContestMons[gContestPlayerMonIndex].otId = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_ID);
+
+ heldItem = GetMonData(&gPlayerParty[partyIndex], MON_DATA_HELD_ITEM);
+ cool = gContestMons[gContestPlayerMonIndex].cool;
+ beauty = gContestMons[gContestPlayerMonIndex].beauty;
+ cute = gContestMons[gContestPlayerMonIndex].cute;
+ smart = gContestMons[gContestPlayerMonIndex].smart;
+ tough = gContestMons[gContestPlayerMonIndex].tough;
+ if (heldItem == ITEM_RED_SCARF)
+ cool += 20;
+ else if (heldItem == ITEM_BLUE_SCARF)
+ beauty += 20;
+ else if (heldItem == ITEM_PINK_SCARF)
+ cute += 20;
+ else if (heldItem == ITEM_GREEN_SCARF)
+ smart += 20;
+ else if (heldItem == ITEM_YELLOW_SCARF)
+ tough += 20;
+ if (cool > 255)
+ cool = 255;
+ if (beauty > 255)
+ beauty = 255;
+ if (cute > 255)
+ cute = 255;
+ if (smart > 255)
+ smart = 255;
+ if (tough > 255)
+ tough = 255;
+ gContestMons[gContestPlayerMonIndex].cool = cool;
+ gContestMons[gContestPlayerMonIndex].beauty = beauty;
+ gContestMons[gContestPlayerMonIndex].cute = cute;
+ gContestMons[gContestPlayerMonIndex].smart = smart;
+ gContestMons[gContestPlayerMonIndex].tough = tough;
+}
+
+void sub_80DAB8C(u8 contestType, u8 rank)
+{
+ s32 i;
+ u8 opponentsCount = 0;
+ u8 opponents[100];
+ bool8 r7 = FALSE;
+ const u8 * r3;
+
+ sub_80DA884();
+
+ if (FlagGet(FLAG_SYS_GAME_CLEAR) && !(gIsLinkContest & 1))
+ r7 = TRUE;
+
+ // Find all suitable opponents
+ r3 = gUnknown_085898A4;
+ for (i = 0; i < ARRAY_COUNT(gContestOpponents); i++)
+ {
+ if (rank == gContestOpponents[i].whichRank)
+ {
+ if (r7 == TRUE)
+ {
+ if (r3[i] == 1)
+ continue;
+ }
+ else
+ {
+ if (r3[i] == 2)
+ continue;
+ }
+ if (contestType == CONTEST_CATEGORY_COOL && gContestOpponents[i].aiPool_Cool)
+ opponents[opponentsCount++] = i;
+ else if (contestType == CONTEST_CATEGORY_BEAUTY && gContestOpponents[i].aiPool_Beauty)
+ opponents[opponentsCount++] = i;
+ else if (contestType == CONTEST_CATEGORY_CUTE && gContestOpponents[i].aiPool_Cute)
+ opponents[opponentsCount++] = i;
+ else if (contestType == CONTEST_CATEGORY_SMART && gContestOpponents[i].aiPool_Smart)
+ opponents[opponentsCount++] = i;
+ else if (contestType == CONTEST_CATEGORY_TOUGH && gContestOpponents[i].aiPool_Tough)
+ opponents[opponentsCount++] = i;
+ }
+ }
+ opponents[opponentsCount] = 0xFF;
+
+ // Choose three random opponents from the list
+ for (i = 0; i < 3; i++)
+ {
+ u16 rnd = Random() % opponentsCount;
+ s32 j;
+
+ gContestMons[i] = gContestOpponents[opponents[rnd]];
+ for (j = rnd; opponents[j] != 0xFF; j++)
+ opponents[j] = opponents[j + 1];
+ opponentsCount--;
+ }
+
+ sub_80DA8C8(gUnknown_02039F24);
+}
+
+#ifdef NONMATCHING
+void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame)
+{
+ s32 i;
+ u8 opponentsCount = 0;
+ u8 opponents[100];
+ const u8 * r6;
+
+ if (gUnknown_02039F30 == 4)
+ return;
+
+ r6 = gUnknown_085898A4;
+ for (i = 0; i < ARRAY_COUNT(gContestOpponents); i++)
+ {
+ if (rank != gContestOpponents[i].whichRank)
+ continue;
+ if (isPostgame == TRUE)
+ {
+ if (r6[i] == 1)
+ continue;
+ }
+ else
+ {
+ if (r6[i] == 2)
+ continue;
+ }
+ if (contestType == CONTEST_CATEGORY_COOL && gContestOpponents[i].aiPool_Cool)
+ opponents[opponentsCount++] = i;
+ else if (contestType == CONTEST_CATEGORY_BEAUTY && gContestOpponents[i].aiPool_Beauty)
+ opponents[opponentsCount++] = i;
+ else if (contestType == CONTEST_CATEGORY_CUTE && gContestOpponents[i].aiPool_Cute)
+ opponents[opponentsCount++] = i;
+ else if (contestType == CONTEST_CATEGORY_SMART && gContestOpponents[i].aiPool_Smart)
+ opponents[opponentsCount++] = i;
+ else if (contestType == CONTEST_CATEGORY_TOUGH && gContestOpponents[i].aiPool_Tough)
+ opponents[opponentsCount++] = i;
+ }
+ opponents[opponentsCount] = 0xFF;
+ for (i = 0; i < 4 - gUnknown_02039F30; i++)
+ {
+ u16 rnd = sub_80F903C() % opponentsCount;
+ s32 j;
+
+ gContestMons[gUnknown_02039F30 + i] = gContestOpponents[opponents[rnd]];
+ sub_80DF9D4(gContestMons[gUnknown_02039F30 + i].trainerName);
+ sub_80DF9E0(gContestMons[gUnknown_02039F30 + i].nickname, GAME_LANGUAGE);
+ for (j = rnd; opponents[j] != 0xFF; j++)
+ opponents[j] = opponents[j + 1];
+ opponentsCount--;
+ }
+}
+#else
+NAKED void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r9\n"
+ "\tmov r6, r8\n"
+ "\tpush {r6,r7}\n"
+ "\tsub sp, 0x64\n"
+ "\tmov r8, r2\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tlsls r1, 24\n"
+ "\tlsrs r2, r1, 24\n"
+ "\tmovs r7, 0\n"
+ "\tldr r0, =gUnknown_02039F30\n"
+ "\tldrb r1, [r0]\n"
+ "\tmov r9, r0\n"
+ "\tcmp r1, 0x4\n"
+ "\tbne _080DACDE\n"
+ "\tb _080DADF6\n"
+ "_080DACDE:\n"
+ "\tmovs r5, 0\n"
+ "\tldr r3, =gContestOpponents\n"
+ "\tldr r6, =gUnknown_085898A4\n"
+ "_080DACE4:\n"
+ "\tldrb r0, [r3, 0x1C]\n"
+ "\tlsls r0, 30\n"
+ "\tlsrs r0, 30\n"
+ "\tcmp r2, r0\n"
+ "\tbne _080DAD56\n"
+ "\tmov r0, r8\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _080DAD08\n"
+ "\tldrb r0, [r6]\n"
+ "\tcmp r0, 0x1\n"
+ "\tbeq _080DAD56\n"
+ "\tb _080DAD0E\n"
+ "\t.pool\n"
+ "_080DAD08:\n"
+ "\tldrb r0, [r6]\n"
+ "\tcmp r0, 0x2\n"
+ "\tbeq _080DAD56\n"
+ "_080DAD0E:\n"
+ "\tcmp r4, 0\n"
+ "\tbne _080DAD1A\n"
+ "\tldrb r0, [r3, 0x1C]\n"
+ "\tlsls r0, 29\n"
+ "\tcmp r0, 0\n"
+ "\tblt _080DAD4A\n"
+ "_080DAD1A:\n"
+ "\tcmp r4, 0x1\n"
+ "\tbne _080DAD26\n"
+ "\tldrb r0, [r3, 0x1C]\n"
+ "\tlsls r0, 28\n"
+ "\tcmp r0, 0\n"
+ "\tblt _080DAD4A\n"
+ "_080DAD26:\n"
+ "\tcmp r4, 0x2\n"
+ "\tbne _080DAD32\n"
+ "\tldrb r0, [r3, 0x1C]\n"
+ "\tlsls r0, 27\n"
+ "\tcmp r0, 0\n"
+ "\tblt _080DAD4A\n"
+ "_080DAD32:\n"
+ "\tcmp r4, 0x3\n"
+ "\tbne _080DAD3E\n"
+ "\tldrb r0, [r3, 0x1C]\n"
+ "\tlsls r0, 26\n"
+ "\tcmp r0, 0\n"
+ "\tblt _080DAD4A\n"
+ "_080DAD3E:\n"
+ "\tcmp r4, 0x4\n"
+ "\tbne _080DAD56\n"
+ "\tldrb r0, [r3, 0x1C]\n"
+ "\tlsls r0, 25\n"
+ "\tcmp r0, 0\n"
+ "\tbge _080DAD56\n"
+ "_080DAD4A:\n"
+ "\tadds r0, r7, 0\n"
+ "\tadds r1, r0, 0x1\n"
+ "\tlsls r1, 24\n"
+ "\tlsrs r7, r1, 24\n"
+ "\tadd r0, sp\n"
+ "\tstrb r5, [r0]\n"
+ "_080DAD56:\n"
+ "\tadds r3, 0x40\n"
+ "\tadds r6, 0x1\n"
+ "\tadds r5, 0x1\n"
+ "\tcmp r5, 0x5F\n"
+ "\tbls _080DACE4\n"
+ "\tmov r3, sp\n"
+ "\tadds r1, r3, r7\n"
+ "\tmovs r0, 0xFF\n"
+ "\tstrb r0, [r1]\n"
+ "\tmovs r5, 0\n"
+ "\tmov r0, r9\n"
+ "\tldrb r1, [r0]\n"
+ "\tmovs r0, 0x4\n"
+ "\tsubs r0, r1\n"
+ "\tcmp r5, r0\n"
+ "\tbge _080DADF6\n"
+ "\tldr r3, =gContestMons\n"
+ "\tmov r8, r3\n"
+ "\tmov r6, r9\n"
+ "\tmovs r0, 0x2\n"
+ "\tadd r0, r8\n"
+ "\tmov r9, r0\n"
+ "_080DAD82:\n"
+ "\tbl sub_80F903C\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tadds r1, r7, 0\n"
+ "\tbl __modsi3\n"
+ "\tadds r1, r0, 0\n"
+ "\tlsls r1, 16\n"
+ "\tlsrs r1, 16\n"
+ "\tldrb r0, [r6]\n"
+ "\tadds r0, r5\n"
+ "\tlsls r0, 6\n"
+ "\tadd r0, r8\n"
+ "\tldr r2, =gContestOpponents\n"
+ "\tmov r3, sp\n"
+ "\tadds r4, r3, r1\n"
+ "\tldrb r1, [r4]\n"
+ "\tlsls r1, 6\n"
+ "\tadds r1, r2\n"
+ "\tmovs r2, 0x40\n"
+ "\tbl memcpy\n"
+ "\tldrb r0, [r6]\n"
+ "\tadds r0, r5\n"
+ "\tlsls r0, 6\n"
+ "\tmov r1, r8\n"
+ "\tadds r1, 0xD\n"
+ "\tadds r0, r1\n"
+ "\tbl sub_80DF9D4\n"
+ "\tldrb r0, [r6]\n"
+ "\tadds r0, r5\n"
+ "\tlsls r0, 6\n"
+ "\tadd r0, r9\n"
+ "\tmovs r1, 0x2\n"
+ "\tbl sub_80DF9E0\n"
+ "\tldrb r0, [r4]\n"
+ "\tadds r3, r5, 0x1\n"
+ "\tsubs r1, r7, 0x1\n"
+ "\tcmp r0, 0xFF\n"
+ "\tbeq _080DADE6\n"
+ "\tadds r2, r4, 0\n"
+ "_080DADDA:\n"
+ "\tldrb r0, [r2, 0x1]\n"
+ "\tstrb r0, [r2]\n"
+ "\tadds r2, 0x1\n"
+ "\tldrb r0, [r2]\n"
+ "\tcmp r0, 0xFF\n"
+ "\tbne _080DADDA\n"
+ "_080DADE6:\n"
+ "\tlsls r0, r1, 24\n"
+ "\tlsrs r7, r0, 24\n"
+ "\tadds r5, r3, 0\n"
+ "\tldrb r1, [r6]\n"
+ "\tmovs r0, 0x4\n"
+ "\tsubs r0, r1\n"
+ "\tcmp r5, r0\n"
+ "\tblt _080DAD82\n"
+ "_080DADF6:\n"
+ "\tadd sp, 0x64\n"
+ "\tpop {r3,r4}\n"
+ "\tmov r8, r3\n"
+ "\tmov r9, r4\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.pool");
+}
+#endif
+
+// GetContestAvailability?
+u8 sub_80DAE0C(struct Pokemon *pkmn)
+{
+ u8 ribbon;
+ u8 retVal;
+
+ if (GetMonData(pkmn, MON_DATA_IS_EGG))
+ return 3;
+ if (GetMonData(pkmn, MON_DATA_HP) == 0)
+ return 4;
+ switch (gSpecialVar_ContestCategory)
+ {
+ case CONTEST_CATEGORY_COOL:
+ ribbon = GetMonData(pkmn, MON_DATA_COOL_RIBBON);
+ break;
+ case CONTEST_CATEGORY_BEAUTY:
+ ribbon = GetMonData(pkmn, MON_DATA_BEAUTY_RIBBON);
+ break;
+ case CONTEST_CATEGORY_CUTE:
+ ribbon = GetMonData(pkmn, MON_DATA_CUTE_RIBBON);
+ break;
+ case CONTEST_CATEGORY_SMART:
+ ribbon = GetMonData(pkmn, MON_DATA_SMART_RIBBON);
+ break;
+ case CONTEST_CATEGORY_TOUGH:
+ ribbon = GetMonData(pkmn, MON_DATA_TOUGH_RIBBON);
+ break;
+ default:
+ return 0;
+ }
+
+ // Couldn't get this to match any other way.
+ // Returns 2, 1, or 0 respectively if ribbon's rank is above, equal, or below
+ // the current contest rank.
+ if (ribbon > gSpecialVar_ContestRank)
+ retVal = 2;
+ else if (ribbon >= gSpecialVar_ContestRank)
+ retVal = 1;
+ else
+ retVal = 0;
+ return retVal;
+}
+
+void sub_80DAEA4(void)
+{
+ s32 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ FillWindowPixelBuffer(gUnknown_02039F26[i], 0);
+ sub_80DAF04(i);
+ sub_80DAF88(i);
+ }
+}
+
+u8 * sub_80DAED4(const u8 * src, u8 color)
+{
+ u8 * ptr = StringCopy(gDisplayedStringBattle, gText_ColorTransparent);
+ ptr[-1] = color;
+ ptr = StringCopy(ptr, src);
+
+ return ptr;
+}
+
+void sub_80DAF04(u8 a0)
+{
+ sub_80DAF1C(a0, a0 + 10);
+}
+
+void sub_80DAF1C(u8 a0, u8 a1)
+{
+ u8 buffer[32];
+ s32 offset;
+
+ StringCopy(buffer, gText_Slash);
+ StringAppend(buffer, gContestMons[a0].trainerName);
+ sub_80DAED4(buffer, a1);
+ offset = GetStringRightAlignXOffset(7, gDisplayedStringBattle, 0x60);
+ if (offset > 55)
+ offset = 55;
+ Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[a0], gDisplayedStringBattle, offset, 1, 7);
+}
+
+void sub_80DAF88(u8 a0)
+{
+ sub_80DAFA0(a0, a0 + 10);
+}
+
+void sub_80DAFA0(u8 a0, u8 a1)
+{
+ sub_80DAED4(gContestMons[a0].nickname, a1);
+ Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[a0], gDisplayedStringBattle, 5, 1, 7);
+}
+
+u16 sub_80DAFE0(u8 who, u8 contestCategory)
+{
+ u8 statMain;
+ u8 statSub1;
+ u8 statSub2;
+
+ switch (contestCategory)
+ {
+ case CONTEST_CATEGORY_COOL:
+ statMain = gContestMons[who].cool;
+ statSub1 = gContestMons[who].tough;
+ statSub2 = gContestMons[who].beauty;
+ break;
+ case CONTEST_CATEGORY_BEAUTY:
+ statMain = gContestMons[who].beauty;
+ statSub1 = gContestMons[who].cool;
+ statSub2 = gContestMons[who].cute;
+ break;
+ case CONTEST_CATEGORY_CUTE:
+ statMain = gContestMons[who].cute;
+ statSub1 = gContestMons[who].beauty;
+ statSub2 = gContestMons[who].smart;
+ break;
+ case CONTEST_CATEGORY_SMART:
+ statMain = gContestMons[who].smart;
+ statSub1 = gContestMons[who].cute;
+ statSub2 = gContestMons[who].tough;
+ break;
+ case CONTEST_CATEGORY_TOUGH:
+ default:
+ statMain = gContestMons[who].tough;
+ statSub1 = gContestMons[who].smart;
+ statSub2 = gContestMons[who].cool;
+ break;
+ }
+ return statMain + (statSub1 + statSub2 + gContestMons[who].sheen) / 2;
+}
+
+void sub_80DB09C(u8 a0)
+{
+ s32 i;
+
+ for (i = 0; i < 4; i++)
+ gContestMonConditions[i] = sub_80DAFE0(i, a0);
+}
+
+u8 sub_80DB0C4(void)
+{
+ u8 spriteId;
+
+ LoadCompressedObjectPic(&gUnknown_08587C00);
+ LoadCompressedPalette(gContest2Pal, 0x110, 32);
+ spriteId = CreateSprite(&gSpriteTemplate_8587BE8, 112, 36, 30);
+ gSprites[spriteId].oam.paletteNum = 1;
+ gSprites[spriteId].callback = SpriteCallbackDummy;
+ return spriteId;
+}
+
+u8 sub_80DB120(void)
+{
+ u8 spriteId;
+
+ LoadCompressedObjectPic(&gUnknown_08587C08);
+ LoadCompressedObjectPalette(&gUnknown_08587C10);
+ spriteId = CreateSprite(&gSpriteTemplate_8587C18, 96, 10, 29);
+ gSprites[spriteId].invisible = TRUE;
+ gSprites[spriteId].data[0] = gSprites[spriteId].oam.tileNum;
+ return spriteId;
+}
+
+u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index)
+{
+ u8 spriteId;
+ species = sub_80DE84C(species);
+
+ if (index == gContestPlayerMonIndex)
+ HandleLoadSpecialPokePic_2(gMonBackPicTable + species, gMonSpritesGfxPtr->sprites[0], species, personality);
+ else
+ HandleLoadSpecialPokePic_DontHandleDeoxys(gMonBackPicTable + species, gMonSpritesGfxPtr->sprites[0], species, personality);
+
+ LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20);
+ SetMultiuseSpriteTemplateToPokemon(species, 0);
+
+ spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, sub_80A600C(2, species, 0), 30);
+ gSprites[spriteId].oam.paletteNum = 2;
+ gSprites[spriteId].oam.priority = 2;
+ gSprites[spriteId].subpriority = sub_80A82E4(2);
+ gSprites[spriteId].callback = SpriteCallbackDummy;
+ gSprites[spriteId].data[0] = gSprites[spriteId].oam.paletteNum;
+ gSprites[spriteId].data[2] = species;
+ if (IsSpeciesNotUnown(species))
+ gSprites[spriteId].affineAnims = gUnknown_082FF6C0;
+ else
+ gSprites[spriteId].affineAnims = gUnknown_082FF694;
+ StartSpriteAffineAnim(gSprites + spriteId, 0);
+
+ return spriteId;
+}
+
+bool8 IsSpeciesNotUnown(u16 species)
+{
+ if (species == SPECIES_UNOWN)
+ return FALSE;
+ else
+ return TRUE;
+}
+
+void sub_80DB2BC(void)
+{
+ CpuCopy16(gContestResources->field_24[0], gContestResources->field_24[0] + 0x500, 0x280);
+ CpuCopy16(gContestResources->field_24[2], gContestResources->field_24[2] + 0x500, 0x280);
+}
+
+u16 sub_80DB2EC(u16 a0, u8 a1)
+{
+ u16 var;
+
+ switch (gContestEffects[gContestMoves[a0].effect].effectType)
+ {
+ case 0:
+ case 1:
+ case 8:
+ var = 0x9082;
+ break;
+ case 2:
+ case 3:
+ var = 0x9088;
+ break;
+ default:
+ var = 0x9086;
+ break;
+ }
+ var += 0x9000 + (a1 << 12);
+ return var;
+}
+
+void prints_contest_move_description(u16 a)
+{
+ u8 category;
+ u16 categoryTile;
+ u8 numHearts;
+
+ category = gContestMoves[a].contestCategory;
+ if (category == CONTEST_CATEGORY_COOL)
+ categoryTile = 0x4040;
+ else if (category == CONTEST_CATEGORY_BEAUTY)
+ categoryTile = 0x4045;
+ else if (category == CONTEST_CATEGORY_CUTE)
+ categoryTile = 0x404A;
+ else if (category == CONTEST_CATEGORY_SMART)
+ categoryTile = 0x406A;
+ else
+ categoryTile = 0x408A;
+
+ ContestBG_FillBoxWithIncrementingTile(0, categoryTile, 0x0b, 0x1f, 0x05, 0x01, 0x11, 0x01);
+ ContestBG_FillBoxWithIncrementingTile(0, categoryTile + 0x10, 0x0b, 0x20, 0x05, 0x01, 0x11, 0x01);
+
+ if (gContestEffects[gContestMoves[a].effect].appeal == 0xFF)
+ numHearts = 0;
+ else
+ numHearts = gContestEffects[gContestMoves[a].effect].appeal / 10;
+ if (numHearts > 8)
+ numHearts = 8;
+ ContestBG_FillBoxWithTile(0, 0x5035, 0x15, 0x1f, 0x08, 0x01, 0x11);
+ ContestBG_FillBoxWithTile(0, 0x5012, 0x15, 0x1f, numHearts, 0x01, 0x11);
+
+ if (gContestEffects[gContestMoves[a].effect].jam == 0xFF)
+ numHearts = 0;
+ else
+ numHearts = gContestEffects[gContestMoves[a].effect].jam / 10;
+ if (numHearts > 8)
+ numHearts = 8;
+ ContestBG_FillBoxWithTile(0, 0x5036, 0x15, 0x20, 0x08, 0x01, 0x11);
+ ContestBG_FillBoxWithTile(0, 0x5014, 0x15, 0x20, numHearts, 0x01, 0x11);
+
+ FillWindowPixelBuffer(10, 0);
+ Contest_PrintTextToBg0WindowStd(10, gContestEffectDescriptionPointers[gContestMoves[a].effect]);
+ Contest_PrintTextToBg0WindowStd(9, gText_Slash);
+}
+
+void sub_80DB4E0(u16 move, u8 b)
+{
+ u8 r7 = gUnknown_02039F26[b] * 5 + 2;
+
+ if (!sub_80DBCA8(b) && move != MOVE_NONE)
+ {
+ u16 tile = sub_80DB2EC(move, b);
+
+ ContestBG_FillBoxWithIncrementingTile(0, tile, 20, r7, 2, 1, 17, 1);
+ ContestBG_FillBoxWithIncrementingTile(0, tile + 16, 20, r7 + 1, 2, 1, 17, 1);
+ }
+ else
+ {
+ ContestBG_FillBoxWithTile(0, 0, 20, r7, 2, 2, 17);
+ }
+}
+
+void sub_80DB584(void)
+{
+ s32 i;
+
+ for (i = 0; i < 4; i++)
+ sub_80DB4E0(gContestResources->field_4[i].currMove, i);
+}
+
+u16 sub_80DB5B0(void)
+{
+ return 0x2034;
+}
+
+bool8 sub_80DB5B8(u8 contestantIdx, bool8 resetMod)
+{
+ u8 r6;
+ s32 r4;
+
+ if (sContestantStatus[contestantIdx].conditionMod == 0)
+ return FALSE;
+ r6 = gUnknown_02039F26[contestantIdx] * 5 + 2;
+ r4 = sContestantStatus[contestantIdx].condition / 10;
+ if (sContestantStatus[contestantIdx].conditionMod == 1)
+ {
+ ContestBG_FillBoxWithTile(0, sub_80DB5B0(), 19, r6, 1, r4, 17);
+ if (resetMod)
+ {
+ PlaySE(SE_EXPMAX);
+ sContestantStatus[contestantIdx].conditionMod = 0;
+ }
+ }
+ else
+ {
+ ContestBG_FillBoxWithTile(0, 0, 19, r6 + r4, 1, 3 - r4, 17);
+ if (resetMod)
+ {
+ PlaySE(SE_FU_ZAKU2);
+ sContestantStatus[contestantIdx].conditionMod = 0;
+ }
+ }
+ return TRUE;
+}
+
+void sub_80DB69C(void)
+{
+ s32 i;
+ s32 r6;
+
+ for (i = 0; i < 4; i++)
+ {
+ u8 r4 = gUnknown_02039F26[i] * 5 + 2;
+ u16 r5 = sub_80DB5B0();
+
+ r6 = sContestantStatus[i].condition / 10;
+ ContestBG_FillBoxWithTile(0, r5, 19, r4, 1, r6, 17);
+ ContestBG_FillBoxWithTile(0, 0, 19, r4 + r6, 1, 3 - r6, 17);
+ }
+}
+
+u16 sub_80DB748(u8 status)
+{
+ u16 var = 0;
+
+ switch (status)
+ {
+ case 0:
+ var = 0x80;
+ break;
+ case 1:
+ var = 0x84;
+ break;
+ case 2:
+ var = 0x86;
+ break;
+ case 3:
+ var = 0x88;
+ break;
+ case 4:
+ var = 0x82;
+ break;
+ }
+ var += 0x9000;
+ return var;
+}
+
+bool8 sub_80DB798(u8 a)
+{
+ bool8 r9 = TRUE;
+ u16 r8 = 0;
+ u8 r7 = gUnknown_02039F26[a] * 5 + 2;
+
+ if (sContestantStatus[a].resistant != 0 || sContestantStatus[a].immune != 0 || sContestantStatus[a].jamSafetyCount != 0 || sContestantStatus[a].jamReduction != 0)
+ r8 = sub_80DB748(0);
+ else if (sContestantStatus[a].nervous)
+ r8 = sub_80DB748(1);
+ else if (sContestantStatus[a].numTurnsSkipped != 0 || sContestantStatus[a].noMoreTurns)
+ r8 = sub_80DB748(2);
+ else
+ r9 = FALSE;
+ if (r9)
+ {
+ ContestBG_FillBoxWithIncrementingTile(0, r8, 20, r7, 2, 1, 17, 1);
+ ContestBG_FillBoxWithIncrementingTile(0, r8 + 16, 20, r7 + 1, 2, 1, 17, 1);
+ }
+ else
+ {
+ ContestBG_FillBoxWithTile(0, 0, 20, r7, 2, 2, 17);
+ }
+ return r9;
+}
diff --git a/src/credits.c b/src/credits.c
index 168f3e8a3..a88e4b549 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -2285,7 +2285,7 @@ static void sub_81772B8(struct Sprite *sprite)
static void sub_8177388(void)
{
- u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_FIRST_POKE)));
+ u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_STARTER_MON)));
u16 page;
u16 dexNum;
u16 j;
diff --git a/src/data/heal_locations.h b/src/data/heal_locations.h
new file mode 100644
index 000000000..613bcebe8
--- /dev/null
+++ b/src/data/heal_locations.h
@@ -0,0 +1,25 @@
+static const struct HealLocation sHealLocations[] =
+{
+ {MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), 4, 2},
+ {MAP_GROUP(LITTLEROOT_TOWN_MAYS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_2F), 4, 2},
+ {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 20, 17},
+ {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 19, 20},
+ {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 22, 6},
+ {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 16, 39},
+ {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 5, 7},
+ {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 24, 15},
+ {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 28, 17},
+ {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 43, 32},
+ {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 27, 49},
+ {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 5, 9},
+ {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 14, 9},
+ {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 6, 17},
+ {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 2, 11},
+ {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 9, 7},
+ {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 14, 8},
+ {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 16, 4},
+ {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 8, 16},
+ {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 18, 6},
+ {MAP_GROUP(SOUTHERN_ISLAND_EXTERIOR), MAP_NUM(SOUTHERN_ISLAND_EXTERIOR), 15, 20},
+ {MAP_GROUP(BATTLE_FRONTIER_OUTSIDE_EAST), MAP_NUM(BATTLE_FRONTIER_OUTSIDE_EAST), 3, 52},
+};
diff --git a/src/data/text/move_descriptions.h b/src/data/text/move_descriptions.h
new file mode 100644
index 000000000..f8830c593
--- /dev/null
+++ b/src/data/text/move_descriptions.h
@@ -0,0 +1,714 @@
+static const u8 sNullMoveDescription[] = _("");
+static const u8 sPoundMoveDescription[] = _("Pounds the foe with\nforelegs or tail.");
+static const u8 sKarateChopMoveDescription[] = _("A chopping attack with a\nhigh critical-hit ratio.");
+static const u8 sDoubleSlapMoveDescription[] = _("Repeatedly slaps the foe\n2 to 5 times.");
+static const u8 sCometPunchMoveDescription[] = _("Repeatedly punches the foe\n2 to 5 times.");
+static const u8 sMegaPunchMoveDescription[] = _("A strong punch thrown with\nincredible power.");
+static const u8 sPayDayMoveDescription[] = _("Throws coins at the foe.\nMoney is recovered after.");
+static const u8 sFirePunchMoveDescription[] = _("A fiery punch that may burn\nthe foe.");
+static const u8 sIcePunchMoveDescription[] = _("An icy punch that may\nfreeze the foe.");
+static const u8 sThunderPunchMoveDescription[] = _("An electrified punch that\nmay paralyze the foe.");
+static const u8 sScratchMoveDescription[] = _("Scratches the foe with\nsharp claws.");
+static const u8 sViceGripMoveDescription[] = _("Grips the foe with large and\npowerful pincers.");
+static const u8 sGuillotineMoveDescription[] = _("A powerful pincer attack\nthat may cause fainting.");
+static const u8 sRazorWindMoveDescription[] = _("A 2-turn move that strikes\nthe foe on the 2nd turn.");
+static const u8 sSwordsDanceMoveDescription[] = _("A fighting dance that\nsharply raises ATTACK.");
+static const u8 sCutMoveDescription[] = _("Cuts the foe with sharp\nscythes, claws, etc.");
+static const u8 sGustMoveDescription[] = _("Strikes the foe with a gust\nof wind whipped up by wings.");
+static const u8 sWingAttackMoveDescription[] = _("Strikes the foe with wings\nspread wide.");
+static const u8 sWhirlwindMoveDescription[] = _("Blows away the foe with\nwind and ends the battle.");
+static const u8 sFlyMoveDescription[] = _("Flies up on the first turn,\nthen strikes the next turn.");
+static const u8 sBindMoveDescription[] = _("Binds and squeezes the foe\nfor 2 to 5 turns.");
+static const u8 sSlamMoveDescription[] = _("Slams the foe with a long\ntail, vine, etc.");
+static const u8 sVineWhipMoveDescription[] = _("Strikes the foe with\nslender, whiplike vines.");
+static const u8 sStompMoveDescription[] = _("Stomps the enemy with a big\nfoot. May cause flinching.");
+static const u8 sDoubleKickMoveDescription[] = _("A double-kicking attack\nthat strikes the foe twice.");
+static const u8 sMegaKickMoveDescription[] = _("An extremely powerful kick\nwith intense force.");
+static const u8 sJumpKickMoveDescription[] = _("A strong jumping kick. May\nmiss and hurt the kicker.");
+static const u8 sRollingKickMoveDescription[] = _("A fast kick delivered from\na rapid spin.");
+static const u8 sSandAttackMoveDescription[] = _("Reduces the foe’s accuracy\nby hurling sand in its face.");
+static const u8 sHeadbuttMoveDescription[] = _("A ramming attack that may\ncause flinching.");
+static const u8 sHornAttackMoveDescription[] = _("Jabs the foe with sharp\nhorns.");
+static const u8 sFuryAttackMoveDescription[] = _("Jabs the foe 2 to 5 times\nwith sharp horns, etc.");
+static const u8 sHornDrillMoveDescription[] = _("A one-hit KO attack that\nuses a horn like a drill.");
+static const u8 sTackleMoveDescription[] = _("Charges the foe with a full-\nbody tackle.");
+static const u8 sBodySlamMoveDescription[] = _("A full-body slam that may\ncause paralysis.");
+static const u8 sWrapMoveDescription[] = _("Wraps and squeezes the foe\n2 to 5 times with vines, etc.");
+static const u8 sTakeDownMoveDescription[] = _("A reckless charge attack\nthat also hurts the user.");
+static const u8 sThrashMoveDescription[] = _("A rampage of 2 to 3 turns\nthat confuses the user.");
+static const u8 sDoubleEdgeMoveDescription[] = _("A life-risking tackle that\nalso hurts the user.");
+static const u8 sTailWhipMoveDescription[] = _("Wags the tail to lower the\nfoe’s DEFENSE.");
+static const u8 sPoisonStingMoveDescription[] = _("A toxic attack with barbs,\netc., that may poison.");
+static const u8 sTwineedleMoveDescription[] = _("Stingers on the forelegs\njab the foe twice.");
+static const u8 sPinMissileMoveDescription[] = _("Sharp pins are fired to\nstrike 2 to 5 times.");
+static const u8 sLeerMoveDescription[] = _("Frightens the foe with a\nleer to lower DEFENSE.");
+static const u8 sBiteMoveDescription[] = _("Bites with vicious fangs.\nMay cause flinching.");
+static const u8 sGrowlMoveDescription[] = _("Growls cutely to reduce the\nfoe’s ATTACK.");
+static const u8 sRoarMoveDescription[] = _("Makes the foe flee to end\nthe battle.");
+static const u8 sSingMoveDescription[] = _("A soothing song lulls the\nfoe into a deep slumber.");
+static const u8 sSupersonicMoveDescription[] = _("Emits bizarre sound waves\nthat may confuse the foe.");
+static const u8 sSonicBoomMoveDescription[] = _("Launches shock waves that\nalways inflict 20 HP damage.");
+static const u8 sDisableMoveDescription[] = _("Psychically disables one of\nthe foe’s moves.");
+static const u8 sAcidMoveDescription[] = _("Sprays a hide-melting acid.\nMay lower DEFENSE.");
+static const u8 sEmberMoveDescription[] = _("A weak fire attack that may\ninflict a burn.");
+static const u8 sFlamethrowerMoveDescription[] = _("A powerful fire attack that\nmay inflict a burn.");
+static const u8 sMistMoveDescription[] = _("Creates a mist that stops\nreduction of abilities.");
+static const u8 sWaterGunMoveDescription[] = _("Squirts water to attack\nthe foe.");
+static const u8 sHydroPumpMoveDescription[] = _("Blasts water at high power\nto strike the foe.");
+static const u8 sSurfMoveDescription[] = _("Creates a huge wave, then\ncrashes it down on the foe.");
+static const u8 sIceBeamMoveDescription[] = _("Blasts the foe with an icy\nbeam that may freeze it.");
+static const u8 sBlizzardMoveDescription[] = _("Hits the foe with an icy\nstorm that may freeze it.");
+static const u8 sPsybeamMoveDescription[] = _("Fires a peculiar ray that\nmay confuse the foe.");
+static const u8 sBubbleBeamMoveDescription[] = _("Forcefully sprays bubbles\nthat may lower SPEED.");
+static const u8 sAuroraBeamMoveDescription[] = _("Fires a rainbow-colored\nbeam that may lower ATTACK.");
+static const u8 sHyperBeamMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn.");
+static const u8 sPeckMoveDescription[] = _("Attacks the foe with a\njabbing beak, etc.");
+static const u8 sDrillPeckMoveDescription[] = _("A corkscrewing attack with\nthe beak acting as a drill.");
+static const u8 sSubmissionMoveDescription[] = _("A reckless body slam that\nalso hurts the user.");
+static const u8 sLowKickMoveDescription[] = _("A kick that inflicts more\ndamage on heavier foes.");
+static const u8 sCounterMoveDescription[] = _("Retaliates any physical hit\nwith double the power.");
+static const u8 sSeismicTossMoveDescription[] = _("Inflicts damage identical\nto the user’s level.");
+static const u8 sStrengthMoveDescription[] = _("Builds enormous power,\nthen slams the foe.");
+static const u8 sAbsorbMoveDescription[] = _("An attack that absorbs\nhalf the damage inflicted.");
+static const u8 sMegaDrainMoveDescription[] = _("An attack that absorbs\nhalf the damage inflicted.");
+static const u8 sLeechSeedMoveDescription[] = _("Plants a seed on the foe to\nsteal HP on every turn.");
+static const u8 sGrowthMoveDescription[] = _("Forces the body to grow\nand heightens SP. ATK.");
+static const u8 sRazorLeafMoveDescription[] = _("Cuts the enemy with leaves.\nHigh critical-hit ratio.");
+static const u8 sSolarBeamMoveDescription[] = _("Absorbs light in one turn,\nthen attacks next turn.");
+static const u8 sPoisonPowderMoveDescription[] = _("Scatters a toxic powder\nthat may poison the foe.");
+static const u8 sStunSporeMoveDescription[] = _("Scatters a powder that may\nparalyze the foe.");
+static const u8 sSleepPowderMoveDescription[] = _("Scatters a powder that may\ncause the foe to sleep.");
+static const u8 sPetalDanceMoveDescription[] = _("A rampage of 2 to 3 turns\nthat confuses the user.");
+static const u8 sStringShotMoveDescription[] = _("Binds the foe with string\nto reduce its SPEED.");
+static const u8 sDragonRageMoveDescription[] = _("Launches shock waves that\nalways inflict 40 HP damage.");
+static const u8 sFireSpinMoveDescription[] = _("Traps the foe in a ring of\nfire for 2 to 5 turns.");
+static const u8 sThunderShockMoveDescription[] = _("An electrical attack that\nmay paralyze the foe.");
+static const u8 sThunderboltMoveDescription[] = _("A strong electrical attack\nthat may paralyze the foe.");
+static const u8 sThunderWaveMoveDescription[] = _("A weak jolt of electricity\nthat paralyzes the foe.");
+static const u8 sThunderMoveDescription[] = _("A lightning attack that may\ncause paralysis.");
+static const u8 sRockThrowMoveDescription[] = _("Throws small rocks to\nstrike the foe.");
+static const u8 sEarthquakeMoveDescription[] = _("A powerful quake, but has\nno effect on flying foes.");
+static const u8 sFissureMoveDescription[] = _("A one-hit KO move that\ndrops the foe in a fissure.");
+static const u8 sDigMoveDescription[] = _("Digs underground the first\nturn and strikes next turn.");
+static const u8 sToxicMoveDescription[] = _("Poisons the foe with an\nintensifying toxin.");
+static const u8 sConfusionMoveDescription[] = _("A psychic attack that may\ncause confusion.");
+static const u8 sPsychicMoveDescription[] = _("A powerful psychic attack\nthat may lower SP. DEF.");
+static const u8 sHypnosisMoveDescription[] = _("A hypnotizing move that\nmay induce sleep.");
+static const u8 sMeditateMoveDescription[] = _("Meditates in a peaceful\nfashion to raise ATTACK.");
+static const u8 sAgilityMoveDescription[] = _("Relaxes the body to sharply\nboost SPEED.");
+static const u8 sQuickAttackMoveDescription[] = _("An extremely fast attack\nthat always strikes first.");
+static const u8 sRageMoveDescription[] = _("Raises the user’s ATTACK\nevery time it is hit.");
+static const u8 sTeleportMoveDescription[] = _("A psychic move for fleeing\nfrom battle instantly.");
+static const u8 sNightShadeMoveDescription[] = _("Inflicts damage identical\nto the user’s level.");
+static const u8 sMimicMoveDescription[] = _("Copies a move used by the\nfoe during one battle.");
+static const u8 sScreechMoveDescription[] = _("Emits a screech to sharply\nreduce the foe’s DEFENSE.");
+static const u8 sDoubleTeamMoveDescription[] = _("Creates illusory copies to\nraise evasiveness.");
+static const u8 sRecoverMoveDescription[] = _("Recovers up to half the\nuser’s maximum HP.");
+static const u8 sHardenMoveDescription[] = _("Stiffens the body’s \nmuscles to raise DEFENSE.");
+static const u8 sMinimizeMoveDescription[] = _("Minimizes the user’s size\nto raise evasiveness.");
+static const u8 sSmokescreenMoveDescription[] = _("Lowers the foe’s accuracy\nusing smoke, ink, etc.");
+static const u8 sConfuseRayMoveDescription[] = _("A sinister ray that\nconfuses the foe.");
+static const u8 sWithdrawMoveDescription[] = _("Withdraws the body into its\nhard shell to raise DEFENSE.");
+static const u8 sDefenseCurlMoveDescription[] = _("Curls up to conceal weak\nspots and raise DEFENSE.");
+static const u8 sBarrierMoveDescription[] = _("Creates a barrier that\nsharply raises DEFENSE.");
+static const u8 sLightScreenMoveDescription[] = _("Creates a wall of light that\nlowers SP. ATK damage.");
+static const u8 sHazeMoveDescription[] = _("Creates a black haze that\neliminates all stat changes.");
+static const u8 sReflectMoveDescription[] = _("Creates a wall of light that\nweakens physical attacks.");
+static const u8 sFocusEnergyMoveDescription[] = _("Focuses power to raise the\ncritical-hit ratio.");
+static const u8 sBideMoveDescription[] = _("Endures attack for 2\nturns to retaliate double.");
+static const u8 sMetronomeMoveDescription[] = _("Waggles a finger to use any\nPOKéMON move at random.");
+static const u8 sMirrorMoveMoveDescription[] = _("Counters the foe’s attack\nwith the same move.");
+static const u8 sSelfDestructMoveDescription[] = _("Inflicts severe damage but\nmakes the user faint.");
+static const u8 sEggBombMoveDescription[] = _("An egg is forcibly hurled at\nthe foe.");
+static const u8 sLickMoveDescription[] = _("Licks with a long tongue to\ninjure. May also paralyze.");
+static const u8 sSmogMoveDescription[] = _("An exhaust-gas attack\nthat may also poison.");
+static const u8 sSludgeMoveDescription[] = _("Sludge is hurled to inflict\ndamage. May also poison.");
+static const u8 sBoneClubMoveDescription[] = _("Clubs the foe with a bone.\nMay cause flinching.");
+static const u8 sFireBlastMoveDescription[] = _("Incinerates everything it\nstrikes. May cause a burn.");
+static const u8 sWaterfallMoveDescription[] = _("Charges the foe with speed\nto climb waterfalls.");
+static const u8 sClampMoveDescription[] = _("Traps and squeezes the\nfoe for 2 to 5 turns.");
+static const u8 sSwiftMoveDescription[] = _("Sprays star-shaped rays\nthat never miss.");
+static const u8 sSkullBashMoveDescription[] = _("Tucks in the head, then\nattacks on the next turn.");
+static const u8 sSpikeCannonMoveDescription[] = _("Launches sharp spikes that\nstrike 2 to 5 times.");
+static const u8 sConstrictMoveDescription[] = _("Constricts to inflict pain.\nMay lower SPEED.");
+static const u8 sAmnesiaMoveDescription[] = _("Forgets about something\nand sharply raises SP. DEF.");
+static const u8 sKinesisMoveDescription[] = _("Distracts the foe.\nMay lower accuracy.");
+static const u8 sSoftBoiledMoveDescription[] = _("Recovers up to half the\nuser’s maximum HP.");
+static const u8 sHiJumpKickMoveDescription[] = _("A jumping knee kick. If it\nmisses, the user is hurt.");
+static const u8 sGlareMoveDescription[] = _("Intimidates and frightens\nthe foe into paralysis.");
+static const u8 sDreamEaterMoveDescription[] = _("Takes one half the damage\ninflicted on a sleeping foe.");
+static const u8 sPoisonGasMoveDescription[] = _("Envelops the foe in a toxic\ngas that may poison.");
+static const u8 sBarrageMoveDescription[] = _("Hurls round objects at the\nfoe 2 to 5 times.");
+static const u8 sLeechLifeMoveDescription[] = _("An attack that steals half\nthe damage inflicted.");
+static const u8 sLovelyKissMoveDescription[] = _("Demands a kiss with a scary\nface that induces sleep.");
+static const u8 sSkyAttackMoveDescription[] = _("Searches out weak spots,\nthen strikes the next turn.");
+static const u8 sTransformMoveDescription[] = _("Alters the user’s cells to\nbecome a copy of the foe.");
+static const u8 sBubbleMoveDescription[] = _("An attack using bubbles.\nMay lower the foe’s SPEED.");
+static const u8 sDizzyPunchMoveDescription[] = _("A rhythmic punch that may\nconfuse the foe.");
+static const u8 sSporeMoveDescription[] = _("Scatters a cloud of spores\nthat always induce sleep.");
+static const u8 sFlashMoveDescription[] = _("Looses a powerful blast of\nlight that cuts accuracy.");
+static const u8 sPsywaveMoveDescription[] = _("Attacks with a psychic\nwave of varying intensity.");
+static const u8 sSplashMoveDescription[] = _("It’s just a splash...\nHas no effect whatsoever.");
+static const u8 sAcidArmorMoveDescription[] = _("Liquifies the user’s body\nto sharply raise DEFENSE.");
+static const u8 sCrabhammerMoveDescription[] = _("Hammers with a pincer. Has a\nhigh critical-hit ratio.");
+static const u8 sExplosionMoveDescription[] = _("Inflicts severe damage but\nmakes the user faint.");
+static const u8 sFurySwipesMoveDescription[] = _("Rakes the foe with sharp\nclaws, etc., 2 to 5 times.");
+static const u8 sBonemerangMoveDescription[] = _("Throws a bone boomerang\nthat strikes twice.");
+static const u8 sRestMoveDescription[] = _("The user sleeps for 2 turns,\nrestoring HP and status.");
+static const u8 sRockSlideMoveDescription[] = _("Large boulders are hurled.\nMay cause flinching.");
+static const u8 sHyperFangMoveDescription[] = _("Attacks with sharp fangs.\nMay cause flinching.");
+static const u8 sSharpenMoveDescription[] = _("Reduces the polygon count\nand raises ATTACK.");
+static const u8 sConversionMoveDescription[] = _("Changes the user’s type\ninto a known move’s type.");
+static const u8 sTriAttackMoveDescription[] = _("Fires three types of beams\nat the same time.");
+static const u8 sSuperFangMoveDescription[] = _("Attacks with sharp fangs\nand cuts half the foe’s HP.");
+static const u8 sSlashMoveDescription[] = _("Slashes with claws, etc. Has\na high critical-hit ratio.");
+static const u8 sSubstituteMoveDescription[] = _("Creates a decoy using 1/4\nof the user’s maximum HP.");
+static const u8 sStruggleMoveDescription[] = _("Used only if all PP are gone.\nAlso hurts the user a little.");
+static const u8 sSketchMoveDescription[] = _("Copies the foe’s last move\npermanently.");
+static const u8 sTripleKickMoveDescription[] = _("Kicks the foe 3 times in a\nrow with rising intensity.");
+static const u8 sThiefMoveDescription[] = _("While attacking, it may\nsteal the foe’s held item.");
+static const u8 sSpiderWebMoveDescription[] = _("Ensnares the foe to stop it\nfrom fleeing or switching.");
+static const u8 sMindReaderMoveDescription[] = _("Senses the foe’s action to\nensure the next move’s hit.");
+static const u8 sNightmareMoveDescription[] = _("Inflicts 1/4 damage on a\nsleeping foe every turn.");
+static const u8 sFlameWheelMoveDescription[] = _("A fiery charge attack that\nmay inflict a burn.");
+static const u8 sSnoreMoveDescription[] = _("A loud attack that can be\nused only while asleep.");
+static const u8 sCurseMoveDescription[] = _("A move that functions\ndifferently for GHOSTS.");
+static const u8 sFlailMoveDescription[] = _("Inflicts more damage when\nthe user’s HP is down.");
+static const u8 sConversion2MoveDescription[] = _("Makes the user resistant\nto the last attack’s type.");
+static const u8 sAeroblastMoveDescription[] = _("Launches a vacuumed blast.\nHigh critical-hit ratio.");
+static const u8 sCottonSporeMoveDescription[] = _("Spores cling to the foe,\nsharply reducing SPEED.");
+static const u8 sReversalMoveDescription[] = _("Inflicts more damage when\nthe user’s HP is down.");
+static const u8 sSpiteMoveDescription[] = _("Spitefully cuts the PP\nof the foe’s last move.");
+static const u8 sPowderSnowMoveDescription[] = _("Blasts the foe with a snowy\ngust. May cause freezing.");
+static const u8 sProtectMoveDescription[] = _("Evades attack, but may fail\nif used in succession.");
+static const u8 sMachPunchMoveDescription[] = _("A punch is thrown at wicked\nspeed to strike first.");
+static const u8 sScaryFaceMoveDescription[] = _("Frightens with a scary face\nto sharply reduce SPEED.");
+static const u8 sFaintAttackMoveDescription[] = _("Draws the foe close, then\nstrikes without fail.");
+static const u8 sSweetKissMoveDescription[] = _("Demands a kiss with a cute\nlook. May cause confusion.");
+static const u8 sBellyDrumMoveDescription[] = _("Maximizes ATTACK while\nsacrificing HP.");
+static const u8 sSludgeBombMoveDescription[] = _("Sludge is hurled to inflict\ndamage. May also poison.");
+static const u8 sMudSlapMoveDescription[] = _("Hurls mud in the foe’s face\nto reduce its accuracy.");
+static const u8 sOctazookaMoveDescription[] = _("Fires a lump of ink to\ndamage and cut accuracy.");
+static const u8 sSpikesMoveDescription[] = _("Sets spikes that hurt a \nfoe switching in.");
+static const u8 sZapCannonMoveDescription[] = _("Powerful and sure to cause\nparalysis, but inaccurate.");
+static const u8 sForesightMoveDescription[] = _("Negates the foe’s efforts\nto heighten evasiveness.");
+static const u8 sDestinyBondMoveDescription[] = _("If the user faints, the foe\nis also made to faint.");
+static const u8 sPerishSongMoveDescription[] = _("Any POKéMON hearing this\nsong faints in 3 turns.");
+static const u8 sIcyWindMoveDescription[] = _("A chilling attack that\nlowers the foe’s SPEED.");
+static const u8 sDetectMoveDescription[] = _("Evades attack, but may fail\nif used in succession.");
+static const u8 sBoneRushMoveDescription[] = _("Strikes the foe with a bone\nin hand 2 to 5 times.");
+static const u8 sLockOnMoveDescription[] = _("Locks on to the foe to\nensure the next move hits.");
+static const u8 sOutrageMoveDescription[] = _("A rampage of 2 to 3 turns\nthat confuses the user.");
+static const u8 sSandstormMoveDescription[] = _("Causes a sandstorm that\nrages for several turns.");
+static const u8 sGigaDrainMoveDescription[] = _("An attack that steals half\nthe damage inflicted.");
+static const u8 sEndureMoveDescription[] = _("Endures any attack for\n1 turn, leaving at least 1HP.");
+static const u8 sCharmMoveDescription[] = _("Charms the foe and sharply\nreduces its ATTACK.");
+static const u8 sRolloutMoveDescription[] = _("An attack lasting 5 turns\nwith rising intensity.");
+static const u8 sFalseSwipeMoveDescription[] = _("An attack that leaves the\nfoe with at least 1 HP.");
+static const u8 sSwaggerMoveDescription[] = _("Confuses the foe, but also\nsharply raises ATTACK.");
+static const u8 sMilkDrinkMoveDescription[] = _("Recovers up to half the\nuser’s maximum HP.");
+static const u8 sSparkMoveDescription[] = _("An electrified tackle that\nmay paralyze the foe.");
+static const u8 sFuryCutterMoveDescription[] = _("An attack that intensifies\non each successive hit.");
+static const u8 sSteelWingMoveDescription[] = _("Strikes the foe with hard\nwings spread wide.");
+static const u8 sMeanLookMoveDescription[] = _("Fixes the foe with a mean\nlook that prevents escape.");
+static const u8 sAttractMoveDescription[] = _("Makes the opposite gender\nless likely to attack.");
+static const u8 sSleepTalkMoveDescription[] = _("Uses an available move\nrandomly while asleep.");
+static const u8 sHealBellMoveDescription[] = _("Chimes soothingly to heal\nall status abnormalities.");
+static const u8 sReturnMoveDescription[] = _("An attack that increases\nin power with friendship.");
+static const u8 sPresentMoveDescription[] = _("A gift in the form of a\nbomb. May restore HP.");
+static const u8 sFrustrationMoveDescription[] = _("An attack that is stronger\nif the TRAINER is disliked.");
+static const u8 sSafeguardMoveDescription[] = _("A mystical force prevents\nall status problems.");
+static const u8 sPainSplitMoveDescription[] = _("Adds the user and foe’s HP,\nthen shares them equally.");
+static const u8 sSacredFireMoveDescription[] = _("A mystical fire attack that\nmay inflict a burn.");
+static const u8 sMagnitudeMoveDescription[] = _("A ground-shaking attack\nof random intensity.");
+static const u8 sDynamicPunchMoveDescription[] = _("Powerful and sure to cause\nconfusion, but inaccurate.");
+static const u8 sMegahornMoveDescription[] = _("A brutal ramming attack\nusing out-thrust horns.");
+static const u8 sDragonBreathMoveDescription[] = _("Strikes the foe with an\nincredible blast of breath.");
+static const u8 sBatonPassMoveDescription[] = _("Switches out the user while\nkeeping effects in play.");
+static const u8 sEncoreMoveDescription[] = _("Makes the foe repeat its\nlast move over 2 to 6 turns.");
+static const u8 sPursuitMoveDescription[] = _("Inflicts bad damage if used\non a foe switching out.");
+static const u8 sRapidSpinMoveDescription[] = _("Spins the body at high\nspeed to strike the foe.");
+static const u8 sSweetScentMoveDescription[] = _("Allures the foe to reduce\nevasiveness.");
+static const u8 sIronTailMoveDescription[] = _("Attacks with a rock-hard\ntail. May lower DEFENSE.");
+static const u8 sMetalClawMoveDescription[] = _("A claw attack that may\nraise the user’s ATTACK.");
+static const u8 sVitalThrowMoveDescription[] = _("Makes the user’s move last,\nbut it never misses.");
+static const u8 sMorningSunMoveDescription[] = _("Restores HP. The amount\nvaries with the weather.");
+static const u8 sSynthesisMoveDescription[] = _("Restores HP. The amount\nvaries with the weather.");
+static const u8 sMoonlightMoveDescription[] = _("Restores HP. The amount\nvaries with the weather.");
+static const u8 sHiddenPowerMoveDescription[] = _("The effectiveness varies\nwith the user.");
+static const u8 sCrossChopMoveDescription[] = _("A double-chopping attack.\nHigh critical-hit ratio.");
+static const u8 sTwisterMoveDescription[] = _("Whips up a vicious twister\nto tear at the foe.");
+static const u8 sRainDanceMoveDescription[] = _("Boosts the power of WATER-\ntype moves for 5 turns.");
+static const u8 sSunnyDayMoveDescription[] = _("Boosts the power of FIRE-\ntype moves for 5 turns.");
+static const u8 sCrunchMoveDescription[] = _("Crunches with sharp fangs.\nMay lower SP. DEF.");
+static const u8 sMirrorCoatMoveDescription[] = _("Counters the foe’s special\nattack at double the power.");
+static const u8 sPsychUpMoveDescription[] = _("Copies the foe’s effect(s)\nand gives to the user.");
+static const u8 sExtremeSpeedMoveDescription[] = _("An extremely fast and\npowerful attack.");
+static const u8 sAncientPowerMoveDescription[] = _("An attack that may raise\nall stats.");
+static const u8 sShadowBallMoveDescription[] = _("Hurls a black blob that may\nlower the foe’s SP. DEF.");
+static const u8 sFutureSightMoveDescription[] = _("Heightens inner power to\nstrike 2 turns later.");
+static const u8 sRockSmashMoveDescription[] = _("A rock-crushing attack\nthat may lower DEFENSE.");
+static const u8 sWhirlpoolMoveDescription[] = _("Traps and hurts the foe in\na whirlpool for 2 to 5 turns.");
+static const u8 sBeatUpMoveDescription[] = _("Summons party POKéMON to\njoin in the attack.");
+static const u8 sFakeOutMoveDescription[] = _("A 1st-turn, 1st-strike move\nthat causes flinching.");
+static const u8 sUproarMoveDescription[] = _("Causes an uproar for 2 to 5\nturns and prevents sleep.");
+static const u8 sStockpileMoveDescription[] = _("Charges up power for up to\n3 turns.");
+static const u8 sSpitUpMoveDescription[] = _("Releases stockpiled power\n(the more the better).");
+static const u8 sSwallowMoveDescription[] = _("Absorbs stockpiled power\nand restores HP.");
+static const u8 sHeatWaveMoveDescription[] = _("Exhales a hot breath on the\nfoe. May inflict a burn.");
+static const u8 sHailMoveDescription[] = _("Summons a hailstorm that\nstrikes every turn.");
+static const u8 sTormentMoveDescription[] = _("Torments the foe and stops\nsuccessive use of a move.");
+static const u8 sFlatterMoveDescription[] = _("Confuses the foe, but\nraises its SP. ATK.");
+static const u8 sWillOWispMoveDescription[] = _("Inflicts a burn on the foe\nwith intense fire.");
+static const u8 sMementoMoveDescription[] = _("The user faints and lowers\nthe foe’s abilities.");
+static const u8 sFacadeMoveDescription[] = _("Boosts ATTACK when burned,\nparalyzed, or poisoned.");
+static const u8 sFocusPunchMoveDescription[] = _("A powerful loyalty attack.\nThe user flinches if hit.");
+static const u8 sSmellingSaltMoveDescription[] = _("Powerful against paralyzed\nfoes, but also heals them.");
+static const u8 sFollowMeMoveDescription[] = _("Draws attention to make\nfoes attack only the user.");
+static const u8 sNaturePowerMoveDescription[] = _("The type of attack varies\ndepending on the location.");
+static const u8 sChargeMoveDescription[] = _("Charges power to boost the\nelectric move used next.");
+static const u8 sTauntMoveDescription[] = _("Taunts the foe into only\nusing attack moves.");
+static const u8 sHelpingHandMoveDescription[] = _("Boosts the power of the\nrecipient’s moves.");
+static const u8 sTrickMoveDescription[] = _("Tricks the foe into trading\nheld items.");
+static const u8 sRolePlayMoveDescription[] = _("Mimics the target and\ncopies its special ability.");
+static const u8 sWishMoveDescription[] = _("A wish that restores HP.\nIt takes time to work.");
+static const u8 sAssistMoveDescription[] = _("Attacks randomly with one\nof the partner’s moves.");
+static const u8 sIngrainMoveDescription[] = _("Lays roots that restore HP.\nThe user can’t switch out.");
+static const u8 sSuperpowerMoveDescription[] = _("Boosts strength sharply,\nbut lowers abilities.");
+static const u8 sMagicCoatMoveDescription[] = _("Reflects special effects\nback to the attacker.");
+static const u8 sRecycleMoveDescription[] = _("Recycles a used item for\none more use.");
+static const u8 sRevengeMoveDescription[] = _("An attack that gains power\nif injured by the foe.");
+static const u8 sBrickBreakMoveDescription[] = _("Destroys barriers such as\nREFLECT and causes damage.");
+static const u8 sYawnMoveDescription[] = _("Lulls the foe into yawning,\nthen sleeping next turn.");
+static const u8 sKnockOffMoveDescription[] = _("Knocks down the foe’s held\nitem to prevent its use.");
+static const u8 sEndeavorMoveDescription[] = _("Gains power if the user’s HP\nis lower than the foe’s HP.");
+static const u8 sEruptionMoveDescription[] = _("The higher the user’s HP,\nthe more damage caused.");
+static const u8 sSkillSwapMoveDescription[] = _("The user swaps special\nabilities with the target.");
+static const u8 sImprisonMoveDescription[] = _("Prevents foes from using\nmoves known by the user.");
+static const u8 sRefreshMoveDescription[] = _("Heals poisoning, paralysis,\nor a burn.");
+static const u8 sGrudgeMoveDescription[] = _("If the user faints, deletes\nall PP of foe’s last move.");
+static const u8 sSnatchMoveDescription[] = _("Steals the effects of the\nmove the target uses next.");
+static const u8 sSecretPowerMoveDescription[] = _("An attack with effects\nthat vary by location.");
+static const u8 sDiveMoveDescription[] = _("Dives underwater the first\nturn and strikes next turn.");
+static const u8 sArmThrustMoveDescription[] = _("Straight-arm punches that\nstrike the foe 2 to 5 times.");
+static const u8 sCamouflageMoveDescription[] = _("Alters the POKéMON’s type\ndepending on the location.");
+static const u8 sTailGlowMoveDescription[] = _("Flashes a light that sharply\nraises SP. ATK.");
+static const u8 sLusterPurgeMoveDescription[] = _("Attacks with a burst of\nlight. May lower SP. DEF.");
+static const u8 sMistBallMoveDescription[] = _("Attacks with a flurry of\ndown. May lower SP. ATK.");
+static const u8 sFeatherDanceMoveDescription[] = _("Envelops the foe with down\nto sharply reduce ATTACK.");
+static const u8 sTeeterDanceMoveDescription[] = _("Confuses all POKéMON on\nthe scene.");
+static const u8 sBlazeKickMoveDescription[] = _("A kick with a high critical-\nhit ratio. May cause a burn.");
+static const u8 sMudSportMoveDescription[] = _("Covers the user in mud to\nraise electrical resistance.");
+static const u8 sIceBallMoveDescription[] = _("A 5-turn attack that gains\npower on successive hits.");
+static const u8 sNeedleArmMoveDescription[] = _("Attacks with thorny arms.\nMay cause flinching.");
+static const u8 sSlackOffMoveDescription[] = _("Slacks off and restores\nhalf the maximum HP.");
+static const u8 sHyperVoiceMoveDescription[] = _("A loud attack that uses\nsound waves to injure.");
+static const u8 sPoisonFangMoveDescription[] = _("A sharp-fanged attack.\nMay badly poison the foe.");
+static const u8 sCrushClawMoveDescription[] = _("Tears at the foe with sharp\nclaws. May lower DEFENSE.");
+static const u8 sBlastBurnMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn.");
+static const u8 sHydroCannonMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn.");
+static const u8 sMeteorMashMoveDescription[] = _("Fires a meteor-like punch.\nMay raise ATTACK.");
+static const u8 sAstonishMoveDescription[] = _("An attack that may shock\nthe foe into flinching.");
+static const u8 sWeatherBallMoveDescription[] = _("The move’s type and power\nchange with the weather.");
+static const u8 sAromatherapyMoveDescription[] = _("Heals all status problems\nwith a soothing scent.");
+static const u8 sFakeTearsMoveDescription[] = _("Feigns crying to sharply\nlower the foe’s SP. DEF.");
+static const u8 sAirCutterMoveDescription[] = _("Hacks with razorlike wind.\nHigh critical-hit ratio.");
+static const u8 sOverheatMoveDescription[] = _("Allows a full-power attack,\nbut sharply lowers SP. ATK.");
+static const u8 sOdorSleuthMoveDescription[] = _("Negates the foe’s efforts\nto heighten evasiveness.");
+static const u8 sRockTombMoveDescription[] = _("Stops the foe from moving\nwith rocks and cuts SPEED.");
+static const u8 sSilverWindMoveDescription[] = _("A powdery attack that may\nraise abilities.");
+static const u8 sMetalSoundMoveDescription[] = _("Emits a horrible screech\nthat sharply lowers SP. DEF.");
+static const u8 sGrassWhistleMoveDescription[] = _("Lulls the foe into sleep\nwith a pleasant melody.");
+static const u8 sTickleMoveDescription[] = _("Makes the foe laugh to\nlower ATTACK and DEFENSE.");
+static const u8 sCosmicPowerMoveDescription[] = _("Raises DEFENSE and SP. DEF\nwith a mystic power.");
+static const u8 sWaterSpoutMoveDescription[] = _("Inflicts more damage if the\nuser’s HP is high.");
+static const u8 sSignalBeamMoveDescription[] = _("A strange beam attack that\nmay confuse the foe.");
+static const u8 sShadowPunchMoveDescription[] = _("An unavoidable punch that\nis thrown from shadows.");
+static const u8 sExtrasensoryMoveDescription[] = _("Attacks with a peculiar\npower. May cause flinching.");
+static const u8 sSkyUppercutMoveDescription[] = _("An uppercut thrown as if\nleaping into the sky.");
+static const u8 sSandTombMoveDescription[] = _("Traps and hurts the foe in\nquicksand for 2 to 5 turns.");
+static const u8 sSheerColdMoveDescription[] = _("A chilling attack that\ncauses fainting if it hits.");
+static const u8 sMuddyWaterMoveDescription[] = _("Attacks with muddy water.\nMay lower accuracy.");
+static const u8 sBulletSeedMoveDescription[] = _("Shoots 2 to 5 seeds in a row\nto strike the foe.");
+static const u8 sAerialAceMoveDescription[] = _("An extremely speedy and\nunavoidable attack.");
+static const u8 sIcicleSpearMoveDescription[] = _("Attacks the foe by firing\n2 to 5 icicles in a row.");
+static const u8 sIronDefenseMoveDescription[] = _("Hardens the body’s surface\nto sharply raise DEFENSE.");
+static const u8 sBlockMoveDescription[] = _("Blocks the foe’s way to\nprevent escape.");
+static const u8 sHowlMoveDescription[] = _("Howls to raise the spirit\nand boosts ATTACK.");
+static const u8 sDragonClawMoveDescription[] = _("Slashes the foe with sharp\nclaws.");
+static const u8 sFrenzyPlantMoveDescription[] = _("Powerful, but leaves the\nuser immobile the next turn.");
+static const u8 sBulkUpMoveDescription[] = _("Bulks up the body to boost\nboth ATTACK and DEFENSE.");
+static const u8 sBounceMoveDescription[] = _("Bounces up, then down the\nnext turn. May paralyze.");
+static const u8 sMudShotMoveDescription[] = _("Hurls mud at the foe and\nreduces SPEED.");
+static const u8 sPoisonTailMoveDescription[] = _("Has a high critical-hit\nratio. May also poison.");
+static const u8 sCovetMoveDescription[] = _("Cutely begs to obtain an\nitem held by the foe.");
+static const u8 sVoltTackleMoveDescription[] = _("A life-risking tackle that\nslightly hurts the user.");
+static const u8 sMagicalLeafMoveDescription[] = _("Attacks with a strange leaf\nthat cannot be evaded.");
+static const u8 sWaterSportMoveDescription[] = _("The user becomes soaked to\nraise resistance to fire.");
+static const u8 sCalmMindMoveDescription[] = _("Raises SP. ATK and SP. DEF\nby focusing the mind.");
+static const u8 sLeafBladeMoveDescription[] = _("Slashes with a sharp leaf.\nHigh critical-hit ratio.");
+static const u8 sDragonDanceMoveDescription[] = _("A mystical dance that ups\nATTACK and SPEED.");
+static const u8 sRockBlastMoveDescription[] = _("Hurls boulders at the foe\n2 to 5 times in a row.");
+static const u8 sShockWaveMoveDescription[] = _("A fast and unavoidable\nelectric attack.");
+static const u8 sWaterPulseMoveDescription[] = _("Attacks with ultrasonic\nwaves. May confuse the foe.");
+static const u8 sDoomDesireMoveDescription[] = _("Summons strong sunlight to\nattack 2 turns later.");
+static const u8 sPsychoBoostMoveDescription[] = _("Allows a full-power attack,\nbut sharply lowers SP. ATK.");
+
+// MOVE_NONE is ignored in this table. Make sure to always subtract 1 before getting the right pointer.
+const u8 *const gMoveDescriptionPointers[MOVES_COUNT - 1] =
+{
+ [MOVE_POUND - 1] = sPoundMoveDescription,
+ [MOVE_KARATE_CHOP - 1] = sKarateChopMoveDescription,
+ [MOVE_DOUBLE_SLAP - 1] = sDoubleSlapMoveDescription,
+ [MOVE_COMET_PUNCH - 1] = sCometPunchMoveDescription,
+ [MOVE_MEGA_PUNCH - 1] = sMegaPunchMoveDescription,
+ [MOVE_PAY_DAY - 1] = sPayDayMoveDescription,
+ [MOVE_FIRE_PUNCH - 1] = sFirePunchMoveDescription,
+ [MOVE_ICE_PUNCH - 1] = sIcePunchMoveDescription,
+ [MOVE_THUNDER_PUNCH - 1] = sThunderPunchMoveDescription,
+ [MOVE_SCRATCH - 1] = sScratchMoveDescription,
+ [MOVE_VICE_GRIP - 1] = sViceGripMoveDescription,
+ [MOVE_GUILLOTINE - 1] = sGuillotineMoveDescription,
+ [MOVE_RAZOR_WIND - 1] = sRazorWindMoveDescription,
+ [MOVE_SWORDS_DANCE - 1] = sSwordsDanceMoveDescription,
+ [MOVE_CUT - 1] = sCutMoveDescription,
+ [MOVE_GUST - 1] = sGustMoveDescription,
+ [MOVE_WING_ATTACK - 1] = sWingAttackMoveDescription,
+ [MOVE_WHIRLWIND - 1] = sWhirlwindMoveDescription,
+ [MOVE_FLY - 1] = sFlyMoveDescription,
+ [MOVE_BIND - 1] = sBindMoveDescription,
+ [MOVE_SLAM - 1] = sSlamMoveDescription,
+ [MOVE_VINE_WHIP - 1] = sVineWhipMoveDescription,
+ [MOVE_STOMP - 1] = sStompMoveDescription,
+ [MOVE_DOUBLE_KICK - 1] = sDoubleKickMoveDescription,
+ [MOVE_MEGA_KICK - 1] = sMegaKickMoveDescription,
+ [MOVE_JUMP_KICK - 1] = sJumpKickMoveDescription,
+ [MOVE_ROLLING_KICK - 1] = sRollingKickMoveDescription,
+ [MOVE_SAND_ATTACK - 1] = sSandAttackMoveDescription,
+ [MOVE_HEADBUTT - 1] = sHeadbuttMoveDescription,
+ [MOVE_HORN_ATTACK - 1] = sHornAttackMoveDescription,
+ [MOVE_FURY_ATTACK - 1] = sFuryAttackMoveDescription,
+ [MOVE_HORN_DRILL - 1] = sHornDrillMoveDescription,
+ [MOVE_TACKLE - 1] = sTackleMoveDescription,
+ [MOVE_BODY_SLAM - 1] = sBodySlamMoveDescription,
+ [MOVE_WRAP - 1] = sWrapMoveDescription,
+ [MOVE_TAKE_DOWN - 1] = sTakeDownMoveDescription,
+ [MOVE_THRASH - 1] = sThrashMoveDescription,
+ [MOVE_DOUBLE_EDGE - 1] = sDoubleEdgeMoveDescription,
+ [MOVE_TAIL_WHIP - 1] = sTailWhipMoveDescription,
+ [MOVE_POISON_STING - 1] = sPoisonStingMoveDescription,
+ [MOVE_TWINEEDLE - 1] = sTwineedleMoveDescription,
+ [MOVE_PIN_MISSILE - 1] = sPinMissileMoveDescription,
+ [MOVE_LEER - 1] = sLeerMoveDescription,
+ [MOVE_BITE - 1] = sBiteMoveDescription,
+ [MOVE_GROWL - 1] = sGrowlMoveDescription,
+ [MOVE_ROAR - 1] = sRoarMoveDescription,
+ [MOVE_SING - 1] = sSingMoveDescription,
+ [MOVE_SUPERSONIC - 1] = sSupersonicMoveDescription,
+ [MOVE_SONIC_BOOM - 1] = sSonicBoomMoveDescription,
+ [MOVE_DISABLE - 1] = sDisableMoveDescription,
+ [MOVE_ACID - 1] = sAcidMoveDescription,
+ [MOVE_EMBER - 1] = sEmberMoveDescription,
+ [MOVE_FLAMETHROWER - 1] = sFlamethrowerMoveDescription,
+ [MOVE_MIST - 1] = sMistMoveDescription,
+ [MOVE_WATER_GUN - 1] = sWaterGunMoveDescription,
+ [MOVE_HYDRO_PUMP - 1] = sHydroPumpMoveDescription,
+ [MOVE_SURF - 1] = sSurfMoveDescription,
+ [MOVE_ICE_BEAM - 1] = sIceBeamMoveDescription,
+ [MOVE_BLIZZARD - 1] = sBlizzardMoveDescription,
+ [MOVE_PSYBEAM - 1] = sPsybeamMoveDescription,
+ [MOVE_BUBBLE_BEAM - 1] = sBubbleBeamMoveDescription,
+ [MOVE_AURORA_BEAM - 1] = sAuroraBeamMoveDescription,
+ [MOVE_HYPER_BEAM - 1] = sHyperBeamMoveDescription,
+ [MOVE_PECK - 1] = sPeckMoveDescription,
+ [MOVE_DRILL_PECK - 1] = sDrillPeckMoveDescription,
+ [MOVE_SUBMISSION - 1] = sSubmissionMoveDescription,
+ [MOVE_LOW_KICK - 1] = sLowKickMoveDescription,
+ [MOVE_COUNTER - 1] = sCounterMoveDescription,
+ [MOVE_SEISMIC_TOSS - 1] = sSeismicTossMoveDescription,
+ [MOVE_STRENGTH - 1] = sStrengthMoveDescription,
+ [MOVE_ABSORB - 1] = sAbsorbMoveDescription,
+ [MOVE_MEGA_DRAIN - 1] = sMegaDrainMoveDescription,
+ [MOVE_LEECH_SEED - 1] = sLeechSeedMoveDescription,
+ [MOVE_GROWTH - 1] = sGrowthMoveDescription,
+ [MOVE_RAZOR_LEAF - 1] = sRazorLeafMoveDescription,
+ [MOVE_SOLAR_BEAM - 1] = sSolarBeamMoveDescription,
+ [MOVE_POISON_POWDER - 1] = sPoisonPowderMoveDescription,
+ [MOVE_STUN_SPORE - 1] = sStunSporeMoveDescription,
+ [MOVE_SLEEP_POWDER - 1] = sSleepPowderMoveDescription,
+ [MOVE_PETAL_DANCE - 1] = sPetalDanceMoveDescription,
+ [MOVE_STRING_SHOT - 1] = sStringShotMoveDescription,
+ [MOVE_DRAGON_RAGE - 1] = sDragonRageMoveDescription,
+ [MOVE_FIRE_SPIN - 1] = sFireSpinMoveDescription,
+ [MOVE_THUNDER_SHOCK - 1] = sThunderShockMoveDescription,
+ [MOVE_THUNDERBOLT - 1] = sThunderboltMoveDescription,
+ [MOVE_THUNDER_WAVE - 1] = sThunderWaveMoveDescription,
+ [MOVE_THUNDER - 1] = sThunderMoveDescription,
+ [MOVE_ROCK_THROW - 1] = sRockThrowMoveDescription,
+ [MOVE_EARTHQUAKE - 1] = sEarthquakeMoveDescription,
+ [MOVE_FISSURE - 1] = sFissureMoveDescription,
+ [MOVE_DIG - 1] = sDigMoveDescription,
+ [MOVE_TOXIC - 1] = sToxicMoveDescription,
+ [MOVE_CONFUSION - 1] = sConfusionMoveDescription,
+ [MOVE_PSYCHIC - 1] = sPsychicMoveDescription,
+ [MOVE_HYPNOSIS - 1] = sHypnosisMoveDescription,
+ [MOVE_MEDITATE - 1] = sMeditateMoveDescription,
+ [MOVE_AGILITY - 1] = sAgilityMoveDescription,
+ [MOVE_QUICK_ATTACK - 1] = sQuickAttackMoveDescription,
+ [MOVE_RAGE - 1] = sRageMoveDescription,
+ [MOVE_TELEPORT - 1] = sTeleportMoveDescription,
+ [MOVE_NIGHT_SHADE - 1] = sNightShadeMoveDescription,
+ [MOVE_MIMIC - 1] = sMimicMoveDescription,
+ [MOVE_SCREECH - 1] = sScreechMoveDescription,
+ [MOVE_DOUBLE_TEAM - 1] = sDoubleTeamMoveDescription,
+ [MOVE_RECOVER - 1] = sRecoverMoveDescription,
+ [MOVE_HARDEN - 1] = sHardenMoveDescription,
+ [MOVE_MINIMIZE - 1] = sMinimizeMoveDescription,
+ [MOVE_SMOKESCREEN - 1] = sSmokescreenMoveDescription,
+ [MOVE_CONFUSE_RAY - 1] = sConfuseRayMoveDescription,
+ [MOVE_WITHDRAW - 1] = sWithdrawMoveDescription,
+ [MOVE_DEFENSE_CURL - 1] = sDefenseCurlMoveDescription,
+ [MOVE_BARRIER - 1] = sBarrierMoveDescription,
+ [MOVE_LIGHT_SCREEN - 1] = sLightScreenMoveDescription,
+ [MOVE_HAZE - 1] = sHazeMoveDescription,
+ [MOVE_REFLECT - 1] = sReflectMoveDescription,
+ [MOVE_FOCUS_ENERGY - 1] = sFocusEnergyMoveDescription,
+ [MOVE_BIDE - 1] = sBideMoveDescription,
+ [MOVE_METRONOME - 1] = sMetronomeMoveDescription,
+ [MOVE_MIRROR_MOVE - 1] = sMirrorMoveMoveDescription,
+ [MOVE_SELF_DESTRUCT - 1] = sSelfDestructMoveDescription,
+ [MOVE_EGG_BOMB - 1] = sEggBombMoveDescription,
+ [MOVE_LICK - 1] = sLickMoveDescription,
+ [MOVE_SMOG - 1] = sSmogMoveDescription,
+ [MOVE_SLUDGE - 1] = sSludgeMoveDescription,
+ [MOVE_BONE_CLUB - 1] = sBoneClubMoveDescription,
+ [MOVE_FIRE_BLAST - 1] = sFireBlastMoveDescription,
+ [MOVE_WATERFALL - 1] = sWaterfallMoveDescription,
+ [MOVE_CLAMP - 1] = sClampMoveDescription,
+ [MOVE_SWIFT - 1] = sSwiftMoveDescription,
+ [MOVE_SKULL_BASH - 1] = sSkullBashMoveDescription,
+ [MOVE_SPIKE_CANNON - 1] = sSpikeCannonMoveDescription,
+ [MOVE_CONSTRICT - 1] = sConstrictMoveDescription,
+ [MOVE_AMNESIA - 1] = sAmnesiaMoveDescription,
+ [MOVE_KINESIS - 1] = sKinesisMoveDescription,
+ [MOVE_SOFT_BOILED - 1] = sSoftBoiledMoveDescription,
+ [MOVE_HI_JUMP_KICK - 1] = sHiJumpKickMoveDescription,
+ [MOVE_GLARE - 1] = sGlareMoveDescription,
+ [MOVE_DREAM_EATER - 1] = sDreamEaterMoveDescription,
+ [MOVE_POISON_GAS - 1] = sPoisonGasMoveDescription,
+ [MOVE_BARRAGE - 1] = sBarrageMoveDescription,
+ [MOVE_LEECH_LIFE - 1] = sLeechLifeMoveDescription,
+ [MOVE_LOVELY_KISS - 1] = sLovelyKissMoveDescription,
+ [MOVE_SKY_ATTACK - 1] = sSkyAttackMoveDescription,
+ [MOVE_TRANSFORM - 1] = sTransformMoveDescription,
+ [MOVE_BUBBLE - 1] = sBubbleMoveDescription,
+ [MOVE_DIZZY_PUNCH - 1] = sDizzyPunchMoveDescription,
+ [MOVE_SPORE - 1] = sSporeMoveDescription,
+ [MOVE_FLASH - 1] = sFlashMoveDescription,
+ [MOVE_PSYWAVE - 1] = sPsywaveMoveDescription,
+ [MOVE_SPLASH - 1] = sSplashMoveDescription,
+ [MOVE_ACID_ARMOR - 1] = sAcidArmorMoveDescription,
+ [MOVE_CRABHAMMER - 1] = sCrabhammerMoveDescription,
+ [MOVE_EXPLOSION - 1] = sExplosionMoveDescription,
+ [MOVE_FURY_SWIPES - 1] = sFurySwipesMoveDescription,
+ [MOVE_BONEMERANG - 1] = sBonemerangMoveDescription,
+ [MOVE_REST - 1] = sRestMoveDescription,
+ [MOVE_ROCK_SLIDE - 1] = sRockSlideMoveDescription,
+ [MOVE_HYPER_FANG - 1] = sHyperFangMoveDescription,
+ [MOVE_SHARPEN - 1] = sSharpenMoveDescription,
+ [MOVE_CONVERSION - 1] = sConversionMoveDescription,
+ [MOVE_TRI_ATTACK - 1] = sTriAttackMoveDescription,
+ [MOVE_SUPER_FANG - 1] = sSuperFangMoveDescription,
+ [MOVE_SLASH - 1] = sSlashMoveDescription,
+ [MOVE_SUBSTITUTE - 1] = sSubstituteMoveDescription,
+ [MOVE_STRUGGLE - 1] = sStruggleMoveDescription,
+ [MOVE_SKETCH - 1] = sSketchMoveDescription,
+ [MOVE_TRIPLE_KICK - 1] = sTripleKickMoveDescription,
+ [MOVE_THIEF - 1] = sThiefMoveDescription,
+ [MOVE_SPIDER_WEB - 1] = sSpiderWebMoveDescription,
+ [MOVE_MIND_READER - 1] = sMindReaderMoveDescription,
+ [MOVE_NIGHTMARE - 1] = sNightmareMoveDescription,
+ [MOVE_FLAME_WHEEL - 1] = sFlameWheelMoveDescription,
+ [MOVE_SNORE - 1] = sSnoreMoveDescription,
+ [MOVE_CURSE - 1] = sCurseMoveDescription,
+ [MOVE_FLAIL - 1] = sFlailMoveDescription,
+ [MOVE_CONVERSION_2 - 1] = sConversion2MoveDescription,
+ [MOVE_AEROBLAST - 1] = sAeroblastMoveDescription,
+ [MOVE_COTTON_SPORE - 1] = sCottonSporeMoveDescription,
+ [MOVE_REVERSAL - 1] = sReversalMoveDescription,
+ [MOVE_SPITE - 1] = sSpiteMoveDescription,
+ [MOVE_POWDER_SNOW - 1] = sPowderSnowMoveDescription,
+ [MOVE_PROTECT - 1] = sProtectMoveDescription,
+ [MOVE_MACH_PUNCH - 1] = sMachPunchMoveDescription,
+ [MOVE_SCARY_FACE - 1] = sScaryFaceMoveDescription,
+ [MOVE_FAINT_ATTACK - 1] = sFaintAttackMoveDescription,
+ [MOVE_SWEET_KISS - 1] = sSweetKissMoveDescription,
+ [MOVE_BELLY_DRUM - 1] = sBellyDrumMoveDescription,
+ [MOVE_SLUDGE_BOMB - 1] = sSludgeBombMoveDescription,
+ [MOVE_MUD_SLAP - 1] = sMudSlapMoveDescription,
+ [MOVE_OCTAZOOKA - 1] = sOctazookaMoveDescription,
+ [MOVE_SPIKES - 1] = sSpikesMoveDescription,
+ [MOVE_ZAP_CANNON - 1] = sZapCannonMoveDescription,
+ [MOVE_FORESIGHT - 1] = sForesightMoveDescription,
+ [MOVE_DESTINY_BOND - 1] = sDestinyBondMoveDescription,
+ [MOVE_PERISH_SONG - 1] = sPerishSongMoveDescription,
+ [MOVE_ICY_WIND - 1] = sIcyWindMoveDescription,
+ [MOVE_DETECT - 1] = sDetectMoveDescription,
+ [MOVE_BONE_RUSH - 1] = sBoneRushMoveDescription,
+ [MOVE_LOCK_ON - 1] = sLockOnMoveDescription,
+ [MOVE_OUTRAGE - 1] = sOutrageMoveDescription,
+ [MOVE_SANDSTORM - 1] = sSandstormMoveDescription,
+ [MOVE_GIGA_DRAIN - 1] = sGigaDrainMoveDescription,
+ [MOVE_ENDURE - 1] = sEndureMoveDescription,
+ [MOVE_CHARM - 1] = sCharmMoveDescription,
+ [MOVE_ROLLOUT - 1] = sRolloutMoveDescription,
+ [MOVE_FALSE_SWIPE - 1] = sFalseSwipeMoveDescription,
+ [MOVE_SWAGGER - 1] = sSwaggerMoveDescription,
+ [MOVE_MILK_DRINK - 1] = sMilkDrinkMoveDescription,
+ [MOVE_SPARK - 1] = sSparkMoveDescription,
+ [MOVE_FURY_CUTTER - 1] = sFuryCutterMoveDescription,
+ [MOVE_STEEL_WING - 1] = sSteelWingMoveDescription,
+ [MOVE_MEAN_LOOK - 1] = sMeanLookMoveDescription,
+ [MOVE_ATTRACT - 1] = sAttractMoveDescription,
+ [MOVE_SLEEP_TALK - 1] = sSleepTalkMoveDescription,
+ [MOVE_HEAL_BELL - 1] = sHealBellMoveDescription,
+ [MOVE_RETURN - 1] = sReturnMoveDescription,
+ [MOVE_PRESENT - 1] = sPresentMoveDescription,
+ [MOVE_FRUSTRATION - 1] = sFrustrationMoveDescription,
+ [MOVE_SAFEGUARD - 1] = sSafeguardMoveDescription,
+ [MOVE_PAIN_SPLIT - 1] = sPainSplitMoveDescription,
+ [MOVE_SACRED_FIRE - 1] = sSacredFireMoveDescription,
+ [MOVE_MAGNITUDE - 1] = sMagnitudeMoveDescription,
+ [MOVE_DYNAMIC_PUNCH - 1] = sDynamicPunchMoveDescription,
+ [MOVE_MEGAHORN - 1] = sMegahornMoveDescription,
+ [MOVE_DRAGON_BREATH - 1] = sDragonBreathMoveDescription,
+ [MOVE_BATON_PASS - 1] = sBatonPassMoveDescription,
+ [MOVE_ENCORE - 1] = sEncoreMoveDescription,
+ [MOVE_PURSUIT - 1] = sPursuitMoveDescription,
+ [MOVE_RAPID_SPIN - 1] = sRapidSpinMoveDescription,
+ [MOVE_SWEET_SCENT - 1] = sSweetScentMoveDescription,
+ [MOVE_IRON_TAIL - 1] = sIronTailMoveDescription,
+ [MOVE_METAL_CLAW - 1] = sMetalClawMoveDescription,
+ [MOVE_VITAL_THROW - 1] = sVitalThrowMoveDescription,
+ [MOVE_MORNING_SUN - 1] = sMorningSunMoveDescription,
+ [MOVE_SYNTHESIS - 1] = sSynthesisMoveDescription,
+ [MOVE_MOONLIGHT - 1] = sMoonlightMoveDescription,
+ [MOVE_HIDDEN_POWER - 1] = sHiddenPowerMoveDescription,
+ [MOVE_CROSS_CHOP - 1] = sCrossChopMoveDescription,
+ [MOVE_TWISTER - 1] = sTwisterMoveDescription,
+ [MOVE_RAIN_DANCE - 1] = sRainDanceMoveDescription,
+ [MOVE_SUNNY_DAY - 1] = sSunnyDayMoveDescription,
+ [MOVE_CRUNCH - 1] = sCrunchMoveDescription,
+ [MOVE_MIRROR_COAT - 1] = sMirrorCoatMoveDescription,
+ [MOVE_PSYCH_UP - 1] = sPsychUpMoveDescription,
+ [MOVE_EXTREME_SPEED - 1] = sExtremeSpeedMoveDescription,
+ [MOVE_ANCIENT_POWER - 1] = sAncientPowerMoveDescription,
+ [MOVE_SHADOW_BALL - 1] = sShadowBallMoveDescription,
+ [MOVE_FUTURE_SIGHT - 1] = sFutureSightMoveDescription,
+ [MOVE_ROCK_SMASH - 1] = sRockSmashMoveDescription,
+ [MOVE_WHIRLPOOL - 1] = sWhirlpoolMoveDescription,
+ [MOVE_BEAT_UP - 1] = sBeatUpMoveDescription,
+ [MOVE_FAKE_OUT - 1] = sFakeOutMoveDescription,
+ [MOVE_UPROAR - 1] = sUproarMoveDescription,
+ [MOVE_STOCKPILE - 1] = sStockpileMoveDescription,
+ [MOVE_SPIT_UP - 1] = sSpitUpMoveDescription,
+ [MOVE_SWALLOW - 1] = sSwallowMoveDescription,
+ [MOVE_HEAT_WAVE - 1] = sHeatWaveMoveDescription,
+ [MOVE_HAIL - 1] = sHailMoveDescription,
+ [MOVE_TORMENT - 1] = sTormentMoveDescription,
+ [MOVE_FLATTER - 1] = sFlatterMoveDescription,
+ [MOVE_WILL_O_WISP - 1] = sWillOWispMoveDescription,
+ [MOVE_MEMENTO - 1] = sMementoMoveDescription,
+ [MOVE_FACADE - 1] = sFacadeMoveDescription,
+ [MOVE_FOCUS_PUNCH - 1] = sFocusPunchMoveDescription,
+ [MOVE_SMELLING_SALT - 1] = sSmellingSaltMoveDescription,
+ [MOVE_FOLLOW_ME - 1] = sFollowMeMoveDescription,
+ [MOVE_NATURE_POWER - 1] = sNaturePowerMoveDescription,
+ [MOVE_CHARGE - 1] = sChargeMoveDescription,
+ [MOVE_TAUNT - 1] = sTauntMoveDescription,
+ [MOVE_HELPING_HAND - 1] = sHelpingHandMoveDescription,
+ [MOVE_TRICK - 1] = sTrickMoveDescription,
+ [MOVE_ROLE_PLAY - 1] = sRolePlayMoveDescription,
+ [MOVE_WISH - 1] = sWishMoveDescription,
+ [MOVE_ASSIST - 1] = sAssistMoveDescription,
+ [MOVE_INGRAIN - 1] = sIngrainMoveDescription,
+ [MOVE_SUPERPOWER - 1] = sSuperpowerMoveDescription,
+ [MOVE_MAGIC_COAT - 1] = sMagicCoatMoveDescription,
+ [MOVE_RECYCLE - 1] = sRecycleMoveDescription,
+ [MOVE_REVENGE - 1] = sRevengeMoveDescription,
+ [MOVE_BRICK_BREAK - 1] = sBrickBreakMoveDescription,
+ [MOVE_YAWN - 1] = sYawnMoveDescription,
+ [MOVE_KNOCK_OFF - 1] = sKnockOffMoveDescription,
+ [MOVE_ENDEAVOR - 1] = sEndeavorMoveDescription,
+ [MOVE_ERUPTION - 1] = sEruptionMoveDescription,
+ [MOVE_SKILL_SWAP - 1] = sSkillSwapMoveDescription,
+ [MOVE_IMPRISON - 1] = sImprisonMoveDescription,
+ [MOVE_REFRESH - 1] = sRefreshMoveDescription,
+ [MOVE_GRUDGE - 1] = sGrudgeMoveDescription,
+ [MOVE_SNATCH - 1] = sSnatchMoveDescription,
+ [MOVE_SECRET_POWER - 1] = sSecretPowerMoveDescription,
+ [MOVE_DIVE - 1] = sDiveMoveDescription,
+ [MOVE_ARM_THRUST - 1] = sArmThrustMoveDescription,
+ [MOVE_CAMOUFLAGE - 1] = sCamouflageMoveDescription,
+ [MOVE_TAIL_GLOW - 1] = sTailGlowMoveDescription,
+ [MOVE_LUSTER_PURGE - 1] = sLusterPurgeMoveDescription,
+ [MOVE_MIST_BALL - 1] = sMistBallMoveDescription,
+ [MOVE_FEATHER_DANCE - 1] = sFeatherDanceMoveDescription,
+ [MOVE_TEETER_DANCE - 1] = sTeeterDanceMoveDescription,
+ [MOVE_BLAZE_KICK - 1] = sBlazeKickMoveDescription,
+ [MOVE_MUD_SPORT - 1] = sMudSportMoveDescription,
+ [MOVE_ICE_BALL - 1] = sIceBallMoveDescription,
+ [MOVE_NEEDLE_ARM - 1] = sNeedleArmMoveDescription,
+ [MOVE_SLACK_OFF - 1] = sSlackOffMoveDescription,
+ [MOVE_HYPER_VOICE - 1] = sHyperVoiceMoveDescription,
+ [MOVE_POISON_FANG - 1] = sPoisonFangMoveDescription,
+ [MOVE_CRUSH_CLAW - 1] = sCrushClawMoveDescription,
+ [MOVE_BLAST_BURN - 1] = sBlastBurnMoveDescription,
+ [MOVE_HYDRO_CANNON - 1] = sHydroCannonMoveDescription,
+ [MOVE_METEOR_MASH - 1] = sMeteorMashMoveDescription,
+ [MOVE_ASTONISH - 1] = sAstonishMoveDescription,
+ [MOVE_WEATHER_BALL - 1] = sWeatherBallMoveDescription,
+ [MOVE_AROMATHERAPY - 1] = sAromatherapyMoveDescription,
+ [MOVE_FAKE_TEARS - 1] = sFakeTearsMoveDescription,
+ [MOVE_AIR_CUTTER - 1] = sAirCutterMoveDescription,
+ [MOVE_OVERHEAT - 1] = sOverheatMoveDescription,
+ [MOVE_ODOR_SLEUTH - 1] = sOdorSleuthMoveDescription,
+ [MOVE_ROCK_TOMB - 1] = sRockTombMoveDescription,
+ [MOVE_SILVER_WIND - 1] = sSilverWindMoveDescription,
+ [MOVE_METAL_SOUND - 1] = sMetalSoundMoveDescription,
+ [MOVE_GRASS_WHISTLE - 1] = sGrassWhistleMoveDescription,
+ [MOVE_TICKLE - 1] = sTickleMoveDescription,
+ [MOVE_COSMIC_POWER - 1] = sCosmicPowerMoveDescription,
+ [MOVE_WATER_SPOUT - 1] = sWaterSpoutMoveDescription,
+ [MOVE_SIGNAL_BEAM - 1] = sSignalBeamMoveDescription,
+ [MOVE_SHADOW_PUNCH - 1] = sShadowPunchMoveDescription,
+ [MOVE_EXTRASENSORY - 1] = sExtrasensoryMoveDescription,
+ [MOVE_SKY_UPPERCUT - 1] = sSkyUppercutMoveDescription,
+ [MOVE_SAND_TOMB - 1] = sSandTombMoveDescription,
+ [MOVE_SHEER_COLD - 1] = sSheerColdMoveDescription,
+ [MOVE_MUDDY_WATER - 1] = sMuddyWaterMoveDescription,
+ [MOVE_BULLET_SEED - 1] = sBulletSeedMoveDescription,
+ [MOVE_AERIAL_ACE - 1] = sAerialAceMoveDescription,
+ [MOVE_ICICLE_SPEAR - 1] = sIcicleSpearMoveDescription,
+ [MOVE_IRON_DEFENSE - 1] = sIronDefenseMoveDescription,
+ [MOVE_BLOCK - 1] = sBlockMoveDescription,
+ [MOVE_HOWL - 1] = sHowlMoveDescription,
+ [MOVE_DRAGON_CLAW - 1] = sDragonClawMoveDescription,
+ [MOVE_FRENZY_PLANT - 1] = sFrenzyPlantMoveDescription,
+ [MOVE_BULK_UP - 1] = sBulkUpMoveDescription,
+ [MOVE_BOUNCE - 1] = sBounceMoveDescription,
+ [MOVE_MUD_SHOT - 1] = sMudShotMoveDescription,
+ [MOVE_POISON_TAIL - 1] = sPoisonTailMoveDescription,
+ [MOVE_COVET - 1] = sCovetMoveDescription,
+ [MOVE_VOLT_TACKLE - 1] = sVoltTackleMoveDescription,
+ [MOVE_MAGICAL_LEAF - 1] = sMagicalLeafMoveDescription,
+ [MOVE_WATER_SPORT - 1] = sWaterSportMoveDescription,
+ [MOVE_CALM_MIND - 1] = sCalmMindMoveDescription,
+ [MOVE_LEAF_BLADE - 1] = sLeafBladeMoveDescription,
+ [MOVE_DRAGON_DANCE - 1] = sDragonDanceMoveDescription,
+ [MOVE_ROCK_BLAST - 1] = sRockBlastMoveDescription,
+ [MOVE_SHOCK_WAVE - 1] = sShockWaveMoveDescription,
+ [MOVE_WATER_PULSE - 1] = sWaterPulseMoveDescription,
+ [MOVE_DOOM_DESIRE - 1] = sDoomDesireMoveDescription,
+ [MOVE_PSYCHO_BOOST - 1] = sPsychoBoostMoveDescription,
+};
diff --git a/src/data/text/move_names.h b/src/data/text/move_names.h
index 3df7c886b..9f540f1d6 100644
--- a/src/data/text/move_names.h
+++ b/src/data/text/move_names.h
@@ -1,4 +1,5 @@
-const u8 gMoveNames[][13] = {
+const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] =
+{
[MOVE_NONE] = _("-"),
[MOVE_POUND] = _("POUND"),
[MOVE_KARATE_CHOP] = _("KARATE CHOP"),
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
new file mode 100644
index 000000000..6ab721643
--- /dev/null
+++ b/src/field_player_avatar.c
@@ -0,0 +1,581 @@
+#include "global.h"
+#include "global.fieldmap.h"
+#include "sprite.h"
+#include "event_object_movement.h"
+#include "bike.h"
+#include "metatile_behavior.h"
+#include "metatile_behaviors.h"
+#include "constants/flags.h"
+#include "event_data.h"
+#include "fieldmap.h"
+#include "overworld.h"
+#include "rotating_gate.h"
+#include "constants/event_object_movement_constants.h"
+#include "field_player_avatar.h"
+
+extern void task_add_bump_boulder(u8, u8);
+static bool8 ShouldJumpLedge(s16, s16, u8);
+static bool8 sub_808B1BC(s16, s16, u8);
+static u8 sub_808B164(struct EventObject *, s16, s16, u8, u8);
+static u8 sub_808B238(s16, s16, u8);
+static void check_acro_bike_metatile(s16, s16, u8, u8 *);
+extern void PlayerNotOnBikeCollide(u8);
+extern void PlayerNotOnBikeCollideWithFarawayIslandMew(u8);
+extern void PlayerRun(u8);
+static void MovePlayerNotOnBike(u8, u16);
+static u8 CheckMovementInputNotOnBike(u8);
+extern void sub_808C5B0(void);
+extern void sub_808C4D8(void);
+static u8 CheckForPlayerAvatarCollision(u8);
+static u8 EventObjectCB2_NoMovement2();
+extern void sub_808C280(struct EventObject *);
+static bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *, u8);
+void npc_clear_strange_bits(struct EventObject *);
+extern void DoPlayerAvatarTransition(void);
+static bool8 TryDoMetatileBehaviorForcedMovement();
+static void MovePlayerAvatarUsingKeypadInput(u8, u16, u16);
+static void PlayerAllowForcedMovementIfMovingSameDirection();
+static u8 sub_808B028(u8);
+static u8 GetForcedMovementByMetatileBehavior();
+static void PlayerNotOnBikeNotMoving(u8, u16);
+static void PlayerNotOnBikeTurningInPlace(u8, u16);
+static void PlayerNotOnBikeMoving(u8, u16);
+extern void sub_808C750(u8);
+
+static bool8 (*const gUnknown_084973FC[])(u8) =
+{
+ MetatileBehavior_IsTrickHouseSlipperyFloor,
+ MetatileBehavior_IsIce_2,
+ MetatileBehavior_IsWalkSouth,
+ MetatileBehavior_IsWalkNorth,
+ MetatileBehavior_IsWalkWest,
+ MetatileBehavior_IsWalkEast,
+ MetatileBehavior_IsSouthwardCurrent,
+ MetatileBehavior_IsNorthwardCurrent,
+ MetatileBehavior_IsWestwardCurrent,
+ MetatileBehavior_IsEastwardCurrent,
+ MetatileBehavior_IsSlideSouth,
+ MetatileBehavior_IsSlideNorth,
+ MetatileBehavior_IsSlideWest,
+ MetatileBehavior_IsSlideEast,
+ MetatileBehavior_IsWaterfall,
+ MetatileBehavior_IsSecretBaseJumpMat,
+ MetatileBehavior_IsSecretBaseSpinMat,
+ MetatileBehavior_IsMuddySlope,
+};
+
+static bool8 (*const gUnknown_08497444[])(void) =
+{
+ ForcedMovement_None,
+ ForcedMovement_Slip,
+ ForcedMovement_Slip,
+ ForcedMovement_WalkSouth,
+ ForcedMovement_WalkNorth,
+ ForcedMovement_WalkWest,
+ ForcedMovement_WalkEast,
+ ForcedMovement_PushedSouthByCurrent,
+ ForcedMovement_PushedNorthByCurrent,
+ ForcedMovement_PushedWestByCurrent,
+ ForcedMovement_PushedEastByCurrent,
+ ForcedMovement_SlideSouth,
+ ForcedMovement_SlideNorth,
+ ForcedMovement_SlideWest,
+ ForcedMovement_SlideEast,
+ ForcedMovement_PushedSouthByCurrent,
+ ForcedMovement_0xBB,
+ ForcedMovement_0xBC,
+ ForcedMovement_MuddySlope,
+};
+
+static void (*const gUnknown_08497490[])(u8, u16) =
+{
+ PlayerNotOnBikeNotMoving,
+ PlayerNotOnBikeTurningInPlace,
+ PlayerNotOnBikeMoving,
+};
+
+static bool8 (*const gUnknown_0849749C[])(u8) =
+{
+ MetatileBehavior_IsBumpySlope,
+ MetatileBehavior_IsIsolatedVerticalRail,
+ MetatileBehavior_IsIsolatedHorizontalRail,
+ MetatileBehavior_IsVerticalRail,
+ MetatileBehavior_IsHorizontalRail,
+};
+
+static const u8 gUnknown_084974B0[] = {9, 10, 11, 12, 13, 0, 0, 0};
+
+void MovementType_Player(struct Sprite *sprite)
+{
+ UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, EventObjectCB2_NoMovement2);
+}
+
+static u8 EventObjectCB2_NoMovement2()
+{
+ return 0;
+}
+
+void player_step(u8 direction, u16 newKeys, u16 heldKeys)
+{
+ struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId];
+
+ sub_808C280(playerEventObj);
+ if (gPlayerAvatar.preventStep == FALSE)
+ {
+ Bike_TryAcroBikeHistoryUpdate(newKeys, heldKeys);
+ if (TryInterruptEventObjectSpecialAnim(playerEventObj, direction) == 0)
+ {
+ npc_clear_strange_bits(playerEventObj);
+ DoPlayerAvatarTransition();
+ if (TryDoMetatileBehaviorForcedMovement() == 0)
+ {
+ MovePlayerAvatarUsingKeypadInput(direction, newKeys, heldKeys);
+ PlayerAllowForcedMovementIfMovingSameDirection();
+ }
+ }
+ }
+}
+
+static bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 direction)
+{
+ #ifdef NONMATCHING
+ u8 r5 = direction;
+ u8 r6 = direction;
+ #else
+ u8 r5 = direction;
+ register u8 r6 asm("r6") = direction;
+ #endif
+ //a very bad HACK
+
+ if (EventObjectIsMovementOverridden(playerEventObj)
+ && !EventObjectClearHeldMovementIfFinished(playerEventObj))
+ {
+ u8 heldMovementActionId = EventObjectGetHeldMovementActionId(playerEventObj);
+ if (heldMovementActionId > MOVEMENT_ACTION_WALK_FAST_RIGHT && heldMovementActionId < MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN)
+ {
+ if (direction == DIR_NONE)
+ {
+ return TRUE;
+ }
+
+ if (playerEventObj->movementDirection != r5)
+ {
+ EventObjectClearHeldMovement(playerEventObj);
+ return FALSE;
+ }
+
+ if (!sub_808B028(r6))
+ {
+ EventObjectClearHeldMovement(playerEventObj);
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void npc_clear_strange_bits(struct EventObject *eventObj)
+{
+ eventObj->inanimate = 0;
+ eventObj->disableAnim = 0;
+ eventObj->facingDirectionLocked = 0;
+ gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_DASH;
+}
+
+static void MovePlayerAvatarUsingKeypadInput(u8 direction, u16 newKeys, u16 heldKeys)
+{
+ if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE)
+ || (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE))
+ MovePlayerOnBike(direction, newKeys, heldKeys);
+ else
+ MovePlayerNotOnBike(direction, heldKeys);
+}
+
+static void PlayerAllowForcedMovementIfMovingSameDirection(void)
+{
+ if (gPlayerAvatar.runningState == MOVING)
+ gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5;
+}
+
+static bool8 TryDoMetatileBehaviorForcedMovement()
+{
+ return gUnknown_08497444[GetForcedMovementByMetatileBehavior()]();
+}
+
+static u8 GetForcedMovementByMetatileBehavior(void)
+{
+ u8 i;
+
+ if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_5))
+ {
+ u8 metatileBehavior = gEventObjects[gPlayerAvatar.eventObjectId].currentMetatileBehavior;
+
+ for (i = 0; i < 18; i++)
+ {
+ if (gUnknown_084973FC[i](metatileBehavior))
+ return i + 1;
+ }
+ }
+ return 0;
+}
+
+bool8 ForcedMovement_None(void)
+{
+ if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6)
+ {
+ struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId];
+
+ playerEventObj->facingDirectionLocked = 0;
+ playerEventObj->enableAnim = 1;
+ SetEventObjectDirection(playerEventObj, playerEventObj->facingDirection);
+ gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_6;
+ }
+ return FALSE;
+}
+
+static u8 DoForcedMovement(u8 direction, void (*b)(u8))
+{
+ struct PlayerAvatar *playerAvatar = &gPlayerAvatar;
+ u8 collisionType = CheckForPlayerAvatarCollision(direction);
+
+ playerAvatar->flags |= PLAYER_AVATAR_FLAG_6;
+ if (collisionType != 0)
+ {
+ ForcedMovement_None();
+ if (collisionType <= 4)
+ {
+ return 0;
+ }
+ else
+ {
+ if (collisionType == COLLISION_LEDGE_JUMP)
+ PlayerJumpLedge(direction);
+ playerAvatar->flags |= PLAYER_AVATAR_FLAG_6;
+ playerAvatar->runningState = MOVING;
+ return 1;
+ }
+ }
+ else
+ {
+ playerAvatar->runningState = MOVING;
+ b(direction);
+ return 1;
+ }
+}
+
+u8 DoForcedMovementInCurrentDirection(void (*a)(u8))
+{
+ struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId];
+
+ playerEventObj->disableAnim = 1;
+ return DoForcedMovement(playerEventObj->movementDirection, a);
+}
+
+bool8 ForcedMovement_Slip(void)
+{
+ return DoForcedMovementInCurrentDirection(PlayerGoSpeed2);
+}
+
+bool8 ForcedMovement_WalkSouth(void)
+{
+ return DoForcedMovement(DIR_SOUTH, PlayerGoSpeed1);
+}
+
+bool8 ForcedMovement_WalkNorth(void)
+{
+ return DoForcedMovement(DIR_NORTH, PlayerGoSpeed1);
+}
+
+bool8 ForcedMovement_WalkWest(void)
+{
+ return DoForcedMovement(DIR_WEST, PlayerGoSpeed1);
+}
+
+bool8 ForcedMovement_WalkEast(void)
+{
+ return DoForcedMovement(DIR_EAST, PlayerGoSpeed1);
+}
+
+bool8 ForcedMovement_PushedSouthByCurrent(void)
+{
+ return DoForcedMovement(DIR_SOUTH, PlayerGoSpeed3);
+}
+
+bool8 ForcedMovement_PushedNorthByCurrent(void)
+{
+ return DoForcedMovement(DIR_NORTH, PlayerGoSpeed3);
+}
+
+bool8 ForcedMovement_PushedWestByCurrent(void)
+{
+ return DoForcedMovement(DIR_WEST, PlayerGoSpeed3);
+}
+
+bool8 ForcedMovement_PushedEastByCurrent(void)
+{
+ return DoForcedMovement(DIR_EAST, PlayerGoSpeed3);
+}
+
+u8 ForcedMovement_Slide(u8 direction, void (*b)(u8))
+{
+ struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId];
+
+ playerEventObj->disableAnim = 1;
+ playerEventObj->facingDirectionLocked = 1;
+ return DoForcedMovement(direction, b);
+}
+
+bool8 ForcedMovement_SlideSouth(void)
+{
+ return ForcedMovement_Slide(DIR_SOUTH, PlayerGoSpeed2);
+}
+
+bool8 ForcedMovement_SlideNorth(void)
+{
+ return ForcedMovement_Slide(DIR_NORTH, PlayerGoSpeed2);
+}
+
+bool8 ForcedMovement_SlideWest(void)
+{
+ return ForcedMovement_Slide(DIR_WEST, PlayerGoSpeed2);
+}
+
+bool8 ForcedMovement_SlideEast(void)
+{
+ return ForcedMovement_Slide(DIR_EAST, PlayerGoSpeed2);
+}
+
+bool8 ForcedMovement_0xBB(void)
+{
+ sub_808C4D8();
+ return TRUE;
+}
+
+bool8 ForcedMovement_0xBC(void)
+{
+ sub_808C5B0();
+ return TRUE;
+}
+
+bool8 ForcedMovement_MuddySlope(void)
+{
+ struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId];
+
+ if (playerEventObj->movementDirection != DIR_NORTH || GetPlayerSpeed() <= 3)
+ {
+ Bike_UpdateBikeCounterSpeed(0);
+ playerEventObj->facingDirectionLocked = 1;
+ return DoForcedMovement(1, PlayerGoSpeed2);
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+static void MovePlayerNotOnBike(u8 direction, u16 heldKeys)
+{
+ gUnknown_08497490[CheckMovementInputNotOnBike(direction)](direction, heldKeys);
+}
+
+static u8 CheckMovementInputNotOnBike(u8 direction)
+{
+ if (direction == DIR_NONE)
+ {
+ gPlayerAvatar.runningState = NOT_MOVING;
+ return 0;
+ }
+ else if (direction != GetPlayerMovementDirection() && gPlayerAvatar.runningState != MOVING)
+ {
+ gPlayerAvatar.runningState = TURN_DIRECTION;
+ return 1;
+ }
+ else
+ {
+ gPlayerAvatar.runningState = MOVING;
+ return 2;
+ }
+}
+
+static void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys)
+{
+ PlayerFaceDirection(GetPlayerFacingDirection());
+}
+
+static void PlayerNotOnBikeTurningInPlace(u8 direction, u16 heldKeys)
+{
+ PlayerTurnInPlace(direction);
+}
+
+static void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys)
+{
+ u8 r0 = CheckForPlayerAvatarCollision(direction);
+
+ if (r0 != 0)
+ {
+ if (r0 == 6)
+ {
+ PlayerJumpLedge(direction);
+ return;
+ }
+ else if (r0 == 4 && IsPlayerCollidingWithFarawayIslandMew(direction) != 0)
+ {
+ PlayerNotOnBikeCollideWithFarawayIslandMew(direction);
+ return;
+ }
+ else
+ {
+ u8 r4 = r0 - 5;
+
+ if (r4 > 3)
+ {
+ PlayerNotOnBikeCollide(direction);
+ return;
+ }
+ else
+ {
+ return;
+ }
+ }
+ }
+
+ if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
+ {
+ // speed 2 is fast, same speed as running
+ PlayerGoSpeed2(direction);
+ return;
+ }
+
+ if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_4) && (heldKeys & B_BUTTON) && FlagGet(FLAG_SYS_B_DASH)
+ && IsRunningDisallowed(gEventObjects[gPlayerAvatar.eventObjectId].currentMetatileBehavior) == 0)
+ {
+ PlayerRun(direction);
+ gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_DASH;
+ return;
+ }
+ else
+ {
+ PlayerGoSpeed1(direction);
+ }
+}
+
+static u8 CheckForPlayerAvatarCollision(u8 direction)
+{
+ s16 x, y;
+ struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId];
+
+ x = playerEventObj->currentCoords.x;
+ y = playerEventObj->currentCoords.y;
+ MoveCoords(direction, &x, &y);
+ return CheckForEventObjectCollision(playerEventObj, x, y, direction, MapGridGetMetatileBehaviorAt(x, y));
+}
+
+static u8 sub_808B028(u8 direction)
+{
+ s16 x, y;
+ struct EventObject *playerEventObj = &gEventObjects[gPlayerAvatar.eventObjectId];
+
+ x = playerEventObj->currentCoords.x;
+ y = playerEventObj->currentCoords.y;
+ MoveCoords(direction, &x, &y);
+ return sub_808B164(playerEventObj, x, y, direction, MapGridGetMetatileBehaviorAt(x, y));
+}
+
+u8 CheckForEventObjectCollision(struct EventObject *a, s16 x, s16 y, u8 direction, u8 e)
+{
+ u8 collision;
+
+ collision = GetCollisionAtCoords(a, x, y, direction);
+ if (collision == 3 && sub_808B1BC(x, y, direction))
+ return 5;
+ if (ShouldJumpLedge(x, y, direction))
+ {
+ IncrementGameStat(GAME_STAT_JUMPED_DOWN_LEDGES);
+ return COLLISION_LEDGE_JUMP;
+ }
+ if (collision == 4 && sub_808B238(x, y, direction))
+ return 7;
+
+ if (collision == 0)
+ {
+ if (CheckForRotatingGatePuzzleCollision(direction, x, y))
+ return 8;
+ check_acro_bike_metatile(x, y, e, &collision);
+ }
+ return collision;
+}
+
+static u8 sub_808B164(struct EventObject *a, s16 x, s16 y, u8 direction, u8 e)
+{
+ u8 collision = GetCollisionAtCoords(a, x, y, direction);
+
+ if (collision == 0)
+ {
+ if (CheckForRotatingGatePuzzleCollisionWithoutAnimation(direction, x, y) != 0)
+ return 8;
+ check_acro_bike_metatile(x, y, e, &collision);
+ }
+ return collision;
+}
+
+static bool8 sub_808B1BC(s16 x, s16 y, u8 direction)
+{
+ if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
+ && MapGridGetZCoordAt(x, y) == 3
+ && GetEventObjectIdByXYZ(x, y, 3) == 16)
+ {
+ sub_808C750(direction);
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+static bool8 ShouldJumpLedge(s16 x, s16 y, u8 z)
+{
+ if (GetLedgeJumpDirection(x, y, z) != 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static u8 sub_808B238(s16 x, s16 y, u8 direction)
+{
+ if (FlagGet(FLAG_SYS_USE_STRENGTH))
+ {
+ u8 eventObjectId = GetEventObjectIdByXY(x, y);
+
+ if (eventObjectId != 16 && gEventObjects[eventObjectId].graphicsId == 0x57)
+ {
+ x = gEventObjects[eventObjectId].currentCoords.x;
+ y = gEventObjects[eventObjectId].currentCoords.y;
+ MoveCoords(direction, &x, &y);
+ if (GetCollisionAtCoords(&gEventObjects[eventObjectId], x, y, direction) == 0
+ && MetatileBehavior_IsNonAnimDoor(MapGridGetMetatileBehaviorAt(x, y)) == 0)
+ {
+ task_add_bump_boulder(eventObjectId, direction);
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
+static void check_acro_bike_metatile(s16 unused1, s16 unused2, u8 c, u8 *d)
+{
+ u8 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ if (gUnknown_0849749C[i](c))
+ {
+ *d = gUnknown_084974B0[i];
+ return;
+ }
+ }
+}
diff --git a/src/field_region_map.c b/src/field_region_map.c
index 34b6089df..f56548068 100644
--- a/src/field_region_map.c
+++ b/src/field_region_map.c
@@ -63,7 +63,7 @@ static const struct WindowTemplate gUnknown_085E5070[] = {
// .text
-void sub_817018C(MainCallback callback)
+void FieldInitRegionMap(MainCallback callback)
{
SetVBlankCallback(NULL);
sFieldRegionMapHandler = malloc(sizeof(*sFieldRegionMapHandler));
diff --git a/src/field_special_scene.c b/src/field_special_scene.c
index 39977808f..6f33b2c9b 100644
--- a/src/field_special_scene.c
+++ b/src/field_special_scene.c
@@ -272,7 +272,7 @@ bool8 sub_80FB59C(void)
void Task_HandlePorthole(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- u16 *var = GetVarPointer(VAR_PORTHOLE);
+ u16 *var = GetVarPointer(VAR_PORTHOLE_STATE);
struct WarpData *location = &gSaveBlock1Ptr->location;
switch (data[0])
diff --git a/src/field_specials.c b/src/field_specials.c
new file mode 100644
index 000000000..897bcc8d7
--- /dev/null
+++ b/src/field_specials.c
@@ -0,0 +1,4329 @@
+#include "global.h"
+#include "main.h"
+#include "battle.h"
+#include "battle_tower.h"
+#include "cable_club.h"
+#include "data2.h"
+#include "decoration.h"
+#include "diploma.h"
+#include "event_data.h"
+#include "event_object_movement.h"
+#include "fieldmap.h"
+#include "field_camera.h"
+#include "field_effect.h"
+#include "field_message_box.h"
+#include "field_player_avatar.h"
+#include "field_region_map.h"
+#include "field_screen.h"
+#include "field_specials.h"
+#include "field_weather.h"
+#include "international_string_util.h"
+#include "item_icon.h"
+#include "link.h"
+#include "list_menu.h"
+#include "malloc.h"
+#include "match_call.h"
+#include "menu.h"
+#include "overworld.h"
+#include "party_menu.h"
+#include "pokeblock.h"
+#include "pokemon.h"
+#include "pokemon_storage_system.h"
+#include "random.h"
+#include "rayquaza_scene.h"
+#include "region_map.h"
+#include "rom_8011DC0.h"
+#include "rtc.h"
+#include "script.h"
+#include "script_menu.h"
+#include "sound.h"
+#include "starter_choose.h"
+#include "string_util.h"
+#include "strings.h"
+#include "task.h"
+#include "text.h"
+#include "tv.h"
+#include "wallclock.h"
+#include "window.h"
+#include "constants/event_objects.h"
+#include "constants/items.h"
+#include "constants/maps.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "constants/moves.h"
+#include "constants/vars.h"
+
+EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE;
+EWRAM_DATA u8 gBikeCollisions = 0;
+EWRAM_DATA u32 gBikeCyclingTimer = 0;
+EWRAM_DATA u8 gUnknown_0203AB5C = 0;
+EWRAM_DATA u8 gUnknown_0203AB5D = 0;
+EWRAM_DATA u8 gUnknown_0203AB5E = 0;
+EWRAM_DATA u16 gUnknown_0203AB60 = 0;
+EWRAM_DATA u16 gUnknown_0203AB62 = 0;
+EWRAM_DATA struct ListMenuItem *gUnknown_0203AB64 = NULL;
+EWRAM_DATA u16 gUnknown_0203AB68 = 0;
+EWRAM_DATA u16 gUnknown_0203AB6A = 0;
+EWRAM_DATA u8 gUnknown_0203AB6C = 0;
+EWRAM_DATA u8 gUnknown_0203AB6D = 0;
+EWRAM_DATA u8 gUnknown_0203AB6E = 0;
+EWRAM_DATA u8 gUnknown_0203AB6F = 0;
+EWRAM_DATA u32 gUnknown_0203AB70 = 0;
+
+struct ListMenuTemplate gUnknown_030061D0;
+
+extern const u16 gEventObjectPalette8[];
+extern const u16 gEventObjectPalette17[];
+extern const u16 gEventObjectPalette33[];
+extern const u16 gEventObjectPalette34[];
+
+extern void LoadPalette(const void *src, u32 offset, u16 size); // incorrect signature, needed to match
+extern void BlendPalettes(u32, u8, u16);
+
+void UpdateMovedLilycoveFanClubMembers(void);
+void sub_813BF60(void);
+u16 GetNumMovedLilycoveFanClubMembers(void);
+
+static void RecordCyclingRoadResults(u32, u8);
+static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEventId, u8 paletteNum);
+static void Task_PetalburgGym(u8);
+static void PetalburgGymFunc(u8, u16);
+static void Task_PCTurnOnEffect(u8);
+static void PCTurnOnEffect_0(struct Task *);
+static void PCTurnOnEffect_1(s16, s8, s8);
+static void PCTurnOffEffect(void);
+static void Task_LotteryCornerComputerEffect(u8);
+static void LotteryCornerComputerEffect(struct Task *);
+static void sub_81395BC(u8 taskId);
+static void sub_8139620(u8 taskId);
+static void sub_8139AF4(u8 taskId);
+static void sub_8139C2C(u16 a1, u8 a2);
+static void sub_8139C80(u8 taskId);
+static void sub_813A2DC(u8 taskId);
+static void sub_813AA60(u16 a0, u16 a1);
+static void sub_813ACE8(u8 a0, u16 a1);
+static void sub_813A42C(void);
+static void sub_813A4EC(u8 taskId);
+static void sub_813A694(u8 taskId);
+static void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list);
+static void sub_813AC44(u16 a0, u16 a1);
+static void sub_813AD34(u8 a0, u16 a1);
+static void sub_813A570(u8 taskId);
+static void sub_813A738(u8 taskId);
+static void sub_813A600(u8 taskId);
+static void sub_813A664(u8 taskId);
+static void sub_813ABD4(u16 a0);
+static void task_deoxys_sound(u8 taskId);
+static void sub_813B0B4(u8 a0);
+static void sub_813B160(u8 taskId);
+static void sub_813B57C(u8 taskId);
+static void sub_813B824(u8 taskId);
+static void _fwalk(u8 taskId);
+static u8 sub_813BF44(void);
+static void sub_813BD84(void);
+static u16 sub_813BB74(void);
+static void sub_813BE30(struct LinkBattleRecords *linkRecords, u8 a, u8 b);
+
+void Special_ShowDiploma(void)
+{
+ SetMainCallback2(CB2_ShowDiploma);
+ ScriptContext2_Enable();
+}
+
+void Special_ViewWallClock(void)
+{
+ gMain.savedCallback = CB2_ReturnToField;
+ SetMainCallback2(CB2_ViewWallClock);
+ ScriptContext2_Enable();
+}
+
+void ResetCyclingRoadChallengeData(void)
+{
+ gBikeCyclingChallenge = FALSE;
+ gBikeCollisions = 0;
+ gBikeCyclingTimer = 0;
+}
+
+void Special_BeginCyclingRoadChallenge(void)
+{
+ gBikeCyclingChallenge = TRUE;
+ gBikeCollisions = 0;
+ gBikeCyclingTimer = gMain.vblankCounter1;
+}
+
+u16 GetPlayerAvatarBike(void)
+{
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE))
+ return 1;
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE))
+ return 2;
+ return 0;
+}
+
+static void DetermineCyclingRoadResults(u32 numFrames, u8 numBikeCollisions)
+{
+ u8 result;
+
+ if (numBikeCollisions < 100)
+ {
+ ConvertIntToDecimalStringN(gStringVar1, numBikeCollisions, STR_CONV_MODE_LEFT_ALIGN, 2);
+ StringAppend(gStringVar1, gText_SpaceTimes);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gText_99TimesPlus);
+ }
+
+ if (numFrames < 3600)
+ {
+ ConvertIntToDecimalStringN(gStringVar2, numFrames / 60, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ gStringVar2[2] = CHAR_PERIOD;
+ ConvertIntToDecimalStringN(&gStringVar2[3], ((numFrames % 60) * 100) / 60, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringAppend(gStringVar2, gText_SpaceSeconds);
+ }
+ else
+ {
+ StringCopy(gStringVar2, gText_1MinutePlus);
+ }
+
+ result = 0;
+ if (numBikeCollisions == 0)
+ {
+ result = 5;
+ }
+ else if (numBikeCollisions < 4)
+ {
+ result = 4;
+ }
+ else if (numBikeCollisions < 10)
+ {
+ result = 3;
+ }
+ else if (numBikeCollisions < 20)
+ {
+ result = 2;
+ }
+ else if (numBikeCollisions < 100)
+ {
+ result = 1;
+ }
+
+ if (numFrames / 60 <= 10)
+ {
+ result += 5;
+ }
+ else if (numFrames / 60 <= 15)
+ {
+ result += 4;
+ }
+ else if (numFrames / 60 <= 20)
+ {
+ result += 3;
+ }
+ else if (numFrames / 60 <= 40)
+ {
+ result += 2;
+ }
+ else if (numFrames / 60 < 60)
+ {
+ result += 1;
+ }
+
+
+ gSpecialVar_Result = result;
+}
+
+void FinishCyclingRoadChallenge(void) {
+ const u32 numFrames = gMain.vblankCounter1 - gBikeCyclingTimer;
+
+ DetermineCyclingRoadResults(numFrames, gBikeCollisions);
+ RecordCyclingRoadResults(numFrames, gBikeCollisions);
+}
+
+static void RecordCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) {
+ u16 low = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_L);
+ u16 high = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_H);
+ u32 framesRecord = low + (high << 16);
+
+ if (framesRecord > numFrames || framesRecord == 0)
+ {
+ VarSet(VAR_CYCLING_ROAD_RECORD_TIME_L, numFrames);
+ VarSet(VAR_CYCLING_ROAD_RECORD_TIME_H, numFrames >> 16);
+ VarSet(VAR_CYCLING_ROAD_RECORD_COLLISIONS, numBikeCollisions);
+ }
+}
+
+u16 GetRecordedCyclingRoadResults(void) {
+ u16 low = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_L);
+ u16 high = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_H);
+ u32 framesRecord = low + (high << 16);
+
+ if (framesRecord == 0)
+ {
+ return FALSE;
+ }
+
+ DetermineCyclingRoadResults(framesRecord, VarGet(VAR_CYCLING_ROAD_RECORD_COLLISIONS));
+ return TRUE;
+}
+
+void UpdateCyclingRoadState(void) {
+ if (gUnknown_020322DC.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE) && gUnknown_020322DC.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE))
+ {
+ return;
+ }
+
+ if (VarGet(VAR_CYCLING_CHALLENGE_STATE) == 2 || VarGet(VAR_CYCLING_CHALLENGE_STATE) == 3)
+ {
+ VarSet(VAR_CYCLING_CHALLENGE_STATE, 0);
+ Overworld_SetSavedMusic(MUS_DUMMY);
+ }
+}
+
+void SetSSTidalFlag(void)
+{
+ FlagSet(FLAG_SYS_CRUISE_MODE);
+ *GetVarPointer(VAR_CRUISE_STEP_COUNT) = 0;
+}
+
+void ResetSSTidalFlag(void)
+{
+ FlagClear(FLAG_SYS_CRUISE_MODE);
+}
+
+bool32 CountSSTidalStep(u16 delta)
+{
+ if (!FlagGet(FLAG_SYS_CRUISE_MODE) || (*GetVarPointer(VAR_CRUISE_STEP_COUNT) += delta) <= 0xcc)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y)
+{
+ u16 *varCruiseStepCount = GetVarPointer(VAR_CRUISE_STEP_COUNT);
+ switch (*GetVarPointer(VAR_PORTHOLE_STATE))
+ {
+ case 1:
+ case 8:
+ return 1;
+ case 3:
+ case 9:
+ return 4;
+ case 4:
+ case 5:
+ return 2;
+ case 6:
+ case 10:
+ return 3;
+ case 2:
+ if (*varCruiseStepCount < 60)
+ {
+ *mapNum = MAP_NUM(ROUTE134);
+ *x = *varCruiseStepCount + 19;
+ }
+ else if (*varCruiseStepCount < 140)
+ {
+ *mapNum = MAP_NUM(ROUTE133);
+ *x = *varCruiseStepCount - 60;
+ }
+ else
+ {
+ *mapNum = MAP_NUM(ROUTE132);
+ *x = *varCruiseStepCount - 140;
+ }
+ break;
+ case 7:
+ if (*varCruiseStepCount < 66)
+ {
+ *mapNum = MAP_NUM(ROUTE132);
+ *x = 65 - *varCruiseStepCount;
+ }
+ else if (*varCruiseStepCount < 146) {
+ *mapNum = MAP_NUM(ROUTE133);
+ *x = 145 - *varCruiseStepCount;
+ }
+ else
+ {
+ *mapNum = MAP_NUM(ROUTE134);
+ *x = 224 - *varCruiseStepCount;
+ }
+ break;
+ }
+ *mapGroup = MAP_GROUP(ROUTE132);
+ *y = 20;
+ return 0;
+}
+
+bool32 is_tile_that_overrides_player_control(void)
+{
+ if (FlagGet(FLAG_0x088))
+ {
+ switch (gMapHeader.mapType)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 6:
+ if (++(*GetVarPointer(VAR_0x40F2)) < 0xFA)
+ {
+ return FALSE;
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool32 sub_8138120(void)
+{
+ if (FlagGet(FLAG_0x08A))
+ {
+ switch (gMapHeader.mapType)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 6:
+ if (++(*GetVarPointer(VAR_0x40F3)) < 0xA)
+ {
+ return FALSE;
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool32 sub_8138168(void)
+{
+ if (FlagGet(FLAG_0x072))
+ {
+ switch (gMapHeader.mapType)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 6:
+ if (++(*GetVarPointer(VAR_0x40F5)) < 0xA)
+ {
+ return FALSE;
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool32 sub_81381B0(void)
+{
+ if (FlagGet(FLAG_0x080))
+ {
+ switch (gMapHeader.mapType)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 6:
+ if (++(*GetVarPointer(VAR_0x40F4)) < 0xFA)
+ {
+ return FALSE;
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+bool32 sub_81381F8(void)
+{
+ if (FlagGet(FLAG_0x075))
+ {
+ switch (gMapHeader.mapType)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 6:
+ if (++(*GetVarPointer(VAR_0x40F6)) < 0xFA)
+ {
+ return FALSE;
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+u8 GetLinkPartnerNames(void)
+{
+ u8 i;
+ u8 j = 0;
+ u8 myLinkPlayerNumber = GetMultiplayerId();
+ u8 nLinkPlayers = GetLinkPlayerCount();
+ for (i = 0; i < nLinkPlayers; i++)
+ {
+ if (myLinkPlayerNumber != i)
+ {
+ StringCopy(gTVStringVarPtrs[j], gLinkPlayers[i].name);
+ j++;
+ }
+ }
+ return nLinkPlayers;
+}
+
+void SpawnLinkPartnerEventObject(void)
+{
+ u8 j = 0;
+ s16 x = 0;
+ s16 y = 0;
+ u8 gUnknown_085B2B5C[] = {7, 9, 8, 10};
+ s8 gUnknown_085B2B60[][2] = {
+ { 0, 1},
+ { 1, 0},
+ { 0, -1},
+ {-1, 0}
+ };
+ u8 myLinkPlayerNumber;
+ u8 playerFacingDirection;
+ u8 linkSpriteId;
+ u8 i;
+
+ myLinkPlayerNumber = GetMultiplayerId();
+ playerFacingDirection = GetPlayerFacingDirection();
+ switch (playerFacingDirection)
+ {
+ case DIR_WEST:
+ j = 2;
+ x = gSaveBlock1Ptr->pos.x - 1;
+ y = gSaveBlock1Ptr->pos.y;
+ break;
+ case DIR_NORTH:
+ j = 1;
+ x = gSaveBlock1Ptr->pos.x;
+ y = gSaveBlock1Ptr->pos.y - 1;
+ break;
+ case DIR_EAST:
+ x = gSaveBlock1Ptr->pos.x + 1;
+ y = gSaveBlock1Ptr->pos.y;
+ break;
+ case DIR_SOUTH:
+ j = 3;
+ x = gSaveBlock1Ptr->pos.x;
+ y = gSaveBlock1Ptr->pos.y + 1;
+ }
+ for (i = 0; i < gSpecialVar_0x8004; i++)
+ {
+ if (myLinkPlayerNumber != i)
+ {
+ switch ((u8)gLinkPlayers[i].version)
+ {
+ case VERSION_RUBY:
+ case VERSION_SAPPHIRE:
+ if (gLinkPlayers[i].gender == 0)
+ linkSpriteId = EVENT_OBJ_GFX_LINK_RS_BRENDAN;
+ else
+ linkSpriteId = EVENT_OBJ_GFX_LINK_RS_MAY;
+ break;
+ case VERSION_EMERALD:
+ if (gLinkPlayers[i].gender == 0)
+ linkSpriteId = EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL;
+ else
+ linkSpriteId = EVENT_OBJ_GFX_RIVAL_MAY_NORMAL;
+ break;
+ default:
+ if (gLinkPlayers[i].gender == 0)
+ linkSpriteId = EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL;
+ else
+ linkSpriteId = EVENT_OBJ_GFX_RIVAL_MAY_NORMAL;
+ break;
+ }
+ SpawnSpecialEventObjectParameterized(linkSpriteId, gUnknown_085B2B5C[j], 0xf0 - i, gUnknown_085B2B60[j][0] + x + 7, gUnknown_085B2B60[j][1] + y + 7, 0);
+ LoadLinkPartnerEventObjectSpritePalette(linkSpriteId, 0xf0 - i, i);
+ j++;
+ if (j == 4)
+ {
+ j = 0;
+ }
+ }
+ }
+}
+
+static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEventId, u8 paletteNum)
+{
+ paletteNum += 6;
+ if (graphicsId == EVENT_OBJ_GFX_LINK_RS_BRENDAN ||
+ graphicsId == EVENT_OBJ_GFX_LINK_RS_MAY ||
+ graphicsId == EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL ||
+ graphicsId == EVENT_OBJ_GFX_RIVAL_MAY_NORMAL)
+ {
+ u8 obj = GetEventObjectIdByLocalIdAndMap(localEventId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ if (obj != NUM_EVENT_OBJECTS)
+ {
+ u8 spriteId = gEventObjects[obj].spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
+ sprite->oam.paletteNum = paletteNum;
+
+ switch (graphicsId)
+ {
+ case EVENT_OBJ_GFX_LINK_RS_BRENDAN:
+ LoadPalette(gEventObjectPalette33, 0x100 + paletteNum * 16, 0x20);
+ break;
+ case EVENT_OBJ_GFX_LINK_RS_MAY:
+ LoadPalette(gEventObjectPalette34, 0x100 + paletteNum * 16, 0x20);
+ break;
+ case EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL:
+ LoadPalette(gEventObjectPalette8, 0x100 + paletteNum * 16, 0x20);
+ break;
+ case EVENT_OBJ_GFX_RIVAL_MAY_NORMAL:
+ LoadPalette(gEventObjectPalette17, 0x100 + paletteNum * 16, 0x20);
+ break;
+ }
+ }
+ }
+}
+
+static const struct UCoords8 gUnknown_085B2B68[] = {
+ { 7, 22},
+ {11, 19},
+ {10, 16},
+ {15, 16}
+};
+
+void MauvilleGymSpecial1(void)
+{
+ u8 i;
+ for (i = 0; i < ARRAY_COUNT(gUnknown_085B2B68); i++)
+ {
+ if (i == gSpecialVar_0x8004)
+ {
+ MapGridSetMetatileIdAt(gUnknown_085B2B68[i].x, gUnknown_085B2B68[i].y, 0x206);
+ }
+ else
+ {
+ MapGridSetMetatileIdAt(gUnknown_085B2B68[i].x, gUnknown_085B2B68[i].y, 0x205);
+ }
+ }
+}
+
+void MauvilleGymSpecial2(void)
+{
+ int x, y;
+ for (y = 12; y < 24; y++)
+ {
+ for (x = 7; x < 16; x++)
+ {
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x220:
+ MapGridSetMetatileIdAt(x, y, 0x230);
+ break;
+ case 0x221:
+ MapGridSetMetatileIdAt(x, y, 0x231);
+ break;
+ case 0x228:
+ MapGridSetMetatileIdAt(x, y, 0x238);
+ break;
+ case 0x229:
+ MapGridSetMetatileIdAt(x, y, 0x239);
+ break;
+ case 0x230:
+ MapGridSetMetatileIdAt(x, y, 0x220);
+ break;
+ case 0x231:
+ MapGridSetMetatileIdAt(x, y, 0x221);
+ break;
+ case 0x238:
+ MapGridSetMetatileIdAt(x, y, 0xe28);
+ break;
+ case 0x239:
+ MapGridSetMetatileIdAt(x, y, 0xe29);
+ break;
+ case 0x222:
+ MapGridSetMetatileIdAt(x, y, 0x232);
+ break;
+ case 0x223:
+ MapGridSetMetatileIdAt(x, y, 0x233);
+ break;
+ case 0x22a:
+ MapGridSetMetatileIdAt(x, y, 0x23a);
+ break;
+ case 0x22b:
+ MapGridSetMetatileIdAt(x, y, 0x23b);
+ break;
+ case 0x232:
+ MapGridSetMetatileIdAt(x, y, 0x222);
+ break;
+ case 0x233:
+ MapGridSetMetatileIdAt(x, y, 0x223);
+ break;
+ case 0x23a:
+ MapGridSetMetatileIdAt(x, y, 0xe2a);
+ break;
+ case 0x23b:
+ MapGridSetMetatileIdAt(x, y, 0xe2b);
+ break;
+ case 0x240:
+ MapGridSetMetatileIdAt(x, y, 0xe42);
+ break;
+ case 0x248:
+ MapGridSetMetatileIdAt(x, y, 0x21a);
+ break;
+ case 0x241:
+ MapGridSetMetatileIdAt(x, y, 0xe43);
+ break;
+ case 0x249:
+ MapGridSetMetatileIdAt(x, y, 0x21a);
+ break;
+ case 0x242:
+ MapGridSetMetatileIdAt(x, y, 0xe40);
+ break;
+ case 0x21a:
+ if (MapGridGetMetatileIdAt(x, y - 1) == 0x240)
+ {
+ MapGridSetMetatileIdAt(x, y, 0xe48);
+ }
+ else
+ {
+ MapGridSetMetatileIdAt(x, y, 0xe49);
+ }
+ break;
+ case 0x243:
+ MapGridSetMetatileIdAt(x, y, 0xe41);
+ break;
+ case 0x251:
+ MapGridSetMetatileIdAt(x, y, 0xe50);
+ break;
+ case 0x250:
+ MapGridSetMetatileIdAt(x, y, 0x251);
+ break;
+ }
+ }
+ }
+}
+
+void MauvilleGymSpecial3(void)
+{
+ int i, x, y;
+ const struct UCoords8 *switchCoords = gUnknown_085B2B68;
+ for (i = ARRAY_COUNT(gUnknown_085B2B68) - 1; i >= 0; i--)
+ {
+ MapGridSetMetatileIdAt(switchCoords->x, switchCoords->y, 0x206);
+ switchCoords++;
+ }
+ for (y = 12; y < 24; y++)
+ {
+ for (x = 7; x < 16; x++)
+ {
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x220:
+ MapGridSetMetatileIdAt(x, y, 0x230);
+ break;
+ case 0x221:
+ MapGridSetMetatileIdAt(x, y, 0x231);
+ break;
+ case 0x228:
+ MapGridSetMetatileIdAt(x, y, 0x238);
+ break;
+ case 0x229:
+ MapGridSetMetatileIdAt(x, y, 0x239);
+ break;
+ case 0x222:
+ MapGridSetMetatileIdAt(x, y, 0x232);
+ break;
+ case 0x223:
+ MapGridSetMetatileIdAt(x, y, 0x233);
+ break;
+ case 0x22a:
+ MapGridSetMetatileIdAt(x, y, 0x23a);
+ break;
+ case 0x22b:
+ MapGridSetMetatileIdAt(x, y, 0x23b);
+ break;
+ case 0x240:
+ MapGridSetMetatileIdAt(x, y, 0xe42);
+ break;
+ case 0x241:
+ MapGridSetMetatileIdAt(x, y, 0xe43);
+ break;
+ case 0x248:
+ case 0x249:
+ MapGridSetMetatileIdAt(x, y, 0x21a);
+ break;
+ case 0x250:
+ MapGridSetMetatileIdAt(x, y, 0x251);
+ break;
+ }
+ }
+ }
+}
+
+static const u8 gUnknown_085B2B78[] = {0, 1, 1, 1, 1};
+static const u16 gUnknown_085B2B7E[] = {0x218, 0x219, 0x21a, 0x21b, 0x21c};
+
+void PetalburgGymSpecial1(void)
+{
+ gUnknown_0203AB5C = 0;
+ gUnknown_0203AB5D = 0;
+ PlaySE(SE_KI_GASYAN);
+ CreateTask(Task_PetalburgGym, 8);
+}
+
+static void Task_PetalburgGym(u8 taskId)
+{
+ if (gUnknown_085B2B78[gUnknown_0203AB5D] == gUnknown_0203AB5C)
+ {
+ PetalburgGymFunc(gSpecialVar_0x8004, gUnknown_085B2B7E[gUnknown_0203AB5D]);
+ gUnknown_0203AB5C = 0;
+ if ((++gUnknown_0203AB5D) == 5)
+ {
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+ }
+ else
+ {
+ gUnknown_0203AB5C++;
+ }
+}
+
+static void PetalburgGymFunc(u8 a0, u16 a1)
+{
+ u16 x[4];
+ u16 y[4];
+ u8 i;
+ u8 nDoors = 0;
+ switch (a0)
+ {
+ case 1:
+ nDoors = 2;
+ x[0] = 1;
+ x[1] = 7;
+ y[0] = 0x68;
+ y[1] = 0x68;
+ break;
+ case 2:
+ nDoors = 2;
+ x[0] = 1;
+ x[1] = 7;
+ y[0] = 0x4e;
+ y[1] = 0x4e;
+ break;
+ case 3:
+ nDoors = 2;
+ x[0] = 1;
+ x[1] = 7;
+ y[0] = 0x5b;
+ y[1] = 0x5b;
+ break;
+ case 4:
+ nDoors = 1;
+ x[0] = 7;
+ y[0] = 0x27;
+ break;
+ case 5:
+ nDoors = 2;
+ x[0] = 1;
+ x[1] = 7;
+ y[0] = 0x34;
+ y[1] = 0x34;
+ break;
+ case 6:
+ nDoors = 1;
+ x[0] = 1;
+ y[0] = 0x41;
+ break;
+ case 7:
+ nDoors = 1;
+ x[0] = 7;
+ y[0] = 0xd;
+ break;
+ case 8:
+ nDoors = 1;
+ x[0] = 1;
+ y[0] = 0x1a;
+ break;
+ }
+ for (i = 0; i < nDoors; i++)
+ {
+ MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | 0xc00);
+ MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | 0xc00);
+ }
+ DrawWholeMapView();
+}
+
+void PetalburgGymSpecial2(void)
+{
+ PetalburgGymFunc(gSpecialVar_0x8004, gUnknown_085B2B7E[4]);
+}
+
+void ShowFieldMessageStringVar4(void)
+{
+ ShowFieldMessage(gStringVar4);
+}
+
+void StorePlayerCoordsInVars(void)
+{
+ gSpecialVar_0x8004 = gSaveBlock1Ptr->pos.x;
+ gSpecialVar_0x8005 = gSaveBlock1Ptr->pos.y;
+}
+
+u8 GetPlayerTrainerIdOnesDigit(void)
+{
+ return (u16)((gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]) % 10;
+}
+
+void GetPlayerBigGuyGirlString(void)
+{
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ {
+ StringCopy(gStringVar1, gText_BigGuy);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gText_BigGirl);
+ }
+}
+
+void GetRivalSonDaughterString(void)
+{
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ {
+ StringCopy(gStringVar1, gText_Daughter);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gText_Son);
+ }
+}
+
+u8 GetBattleOutcome(void)
+{
+ return gBattleOutcome;
+}
+
+void CableCarWarp(void)
+{
+ if (gSpecialVar_0x8004 != 0)
+ {
+ Overworld_SetWarpDestination(MAP_GROUP(ROUTE112_CABLE_CAR_STATION), MAP_NUM(ROUTE112_CABLE_CAR_STATION), -1, 6, 4);
+ }
+ else
+ {
+ Overworld_SetWarpDestination(MAP_GROUP(MT_CHIMNEY_CABLE_CAR_STATION), MAP_NUM(MT_CHIMNEY_CABLE_CAR_STATION), -1, 6, 4);
+ }
+}
+
+void SetFlagInVar(void)
+{
+ FlagSet(gSpecialVar_0x8004);
+}
+
+u16 GetWeekCount(void)
+{
+ u16 weekCount = gLocalTime.days / 7;
+ if (weekCount > 9999)
+ {
+ weekCount = 9999;
+ }
+ return weekCount;
+}
+
+u8 GetLeadMonFriendshipScore(void)
+{
+ struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()];
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == 255)
+ {
+ return 6;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 200)
+ {
+ return 5;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 150)
+ {
+ return 4;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 100)
+ {
+ return 3;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 50)
+ {
+ return 2;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 1)
+ {
+ return 1;
+ }
+ return 0;
+}
+
+static void CB2_FieldShowRegionMap(void)
+{
+ FieldInitRegionMap(CB2_ReturnToFieldContinueScriptPlayMapMusic);
+}
+
+void FieldShowRegionMap(void)
+{
+ SetMainCallback2(CB2_FieldShowRegionMap);
+}
+
+void DoPCTurnOnEffect(void)
+{
+ if (FuncIsActiveTask(Task_PCTurnOnEffect) != TRUE)
+ {
+ u8 taskId = CreateTask(Task_PCTurnOnEffect, 8);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = taskId;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[4] = 0;
+ }
+}
+
+static void Task_PCTurnOnEffect(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ if (task->data[0] == 0)
+ {
+ PCTurnOnEffect_0(task);
+ }
+}
+
+static void PCTurnOnEffect_0(struct Task *task)
+{
+ u8 playerDirection;
+ s8 dx = 0;
+ s8 dy = 0;
+ if (task->data[3] == 6)
+ {
+ task->data[3] = 0;
+ playerDirection = GetPlayerFacingDirection();
+ switch (playerDirection)
+ {
+ case DIR_NORTH:
+ dx = 0;
+ dy = -1;
+ break;
+ case DIR_WEST:
+ dx = -1;
+ dy = -1;
+ break;
+ case DIR_EAST:
+ dx = 1;
+ dy = -1;
+ break;
+ }
+ PCTurnOnEffect_1(task->data[4], dx, dy);
+ DrawWholeMapView();
+ task->data[4] ^= 1;
+ if ((++task->data[2]) == 5)
+ {
+ DestroyTask(task->data[1]);
+ }
+ }
+ task->data[3]++;
+}
+
+static void PCTurnOnEffect_1(s16 flag, s8 dx, s8 dy)
+{
+ u16 tileId = 0;
+ if (flag != 0)
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ tileId = 0x4;
+ }
+ else if (gSpecialVar_0x8004 == 1)
+ {
+ tileId = 0x25a;
+ }
+ else if (gSpecialVar_0x8004 == 2)
+ {
+ tileId = 0x259;
+ }
+ }
+ else
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ tileId = 0x5;
+ }
+ else if (gSpecialVar_0x8004 == 1)
+ {
+ tileId = 0x27f;
+ }
+ else if (gSpecialVar_0x8004 == 2)
+ {
+ tileId = 0x27e;
+ }
+ }
+ MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00);
+}
+
+void DoPCTurnOffEffect(void)
+{
+ PCTurnOffEffect();
+}
+
+static void PCTurnOffEffect(void)
+{
+ s8 dx = 0;
+ s8 dy = 0;
+ u16 tileId = 0;
+ u8 playerDirection = GetPlayerFacingDirection();
+ switch (playerDirection)
+ {
+ case DIR_NORTH:
+ dx = 0;
+ dy = -1;
+ break;
+ case DIR_WEST:
+ dx = -1;
+ dy = -1;
+ break;
+ case DIR_EAST:
+ dx = 1;
+ dy = -1;
+ break;
+ }
+ if (gSpecialVar_0x8004 == 0)
+ {
+ tileId = 0x4;
+ }
+ else if (gSpecialVar_0x8004 == 1)
+ {
+ tileId = 0x25a;
+ }
+ else if (gSpecialVar_0x8004 == 2)
+ {
+ tileId = 0x259;
+ }
+ MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00);
+ DrawWholeMapView();
+}
+
+void DoLotteryCornerComputerEffect(void)
+{
+ if (FuncIsActiveTask(Task_LotteryCornerComputerEffect) != TRUE)
+ {
+ u8 taskId = CreateTask(Task_LotteryCornerComputerEffect, 8);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = taskId;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[4] = 0;
+ }
+}
+
+static void Task_LotteryCornerComputerEffect(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ if (task->data[0] == 0)
+ {
+ LotteryCornerComputerEffect(task);
+ }
+}
+
+static void LotteryCornerComputerEffect(struct Task *task)
+{
+ if (task->data[3] == 6)
+ {
+ task->data[3] = 0;
+ if (task->data[4] != 0)
+ {
+ MapGridSetMetatileIdAt(18, 8, 0xe9d);
+ MapGridSetMetatileIdAt(18, 9, 0xea5);
+ }
+ else
+ {
+ MapGridSetMetatileIdAt(18, 8, 0xe58);
+ MapGridSetMetatileIdAt(18, 9, 0xe60);
+ }
+ DrawWholeMapView();
+ task->data[4] ^= 1;
+ if ((++task->data[2]) == 5)
+ {
+ DestroyTask(task->data[1]);
+ }
+ }
+ task->data[3]++;
+}
+
+void EndLotteryCornerComputerEffect(void)
+{
+ MapGridSetMetatileIdAt(18, 8, 0xe9d);
+ MapGridSetMetatileIdAt(18, 9, 0xea5);
+ DrawWholeMapView();
+}
+
+void SetTrickHouseEndRoomFlag(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = FLAG_0x1F5;
+ *specVar = flag;
+ FlagSet(flag);
+}
+
+void ResetTrickHouseEndRoomFlag(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = FLAG_0x1F5;
+ *specVar = flag;
+ FlagClear(flag);
+}
+
+bool8 CheckLeadMonCool(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_COOL) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 CheckLeadMonBeauty(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_BEAUTY) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 CheckLeadMonCute(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_CUTE) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 CheckLeadMonSmart(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SMART) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 CheckLeadMonTough(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_TOUGH) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void IsGrassTypeInParty(void)
+{
+ u8 i;
+ u16 species;
+ struct Pokemon *pokemon;
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ pokemon = &gPlayerParty[i];
+ if (GetMonData(pokemon, MON_DATA_SANITY_BIT2) && !GetMonData(pokemon, MON_DATA_IS_EGG))
+ {
+ species = GetMonData(pokemon, MON_DATA_SPECIES);
+ if (gBaseStats[species].type1 == TYPE_GRASS || gBaseStats[species].type2 == TYPE_GRASS)
+ {
+ gSpecialVar_Result = TRUE;
+ return;
+ }
+ }
+ }
+ gSpecialVar_Result = FALSE;
+}
+
+void SpawnScriptEventObject(void)
+{
+ u8 obj = SpawnSpecialEventObjectParameterized(EVENT_OBJ_GFX_BOY_1, 8, 0x7F, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
+ gEventObjects[obj].invisible = TRUE;
+ CameraObjectSetFollowedObjectId(gEventObjects[obj].spriteId);
+}
+
+void RemoveScriptEventObject(void)
+{
+ CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId());
+ RemoveEventObjectByLocalIdAndMap(0x7F, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+}
+
+u8 GetPokeblockNameByMonNature(void)
+{
+ return CopyMonFavoritePokeblockName(GetNature(&gPlayerParty[GetLeadMonIndex()]), gStringVar1);
+}
+
+void GetSecretBaseNearbyMapName(void)
+{
+ GetMapName(gStringVar1, VarGet(VAR_SECRET_BASE_MAP), 0);
+}
+
+u16 GetBestBattleTowerStreak(void)
+{
+ return GetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK);
+}
+
+void BufferEReaderTrainerName(void)
+{
+ GetEreaderTrainerName(gStringVar1);
+}
+
+u16 GetSlotMachineId(void)
+{
+ static const u8 gUnknown_085B2B88[] = {12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6};
+ static const u8 gUnknown_085B2B94[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5};
+ static const u8 gUnknown_085B2BA0[] = {3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5};
+
+ u32 v0 = gSaveBlock1Ptr->easyChatPairs[0].unk0_0 + gSaveBlock1Ptr->easyChatPairs[0].unk2 + gUnknown_085B2B88[gSpecialVar_0x8004];
+ if (GetPriceReduction(2))
+ {
+ return gUnknown_085B2BA0[v0 % 12];
+ }
+ return gUnknown_085B2B94[v0 % 12];
+}
+
+bool8 FoundAbandonedShipRoom1Key(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = FLAG_HIDDEN_ITEM_1F;
+ *specVar = flag;
+ if (!FlagGet(flag))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 FoundAbandonedShipRoom2Key(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = FLAG_HIDDEN_ITEM_20;
+ *specVar = flag;
+ if (!FlagGet(flag))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 FoundAbandonedShipRoom4Key(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = FLAG_HIDDEN_ITEM_21;
+ *specVar = flag;
+ if (!FlagGet(flag))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 FoundAbandonedShipRoom6Key(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = FLAG_HIDDEN_ITEM_22;
+ *specVar = flag;
+ if (!FlagGet(flag))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 LeadMonHasEffortRibbon(void)
+{
+ return GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_EFFORT_RIBBON, NULL);
+}
+
+void GiveLeadMonEffortRibbon(void)
+{
+ bool8 ribbonSet;
+ struct Pokemon *leadMon;
+ IncrementGameStat(GAME_STAT_RECEIVED_RIBBONS);
+ FlagSet(FLAG_SYS_RIBBON_GET);
+ ribbonSet = TRUE;
+ leadMon = &gPlayerParty[GetLeadMonIndex()];
+ SetMonData(leadMon, MON_DATA_EFFORT_RIBBON, &ribbonSet);
+ if (GetRibbonCount(leadMon) > 4)
+ {
+ sub_80EE4DC(leadMon, 0x47);
+ }
+}
+
+bool8 Special_AreLeadMonEVsMaxedOut(void)
+{
+ if (GetMonEVCount(&gPlayerParty[GetLeadMonIndex()]) >= 510)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u8 TryUpdateRusturfTunnelState(void)
+{
+ if (!FlagGet(FLAG_RUSTURF_TUNNEL_OPENED) && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(RUSTURF_TUNNEL) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(RUSTURF_TUNNEL))
+ {
+ if (FlagGet(FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1))
+ {
+ VarSet(VAR_RUSTURF_TUNNEL_STATE, 4);
+ return TRUE;
+ }
+ else if (FlagGet(FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2))
+ {
+ VarSet(VAR_RUSTURF_TUNNEL_STATE, 5);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void SetShoalItemFlag(u16 v0)
+{
+ FlagSet(FLAG_SYS_SHOAL_ITEM);
+}
+
+void PutZigzagoonInPlayerParty(void)
+{
+ u16 monData;
+ CreateMon(&gPlayerParty[0], SPECIES_ZIGZAGOON, 7, 0x20, FALSE, 0, FALSE, 0);
+ monData = TRUE;
+ SetMonData(&gPlayerParty[0], MON_DATA_ALT_ABILITY, &monData);
+ monData = MOVE_TACKLE;
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, &monData);
+ monData = MOVE_NONE;
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, &monData);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, &monData);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, &monData);
+}
+
+bool8 IsStarterInParty(void)
+{
+ u8 i;
+ u16 starter = GetStarterPokemon(VarGet(VAR_STARTER_MON));
+ u8 partyCount = CalculatePlayerPartyCount();
+ for (i = 0; i < partyCount; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) == starter)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 ScriptCheckFreePokemonStorageSpace(void)
+{
+ return CheckFreePokemonStorageSpace();
+}
+
+bool8 IsPokerusInParty(void)
+{
+ if (!CheckPartyPokerus(gPlayerParty, 0x3f))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_8139560(void)
+{
+ u8 taskId = CreateTask(sub_81395BC, 9);
+ gTasks[taskId].data[0] = gSpecialVar_0x8005;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = gSpecialVar_0x8006;
+ gTasks[taskId].data[3] = gSpecialVar_0x8007;
+ gTasks[taskId].data[4] = gSpecialVar_0x8004;
+ SetCameraPanningCallback(NULL);
+ PlaySE(SE_W070);
+}
+
+static void sub_81395BC(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ data[1]++;
+ if (data[1] % data[3] == 0)
+ {
+ data[1] = 0;
+ data[2]--;
+ data[0] = -data[0];
+ data[4] = -data[4];
+ SetCameraPanning(data[0], data[4]);
+ if (data[2] == 0)
+ {
+ sub_8139620(taskId);
+ InstallCameraPanAheadCallback();
+ }
+ }
+}
+
+static void sub_8139620(u8 taskId)
+{
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
+
+bool8 FoundBlackGlasses(void)
+{
+ return FlagGet(FLAG_HIDDEN_ITEM_BLACK_GLASSES);
+}
+
+void SetRoute119Weather(void)
+{
+ if (is_map_type_1_2_3_5_or_6(get_map_light_from_warp0()) != TRUE)
+ {
+ SetSav1Weather(20);
+ }
+}
+
+void SetRoute123Weather(void)
+{
+ if (is_map_type_1_2_3_5_or_6(get_map_light_from_warp0()) != TRUE)
+ {
+ SetSav1Weather(21);
+ }
+}
+
+u8 GetLeadMonIndex(void)
+{
+ u8 i;
+ u8 partyCount = CalculatePlayerPartyCount();
+ for (i = 0; i < partyCount; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != 0)
+ {
+ return i;
+ }
+ }
+ return 0;
+}
+
+u16 ScriptGetPartyMonSpecies(void)
+{
+ return GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES2, NULL);
+}
+
+void nullsub_54(void)
+{
+
+}
+
+u16 GetDaysUntilPacifidlogTMAvailable(void)
+{
+ u16 tmReceivedDay = VarGet(VAR_PACIFIDLOG_TM_RECEIVED_DAY);
+ if (gLocalTime.days - tmReceivedDay >= 7)
+ {
+ return 0;
+ }
+ else if (gLocalTime.days < 0)
+ {
+ return 8;
+ }
+ return 7 - (gLocalTime.days - tmReceivedDay);
+}
+
+u16 SetPacifidlogTMReceivedDay(void)
+{
+ VarSet(VAR_PACIFIDLOG_TM_RECEIVED_DAY, gLocalTime.days);
+ return gLocalTime.days;
+}
+
+bool8 MonOTNameMatchesPlayer(void)
+{
+ if (GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_LANGUAGE) != GAME_LANGUAGE)
+ {
+ return TRUE; // huh?
+ }
+
+ GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_OT_NAME, gStringVar1);
+ if (!StringCompare(gSaveBlock2Ptr->playerName, gStringVar1))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void BufferLottoTicketNumber(void)
+{
+ if (gSpecialVar_Result >= 10000)
+ {
+ TV_PrintIntToStringVar(0, gSpecialVar_Result);
+ }
+ else if (gSpecialVar_Result >= 1000)
+ {
+ gStringVar1[0] = CHAR_0;
+ ConvertIntToDecimalStringN(gStringVar1 + 1, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result));
+ }
+ else if (gSpecialVar_Result >= 100)
+ {
+ gStringVar1[0] = CHAR_0;
+ gStringVar1[1] = CHAR_0;
+ ConvertIntToDecimalStringN(gStringVar1 + 2, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result));
+ }
+ else if (gSpecialVar_Result >= 10)
+ {
+ gStringVar1[0] = CHAR_0;
+ gStringVar1[1] = CHAR_0;
+ gStringVar1[2] = CHAR_0;
+ ConvertIntToDecimalStringN(gStringVar1 + 3, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result));
+ }
+ else
+ {
+ gStringVar1[0] = CHAR_0;
+ gStringVar1[1] = CHAR_0;
+ gStringVar1[2] = CHAR_0;
+ gStringVar1[3] = CHAR_0;
+ ConvertIntToDecimalStringN(gStringVar1 + 4, gSpecialVar_Result, 0, CountDigits(gSpecialVar_Result));
+ }
+}
+
+u16 sub_813986C(void)
+{
+ switch (gSpecialVar_Result)
+ {
+ case 0:
+ return mevent_081445C0(3);
+ case 1:
+ return mevent_081445C0(4);
+ case 2:
+ return mevent_081445C0(0);
+ case 3:
+ return mevent_081445C0(1);
+ case 4:
+ return mevent_081445C0(2);
+ default:
+ return 0;
+ }
+}
+
+bool8 sub_81398C0(void)
+{
+ if (gSpecialVar_0x8004 >= ITEM_TM01 && gSpecialVar_0x8004 <= ITEM_HM08)
+ {
+ StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_0x8004)]);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+bool8 sub_813990C(void)
+{
+ u8 partyCount = CalculatePlayerPartyCount();
+ u8 i;
+
+ for (i = 0; i < partyCount; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_BIT1) == 1)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+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)
+ return TRUE;
+ return FALSE;
+}
+
+void sub_8139980(void)
+{
+ SetCameraPanningCallback(NULL);
+ SetCameraPanning(8, 0);
+}
+
+const struct WindowTemplate gUnknown_085B2BAC = {
+ .priority = 0,
+ .tilemapLeft = 21,
+ .tilemapTop = 1,
+ .width = 8,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 8,
+};
+
+const u8 *const gElevatorFloorsTable[] = {
+ gText_B4F,
+ gText_B3F,
+ gText_B2F,
+ gText_B1F,
+ gText_1F,
+ gText_2F,
+ gText_3F,
+ gText_4F,
+ gText_5F,
+ gText_6F,
+ gText_7F,
+ gText_8F,
+ gText_9F,
+ gText_10F,
+ gText_11F,
+ gText_Rooftop
+};
+
+const u16 gUnknown_085B2BF4[] = { 0x0329, 0x032a, 0x032b, 0x0331, 0x0332, 0x0333, 0x0339, 0x033a, 0x033b };
+const u16 gUnknown_085B2C06[] = { 0x0329, 0x032b, 0x032a, 0x0331, 0x0333, 0x0332, 0x0339, 0x033b, 0x033a };
+
+void SetDepartmentStoreFloorVar(void)
+{
+ u8 deptStoreFloor;
+ switch (gSaveBlock1Ptr->warp2.mapNum)
+ {
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F):
+ deptStoreFloor = 4;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F):
+ deptStoreFloor = 5;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F):
+ deptStoreFloor = 6;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F):
+ deptStoreFloor = 7;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F):
+ deptStoreFloor = 8;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP):
+ deptStoreFloor = 15;
+ break;
+ default:
+ deptStoreFloor = 4;
+ break;
+ }
+ VarSet(VAR_DEPT_STORE_FLOOR, deptStoreFloor);
+}
+
+u16 sub_81399F4(void)
+{
+ gUnknown_0203AB60 = 0;
+ gUnknown_0203AB62 = 0;
+
+ if (gSaveBlock1Ptr->warp2.mapGroup == 13)
+ {
+ switch (gSaveBlock1Ptr->warp2.mapNum)
+ {
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_5F):
+ gUnknown_0203AB60 = 0;
+ gUnknown_0203AB62 = 0;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_4F):
+ gUnknown_0203AB60 = 0;
+ gUnknown_0203AB62 = 1;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_3F):
+ gUnknown_0203AB60 = 0;
+ gUnknown_0203AB62 = 2;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_2F):
+ gUnknown_0203AB60 = 0;
+ gUnknown_0203AB62 = 3;
+ break;
+ case MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_1F):
+ gUnknown_0203AB60 = 0;
+ gUnknown_0203AB62 = 4;
+ break;
+ }
+ }
+
+ return gUnknown_0203AB62;
+}
+
+void ShakeScreenInElevator(void)
+{
+ static const u8 gUnknown_085B2C18[] = { 0x08, 0x10, 0x18, 0x20, 0x26, 0x2e, 0x34, 0x38, 0x39 };
+
+ s16 *data = gTasks[CreateTask(sub_8139AF4, 9)].data;
+ u16 floorDelta;
+
+ data[1] = 0;
+ data[2] = 0;
+ data[4] = 1;
+
+ if (gSpecialVar_0x8005 > gSpecialVar_0x8006)
+ {
+ floorDelta = gSpecialVar_0x8005 - gSpecialVar_0x8006;
+ data[6] = 1;
+ }
+ else
+ {
+ floorDelta = gSpecialVar_0x8006 - gSpecialVar_0x8005;
+ data[6] = 0;
+ }
+
+ if (floorDelta > 8)
+ floorDelta = 8;
+
+ data[5] = gUnknown_085B2C18[floorDelta];
+
+ SetCameraPanningCallback(NULL);
+ sub_8139C2C(floorDelta, data[6]);
+ PlaySE(SE_ELEBETA);
+}
+
+static void sub_8139AF4(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ data[1]++;
+ if (data[1] % 3 == 0)
+ {
+ data[1] = 0;
+ data[2]++;
+ data[4] = -data[4];
+ SetCameraPanning(0, data[4]);
+ if (data[2] == data[5])
+ {
+ PlaySE(SE_PINPON);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ InstallCameraPanAheadCallback();
+ }
+ }
+}
+
+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);
+}
+
+void sub_8139C10(void)
+{
+ sub_8198070(gUnknown_0203AB5E, TRUE);
+ RemoveWindow(gUnknown_0203AB5E);
+}
+
+static void sub_8139C2C(u16 a1, u8 a2)
+{
+ static const u8 gUnknown_085B2C21[] = { 0x03, 0x06, 0x09, 0x0c, 0x0f, 0x12, 0x15, 0x18, 0x1b };
+
+ if (FuncIsActiveTask(sub_8139C80) != TRUE)
+ {
+ u8 taskId = CreateTask(sub_8139C80, 8);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = a2;
+ gTasks[taskId].data[3] = gUnknown_085B2C21[a1];
+ }
+}
+
+// Annoyingly close but compiler wants to add all the parts of the index into the arrays
+// first and then shift by one, whereas we need each individual part to shift and then be added.
+#ifdef NONMATCHING
+static void sub_8139C80(u8 taskId)
+{
+ u8 x, y;
+ s16 *data = gTasks[taskId].data;
+
+ if (data[1] == 6)
+ {
+ data[0]++;
+ if (data[2] == 0)
+ {
+ for (y = 0; y < 3; y++)
+ {
+ for (x = 0; x < 3; x++)
+ {
+ MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y * 3 + data[0] % 3] | 0xC00);
+ }
+ }
+ }
+ else
+ {
+ for (y = 0; y < 3; y++)
+ {
+ for (x = 0; x < 3; x++)
+ {
+ MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y * 3 + data[0] % 3] | 0xC00);
+ }
+ }
+ }
+ DrawWholeMapView();
+ data[1] = 0;
+ if (data[0] == data[3])
+ {
+ DestroyTask(taskId);
+ }
+ }
+ data[1]++;
+}
+#else
+NAKED
+static void sub_8139C80(u8 taskId)
+{
+ asm_unified("push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x4\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ str r0, [sp]\n\
+ lsls r0, 2\n\
+ ldr r1, [sp]\n\
+ adds r0, r1\n\
+ lsls r0, 3\n\
+ ldr r1, =gTasks + 0x8\n\
+ adds r6, r0, r1\n\
+ movs r2, 0x2\n\
+ ldrsh r0, [r6, r2]\n\
+ cmp r0, 0x6\n\
+ bne _08139D7C\n\
+ ldrh r0, [r6]\n\
+ adds r0, 0x1\n\
+ strh r0, [r6]\n\
+ movs r1, 0x4\n\
+ ldrsh r0, [r6, r1]\n\
+ cmp r0, 0\n\
+ bne _08139D10\n\
+ movs r1, 0\n\
+ ldr r2, =gUnknown_085B2BF4\n\
+ mov r10, r2\n\
+_08139CBA:\n\
+ movs r5, 0\n\
+ adds r7, r1, 0x7\n\
+ lsls r0, r1, 1\n\
+ adds r2, r1, 0x1\n\
+ mov r8, r2\n\
+ adds r0, r1\n\
+ lsls r0, 1\n\
+ mov r9, r0\n\
+_08139CCA:\n\
+ adds r4, r5, 0\n\
+ adds r4, 0x8\n\
+ movs r1, 0\n\
+ ldrsh r0, [r6, r1]\n\
+ movs r1, 0x3\n\
+ bl __modsi3\n\
+ lsls r0, 16\n\
+ asrs r0, 15\n\
+ add r0, r9\n\
+ add r0, r10\n\
+ ldrh r0, [r0]\n\
+ movs r1, 0xC0\n\
+ lsls r1, 4\n\
+ adds r2, r1, 0\n\
+ orrs r2, r0\n\
+ adds r0, r4, 0\n\
+ adds r1, r7, 0\n\
+ bl MapGridSetMetatileIdAt\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x2\n\
+ bls _08139CCA\n\
+ mov r2, r8\n\
+ lsls r0, r2, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0x2\n\
+ bls _08139CBA\n\
+ b _08139D62\n\
+ .pool\n\
+_08139D10:\n\
+ movs r1, 0\n\
+ ldr r0, =gUnknown_085B2C06\n\
+ mov r10, r0\n\
+_08139D16:\n\
+ movs r5, 0\n\
+ adds r7, r1, 0x7\n\
+ lsls r0, r1, 1\n\
+ adds r2, r1, 0x1\n\
+ mov r8, r2\n\
+ adds r0, r1\n\
+ lsls r0, 1\n\
+ mov r9, r0\n\
+_08139D26:\n\
+ adds r4, r5, 0\n\
+ adds r4, 0x8\n\
+ movs r1, 0\n\
+ ldrsh r0, [r6, r1]\n\
+ movs r1, 0x3\n\
+ bl __modsi3\n\
+ lsls r0, 16\n\
+ asrs r0, 15\n\
+ add r0, r9\n\
+ add r0, r10\n\
+ ldrh r0, [r0]\n\
+ movs r1, 0xC0\n\
+ lsls r1, 4\n\
+ adds r2, r1, 0\n\
+ orrs r2, r0\n\
+ adds r0, r4, 0\n\
+ adds r1, r7, 0\n\
+ bl MapGridSetMetatileIdAt\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x2\n\
+ bls _08139D26\n\
+ mov r2, r8\n\
+ lsls r0, r2, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0x2\n\
+ bls _08139D16\n\
+_08139D62:\n\
+ bl DrawWholeMapView\n\
+ movs r0, 0\n\
+ strh r0, [r6, 0x2]\n\
+ movs r0, 0\n\
+ ldrsh r1, [r6, r0]\n\
+ movs r2, 0x6\n\
+ ldrsh r0, [r6, r2]\n\
+ cmp r1, r0\n\
+ bne _08139D7C\n\
+ ldr r0, [sp]\n\
+ bl DestroyTask\n\
+_08139D7C:\n\
+ ldrh r0, [r6, 0x2]\n\
+ adds r0, 0x1\n\
+ strh r0, [r6, 0x2]\n\
+ add sp, 0x4\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");
+}
+#endif // NAKED
+
+void sub_8139D98(void)
+{
+ u8 i;
+ u32 ivStorage[6];
+
+ ivStorage[0] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_HP_IV);
+ ivStorage[1] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_ATK_IV);
+ ivStorage[2] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_DEF_IV);
+ ivStorage[3] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPEED_IV);
+ ivStorage[4] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPATK_IV);
+ ivStorage[5] = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPDEF_IV);
+
+ gSpecialVar_0x8005 = 0;
+
+ for (i = 0; i < ARRAY_COUNT(ivStorage); i++)
+ {
+ gSpecialVar_0x8005 += ivStorage[i];
+ }
+
+ gSpecialVar_0x8006 = 0;
+ gSpecialVar_0x8007 = ivStorage[0]; // HP IV
+
+ for (i = 1; i < 6; i++)
+ {
+ if (ivStorage[gSpecialVar_0x8006] < ivStorage[i])
+ {
+ gSpecialVar_0x8006 = i;
+ gSpecialVar_0x8007 = ivStorage[i];
+ }
+ else if (ivStorage[gSpecialVar_0x8006] == ivStorage[i])
+ {
+ u16 randomNumber = Random();
+ if ((randomNumber & 1) != 0)
+ {
+ gSpecialVar_0x8006 = i;
+ gSpecialVar_0x8007 = ivStorage[i];
+ }
+ }
+ }
+}
+
+bool32 warp0_in_pokecenter(void)
+{
+ static const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xffff };
+
+ int i;
+ u16 map = (gUnknown_020322DC.mapGroup << 8) + gUnknown_020322DC.mapNum;
+
+ for (i = 0; gUnknown_085B2C2A[i] != 0xFFFF; i++)
+ {
+ if (gUnknown_085B2C2A[i] == map)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+bool32 sub_8139ED0(void)
+{
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRAINER_HILL_ENTRANCE) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_HILL_ENTRANCE))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void UpdateFrontierManiac(u16 a0)
+{
+ u16 *var = GetVarPointer(VAR_FRONTIER_MANIAC_FACILITY);
+ *var += a0;
+ *var %= 10;
+}
+
+void sub_8139F20(void)
+{
+ static const u8 *const gUnknown_085B2C50[][3] = {
+ { BattleFrontier_Lounge2_Text_260971, BattleFrontier_Lounge2_Text_260A1E, BattleFrontier_Lounge2_Text_260AE7 },
+ { BattleFrontier_Lounge2_Text_2619AC, BattleFrontier_Lounge2_Text_261A91, BattleFrontier_Lounge2_Text_261B0C },
+ { BattleFrontier_Lounge2_Text_261B95, BattleFrontier_Lounge2_Text_261B95, BattleFrontier_Lounge2_Text_261B95 },
+ { BattleFrontier_Lounge2_Text_261C1A, BattleFrontier_Lounge2_Text_261C1A, BattleFrontier_Lounge2_Text_261C1A },
+ { BattleFrontier_Lounge2_Text_260BC4, BattleFrontier_Lounge2_Text_260C6D, BattleFrontier_Lounge2_Text_260D3A },
+ { BattleFrontier_Lounge2_Text_260E1E, BattleFrontier_Lounge2_Text_260EC7, BattleFrontier_Lounge2_Text_260F74 },
+ { BattleFrontier_Lounge2_Text_2614E6, BattleFrontier_Lounge2_Text_261591, BattleFrontier_Lounge2_Text_26166F },
+ { BattleFrontier_Lounge2_Text_261282, BattleFrontier_Lounge2_Text_261329, BattleFrontier_Lounge2_Text_261403 },
+ { BattleFrontier_Lounge2_Text_261026, BattleFrontier_Lounge2_Text_2610CC, BattleFrontier_Lounge2_Text_261194 },
+ { BattleFrontier_Lounge2_Text_26174D, BattleFrontier_Lounge2_Text_2617F9, BattleFrontier_Lounge2_Text_2618C4 },
+ };
+
+ static const u8 gUnknown_085B2CC8[][2] = {
+ { 0x15, 0x38 },
+ { 0x15, 0x23 },
+ { 0xff, 0xff },
+ { 0xff, 0xff },
+ { 0x02, 0x04 },
+ { 0x07, 0x15 },
+ { 0x07, 0x15 },
+ { 0x0e, 0x1c },
+ { 0x0d, 0x70 },
+ { 0x07, 0x38 }
+ };
+
+ u8 i;
+ u16 unk = 0;
+ u16 var = VarGet(VAR_FRONTIER_MANIAC_FACILITY);
+ switch (var)
+ {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ if (gSaveBlock2Ptr->frontier.field_CE0[var][0] >= gSaveBlock2Ptr->frontier.field_CE0[var][1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_CE0[var][0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_CE0[var][1];
+ }
+ break;
+ case 4:
+ if (gSaveBlock2Ptr->frontier.field_D0C[0] >= gSaveBlock2Ptr->frontier.field_D0C[1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_D0C[0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_D0C[1];
+ }
+ break;
+ case 5:
+ if (gSaveBlock2Ptr->frontier.field_DE2[0] >= gSaveBlock2Ptr->frontier.field_DE2[1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_DE2[0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_DE2[1];
+ }
+ break;
+ case 6:
+ if (gSaveBlock2Ptr->frontier.field_DC8[0] >= gSaveBlock2Ptr->frontier.field_DC8[1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_DC8[0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_DC8[1];
+ }
+ break;
+ case 7:
+ if (gSaveBlock2Ptr->frontier.field_DDA[0] >= gSaveBlock2Ptr->frontier.field_DDA[1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_DDA[0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_DDA[1];
+ }
+ break;
+ case 8:
+ if (gSaveBlock2Ptr->frontier.field_E04[0] >= gSaveBlock2Ptr->frontier.field_E04[1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_E04[0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_E04[1];
+ }
+ break;
+ case 9:
+ if (gSaveBlock2Ptr->frontier.field_E1A[0] >= gSaveBlock2Ptr->frontier.field_E1A[1])
+ {
+ unk = gSaveBlock2Ptr->frontier.field_E1A[0];
+ }
+ else
+ {
+ unk = gSaveBlock2Ptr->frontier.field_E1A[1];
+ }
+ break;
+ }
+
+ for (i = 0; i < 2 && gUnknown_085B2CC8[var][i] < unk; i++);
+
+ ShowFieldMessage(gUnknown_085B2C50[var][i]);
+}
+
+void sub_813A080(void)
+{
+ static const u16 gUnknown_085B2CDC[] = {
+ 0x0007, 0x000e, 0x0015, 0x001c, 0x0023, 0x0031, 0x003f, 0x004d, 0x005b, 0x0000
+ };
+
+ u8 i;
+ u16 var = VarGet(VAR_0x40CE);
+ u8 chosenLevel = gSaveBlock2Ptr->frontier.chosenLvl;
+
+ if (var == 2 && !FlagGet(FLAG_0x152))
+ {
+ gSpecialVar_0x8005 = 5;
+ gSpecialVar_0x8006 = 4;
+ return;
+ }
+
+ for (i = 0; i < 9; i++)
+ {
+ if (gUnknown_085B2CDC[i] > gSaveBlock2Ptr->frontier.field_CE0[var][chosenLevel])
+ {
+ gSpecialVar_0x8005 = 4;
+ gSpecialVar_0x8006 = i + 5;
+ return;
+ }
+ }
+
+ gSpecialVar_0x8005 = 4;
+ gSpecialVar_0x8006 = 12;
+}
+
+void sub_813A128(void)
+{
+ u8 taskId = CreateTask(sub_813A2DC, 8);
+ struct Task *task = &gTasks[taskId];
+ task->data[11] = gSpecialVar_0x8004;
+
+ switch (gSpecialVar_0x8004)
+ {
+ case 0:
+ task->data[0] = 1;
+ task->data[1] = 1;
+ task->data[2] = 1;
+ task->data[3] = 1;
+ task->data[4] = 1;
+ task->data[5] = 1;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 1:
+ task->data[0] = 5;
+ task->data[1] = 8;
+ task->data[2] = 1;
+ task->data[3] = 1;
+ task->data[4] = 9;
+ task->data[5] = 10;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 2:
+ task->data[0] = 6;
+ task->data[1] = 12;
+ task->data[2] = 1;
+ task->data[3] = 1;
+ task->data[4] = 7;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 3:
+ task->data[0] = 6;
+ task->data[1] = 11;
+ task->data[2] = 14;
+ task->data[3] = 1;
+ task->data[4] = 15;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 4:
+ task->data[0] = 6;
+ task->data[1] = 6;
+ task->data[2] = 14;
+ task->data[3] = 1;
+ task->data[4] = 15;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 5:
+ task->data[0] = 6;
+ task->data[1] = 7;
+ task->data[2] = 14;
+ task->data[3] = 1;
+ task->data[4] = 15;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 6:
+ task->data[0] = 6;
+ task->data[1] = 10;
+ task->data[2] = 14;
+ task->data[3] = 1;
+ task->data[4] = 15;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 7:
+ task->data[0] = 6;
+ task->data[1] = 12;
+ task->data[2] = 15;
+ task->data[3] = 1;
+ task->data[4] = 14;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 8:
+ task->data[0] = 6;
+ task->data[1] = 10;
+ task->data[2] = 17;
+ task->data[3] = 1;
+ task->data[4] = 11;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 9:
+ case 10:
+ task->data[0] = 6;
+ task->data[1] = 11;
+ task->data[2] = 15;
+ task->data[3] = 1;
+ task->data[4] = 14;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 11:
+ task->data[0] = 6;
+ task->data[1] = 7;
+ task->data[2] = 19;
+ task->data[3] = 1;
+ task->data[4] = 10;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ case 12:
+ task->data[0] = 6;
+ task->data[1] = 7;
+ task->data[2] = 17;
+ task->data[3] = 1;
+ task->data[4] = 12;
+ task->data[5] = 12;
+ task->data[6] = 0;
+ task->data[15] = taskId;
+ break;
+ default:
+ gSpecialVar_Result = 0x7F;
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+static const u8 *const gUnknown_085B2CF0[][16] = {
+ {
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_BlueFlute,
+ gText_YellowFlute,
+ gText_RedFlute,
+ gText_WhiteFlute,
+ gText_BlackFlute,
+ gText_PrettyChair,
+ gText_PrettyDesk,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_0Pts,
+ gText_10Pts,
+ gText_20Pts,
+ gText_30Pts,
+ gText_40Pts,
+ gText_50Pts,
+ gText_60Pts,
+ gText_70Pts,
+ gText_80Pts,
+ gText_90Pts,
+ gText_100Pts,
+ gText_QuestionMark,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_KissPoster16BP,
+ gText_KissCushion32BP,
+ gText_SmoochumDoll32BP,
+ gText_TogepiDoll48BP,
+ gText_MeowthDoll48BP,
+ gText_ClefairyDoll48BP,
+ gText_DittoDoll48BP,
+ gText_CyndaquilDoll80BP,
+ gText_ChikoritaDoll80BP,
+ gText_TotodileDoll80BP,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_LaprasDoll128BP,
+ gText_SnorlaxDoll128BP,
+ gText_VenusaurDoll256BP,
+ gText_CharizardDoll256BP,
+ gText_BlastoiseDoll256BP,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_Protein1BP,
+ gText_Calcium1BP,
+ gText_Iron1BP,
+ gText_Zinc1BP,
+ gText_Carbos1BP,
+ gText_HpUp1BP,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_Leftovers48BP,
+ gText_WhiteHerb48BP,
+ gText_QuickClaw48BP,
+ gText_MentalHerb48BP,
+ gText_BrightPowder64BP,
+ gText_ChoiceBand64BP,
+ gText_KingsRock64BP,
+ gText_FocusBand64BP,
+ gText_ScopeLens64BP,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_EnergyPowder50,
+ gText_EnergyRoot80,
+ gText_HealPowder50,
+ gText_RevivalHerb300,
+ gText_Protein1000,
+ gText_Iron1000,
+ gText_Carbos1000,
+ gText_Calcium1000,
+ gText_Zinc1000,
+ gText_HPUp1000,
+ gText_PPUp3000,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_BattleTower2,
+ gText_BattleDome,
+ gText_BattlePalace,
+ gText_BattleArena,
+ gText_BattleFactory,
+ gText_BattlePike,
+ gText_BattlePyramid,
+ gText_RankingHall,
+ gText_ExchangeService,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_Softboiled16BP,
+ gText_SeismicToss24BP,
+ gText_DreamEater24BP,
+ gText_MegaPunch24BP,
+ gText_MegaKick48BP,
+ gText_BodySlam48BP,
+ gText_RockSlide48BP,
+ gText_Counter48BP,
+ gText_ThunderWave48BP,
+ gText_SwordsDance48BP,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_DefenseCurl16BP,
+ gText_Snore24BP,
+ gText_MudSlap24BP,
+ gText_Swift24BP,
+ gText_IcyWind24BP,
+ gText_Endure48BP,
+ gText_PsychUp48BP,
+ gText_IcePunch48BP,
+ gText_ThunderPunch48BP,
+ gText_FirePunch48BP,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_SlateportCity,
+ gText_BattleFrontier,
+ gText_SouthernIsland,
+ gText_NavelRock,
+ gText_BirthIsland,
+ gText_FarawayIsland,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ {
+ gText_BattleTrainers,
+ gText_BattleBasics,
+ gText_PokemonNature,
+ gText_PokemonMoves,
+ gText_Underpowered,
+ gText_WhenInDanger,
+ gText_Exit,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ }
+};
+
+static void sub_813A2DC(u8 taskId)
+{
+ u32 unk1;
+ u8 i, windowId;
+ struct WindowTemplate template;
+ struct Task *task = &gTasks[taskId];
+
+ ScriptContext2_Enable();
+ gUnknown_0203AB68 = 0;
+ gUnknown_0203AB6C = 0x40;
+ sub_813AA60(task->data[11], 0);
+ sub_813ACE8(task->data[11], 0);
+ gUnknown_0203AB64 = AllocZeroed(task->data[1] * 8);
+ gUnknown_0203AB6A = 0;
+ sub_813A42C();
+
+ for (unk1 = 0, i = 0; i < task->data[1]; i++)
+ {
+ const u8 *text = gUnknown_085B2CF0[gSpecialVar_0x8004][i];
+ gUnknown_0203AB64[i].name = text;
+ gUnknown_0203AB64[i].id = i;
+ unk1 = display_text_and_get_width(text, unk1);
+ }
+
+ task->data[4] = convert_pixel_width_to_tile_width(unk1);
+
+ if (task->data[2] + task->data[4] > 0x1D)
+ {
+ int unk2 = 0x1D - task->data[4];
+ if (unk2 < 0)
+ {
+ task->data[2] = 0;
+ }
+ else
+ {
+ task->data[2] = unk2;
+ }
+ }
+
+ template = CreateWindowTemplate(0, task->data[2], task->data[3], task->data[4], task->data[5], 0xF, 0x64);
+ windowId = AddWindow(&template);
+ task->data[13] = windowId;
+ SetStandardWindowBorderStyle(windowId, 0);
+
+ gUnknown_030061D0.totalItems = task->data[1];
+ gUnknown_030061D0.maxShowed = task->data[0];
+ gUnknown_030061D0.windowId = task->data[13];
+
+ sub_813A694(taskId);
+ task->data[14] = ListMenuInit(&gUnknown_030061D0, task->data[7], task->data[8]);
+ schedule_bg_copy_tilemap_to_vram(0);
+ gTasks[taskId].func = sub_813A4EC;
+}
+
+static void sub_813A42C(void)
+{
+ gUnknown_030061D0.items = gUnknown_0203AB64;
+ gUnknown_030061D0.moveCursorFunc = sub_813A46C;
+ gUnknown_030061D0.itemPrintFunc = NULL;
+ gUnknown_030061D0.totalItems = 1;
+ gUnknown_030061D0.maxShowed = 1;
+ gUnknown_030061D0.windowId = 0;
+ gUnknown_030061D0.header_X = 0;
+ gUnknown_030061D0.item_X = 8;
+ gUnknown_030061D0.cursor_X = 0;
+ gUnknown_030061D0.upText_Y = 1;
+ gUnknown_030061D0.cursorPal = 2;
+ gUnknown_030061D0.fillValue = 1;
+ gUnknown_030061D0.cursorShadowPal = 3;
+ gUnknown_030061D0.lettersSpacing = 0;
+ gUnknown_030061D0.itemVerticalPadding = 0;
+ gUnknown_030061D0.scrollMultiple = 0;
+ gUnknown_030061D0.fontId = 1;
+ gUnknown_030061D0.cursorKind = 0;
+}
+
+static void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list)
+{
+ u8 taskId;
+ PlaySE(SE_SELECT);
+ taskId = FindTaskIdByFunc(sub_813A4EC);
+ if (taskId != 0xFF)
+ {
+ u16 misc;
+ struct Task *task = &gTasks[taskId];
+ ListMenuGetScrollAndRow(task->data[14], &misc, NULL);
+ gUnknown_0203AB68 = misc;
+ ListMenuGetCurrentItemArrayId(task->data[14], &misc);
+ sub_813AC44(task->data[11], gUnknown_0203AB6A);
+ sub_813AA60(task->data[11], misc);
+ sub_813AD34(task->data[11], misc);
+ gUnknown_0203AB6A = misc;
+ }
+}
+
+// stupid r5<->r6 swap
+#ifdef NONMATCHING
+static void sub_813A4EC(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ s32 itemId = ListMenuHandleInputGetItemId(task->data[14]);
+
+ switch (itemId)
+ {
+ case LIST_NOTHING_CHOSEN:
+ break;
+ case LIST_B_PRESSED:
+ gSpecialVar_Result = 0x7F;
+ PlaySE(SE_SELECT);
+ sub_813A570(taskId);
+ break;
+ default:
+ gSpecialVar_Result = itemId;
+ PlaySE(SE_SELECT);
+ if (!task->data[6] || itemId == task->data[1] - 1)
+ {
+ sub_813A570(taskId);
+ }
+ else
+ {
+ sub_813A738(taskId);
+ task->func = sub_813A600;
+ EnableBothScriptContexts();
+ }
+ break;
+ }
+}
+#else
+NAKED
+static void sub_813A4EC(u8 taskId)
+{
+ asm_unified("push {r4-r6,lr}\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ lsls r0, r5, 2\n\
+ adds r0, r5\n\
+ lsls r0, 3\n\
+ ldr r1, =gTasks\n\
+ adds r6, r0, r1\n\
+ ldrh r0, [r6, 0x24]\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ bl ListMenuHandleInputGetItemId\n\
+ adds r4, r0, 0\n\
+ movs r0, 0x2\n\
+ negs r0, r0\n\
+ cmp r4, r0\n\
+ beq _0813A51C\n\
+ adds r0, 0x1\n\
+ cmp r4, r0\n\
+ bne _0813A530\n\
+ b _0813A566\n\
+ .pool\n\
+_0813A51C:\n\
+ ldr r1, =gSpecialVar_Result\n\
+ movs r0, 0x7F\n\
+ strh r0, [r1]\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ b _0813A54C\n\
+ .pool\n\
+_0813A530:\n\
+ ldr r0, =gSpecialVar_Result\n\
+ strh r4, [r0]\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r1, 0x14\n\
+ ldrsh r0, [r6, r1]\n\
+ cmp r0, 0\n\
+ beq _0813A54C\n\
+ movs r1, 0xA\n\
+ ldrsh r0, [r6, r1]\n\
+ subs r0, 0x1\n\
+ cmp r4, r0\n\
+ bne _0813A558\n\
+_0813A54C:\n\
+ adds r0, r5, 0\n\
+ bl sub_813A570\n\
+ b _0813A566\n\
+ .pool\n\
+_0813A558:\n\
+ adds r0, r5, 0\n\
+ bl sub_813A738\n\
+ ldr r0, =sub_813A600\n\
+ str r0, [r6]\n\
+ bl EnableBothScriptContexts\n\
+_0813A566:\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool");
+}
+#endif // NONMATCHING
+
+static void sub_813A570(u8 taskId)
+{
+ u16 array;
+ struct Task *task = &gTasks[taskId];
+ ListMenuGetCurrentItemArrayId(task->data[14], &array);
+ sub_813AC44(task->data[11], array);
+ sub_813A738(taskId);
+ DestroyListMenuTask(task->data[14], NULL, NULL);
+ Free(gUnknown_0203AB64);
+ sub_8198070(task->data[13], 1);
+ FillWindowPixelBuffer(task->data[13], 0);
+ CopyWindowToVram(task->data[13], 2);
+ RemoveWindow(task->data[13]);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
+
+static void sub_813A600(u8 taskId)
+{
+ switch (gTasks[taskId].data[6])
+ {
+ case 1:
+ default:
+ break;
+ case 2:
+ gTasks[taskId].data[6] = 1;
+ gTasks[taskId].func = sub_813A664;
+ break;
+ }
+}
+
+void sub_813A630(void)
+{
+ u8 taskId = FindTaskIdByFunc(sub_813A600);
+ if (taskId == 0xFF)
+ {
+ EnableBothScriptContexts();
+ }
+ else
+ {
+ gTasks[taskId].data[6]++;
+ }
+}
+
+static void sub_813A664(u8 taskId)
+{
+ ScriptContext2_Enable();
+ sub_813A694(taskId);
+ gTasks[taskId].func = sub_813A4EC;
+}
+
+static void sub_813A694(u8 taskId)
+{
+ static const struct ScrollArrowsTemplate gUnknown_085B3030 = {
+ .firstArrowType = 2,
+ .firstX = 0,
+ .firstY = 0,
+ .secondArrowType = 3,
+ .secondX = 0,
+ .secondY = 0,
+ .fullyUpThreshold = 0,
+ .fullyDownThreshold = 0,
+ .tileTag = 2000,
+ .palTag = 100,
+ .palNum = 0
+ };
+
+ struct Task *task = &gTasks[taskId];
+ struct ScrollArrowsTemplate template = gUnknown_085B3030;
+ if (task->data[0] != task->data[1])
+ {
+ template.firstX = (task->data[4] / 2) * 8 + 12 + (task->data[2] - 1) * 8;
+ template.firstY = 8;
+ template.secondX = (task->data[4] / 2) * 8 + 12 + (task->data[2] - 1) * 8;
+ template.secondY = task->data[5] * 8 + 10;
+ template.fullyUpThreshold = 0;
+ template.fullyDownThreshold = task->data[1] - task->data[0];
+ task->data[12] = AddScrollIndicatorArrowPair(&template, &gUnknown_0203AB68);
+ }
+}
+
+static void sub_813A738(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ if (task->data[0] != task->data[1])
+ {
+ RemoveScrollIndicatorArrowPair(task->data[12]);
+ }
+}
+
+void nullsub_55(void)
+{
+
+}
+
+void sub_813A76C(void)
+{
+ u8 i;
+ for (i = 0; i < 2; i++)
+ {
+ if (gLinkPlayers[i].gender == MALE)
+ {
+ VarSet(VAR_OBJ_GFX_ID_F - i, EVENT_OBJ_GFX_BRENDAN_NORMAL);
+ }
+ else
+ {
+ VarSet(VAR_OBJ_GFX_ID_F - i, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL);
+ }
+ }
+}
+
+void sub_813A7B8(void)
+{
+ static const u8 *const gUnknown_085B3040[] = {
+ BattleFrontier_Lounge5_Text_26468D,
+ BattleFrontier_Lounge5_Text_2646E5,
+ BattleFrontier_Lounge5_Text_264741,
+ BattleFrontier_Lounge5_Text_2647A4,
+ BattleFrontier_Lounge5_Text_2647FC,
+ BattleFrontier_Lounge5_Text_264858,
+ BattleFrontier_Lounge5_Text_2648BE,
+ BattleFrontier_Lounge5_Text_264916,
+ BattleFrontier_Lounge5_Text_264972,
+ BattleFrontier_Lounge5_Text_2649D5,
+ BattleFrontier_Lounge5_Text_264A3F,
+ BattleFrontier_Lounge5_Text_264A9B,
+ BattleFrontier_Lounge5_Text_264AF3,
+ BattleFrontier_Lounge5_Text_264B5D,
+ BattleFrontier_Lounge5_Text_2648BE,
+ BattleFrontier_Lounge5_Text_264BC3,
+ BattleFrontier_Lounge5_Text_264C36,
+ BattleFrontier_Lounge5_Text_2648BE,
+ BattleFrontier_Lounge5_Text_264C95,
+ BattleFrontier_Lounge5_Text_264D01,
+ BattleFrontier_Lounge5_Text_264D6B,
+ BattleFrontier_Lounge5_Text_264DD7,
+ BattleFrontier_Lounge5_Text_264E33,
+ BattleFrontier_Lounge5_Text_264E8F,
+ BattleFrontier_Lounge5_Text_2648BE,
+ };
+
+ u8 nature;
+
+ if (gSpecialVar_0x8004 >= PARTY_SIZE)
+ {
+ gSpecialVar_0x8004 = 0;
+ }
+
+ nature = GetNature(&gPlayerParty[gSpecialVar_0x8004]);
+ ShowFieldMessage(gUnknown_085B3040[nature]);
+}
+
+void UpdateFrontierGambler(u16 a0)
+{
+ u16 *var = GetVarPointer(VAR_FRONTIER_GAMBLER_FACILITY);
+ *var += a0;
+ *var %= 12;
+}
+
+void sub_813A820(void)
+{
+ static const u8 *const gUnknown_085B30A4[] = {
+ BattleFrontier_Lounge3_Text_262261,
+ BattleFrontier_Lounge3_Text_26230D,
+ BattleFrontier_Lounge3_Text_2623B9,
+ BattleFrontier_Lounge3_Text_262464,
+ BattleFrontier_Lounge3_Text_26250E,
+ BattleFrontier_Lounge3_Text_2625B8,
+ BattleFrontier_Lounge3_Text_26266A,
+ BattleFrontier_Lounge3_Text_26271C,
+ BattleFrontier_Lounge3_Text_2627C9,
+ BattleFrontier_Lounge3_Text_262876,
+ BattleFrontier_Lounge3_Text_26291A,
+ BattleFrontier_Lounge3_Text_2629BC,
+ };
+
+ u16 var = VarGet(VAR_FRONTIER_GAMBLER_FACILITY);
+ ShowFieldMessage(gUnknown_085B30A4[var]);
+ VarSet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F, var);
+}
+
+void sub_813A854(void)
+{
+ static const u8 *const gUnknown_085B30D4[] = {
+ BattleFrontier_Lounge3_Text_262C04,
+ BattleFrontier_Lounge3_Text_262C90,
+ BattleFrontier_Lounge3_Text_262D1C,
+ BattleFrontier_Lounge3_Text_262DA7,
+ BattleFrontier_Lounge3_Text_262E34,
+ BattleFrontier_Lounge3_Text_262EC1,
+ BattleFrontier_Lounge3_Text_262F56,
+ BattleFrontier_Lounge3_Text_262FEB,
+ BattleFrontier_Lounge3_Text_263078,
+ BattleFrontier_Lounge3_Text_263105,
+ BattleFrontier_Lounge3_Text_26318C,
+ BattleFrontier_Lounge3_Text_263211,
+ };
+
+ ShowFieldMessage(gUnknown_085B30D4[VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F)]);
+}
+
+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 var2 = VarGet(VAR_FRONTIER_GAMBLER_SET_FACILITY_F);
+ u16 var3 = VarGet(VAR_FRONTIER_FACILITY);
+
+ if (VarGet(VAR_FRONTIER_GAMBLER_PLACED_BET_F) == 1)
+ {
+ if (gUnknown_085B3104[var2] == (var3 << 8) + var1)
+ {
+ if (a0 != 0)
+ {
+ VarSet(VAR_FRONTIER_GAMBLER_PLACED_BET_F, 2);
+ }
+ else
+ {
+ VarSet(VAR_FRONTIER_GAMBLER_PLACED_BET_F, 3);
+ }
+ }
+ }
+}
+
+void sub_813A8FC(void)
+{
+ u8 string[32];
+ u32 x;
+ StringCopy(ConvertIntToDecimalStringN(string, gSaveBlock2Ptr->frontier.frontierBattlePoints, STR_CONV_MODE_RIGHT_ALIGN, 4), gText_BP);
+ x = GetStringRightAlignXOffset(1, string, 48);
+ PrintTextOnWindow(gUnknown_0203AB6D, 1, string, x, 1, 0, NULL);
+}
+
+void sub_813A958(void)
+{
+ static const struct WindowTemplate gUnknown_085B311C = {
+ .priority = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 6,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 8,
+ };
+
+ gUnknown_0203AB6D = AddWindow(&gUnknown_085B311C);
+ SetStandardWindowBorderStyle(gUnknown_0203AB6D, 0);
+ sub_813A8FC();
+ CopyWindowToVram(gUnknown_0203AB6D, 2);
+}
+
+void sub_813A988(void)
+{
+ sub_8198070(gUnknown_0203AB6D, TRUE);
+ RemoveWindow(gUnknown_0203AB6D);
+}
+
+void sub_813A9A4(void)
+{
+ if (gSaveBlock2Ptr->frontier.frontierBattlePoints < gSpecialVar_0x8004)
+ {
+ gSaveBlock2Ptr->frontier.frontierBattlePoints = 0;
+ }
+ else
+ {
+ gSaveBlock2Ptr->frontier.frontierBattlePoints -= gSpecialVar_0x8004;
+ }
+}
+
+void sub_813A9D0(void)
+{
+ if (gSaveBlock2Ptr->frontier.frontierBattlePoints + gSpecialVar_0x8004 > 0x270F)
+ {
+ gSaveBlock2Ptr->frontier.frontierBattlePoints = 0x270f;
+ }
+ else
+ {
+ gSaveBlock2Ptr->frontier.frontierBattlePoints = gSaveBlock2Ptr->frontier.frontierBattlePoints + gSpecialVar_0x8004;
+ }
+}
+
+u16 sub_813AA04(void)
+{
+ return gSaveBlock2Ptr->frontier.frontierBattlePoints;
+}
+
+void sub_813AA18(void)
+{
+ static const struct WindowTemplate gUnknown_085B3124 = {
+ .priority = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 9,
+ .width = 4,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 20,
+ };
+
+ gUnknown_0203AB6E = AddWindow(&gUnknown_085B3124);
+ SetStandardWindowBorderStyle(gUnknown_0203AB6E, 0);
+ CopyWindowToVram(gUnknown_0203AB6E, 2);
+}
+
+void sub_813AA44(void)
+{
+ sub_8198070(gUnknown_0203AB6E, TRUE);
+ RemoveWindow(gUnknown_0203AB6E);
+}
+
+static void sub_813AA60(u16 a0, u16 a1)
+{
+ static const u16 gUnknown_085B312C[] = { 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xffff };
+ static const u16 gUnknown_085B3142[] = { 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xffff };
+ static const u16 gUnknown_085B314E[] = { 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xffff };
+ static const u16 gUnknown_085B315C[] = { 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xffff };
+
+ static const u8 *const gUnknown_085B3170[] = {
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260201,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260287,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E,
+ gText_Exit,
+ };
+
+ static const u8 *const gUnknown_085B319C[] = {
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
+ gText_Exit
+ };
+
+ static const u8 *const gUnknown_085B31B4[] = {
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260397,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260436,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C,
+ gText_Exit
+ };
+
+ static const u8 *const gUnknown_085B31D0[] = {
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260542,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260575,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2,
+ BattleFrontier_BattlePointExchangeServiceCorner_Text_260613,
+ gText_Exit
+ };
+
+ if (a0 > 2 && a0 < 7)
+ {
+ FillWindowPixelRect(0, 0x11, 0, 0, 216, 32);
+ switch (a0)
+ {
+ case 3:
+ AddTextPrinterParameterized(0, 1, gUnknown_085B3170[a1], 0, NULL, 2, 1, 3);
+ if (gUnknown_085B312C[a1] == 0xFFFF)
+ {
+ sub_813ABD4(gUnknown_085B312C[a1]);
+ }
+ else
+ {
+ FreeSpriteTilesByTag(5500);
+ FreeSpritePaletteByTag(5500);
+ gUnknown_0203AB6C = AddDecorationIconObject(gUnknown_085B312C[a1], 33, 88, 0, 5500, 5500);
+ }
+ break;
+ case 4:
+ AddTextPrinterParameterized(0, 1, gUnknown_085B319C[a1], 0, NULL, 2, 1, 3);
+ if (gUnknown_085B3142[a1] == 0xFFFF)
+ {
+ sub_813ABD4(gUnknown_085B3142[a1]);
+ }
+ else
+ {
+ FreeSpriteTilesByTag(5500);
+ FreeSpritePaletteByTag(5500);
+ gUnknown_0203AB6C = AddDecorationIconObject(gUnknown_085B3142[a1], 33, 88, 0, 5500, 5500);
+ }
+ break;
+ case 5:
+ AddTextPrinterParameterized(0, 1, gUnknown_085B31B4[a1], 0, NULL, 2, 1, 3);
+ sub_813ABD4(gUnknown_085B314E[a1]);
+ break;
+ case 6:
+ AddTextPrinterParameterized(0, 1, gUnknown_085B31D0[a1], 0, NULL, 2, 1, 3);
+ sub_813ABD4(gUnknown_085B315C[a1]);
+ break;
+ }
+ }
+}
+
+static void sub_813ABD4(u16 a0)
+{
+ FreeSpriteTilesByTag(5500);
+ FreeSpritePaletteByTag(5500);
+ gUnknown_0203AB6C = AddItemIconSprite(5500, 5500, a0);
+
+ if (gUnknown_0203AB6C != MAX_SPRITES)
+ {
+ gSprites[gUnknown_0203AB6C].oam.priority = 0;
+ gSprites[gUnknown_0203AB6C].pos1.x = 36;
+ gSprites[gUnknown_0203AB6C].pos1.y = 92;
+ }
+}
+
+static void sub_813AC44(u16 a0, u16 unused)
+{
+ if (gUnknown_0203AB6C != MAX_SPRITES)
+ {
+ switch (a0)
+ {
+ case 3 ... 6:
+ DestroySpriteAndFreeResources(&gSprites[gUnknown_0203AB6C]);
+ break;
+ }
+ gUnknown_0203AB6C = MAX_SPRITES;
+ }
+}
+
+static const u16 gUnknown_085B31F8[] = { 0x0087, 0x0045, 0x008a, 0x0005, 0x0019, 0x0022, 0x009d, 0x0044, 0x0056, 0x000e };
+static const u16 gUnknown_085B320C[] = { 0x006f, 0x00ad, 0x00bd, 0x0081, 0x00c4, 0x00cb, 0x00f4, 0x0008, 0x0009, 0x0007 };
+
+void sub_813AC7C(void)
+{
+ if (gSpecialVar_0x8005 != 0)
+ {
+ StringCopy(gStringVar1, gMoveNames[gUnknown_085B320C[gSpecialVar_0x8004]]);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gMoveNames[gUnknown_085B31F8[gSpecialVar_0x8004]]);
+ }
+}
+
+static void sub_813ACE8(u8 a0, u16 a1)
+{
+ static const struct WindowTemplate gUnknown_085B3220 = {
+ .priority = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 7,
+ .width = 12,
+ .height = 6,
+ .paletteNum = 15,
+ .baseBlock = 28,
+ };
+
+ if (a0 == 9 || a0 == 10)
+ {
+ if (gSpecialVar_0x8006 == 0)
+ {
+ gUnknown_0203AB5E = AddWindow(&gUnknown_085B3220);
+ SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0);
+ }
+ sub_813AD34(a0, a1);
+ }
+}
+
+static void sub_813AD34(u8 a0, u16 a1)
+{
+ static const u8 *const gUnknown_085B3228[] = {
+ BattleFrontier_Lounge7_Text_265E30,
+ BattleFrontier_Lounge7_Text_265E5B,
+ BattleFrontier_Lounge7_Text_265E8A,
+ BattleFrontier_Lounge7_Text_265EC0,
+ BattleFrontier_Lounge7_Text_265EED,
+ BattleFrontier_Lounge7_Text_265F1C,
+ BattleFrontier_Lounge7_Text_265F47,
+ BattleFrontier_Lounge7_Text_265F77,
+ BattleFrontier_Lounge7_Text_265FAA,
+ BattleFrontier_Lounge7_Text_265FDD,
+ gText_Exit,
+ };
+
+ static const u8 *const gUnknown_085B3254[] = {
+ BattleFrontier_Lounge7_Text_26600A,
+ BattleFrontier_Lounge7_Text_26603E,
+ BattleFrontier_Lounge7_Text_266070,
+ BattleFrontier_Lounge7_Text_2660A6,
+ BattleFrontier_Lounge7_Text_2660D0,
+ BattleFrontier_Lounge7_Text_2660FF,
+ BattleFrontier_Lounge7_Text_26612D,
+ BattleFrontier_Lounge7_Text_26615F,
+ BattleFrontier_Lounge7_Text_266185,
+ BattleFrontier_Lounge7_Text_2661B5,
+ gText_Exit,
+ };
+
+ if (a0 == 9 || a0 == 10)
+ {
+ FillWindowPixelRect(gUnknown_0203AB5E, 0x11, 0, 0, 96, 48);
+ if (a0 == 10)
+ {
+ PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3254[a1], 0, 1, 0, NULL);
+ }
+ else
+ {
+ PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3228[a1], 0, 1, 0, NULL);
+ }
+ }
+}
+
+void sub_813ADB8(void)
+{
+ sub_8198070(gUnknown_0203AB5E, TRUE);
+ RemoveWindow(gUnknown_0203AB5E);
+}
+
+void sub_813ADD4(void)
+{
+ u16 scrollOffset, selectedRow;
+ u8 i;
+ u8 taskId = FindTaskIdByFunc(sub_813A600);
+ if (taskId != 0xFF)
+ {
+ 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);
+ }
+
+ PrintTextOnWindow(task->data[13], 1, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SPEED_FF, NULL);
+ PutWindowTilemap(task->data[13]);
+ CopyWindowToVram(task->data[13], 3);
+ }
+}
+
+void sub_813AEB4(void)
+{
+ u8 i;
+ u16 temp1 = 0;
+ u16 temp2 = 0;
+ gSpecialVar_0x8005 = 0;
+
+ temp1 = VarGet(VAR_TEMP_E);
+ temp2 = VarGet(VAR_TEMP_D);
+
+ if (temp1 != 0)
+ {
+ i = 0;
+ do
+ {
+ if (gUnknown_0861500C[i] == gUnknown_085B320C[temp2])
+ {
+ gSpecialVar_0x8005 = i;
+ break;
+ }
+ i++;
+ } while (i < 30);
+ }
+ else
+ {
+ i = 0;
+ do
+ {
+ if (gUnknown_0861500C[i] == gUnknown_085B31F8[temp2])
+ {
+ gSpecialVar_0x8005 = i;
+ break;
+ }
+ i++;
+ } while (i < 30);
+ }
+}
+
+void sub_813AF48(void)
+{
+ u8 taskId = FindTaskIdByFunc(sub_813A600);
+ if (taskId != 0xFF)
+ {
+ struct Task *task = &gTasks[taskId];
+ DestroyListMenuTask(task->data[14], NULL, NULL);
+ Free(gUnknown_0203AB64);
+ sub_8198070(task->data[13], TRUE);
+ FillWindowPixelBuffer(task->data[13], 0);
+ ClearWindowTilemap(task->data[13]);
+ CopyWindowToVram(task->data[13], 2);
+ RemoveWindow(task->data[13]);
+ DestroyTask(taskId);
+ }
+}
+
+void sub_813AFC8(void)
+{
+ CreateTask(task_deoxys_sound, 8);
+}
+
+static const u16 gUnknown_085B3280[][16] = {
+ INCBIN_U16("graphics/misc/deoxys1.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys2.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys3.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys4.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys5.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys6.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys7.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys8.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys9.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys10.gbapal"),
+ INCBIN_U16("graphics/misc/deoxys11.gbapal"),
+};
+
+static const u8 gUnknown_085B33E0[][2] = {
+ { 0x0f, 0x0c },
+ { 0x0b, 0x0e },
+ { 0x0f, 0x08 },
+ { 0x13, 0x0e },
+ { 0x0c, 0x0b },
+ { 0x12, 0x0b },
+ { 0x0f, 0x0e },
+ { 0x0b, 0x0e },
+ { 0x13, 0x0e },
+ { 0x0f, 0x0f },
+ { 0x0f, 0x0a },
+};
+
+static void task_deoxys_sound(u8 taskId)
+{
+ static const u8 gUnknown_085B33F6[] = { 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03 };
+
+ if (FlagGet(FLAG_0x8D4) == TRUE)
+ {
+ gSpecialVar_Result = 3;
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ }
+ else
+ {
+ u16 temp1 = VarGet(VAR_0x4035);
+ u16 temp2 = VarGet(VAR_0x4034);
+
+ VarSet(VAR_0x4034, 0);
+ if (temp1 != 0 && gUnknown_085B33F6[temp1 - 1] < temp2)
+ {
+ sub_813B0B4(0);
+ VarSet(VAR_0x4035, 0);
+ gSpecialVar_Result = 0;
+ DestroyTask(taskId);
+ }
+ else if (temp1 == 10)
+ {
+ FlagSet(FLAG_0x8D4);
+ gSpecialVar_Result = 2;
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ }
+ else
+ {
+ temp1++;
+ sub_813B0B4(temp1);
+ VarSet(VAR_0x4035, temp1);
+ gSpecialVar_Result = 1;
+ DestroyTask(taskId);
+ }
+ }
+}
+
+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);
+ }
+ else
+ {
+ PlaySE(SE_RG_DEOMOV);
+ }
+
+ CreateTask(sub_813B160, 8);
+
+ gFieldEffectArguments[0] = 1;
+ gFieldEffectArguments[1] = 58;
+ gFieldEffectArguments[2] = 26;
+ gFieldEffectArguments[3] = gUnknown_085B33E0[a0][0];
+ gFieldEffectArguments[4] = gUnknown_085B33E0[a0][1];
+
+ if (a0 == 0)
+ {
+ gFieldEffectArguments[5] = 60;
+ }
+ else
+ {
+ gFieldEffectArguments[5] = 5;
+ }
+
+ FieldEffectStart(FLDEFF_66);
+ Overworld_SetEventObjTemplateCoords(1, gUnknown_085B33E0[a0][0], gUnknown_085B33E0[a0][1]);
+}
+
+static void sub_813B160(u8 taskId)
+{
+ if (FieldEffectActiveListContains(FLDEFF_66) == FALSE)
+ {
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ }
+}
+
+void increment_var_x4026_on_birth_island_modulo_100(void)
+{
+ u16 var = VarGet(VAR_0x4034);
+ if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(BIRTH_ISLAND_EXTERIOR) && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BIRTH_ISLAND_EXTERIOR))
+ {
+ var++;
+ if (var > 99)
+ {
+ VarSet(VAR_0x4034, 0);
+ }
+ else
+ {
+ VarSet(VAR_0x4034, var);
+ }
+ }
+}
+
+void sub_813B1D0(void)
+{
+ LoadPalette(&gUnknown_085B3280[(u8)VarGet(VAR_0x4035)], 0x1A0, 8);
+ BlendPalettes(0x04000000, 16, 0);
+}
+
+void set_unknown_box_id(u8 id)
+{
+ gUnknown_0203AB6F = id;
+}
+
+u16 get_unknown_box_id(void)
+{
+ return gUnknown_0203AB6F;
+}
+
+bool32 sub_813B21C(void)
+{
+ if (FlagGet(FLAG_SYS_STORAGE_UNKNOWN_FLAG) == FALSE)
+ {
+ if (StorageGetCurrentBox() != VarGet(VAR_STORAGE_UNKNOWN))
+ {
+ FlagSet(FLAG_SYS_STORAGE_UNKNOWN_FLAG);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 sub_813B260(void)
+{
+ int box;
+ int i;
+ set_unknown_box_id(VarGet(VAR_STORAGE_UNKNOWN));
+ box = StorageGetCurrentBox();
+ do
+ {
+ for (i = 0; i < IN_BOX_COUNT; i++)
+ {
+ if (GetBoxMonData(GetBoxedMonPtr(box, i), MON_DATA_SPECIES, 0) == 0)
+ {
+ if (get_unknown_box_id() != box)
+ {
+ FlagClear(FLAG_SYS_STORAGE_UNKNOWN_FLAG);
+ }
+ VarSet(VAR_STORAGE_UNKNOWN, box);
+ return sub_813B21C();
+ }
+ }
+
+ if (++box == TOTAL_BOXES_COUNT)
+ {
+ box = 0;
+ }
+ } while (box != StorageGetCurrentBox());
+ return FALSE;
+}
+
+void sub_813B2E4(void)
+{
+ u16 randomValue = Random();
+ VarSet(VAR_0x4038, 0);
+
+ if (FlagGet(FLAG_0x1BE) == TRUE)
+ {
+ VarSet(VAR_0x4037, (randomValue & 7) + 1);
+ }
+ else if (FlagGet(FLAG_0x1BF) == TRUE)
+ {
+ VarSet(VAR_0x4037, (randomValue & 7) + 9);
+ }
+ else if ((randomValue & 1) == 0)
+ {
+ randomValue = Random();
+ VarSet(VAR_0x4037, (randomValue & 7) + 1);
+ }
+ else
+ {
+ randomValue = Random();
+ VarSet(VAR_0x4037, (randomValue & 7) + 9);
+ }
+}
+
+bool32 sub_813B374(void)
+{
+ static const u8 gUnknown_085B3400[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c };
+
+ u16 var = VarGet(VAR_0x4037);
+
+ GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0);
+
+ if (var < 9)
+ {
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+
+bool32 sub_813B3B0(void)
+{
+ static const u8 gUnknown_085B3410[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c };
+
+ u16 var1 = VarGet(VAR_0x4038);
+ u16 var2 = VarGet(VAR_0x4037);
+
+ if (!var2)
+ {
+ return FALSE;
+ }
+
+ if (++var1 > 999)
+ {
+ VarSet(VAR_0x4038, 0);
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER_MARINE_CAVE))
+ {
+ switch (gSaveBlock1Ptr->location.mapNum)
+ {
+ case MAP_NUM(UNDERWATER_MARINE_CAVE):
+ case MAP_NUM(MARINE_CAVE_ENTRANCE):
+ case MAP_NUM(MARINE_CAVE_END):
+ case MAP_NUM(TERRA_CAVE_ENTRANCE):
+ case MAP_NUM(TERRA_CAVE_END):
+ VarSet(VAR_0x4039, 1);
+ return FALSE;
+ default:
+ break;
+ }
+ }
+
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER3))
+ {
+ switch (gSaveBlock1Ptr->location.mapNum)
+ {
+ case MAP_NUM(UNDERWATER3):
+ case MAP_NUM(UNDERWATER5):
+ case MAP_NUM(UNDERWATER6):
+ case MAP_NUM(UNDERWATER7):
+ VarSet(VAR_0x4039, 1);
+ return FALSE;
+ default:
+ break;
+ }
+ }
+
+ if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3410[var2 - 1] &&
+ gSaveBlock1Ptr->location.mapGroup == 0)
+ {
+ return TRUE;
+ }
+ else
+ {
+ VarSet(VAR_0x4037, 0);
+ return FALSE;
+ }
+ }
+ else
+ {
+ VarSet(VAR_0x4038, var1);
+ return FALSE;
+ }
+}
+
+void sub_813B484(void)
+{
+ sub_80AB104(2);
+}
+
+bool32 sub_813B490(void)
+{
+ static const u8 gUnknown_085B3420[][3] = {
+ { 0x02, 0x04, 0x01 },
+ { 0x04, 0x04, 0x01 },
+ { 0x05, 0x00, 0x01 },
+ { 0x06, 0x03, 0x01 },
+ { 0x08, 0x06, 0x01 },
+ { 0x09, 0x0d, 0x01 },
+ { 0x0a, 0x07, 0x01 },
+ { 0x0b, 0x07, 0x01 },
+ { 0x0c, 0x04, 0x01 },
+ { 0x0e, 0x05, 0x01 },
+ { 0x0f, 0x04, 0x01 },
+ { 0x1a, 0x37, 0x01 }
+ };
+
+ u8 i;
+ for (i = 0; i < 12; i++)
+ {
+ if (gSaveBlock1Ptr->location.mapGroup == gUnknown_085B3420[i][0])
+ {
+ if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3420[i][1])
+ {
+ return gUnknown_085B3420[i][2];
+ }
+ }
+ }
+ return TRUE;
+}
+
+bool32 sub_813B4E0(void)
+{
+ int index = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004);
+ if (index >= 0)
+ {
+ if (FlagGet(FLAG_MATCH_CALL_REGISTERED + index) == TRUE)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool32 sub_813B514(void)
+{
+ if (!VarGet(VAR_0x403F))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_813B534(void)
+{
+ gUnknown_0203AB70 = gBattleTypeFlags;
+ gBattleTypeFlags = 0;
+ if (!gReceivedRemoteLinkPlayers)
+ {
+ CreateTask(sub_80B3AF8, 5);
+ }
+}
+
+void sub_813B568(void)
+{
+ CreateTask(sub_813B57C, 5);
+}
+
+static void sub_813B57C(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (!FuncIsActiveTask(sub_80B3AF8))
+ {
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (sub_800A520() == TRUE)
+ {
+ if (GetMultiplayerId() == 0)
+ {
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_0x8004, 2);
+ gTasks[taskId].data[0]++;
+ }
+ }
+ break;
+ case 2:
+ if ((GetBlockReceivedStatus() & 2) != 0)
+ {
+ if (GetMultiplayerId() == 0)
+ {
+ gSpecialVar_0x8005 = gBlockRecvBuffer[1][0];
+ ResetBlockReceivedFlag(1);
+ if (gSpecialVar_0x8004 == 1 && gSpecialVar_0x8005 == 1)
+ {
+ gSpecialVar_Result = 1;
+ }
+ else if (gSpecialVar_0x8004 == 0 && gSpecialVar_0x8005 == 1)
+ {
+ gSpecialVar_Result = 2;
+ }
+ else if (gSpecialVar_0x8004 == 1 && gSpecialVar_0x8005 == 0)
+ {
+ gSpecialVar_Result = 3;
+ }
+ else
+ {
+ gSpecialVar_Result = 0;
+ }
+ }
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 3:
+ if (sub_800A520() == TRUE)
+ {
+ if (GetMultiplayerId() != 0)
+ {
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_Result, 2);
+ gTasks[taskId].data[0]++;
+ }
+ }
+ break;
+ case 4:
+ if ((GetBlockReceivedStatus() & 1) != 0)
+ {
+ if (GetMultiplayerId() != 0)
+ {
+ gSpecialVar_Result = gBlockRecvBuffer[0][0];
+ ResetBlockReceivedFlag(0);
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ gTasks[taskId].data[0]++;
+ }
+ }
+ break;
+ case 5:
+ if (GetMultiplayerId() == 0)
+ {
+ if (gSpecialVar_Result == 2)
+ {
+ ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired);
+ }
+ }
+ else
+ {
+ if (gSpecialVar_Result == 3)
+ {
+ ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired);
+ }
+ }
+ gTasks[taskId].data[0]++;
+ break;
+ case 6:
+ if (!IsTextPrinterActive(0))
+ {
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 7:
+ if (sub_800A520() == 1)
+ {
+ sub_800ADF8();
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 8:
+ if (sub_800A520() == 1)
+ {
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 9:
+ if (gWirelessCommType == 0)
+ {
+ sub_800AC34();
+ }
+ gBattleTypeFlags = gUnknown_0203AB70;
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void sub_813B7D8(void)
+{
+ if (gSpecialVar_0x8004 == 0)
+ {
+ DoRayquazaScene(0, TRUE, CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ }
+ else
+ {
+ DoRayquazaScene(1, FALSE, CB2_ReturnToFieldContinueScriptPlayMapMusic);
+ }
+}
+
+void sub_813B80C(void)
+{
+ CreateTask(sub_813B824, 8);
+ PlaySE(SE_W017);
+}
+
+static void sub_813B824(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ data[1]++;
+ if (data[1] == gSpecialVar_0x8005)
+ {
+ data[0]++;
+ data[1] = 0;
+ PlaySE(SE_W017);
+ }
+
+ if (data[0] == gSpecialVar_0x8004 - 1)
+ {
+ DestroyTask(taskId);
+ }
+}
+
+void sub_813B880(void)
+{
+ u8 taskId = CreateTask(_fwalk, 8);
+ gTasks[taskId].data[0] = 4;
+ gTasks[taskId].data[1] = 4;
+ gTasks[taskId].data[2] = 4;
+ gTasks[taskId].data[3] = 0;
+}
+
+static void _fwalk(u8 taskId)
+{
+ u8 x, y;
+ s16 *data = gTasks[taskId].data;
+
+ data[data[3]]--;
+ if (data[data[3]] == 0)
+ {
+ for (y = 0; y < 4; y++)
+ {
+ for (x = 0; x < 3; x++)
+ {
+ MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + x + 6, gSaveBlock1Ptr->pos.y + y + 4, x + 0x201 + y * 8 + data[3] * 32);
+ }
+ }
+ DrawWholeMapView();
+ data[3]++;
+ if (data[3] == 3)
+ {
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+ }
+}
+
+void sub_813B968(void)
+{
+ gSpecialVar_Result = gSpecialVar_0x8004 / 7;
+ gSpecialVar_Result -= (gSpecialVar_Result / 20) * 20;
+}
+
+void sub_813B9A0(void)
+{
+ if (gSaveBlock1Ptr->lastHealLocation.mapGroup == MAP_GROUP(DEWFORD_TOWN) && gSaveBlock1Ptr->lastHealLocation.mapNum == MAP_NUM(DEWFORD_TOWN))
+ {
+ Overworld_SetHealLocationWarp(3);
+ }
+}
+
+bool32 sub_813B9C0(void)
+{
+ static const u16 gUnknown_085B3444[] = {
+ MAP_OLDALE_TOWN_POKEMON_CENTER_1F,
+ MAP_DEWFORD_TOWN_POKEMON_CENTER_1F,
+ MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F,
+ MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F,
+ MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F,
+ MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F,
+ MAP_PETALBURG_CITY_POKEMON_CENTER_1F,
+ MAP_SLATEPORT_CITY_POKEMON_CENTER_1F,
+ MAP_MAUVILLE_CITY_POKEMON_CENTER_1F,
+ MAP_RUSTBORO_CITY_POKEMON_CENTER_1F,
+ MAP_FORTREE_CITY_POKEMON_CENTER_1F,
+ MAP_LILYCOVE_CITY_POKEMON_CENTER_1F,
+ MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F,
+ MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F,
+ MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F,
+ MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F,
+ MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F,
+ MAP_SINGLE_BATTLE_COLOSSEUM,
+ MAP_TRADE_CENTER,
+ MAP_RECORD_CORNER,
+ MAP_DOUBLE_BATTLE_COLOSSEUM,
+ 0xffff
+ };
+
+ int i;
+ u16 map = (gSaveBlock1Ptr->location.mapGroup << 8) + gSaveBlock1Ptr->location.mapNum;
+
+ for (i = 0; gUnknown_085B3444[i] != 0xFFFF; i++)
+ {
+ if (gUnknown_085B3444[i] == map)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void ResetFanClub(void)
+{
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] = 0;
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = 0;
+}
+
+void sub_813BA30(void)
+{
+ if (sub_813BF44() != 0)
+ {
+ UpdateMovedLilycoveFanClubMembers();
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2Ptr->playTimeHours;
+ }
+}
+
+void sub_813BA60(void)
+{
+ if (!((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> 7) & 1))
+ {
+ sub_813BF60();
+ sub_813BD84();
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2Ptr->playTimeHours;
+ FlagClear(FLAG_HIDE_FANCLUB_OLD_LADY);
+ FlagClear(FLAG_HIDE_FANCLUB_BOY);
+ FlagClear(FLAG_HIDE_FANCLUB_LITTLE_BOY);
+ FlagClear(FLAG_HIDE_FANCLUB_LADY);
+ FlagClear(FLAG_0x2DA);
+ VarSet(VAR_LILYCOVE_FAN_CLUB_STATE, 1);
+ }
+}
+
+u8 sub_813BADC(u8 a0)
+{
+ static const u8 gUnknown_085B3470[] = { 0x02, 0x01, 0x02, 0x01 };
+
+ if (VarGet(VAR_LILYCOVE_FAN_CLUB_STATE) == 2)
+ {
+ if ((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0x7F) + gUnknown_085B3470[a0] > 19)
+ {
+ if (GetNumMovedLilycoveFanClubMembers() < 3)
+ {
+ sub_813BB74();
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] &= 0xFF80;
+ }
+ else
+ {
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] = (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0xFF80) | 0x14;
+ }
+ }
+ else
+ {
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] += gUnknown_085B3470[a0];
+ }
+ }
+
+ return gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0x7F;
+}
+
+static u16 sub_813BB74(void)
+{
+ static const u8 gUnknown_085B3474[] = { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };
+
+ u8 i;
+ u8 retVal = 0;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (!((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B3474[i]) & 1))
+ {
+ retVal = i;
+ if ((Random() & 1) != 0)
+ {
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 1 << gUnknown_085B3474[retVal];
+ return retVal;
+ }
+ }
+ }
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 1 << gUnknown_085B3474[retVal];
+ return retVal;
+}
+
+static u16 sub_813BC00(void)
+{
+ static const u8 gUnknown_085B347C[] = { 0x08, 0x0d, 0x0e, 0x0b, 0x0a, 0x0c, 0x0f, 0x09 };
+
+ u8 i;
+ u8 retVal = 0;
+
+ if (GetNumMovedLilycoveFanClubMembers() == 1)
+ {
+ return 0;
+ }
+
+ for (i = 0; i < 8; i++)
+ {
+ if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_085B347C[i]) & 1) != 0)
+ {
+ retVal = i;
+ if ((Random() & 1) != 0)
+ {
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] ^= 1 << gUnknown_085B347C[retVal];
+ return retVal;
+ }
+ }
+ }
+
+ 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];
+ }
+
+ return retVal;
+}
+
+u16 GetNumMovedLilycoveFanClubMembers(void)
+{
+ u8 i;
+ u8 retVal = 0;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (((gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> (i + 8)) & 1) != 0)
+ {
+ retVal++;
+ }
+ }
+
+ return retVal;
+}
+
+void UpdateMovedLilycoveFanClubMembers(void)
+{
+ u8 i = 0;
+ if (gSaveBlock2Ptr->playTimeHours < 999)
+ {
+ while (TRUE)
+ {
+ if (GetNumMovedLilycoveFanClubMembers() < 5)
+ {
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2Ptr->playTimeHours;
+ break;
+ }
+ else if (i == 8)
+ {
+ break;
+ }
+ else if (gSaveBlock2Ptr->playTimeHours - gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] < 12)
+ {
+ return;
+ }
+ sub_813BC00();
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] += 12;
+ i++;
+ }
+ }
+}
+
+bool8 ShouldMoveLilycoveFanClubMember(void)
+{
+ return (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gSpecialVar_0x8004) & 1;
+}
+
+static void sub_813BD84(void)
+{
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x2000;
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x100;
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x400;
+}
+
+void BufferStreakTrainerText(void)
+{
+ u8 a = 0;
+ u8 b = 0;
+ switch (gSpecialVar_0x8004)
+ {
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ a = 0;
+ b = 3;
+ break;
+ case 11:
+ a = 0;
+ b = 1;
+ break;
+ case 12:
+ a = 1;
+ b = 0;
+ break;
+ case 13:
+ a = 0;
+ b = 4;
+ break;
+ case 14:
+ a = 1;
+ b = 5;
+ break;
+ case 15:
+ break;
+ }
+ sub_813BE30(&gSaveBlock1Ptr->linkBattleRecords, a, b);
+}
+
+static void sub_813BE30(struct LinkBattleRecords *linkRecords, u8 a, u8 b)
+{
+ struct LinkBattleRecord *record = &linkRecords->entries[a];
+ if (record->name[0] == EOS)
+ {
+ switch (b)
+ {
+ case 0:
+ StringCopy(gStringVar1, gText_Wallace);
+ break;
+ case 1:
+ StringCopy(gStringVar1, gText_Steven);
+ break;
+ case 2:
+ StringCopy(gStringVar1, gText_Brawly);
+ break;
+ case 3:
+ StringCopy(gStringVar1, gText_Winona);
+ break;
+ case 4:
+ StringCopy(gStringVar1, gText_Phoebe);
+ break;
+ case 5:
+ StringCopy(gStringVar1, gText_Glacia);
+ break;
+ default:
+ StringCopy(gStringVar1, gText_Wallace);
+ break;
+ }
+ }
+ else
+ {
+ StringCopyN(gStringVar1, record->name, 7);
+ gStringVar1[7] = EOS;
+ ConvertInternationalString(gStringVar1, linkRecords->languages[a]);
+ }
+}
+
+void sub_813BF10(void)
+{
+ if (VarGet(VAR_LILYCOVE_FAN_CLUB_STATE) == 2)
+ {
+ sub_813BA30();
+ if (gBattleOutcome == 1)
+ {
+ sub_813BB74();
+ }
+ else
+ {
+ sub_813BC00();
+ }
+ }
+}
+
+static bool8 sub_813BF44(void)
+{
+ return (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> 7) & 1;
+}
+
+void sub_813BF60(void)
+{
+ gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x80;
+}
+
+u8 sub_813BF7C(void)
+{
+ return sub_813BADC(gSpecialVar_0x8004);
+}
diff --git a/src/heal_location.c b/src/heal_location.c
index aa90fe1ae..b378e8e8c 100644
--- a/src/heal_location.c
+++ b/src/heal_location.c
@@ -1,83 +1,37 @@
-
-// Includes
#include "global.h"
-#include "constants/maps.h"
#include "heal_location.h"
+#include "constants/maps.h"
-#define HEAL_LOCATION(map, x, y) {MAP_GROUP(map), MAP_NUM(map), x, y}
-
-// Static type declarations
-
-// Static RAM declarations
-
-// Static ROM declarations
-
-// .rodata
-
-static const struct HealLocation sHealLocations[] = {
- HEAL_LOCATION(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 4, 2),
- HEAL_LOCATION(LITTLEROOT_TOWN_MAYS_HOUSE_2F, 4, 2),
- HEAL_LOCATION(PETALBURG_CITY, 20, 17),
- HEAL_LOCATION(SLATEPORT_CITY, 19, 20),
- HEAL_LOCATION(MAUVILLE_CITY, 22, 6),
- HEAL_LOCATION(RUSTBORO_CITY, 16, 39),
- HEAL_LOCATION(FORTREE_CITY, 5, 7),
- HEAL_LOCATION(LILYCOVE_CITY, 24, 15),
- HEAL_LOCATION(MOSSDEEP_CITY, 28, 17),
- HEAL_LOCATION(SOOTOPOLIS_CITY, 43, 32),
- HEAL_LOCATION(EVER_GRANDE_CITY, 27, 49),
- HEAL_LOCATION(LITTLEROOT_TOWN, 5, 9),
- HEAL_LOCATION(LITTLEROOT_TOWN, 14, 9),
- HEAL_LOCATION(OLDALE_TOWN, 6, 17),
- HEAL_LOCATION(DEWFORD_TOWN, 2, 11),
- HEAL_LOCATION(LAVARIDGE_TOWN, 9, 7),
- HEAL_LOCATION(FALLARBOR_TOWN, 14, 8),
- HEAL_LOCATION(VERDANTURF_TOWN, 16, 4),
- HEAL_LOCATION(PACIFIDLOG_TOWN, 8, 16),
- HEAL_LOCATION(EVER_GRANDE_CITY, 18, 6),
- HEAL_LOCATION(SOUTHERN_ISLAND_EXTERIOR, 15, 20),
- HEAL_LOCATION(BATTLE_FRONTIER_OUTSIDE_EAST, 3, 52)
-};
-
-#define NUM_HEAL_LOCATIONS (ARRAY_COUNT(sHealLocations))
-
-// .text
+#include "data/heal_locations.h"
-static u32 GetHealLocationIndexFromMapGroupAndNum(u16 mapGroup, u16 mapNum)
+u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum)
{
u32 i;
- for (i = 0; i < NUM_HEAL_LOCATIONS; i++)
+ for (i = 0; i < ARRAY_COUNT(sHealLocations); i++)
{
if (sHealLocations[i].group == mapGroup && sHealLocations[i].map == mapNum)
- {
return i + 1;
- }
}
return 0;
}
-const struct HealLocation *GetHealLocationPointerFromMapGroupAndNum(u16 mapGroup, u16 mapNum)
+const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum)
{
- u32 loc;
+ u32 index = GetHealLocationIndexByMap(mapGroup, mapNum);
- loc = GetHealLocationIndexFromMapGroupAndNum(mapGroup, mapNum);
- if (loc == 0)
- {
+ if (index == 0)
return NULL;
- }
- return &sHealLocations[loc - 1];
+ else
+ return &sHealLocations[index - 1];
}
-const struct HealLocation *GetHealLocationPointer(u32 loc)
+const struct HealLocation *GetHealLocation(u32 index)
{
- if (loc == 0)
- {
+ if (index == 0)
return NULL;
- }
- if (loc > NUM_HEAL_LOCATIONS)
- {
+ else if (index > ARRAY_COUNT(sHealLocations))
return NULL;
- }
- return &sHealLocations[loc - 1];
+ else
+ return &sHealLocations[index - 1];
}
diff --git a/src/main_menu.c b/src/main_menu.c
index 87673c9b2..3afe1abe5 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -1965,7 +1965,7 @@ void sub_80323CC(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f)
{
struct WindowTemplate sp;
- sp = sub_8198A50(0, a + 1, b + 1, 5, 4, f, d);
+ sp = CreateWindowTemplate(0, a + 1, b + 1, 5, 4, f, d);
CreateYesNoMenu(&sp, c, e, 0);
}
diff --git a/src/match_call.c b/src/match_call.c
index aa6945161..99eb6d65a 100644
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -360,7 +360,7 @@ MATCHCALLDEF(sMomMatchCallHeader, 0, 0, FLAG_0x0D8, gMomMatchCallDesc, gMomMatch
static const match_call_text_data_t sStevenTextScripts[] = {
{ gText_Steven_Pokenav_2B5B95, 0xffff, 0xffff },
- { gText_Steven_Pokenav_2B5C53, FLAG_0x0C7, 0xffff },
+ { gText_Steven_Pokenav_2B5C53, FLAG_RUSTURF_TUNNEL_OPENED, 0xffff },
{ gText_Steven_Pokenav_2B5CC9, FLAG_0x0D4, 0xffff },
{ gText_Steven_Pokenav_2B5DB4, FLAG_0x070, 0xffff },
{ gText_Steven_Pokenav_2B5E26, FLAG_0x4F6, 0xffff },
@@ -415,7 +415,7 @@ MATCHCALLDEF(sBrendanMatchCallHeader, 4, FEMALE, FLAG_0x0FD, gMayBrendanMatchCal
static const match_call_text_data_t sWallyTextScripts[] = {
{ gText_Wally_Pokenav_2B4DE2, 0xFFFF, 0xFFFF },
- { gText_Wally_Pokenav_2B4E57, FLAG_0x0C7, 0xFFFF },
+ { gText_Wally_Pokenav_2B4E57, FLAG_RUSTURF_TUNNEL_OPENED, 0xFFFF },
{ gText_Wally_Pokenav_2B4EA5, FLAG_0x4F3, 0xFFFF },
{ gText_Wally_Pokenav_2B4F41, FLAG_0x097, 0xFFFF },
{ gText_Wally_Pokenav_2B4FF3, FLAG_0x06F, 0xFFFF },
diff --git a/src/menu.c b/src/menu.c
index 96dda3075..f4ffec023 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -120,7 +120,6 @@ extern void DrawWindowBorder(u8, u8, u8, u8, u8, u8);
extern void sub_81980A8(u8, u8, u8, u8, u8, u8);
extern u8 MoveMenuCursor(s8);
extern u8 sub_8199134(s8, s8);
-extern void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing);
extern void sub_8198C78(void);
extern void task_free_buf_after_copying_tile_data_to_vram(u8 taskId);
@@ -1143,7 +1142,7 @@ void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8
template->baseBlock = baseBlock;
}
-struct WindowTemplate sub_8198A50(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
+struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
{
struct WindowTemplate template;
SetWindowTemplateFields(&template, bg, left, top, width, height, paletteNum, baseBlock);
diff --git a/src/overworld.c b/src/overworld.c
index 772f8a057..d85af9e4d 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -689,7 +689,7 @@ void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused)
void sub_8084CCC(u8 a1)
{
- const struct HealLocation *warp = GetHealLocationPointer(a1);
+ const struct HealLocation *warp = GetHealLocation(a1);
if (warp)
Overworld_SetWarpDestination(warp->group, warp->map, -1, warp->x, warp->y);
@@ -702,7 +702,7 @@ void Overworld_SetWarpDestToLastHealLoc(void)
void Overworld_SetHealLocationWarp(u8 healLocationId)
{
- const struct HealLocation *healLocation = GetHealLocationPointer(healLocationId);
+ const struct HealLocation *healLocation = GetHealLocation(healLocationId);
if (healLocation != NULL)
SetWarpData(&gSaveBlock1Ptr->lastHealLocation, healLocation->group, healLocation->map, -1, healLocation->x, healLocation->y);
@@ -761,7 +761,7 @@ void sub_8084F2C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
void sub_8084F6C(u8 a1)
{
- const struct HealLocation *warp = GetHealLocationPointer(a1);
+ const struct HealLocation *warp = GetHealLocation(a1);
if (warp)
SetWarpData(&gSaveBlock1Ptr->warp1, warp->group, warp->map, -1, warp->x, warp->y);
}
diff --git a/src/pokemon.c b/src/pokemon.c
index cd7e45758..7c010cd39 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -2089,7 +2089,7 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon)
s32 level = GetLevelFromBoxMonExp(boxMon);
s32 i;
- for (i = 0; gLevelUpLearnsets[species][i] != (u16)-1; i++)
+ for (i = 0; gLevelUpLearnsets[species][i] != LEVEL_UP_END; i++)
{
u16 moveLevel;
u16 move;
@@ -2101,7 +2101,7 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon)
move = (gLevelUpLearnsets[species][i] & 0x1FF);
- if (GiveMoveToBoxMon(boxMon, move) == (u16)-1)
+ if (GiveMoveToBoxMon(boxMon, move) == 0xFFFF)
DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, move);
}
}
@@ -2123,7 +2123,7 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove)
while ((gLevelUpLearnsets[species][sLearningMoveTableID] & 0xFE00) != (level << 9))
{
sLearningMoveTableID++;
- if (gLevelUpLearnsets[species][sLearningMoveTableID] == 0xFFFF)
+ if (gLevelUpLearnsets[species][sLearningMoveTableID] == LEVEL_UP_END)
return 0;
}
}
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
index 7f8c24ab7..7c622c223 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon_storage_system.c
@@ -7,17 +7,49 @@
#include "text.h"
#include "strings.h"
#include "window.h"
+#include "menu.h"
+#include "bg.h"
+#include "main.h"
+#include "palette.h"
+#include "overworld.h"
+#include "field_screen.h"
+#include "field_weather.h"
+#include "script.h"
+#include "international_string_util.h"
+#include "walda_phrase.h"
+#include "sound.h"
+#include "gpu_regs.h"
+#include "constants/songs.h"
IWRAM_DATA u8 gUnknown_03000F78[0x188];
-struct OptionAndDescription
-{
- const u8 *optionTxt;
- const u8 *descriptionTxt;
-};
+extern const u8 gText_PartyFull[];
+extern const u8 gText_Box[];
+extern const u8 gText_JustOnePkmn[];
+
+extern u8 gUnknown_02039D00;
+
+// This file's functions.
+void StorageSystemCreatePrimaryMenu(u8 whichMenu, s16 *windowIdPtr);
+void sub_80C7D74(u8);
+u8 sub_80CAEA0(void);
+void SetBoxWallpaper(u8 boxId, u8 wallpaperId);
+void SetCurrentBox(u8 boxId);
+void ClearMonInBox(u8 boxId, u8 boxPos);
+void ResetWaldaWallpaper(void);
+void sub_80C7958(u8 curBox);
+void sub_80C7B14(void);
+void sub_80C7BB4(void);
+void sub_80CA028(void);
+void sub_80C7B80(void);
+void sub_80D2AA4(void);
+void sub_80C7BE4(void);
+void sub_80CAA14(void);
+void sub_80C7CF4(struct Sprite *sprite);
+struct Sprite *sub_80CD2E8(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority);
// const rom data
-const struct OptionAndDescription gUnknown_085716C0[] =
+const struct PSS_MenuStringPtrs gUnknown_085716C0[] =
{
{gText_WithdrawPokemon, gText_WithdrawMonDescription},
{gText_DepositPokemon, gText_DepositMonDescription},
@@ -74,6 +106,10 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_8571730[] =
const u8 gUnknown_08571734[] = {4, 0xF, 0xE};
const u8 gUnknown_08571737[] = _("/30");
+const u16 gBoxSelectionPopupPalette[] = INCBIN_U16("graphics/unknown/unknown_57173C.gbapal");
+const u8 gBoxSelectionPopupCenterTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_center.4bpp");
+const u8 gBoxSelectionPopupSidesTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_sides.4bpp");
+
// code
u8 CountMonsInBox(u8 boxId)
{
@@ -166,24 +202,473 @@ static u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n)
return str;
}
-/* can't match
-static void sub_80C7128(u16 *dst, u16 dstToAdd, u16 dstToMul, const u16 *src, u16 srcToAdd, u16 srcToMul, u32 size, u16 count, u16 srcBy)
+static void sub_80C7128(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src, u16 src_left, u16 src_top, u16 dest_width, u16 dest_height, u16 src_width)
+{
+ u16 i;
+
+ dest_width *= 2;
+ dest += dest_top * 0x20 + dest_left;
+ src += src_top * src_width + src_left;
+ for (i = 0; i < dest_height; i++)
+ {
+ CpuCopy16(src, dest, dest_width);
+ dest += 0x20;
+ src += src_width;
+ }
+}
+
+#define MAX_DMA_BLOCK_SIZE 0x1000
+#define Dma3FillLarge_(value, dest, size, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ if (_size <= MAX_DMA_BLOCK_SIZE) \
+ { \
+ DmaFill##bit(3, value, _dest, _size); \
+ break; \
+ } \
+ DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \
+ _dest += MAX_DMA_BLOCK_SIZE; \
+ _size -= MAX_DMA_BLOCK_SIZE; \
+ } \
+}
+
+#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16)
+#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32)
+
+void sub_80C71A4(u16 *dest, u16 dest_left, u16 dest_top, u16 width, u16 height)
+{
+ u16 i;
+
+ dest += dest_top * 0x20 + dest_left;
+ width *= 2;
+ for (i = 0; i < height; dest += 0x20, i++)
+ Dma3FillLarge16_(0, dest, width);
+}
+
+void Task_PokemonStorageSystem(u8 taskId)
+{
+ struct Task *task = gTasks + taskId;
+ switch (task->data[0])
+ {
+ case 0:
+ StorageSystemCreatePrimaryMenu(task->data[1], &task->data[15]);
+ sub_81973A4();
+ NewMenuHelpers_DrawDialogueFrame(0, 0);
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, TEXT_SPEED_FF, NULL, 2, 1, 3);
+ CopyWindowToVram(0, 3);
+ CopyWindowToVram(task->data[15], 3);
+ task->data[0]++;
+ break;
+ case 1:
+ if (IsWeatherNotFadingIn())
+ {
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ task->data[2] = ProcessMenuInput();
+ switch(task->data[2])
+ {
+ case -2:
+ task->data[3] = task->data[1];
+ if (gMain.newKeys & DPAD_UP && --task->data[3] < 0)
+ task->data[3] = 4;
+
+ if (gMain.newKeys & DPAD_DOWN && ++task->data[3] > 4)
+ task->data[3] = 0;
+ if (task->data[1] != task->data[3])
+ {
+ task->data[1] = task->data[3];
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
+ }
+ break;
+ case -1:
+ case 4:
+ sub_819746C(task->data[15], TRUE);
+ ScriptContext2_Disable();
+ EnableBothScriptContexts();
+ RemoveWindow(task->data[15]);
+ DestroyTask(taskId);
+ break;
+ default:
+ if (task->data[2] == 0 && CountPartyMons() == PARTY_SIZE)
+ {
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gText_PartyFull, 0, NULL, 2, 1, 3);
+ task->data[0] = 3;
+ }
+ else if (task->data[2] == 1 && CountPartyMons() == 1)
+ {
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gText_JustOnePkmn, 0, NULL, 2, 1, 3);
+ task->data[0] = 3;
+ }
+ else
+ {
+ FadeScreen(1, 0);
+ task->data[0] = 4;
+ }
+ break;
+ }
+ break;
+ case 3:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
+ task->data[0] = 2;
+ }
+ else if (gMain.newKeys & DPAD_UP)
+ {
+ if (--task->data[1] < 0)
+ task->data[1] = 4;
+ MoveMenuCursor(-1);
+ task->data[1] = GetMenuCursorPos();
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
+ task->data[0] = 2;
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ if (++task->data[1] > 3)
+ task->data[1] = 0;
+ MoveMenuCursor(1);
+ task->data[1] = GetMenuCursorPos();
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
+ task->data[0] = 2;
+ }
+ break;
+ case 4:
+ if (!gPaletteFade.active)
+ {
+ overworld_free_bg_tilemaps();
+ sub_80C7D74(task->data[2]);
+ RemoveWindow(task->data[15]);
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+void ShowPokemonStorageSystem(void)
+{
+ u8 taskId = CreateTask(Task_PokemonStorageSystem, 80);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ ScriptContext2_Enable();
+}
+
+void mapldr_0808C6D8(void)
+{
+ u8 taskId;
+ MainCallback vblankCb = gMain.vblankCallback;
+
+ SetVBlankCallback(NULL);
+ taskId = CreateTask(Task_PokemonStorageSystem, 80);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = gUnknown_02039D00;
+ Task_PokemonStorageSystem(taskId);
+ SetVBlankCallback(vblankCb);
+ pal_fill_black();
+}
+
+void StorageSystemCreatePrimaryMenu(u8 whichMenu, s16 *windowIdPtr)
+{
+ s16 windowId;
+ struct WindowTemplate winTemplate = gUnknown_085716E8;
+ winTemplate.width = GetMaxWidthInMenuTable((void *)gUnknown_085716C0, ARRAY_COUNT(gUnknown_085716C0));
+ windowId = AddWindow(&winTemplate);
+
+ NewMenuHelpers_DrawStdWindowFrame(windowId, FALSE);
+ PrintMenuTable(windowId, ARRAY_COUNT(gUnknown_085716C0), (void *)gUnknown_085716C0);
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, ARRAY_COUNT(gUnknown_085716C0), whichMenu);
+ *windowIdPtr = windowId;
+}
+
+void sub_80C7678(void)
+{
+ gUnknown_02039D00 = sub_80CAEA0();
+ gFieldCallback = mapldr_0808C6D8;
+ SetMainCallback2(CB2_ReturnToField);
+}
+
+s16 StorageSystemGetNextMonIndex(struct BoxPokemon *box, s8 startIdx, u8 stopIdx, u8 mode)
+{
+ s16 i;
+ s16 direction;
+ if (mode == 0 || mode == 1)
+ {
+ direction = 1;
+ }
+ else
+ {
+ direction = -1;
+ }
+ if (mode == 1 || mode == 3)
+ {
+ for (i = startIdx + direction; i >= 0 && i <= stopIdx; i += direction)
+ {
+ if (GetBoxMonData(box + i, MON_DATA_SPECIES) != 0)
+ return i;
+ }
+ }
+ else
+ {
+ for (i = startIdx + direction; i >= 0 && i <= stopIdx; i += direction)
+ {
+ if (GetBoxMonData(box + i, MON_DATA_SPECIES) != 0 && !GetBoxMonData(box + i, MON_DATA_IS_EGG))
+ return i;
+ }
+ }
+ return -1;
+}
+
+void ResetPokemonStorageSystem(void)
+{
+ u16 boxId;
+ u16 boxMon;
+
+ SetCurrentBox(0);
+ for (boxId = 0; boxId < TOTAL_BOXES_COUNT; boxId++)
+ {
+ for (boxMon = 0; boxMon < IN_BOX_COUNT; boxMon++)
+ ClearMonInBox(boxId, boxMon);
+ }
+ for (boxId = 0; boxId < TOTAL_BOXES_COUNT; boxId++)
+ {
+ u8 *dest = StringCopy(GetBoxNamePtr(boxId), gText_Box);
+ ConvertIntToDecimalStringN(dest, boxId + 1, STR_CONV_MODE_LEFT_ALIGN, 2);
+ }
+ for (boxId = 0; boxId < TOTAL_BOXES_COUNT; boxId++)
+ {
+ SetBoxWallpaper(boxId, boxId % 4);
+ }
+ ResetWaldaWallpaper();
+}
+
+void sub_80C77E8(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal)
+{
+ struct SpritePalette palette =
+ {
+ gBoxSelectionPopupPalette, palTag
+ };
+ struct SpriteSheet sheets[] =
+ {
+ {gBoxSelectionPopupCenterTiles, 0x800, tileTag},
+ {gBoxSelectionPopupSidesTiles, 0x180, tileTag + 1},
+ {}
+ };
+
+ if (loadPal)
+ LoadSpritePalette(&palette);
+
+ LoadSpriteSheets(sheets);
+ gUnknown_02039D04 = a0;
+ a0->unk_0240 = tileTag;
+ a0->unk_0242 = palTag;
+ a0->unk_0246 = a3;
+ a0->unk_023c = loadPal;
+}
+
+void sub_80C7890(void)
+{
+ if (gUnknown_02039D04->unk_023c)
+ FreeSpritePaletteByTag(gUnknown_02039D04->unk_0242);
+ FreeSpriteTilesByTag(gUnknown_02039D04->unk_0240);
+ FreeSpriteTilesByTag(gUnknown_02039D04->unk_0240 + 1);
+}
+
+void sub_80C78D4(u8 curBox)
+{
+ sub_80C7958(curBox);
+}
+
+void sub_80C78E4(void)
+{
+ sub_80C7B14();
+}
+
+u8 sub_80C78F0(void)
+{
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ return 201;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ return gUnknown_02039D04->curBox;
+ }
+ if (gMain.newKeys & DPAD_LEFT)
+ {
+ PlaySE(SE_SELECT);
+ sub_80C7BB4();
+ }
+ else if (gMain.newKeys & DPAD_RIGHT)
+ {
+ PlaySE(SE_SELECT);
+ sub_80C7B80();
+ }
+ return 200;
+}
+
+void sub_80C7958(u8 curBox)
{
u16 i;
+ u8 spriteId;
+ struct SpriteTemplate template;
+ struct OamData oamData = {};
+ oamData.size = 3;
+ oamData.paletteNum = 1;
+ template = (struct SpriteTemplate){
+ 0, 0, &oamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ };
+
+ gUnknown_02039D04->curBox = curBox;
+ template.tileTag = gUnknown_02039D04->unk_0240;
+ template.paletteTag = gUnknown_02039D04->unk_0242;
+
+ spriteId = CreateSprite(&template, 0xA0, 0x60, 0);
+ gUnknown_02039D04->unk_0000 = gSprites + spriteId;
+
+ oamData.shape = ST_OAM_V_RECTANGLE;
+ oamData.size = 1;
+ template.tileTag = gUnknown_02039D04->unk_0240 + 1;
+ template.anims = sSpriteAnimTable_8571710;
+ for (i = 0; i < 4; i++)
+ {
+ u16 r5;
+ spriteId = CreateSprite(&template, 0x7c, 0x50, gUnknown_02039D04->unk_0246);
+ gUnknown_02039D04->unk_0004[i] = gSprites + spriteId;
+ r5 = 0;
+ if (i & 2)
+ {
+ gUnknown_02039D04->unk_0004[i]->pos1.x = 0xc4;
+ r5 = 2;
+ }
+ if (i & 1)
+ {
+ gUnknown_02039D04->unk_0004[i]->pos1.y = 0x70;
+ gUnknown_02039D04->unk_0004[i]->oam.size = 0;
+ r5++;
+ }
+ StartSpriteAnim(gUnknown_02039D04->unk_0004[i], r5);
+ }
+ for (i = 0; i < 2; i++)
+ {
+ gUnknown_02039D04->unk_0020[i] = sub_80CD2E8(72 * i + 0x7c, 0x58, i, 0, gUnknown_02039D04->unk_0246);
+ if (gUnknown_02039D04->unk_0020[i])
+ {
+ gUnknown_02039D04->unk_0020[i]->data[0] = (i == 0 ? -1 : 1);
+ gUnknown_02039D04->unk_0020[i]->callback = sub_80C7CF4;
+ }
+ }
+ sub_80C7BE4();
+}
+
+void sub_80C7B14(void)
+{
+ u16 i;
+ if (gUnknown_02039D04->unk_0000)
+ {
+ DestroySprite(gUnknown_02039D04->unk_0000);
+ gUnknown_02039D04->unk_0000 = NULL;
+ }
+ for (i = 0; i < 4; i++)
+ {
+ if (gUnknown_02039D04->unk_0004[i])
+ {
+ DestroySprite(gUnknown_02039D04->unk_0004[i]);
+ gUnknown_02039D04->unk_0004[i] = NULL;
+ }
+ }
+ for (i = 0; i < 2; i++)
+ {
+ if (gUnknown_02039D04->unk_0020[i])
+ DestroySprite(gUnknown_02039D04->unk_0020[i]);
+ }
+}
- size <<= 0x11;
- dst += (dstToMul * 32) + dstToAdd;
- src += (srcToMul * srcBy) + srcToAdd;
+void sub_80C7B80(void)
+{
+ if (++gUnknown_02039D04->curBox >= TOTAL_BOXES_COUNT)
+ gUnknown_02039D04->curBox = 0;
+ sub_80C7BE4();
+}
+
+void sub_80C7BB4(void)
+{
+ gUnknown_02039D04->curBox = (gUnknown_02039D04->curBox == 0 ? TOTAL_BOXES_COUNT - 1 : gUnknown_02039D04->curBox - 1);
+ sub_80C7BE4();
+}
- i = 0;
- if (i < count)
+void sub_80C7BE4(void)
+{
+ u8 text[16];
+ struct WindowTemplate winTemplate;
+ u8 windowId;
+ u8 *boxName = GetBoxNamePtr(gUnknown_02039D04->curBox);
+ u8 nPokemonInBox = CountMonsInBox(gUnknown_02039D04->curBox);
+ u32 winTileData;
+ s32 center;
+
+ memset(&winTemplate, 0, sizeof(winTemplate));
+ winTemplate.width = 8;
+ winTemplate.height = 4;
+
+ windowId = AddWindow(&winTemplate);
+ FillWindowPixelBuffer(windowId, 0x44);
+
+ center = GetStringCenterAlignXOffset(1, boxName, 0x40);
+ box_print(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName);
+
+ ConvertIntToDecimalStringN(text, nPokemonInBox, 1, 2);
+ StringAppend(text, gUnknown_08571737);
+ center = GetStringCenterAlignXOffset(1, text, 0x40);
+ box_print(windowId, 1, center, 0x11, gUnknown_08571734, TEXT_SPEED_FF, text);
+
+ winTileData = GetWindowAttribute(windowId, WINDOW_TILE_DATA);
+ CpuCopy32((void *)winTileData, (void *)OBJ_VRAM0 + 0x100 + (GetSpriteTileStartByTag(gUnknown_02039D04->unk_0240) * 32), 0x400);
+
+ RemoveWindow(windowId);
+}
+
+void sub_80C7CF4(struct Sprite *sprite)
+{
+ if (++sprite->data[1] > 3)
{
- size >>= 1;
- for (i = 0; i < count; i++)
+ sprite->data[1] = 0;
+ sprite->pos2.x += sprite->data[0];
+ if (++sprite->data[2] > 5)
{
- CpuSet(src, dst, size >> 0x10);
- dst += 0x20;
- src += srcBy;
+ sprite->data[2] = 0;
+ sprite->pos2.x = 0;
}
}
-}*/
+}
+
+void sub_80C7D28(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ sub_80D2AA4();
+ TransferPlttBuffer();
+ SetGpuReg(REG_OFFSET_BG2HOFS, gUnknown_02039D08->bg2_X);
+}
+
+void c2_Box(void)
+{
+ RunTasks();
+ do_scheduled_bg_tilemap_copies_to_vram();
+ sub_80CA028();
+ sub_80CAA14();
+ AnimateSprites();
+ BuildOamBuffer();
+}
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 32d2bde4f..38b1fea4f 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -29,6 +29,7 @@
#include "daycare.h"
#include "data2.h"
#include "contest.h"
+#include "contest_effect.h"
extern struct UnkSummaryStruct* gUnknown_0203CF1C;
extern struct BgTemplate gUnknown_0861CBB4;
@@ -41,7 +42,6 @@ extern struct UnkStruct_61CC04 gUnknown_0861CC10;
extern struct UnkStruct_61CC04 gUnknown_0861CBEC;
extern struct UnkStruct_61CC04 gUnknown_0861CBF8;
extern u16 gSummaryScreenWindow_Tilemap[];
-extern struct ContestMove gContestMoves[];
extern struct ContestEffect gContestEffects[];
extern struct WindowTemplate gUnknown_0861CC24;
extern u8 gUnknown_0861CD2C[][3];
@@ -57,7 +57,6 @@ extern u8 gUnknown_0861CE7B[];
extern struct WindowTemplate gUnknown_0861CCEC;
extern struct WindowTemplate gUnknown_0861CD14;
extern const u8 *const gContestEffectDescriptionPointers[];
-extern const u8 *const gMoveDescriptionPointers[];
void sub_81C488C(u8 a);
extern u8 sub_81221EC();
@@ -342,6 +341,10 @@ struct UnkSummaryStruct
u8 unk_filler4[6];
};
+// const rom data
+#include "data/text/move_descriptions.h"
+
+// code
void sub_81BF8EC(u8 a, void *b, u8 c, u8 d, void *e)
{
u8 byte;
diff --git a/src/region_map.c b/src/region_map.c
index 5176d4996..3214ae185 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -22,6 +22,8 @@
#include "field_effect.h"
#include "region_map.h"
#include "constants/region_map_sections.h"
+#include "heal_location.h"
+#include "constants/heal_locations.h"
#define MAP_WIDTH 28
#define MAP_HEIGHT 15
@@ -52,7 +54,7 @@ static EWRAM_DATA struct {
/*0x88c*/ u8 unk_88c[0x1c0];
/*0xa4c*/ u8 unk_a4c[0x26];
/*0xa72*/ bool8 unk_a72;
-} *gUnknown_0203A148 = NULL; // a74
+} *sFlyMap = NULL; // a74
static bool32 gUnknown_03001180;
static bool32 gUnknown_03001184;
@@ -242,23 +244,23 @@ static const u16 Unknown_085A1D48[] = INCBIN_U16("graphics/pokenav/fly_target_ic
static const u8 sUnknown_085A1D68[] = INCBIN_U8("graphics/pokenav/fly_target_icons.4bpp.lz");
-static const u8 sUnknown_085A1E3C[][3] = {
- {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 1},
- {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 14},
- {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 15},
- {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 16},
- {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 17},
- {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 18},
- {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 19},
- {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 3},
- {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 4},
- {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 5},
- {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 6},
- {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 7},
- {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 8},
- {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 9},
- {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 10},
- {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 11},
+static const u8 sMapHealLocations[][3] = {
+ {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F},
+ {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), HEAL_LOCATION_OLDALE_TOWN},
+ {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), HEAL_LOCATION_DEWFORD_TOWN},
+ {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), HEAL_LOCATION_LAVARIDGE_TOWN},
+ {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), HEAL_LOCATION_FALLARBOR_TOWN},
+ {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), HEAL_LOCATION_VERDANTURF_TOWN},
+ {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), HEAL_LOCATION_PACIFIDLOG_TOWN},
+ {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), HEAL_LOCATION_PETALBURG_CITY},
+ {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), HEAL_LOCATION_SLATEPORT_CITY},
+ {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), HEAL_LOCATION_MAUVILLE_CITY},
+ {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), HEAL_LOCATION_RUSTBORO_CITY},
+ {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), HEAL_LOCATION_FORTREE_CITY},
+ {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), HEAL_LOCATION_LILYCOVE_CITY},
+ {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), HEAL_LOCATION_MOSSDEEP_CITY},
+ {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), HEAL_LOCATION_SOOTOPOLIS_CITY},
+ {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY_1},
{MAP_GROUP(ROUTE101), MAP_NUM(ROUTE101), 0},
{MAP_GROUP(ROUTE102), MAP_NUM(ROUTE102), 0},
{MAP_GROUP(ROUTE103), MAP_NUM(ROUTE103), 0},
@@ -1578,8 +1580,8 @@ void MCB2_FlyMap(void)
SetGpuReg(REG_OFFSET_BG2HOFS, 0);
SetGpuReg(REG_OFFSET_BG3HOFS, 0);
SetGpuReg(REG_OFFSET_BG3VOFS, 0);
- gUnknown_0203A148 = malloc(sizeof(*gUnknown_0203A148));
- if (gUnknown_0203A148 == NULL)
+ sFlyMap = malloc(sizeof(*sFlyMap));
+ if (sFlyMap == NULL)
{
SetMainCallback2(CB2_ReturnToFieldWithOpenMenu);
}
@@ -1608,11 +1610,11 @@ void MCB2_FlyMap(void)
gMain.state++;
break;
case 4:
- InitRegionMap(&gUnknown_0203A148->regionMap, FALSE);
+ InitRegionMap(&sFlyMap->regionMap, FALSE);
CreateRegionMapCursor(0, 0);
CreateRegionMapPlayerIcon(1, 1);
- gUnknown_0203A148->mapSecId = gUnknown_0203A148->regionMap.mapSecId;
- StringFill(gUnknown_0203A148->unk_a4c, CHAR_SPACE, 16);
+ sFlyMap->mapSecId = sFlyMap->regionMap.mapSecId;
+ StringFill(sFlyMap->unk_a4c, CHAR_SPACE, 16);
gUnknown_03001180 = TRUE;
sub_8124904();
gMain.state++;
@@ -1664,7 +1666,7 @@ static void sub_81248C0(void)
static void sub_81248D4(void)
{
- gUnknown_0203A148->unk_000();
+ sFlyMap->unk_000();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
@@ -1672,8 +1674,8 @@ static void sub_81248D4(void)
static void sub_81248F4(void callback(void))
{
- gUnknown_0203A148->unk_000 = callback;
- gUnknown_0203A148->unk_004 = 0;
+ sFlyMap->unk_000 = callback;
+ sFlyMap->unk_004 = 0;
}
static void sub_8124904(void)
@@ -1682,21 +1684,21 @@ static void sub_8124904(void)
bool32 flag;
const u8 *name;
- if (gUnknown_0203A148->regionMap.iconDrawType > MAPSECTYPE_NONE && gUnknown_0203A148->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER)
+ if (sFlyMap->regionMap.iconDrawType > MAPSECTYPE_NONE && sFlyMap->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER)
{
flag = FALSE;
for (i = 0; i < 1; i++)
{
- if (gUnknown_0203A148->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId)
+ if (sFlyMap->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId)
{
if (FlagGet(gUnknown_085A1EDC[i].flag))
{
- StringLength(gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec]);
+ StringLength(gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]);
flag = TRUE;
sub_8198070(0, FALSE);
SetWindowBorderStyle(1, FALSE, 0x65, 0x0d);
- PrintTextOnWindow(1, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL);
- name = gUnknown_085A1EDC[i].name[gUnknown_0203A148->regionMap.posWithinMapSec];
+ PrintTextOnWindow(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
+ name = gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec];
PrintTextOnWindow(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
gUnknown_03001180 = TRUE;
@@ -1715,7 +1717,7 @@ static void sub_8124904(void)
{
FillWindowPixelBuffer(0, 0x11);
}
- PrintTextOnWindow(0, 1, gUnknown_0203A148->regionMap.mapSecName, 0, 1, 0, NULL);
+ PrintTextOnWindow(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
gUnknown_03001180 = FALSE;
}
@@ -1739,8 +1741,8 @@ static void sub_8124A70(void)
{
struct SpriteSheet sheet;
- LZ77UnCompWram(sUnknown_085A1D68, gUnknown_0203A148->unk_88c);
- sheet.data = gUnknown_0203A148->unk_88c;
+ LZ77UnCompWram(sUnknown_085A1D68, sFlyMap->unk_88c);
+ sheet.data = sFlyMap->unk_88c;
sheet.size = 0x1c0;
sheet.tag = 2;
LoadSpriteSheet(&sheet);
@@ -1829,7 +1831,7 @@ static void sub_8124BE4(void)
static void sub_8124CBC(struct Sprite *sprite)
{
- if (gUnknown_0203A148->regionMap.mapSecId == sprite->data[0])
+ if (sFlyMap->regionMap.mapSecId == sprite->data[0])
{
if (++sprite->data[1] > 16)
{
@@ -1846,11 +1848,11 @@ static void sub_8124CBC(struct Sprite *sprite)
static void sub_8124D14(void)
{
- switch (gUnknown_0203A148->unk_004)
+ switch (sFlyMap->unk_004)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- gUnknown_0203A148->unk_004++;
+ sFlyMap->unk_004++;
break;
case 1:
if (!UpdatePaletteFade())
@@ -1863,7 +1865,7 @@ static void sub_8124D14(void)
static void sub_8124D64(void)
{
- if (gUnknown_0203A148->unk_004 == 0)
+ if (sFlyMap->unk_004 == 0)
{
switch (sub_81230AC())
{
@@ -1875,16 +1877,16 @@ static void sub_8124D64(void)
sub_8124904();
break;
case INPUT_EVENT_A_BUTTON:
- if (gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || gUnknown_0203A148->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER)
+ if (sFlyMap->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || sFlyMap->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER)
{
m4aSongNumStart(SE_SELECT);
- gUnknown_0203A148->unk_a72 = TRUE;
+ sFlyMap->unk_a72 = TRUE;
sub_81248F4(sub_8124E0C);
}
break;
case INPUT_EVENT_B_BUTTON:
m4aSongNumStart(SE_SELECT);
- gUnknown_0203A148->unk_a72 = FALSE;
+ sFlyMap->unk_a72 = FALSE;
sub_81248F4(sub_8124E0C);
break;
}
@@ -1893,40 +1895,40 @@ static void sub_8124D64(void)
static void sub_8124E0C(void)
{
- switch (gUnknown_0203A148->unk_004)
+ switch (sFlyMap->unk_004)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- gUnknown_0203A148->unk_004++;
+ sFlyMap->unk_004++;
break;
case 1:
if (!UpdatePaletteFade())
{
FreeRegionMapIconResources();
- if (gUnknown_0203A148->unk_a72)
+ if (sFlyMap->unk_a72)
{
- switch (gUnknown_0203A148->regionMap.mapSecId)
+ switch (sFlyMap->regionMap.mapSecId)
{
case MAPSEC_SOUTHERN_ISLAND:
- sub_8084CCC(0x15);
+ sub_8084CCC(HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR);
break;
case MAPSEC_BATTLE_FRONTIER:
- sub_8084CCC(0x16);
+ sub_8084CCC(HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST);
break;
case MAPSEC_LITTLEROOT_TOWN:
- sub_8084CCC(gSaveBlock2Ptr->playerGender == MALE ? 0x0C : 0x0D);
+ sub_8084CCC(gSaveBlock2Ptr->playerGender == MALE ? HEAL_LOCATION_LITTLEROOT_TOWN_1 : HEAL_LOCATION_LITTLEROOT_TOWN_2);
break;
case MAPSEC_EVER_GRANDE_CITY:
- sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && gUnknown_0203A148->regionMap.posWithinMapSec == 0 ? 0x14 : 0x0B);
+ sub_8084CCC(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && sFlyMap->regionMap.posWithinMapSec == 0 ? HEAL_LOCATION_EVER_GRANDE_CITY_2 : HEAL_LOCATION_EVER_GRANDE_CITY_1);
break;
default:
- if (sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2] != 0)
+ if (sMapHealLocations[sFlyMap->regionMap.mapSecId][2] != 0)
{
- sub_8084CCC(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][2]);
+ sub_8084CCC(sMapHealLocations[sFlyMap->regionMap.mapSecId][2]);
}
else
{
- warp1_set_2(sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][0], sUnknown_085A1E3C[gUnknown_0203A148->regionMap.mapSecId][1], -1);
+ warp1_set_2(sMapHealLocations[sFlyMap->regionMap.mapSecId][0], sMapHealLocations[sFlyMap->regionMap.mapSecId][1], -1);
}
break;
}
@@ -1936,10 +1938,10 @@ static void sub_8124E0C(void)
{
SetMainCallback2(sub_81B58A8);
}
- if (gUnknown_0203A148 != NULL)
+ if (sFlyMap != NULL)
{
- free(gUnknown_0203A148);
- gUnknown_0203A148 = NULL;
+ free(sFlyMap);
+ sFlyMap = NULL;
}
FreeAllWindowBuffers();
}
diff --git a/src/rotating_gate.c b/src/rotating_gate.c
index 1f5ef165f..fcced6c8c 100644
--- a/src/rotating_gate.c
+++ b/src/rotating_gate.c
@@ -189,12 +189,6 @@ struct RotatingGatePuzzle
u8 orientation;
};
-struct Coords8
-{
- s8 deltaX;
- s8 deltaY;
-};
-
// .rodata
// Fortree
static const struct RotatingGatePuzzle sRotatingGate_FortreePuzzleConfig[] =
diff --git a/src/scrcmd.c b/src/scrcmd.c
index a15ad666c..01d04704a 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1515,7 +1515,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
xText = (xWindow - xText - 1) * 8 + 3;
yText = (yText - yWindow - 1) * 8;
- winTemplate = sub_8198A50(0, xWindow, yWindow + 1, width, height, 0xF, 0x1);
+ winTemplate = CreateWindowTemplate(0, xWindow, yWindow + 1, width, height, 0xF, 0x1);
gUnknown_03000F30 = AddWindow(&winTemplate);
LoadUserWindowBorderGfx(gUnknown_03000F30, 0x214, 0xE0);
NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0);
diff --git a/src/tv.c b/src/tv.c
index 2e915697e..d09e72abc 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -1448,8 +1448,8 @@ void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1)
sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows);
if (sCurTVShowSlot != -1)
{
- show->contestLiveUpdates.winningSpecies = gUnknown_02039E00[a1].unk_00;
- StringCopy(show->contestLiveUpdates.winningTrainerName, gUnknown_02039E00[a1].unk_0d);
+ show->contestLiveUpdates.winningSpecies = gContestMons[a1].species;
+ StringCopy(show->contestLiveUpdates.winningTrainerName, gContestMons[a1].trainerName);
StripExtCtrlCodes(show->contestLiveUpdates.winningTrainerName);
show->contestLiveUpdates.appealFlags2 = a0;
if (a1 + 1 > gUnknown_02039F30)
diff --git a/src/wallclock.c b/src/wallclock.c
index 9b96d416c..3d95d75ac 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -602,7 +602,7 @@ static void WallClockInit(void)
ShowBg(3);
}
-void Cb2_StartWallClock(void)
+void CB2_StartWallClock(void)
{
u8 taskId;
u8 spriteId;
@@ -644,7 +644,7 @@ void Cb2_StartWallClock(void)
schedule_bg_copy_tilemap_to_vram(2);
}
-void Cb2_ViewWallClock(void)
+void CB2_ViewWallClock(void)
{
u8 taskId;
u8 spriteId;
diff --git a/sym_common.txt b/sym_common.txt
index 3fa302968..96796d941 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -43,9 +43,7 @@ gUnknown_030060B0: @ 30060B0
gUnknown_030060B4: @ 30060B4
.space 0x4
-gUnknown_030060B8: @ 30060B8
- .space 0x4
-
+ .include "contest.o"
.include "tv.o"
.include "mauville_old_man.o"
@@ -91,8 +89,7 @@ gUnknown_030061C0: @ 30061C0
gUnknown_030061C4: @ 30061C4
.space 0xC
-gUnknown_030061D0: @ 30061D0
- .space 0x18
+ .include "field_specials.o"
gCB2_AfterEvolution: @ 30061E8
.space 0x4
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 9a08597a8..c1b85ce65 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -382,61 +382,9 @@ gUnknown_02039D8C: @ 2039D8C
.include "src/fldeff_cut.o"
.include "src/map_name_popup.o"
.include "src/item.o"
+ .include "src/contest.o"
-gUnknown_02039E00: @ 2039E00
- .space 0x100
-
-gUnknown_02039F00: @ 2039F00
- .space 0x8
-
-gUnknown_02039F08: @ 2039F08
- .space 0x8
-
-gUnknown_02039F10: @ 2039F10
- .space 0x8
-
-gUnknown_02039F18: @ 2039F18
- .space 0x8
-
-gUnknown_02039F20: @ 2039F20
- .space 0x4
-
-gUnknown_02039F24: @ 2039F24
- .space 0x1
-
-gUnknown_02039F25: @ 2039F25
- .space 0x1
-
-gUnknown_02039F26: @ 2039F26
- .space 0x4
-
-gUnknown_02039F2A: @ 2039F2A
- .space 0x1
-
-gUnknown_02039F2B: @ 2039F2B
- .space 0x1
-
-gSpecialVar_ContestCategory: @ 2039F2C
- .space 0x2
-
-gSpecialVar_ContestRank: @ 2039F2E
- .space 0x2
-
-gUnknown_02039F30: @ 2039F30
- .space 0x1
-
-gUnknown_02039F31: @ 2039F31
- .space 0x3
-
-gContestResources: @ 2039F34
- .space 0x4
-
-gUnknown_02039F38: @ 2039F38
- .space 0x4
-
-gUnknown_02039F3C: @ 2039F3C
- .space 0x20
-
+ .align 2
gUnknown_02039F5C: @ 2039F5C
.space 0x1
@@ -603,55 +551,7 @@ gPlayerFacingPosition: @ 203AB40
.space 0x8
.include "src/pokeblock.o"
-
-gBikeCyclingChallenge: @ 203AB54
- .space 0x1
-
-gBikeCollisions: @ 203AB55
- .space 0x3
-
-gUnknown_0203AB58: @ 203AB58
- .space 0x4
-
-gUnknown_0203AB5C: @ 203AB5C
- .space 0x1
-
-gUnknown_0203AB5D: @ 203AB5D
- .space 0x1
-
-gUnknown_0203AB5E: @ 203AB5E
- .space 0x2
-
-gUnknown_0203AB60: @ 203AB60
- .space 0x2
-
-gUnknown_0203AB62: @ 203AB62
- .space 0x2
-
-gUnknown_0203AB64: @ 203AB64
- .space 0x4
-
-gUnknown_0203AB68: @ 203AB68
- .space 0x2
-
-gUnknown_0203AB6A: @ 203AB6A
- .space 0x2
-
-gUnknown_0203AB6C: @ 203AB6C
- .space 0x1
-
-gUnknown_0203AB6D: @ 203AB6D
- .space 0x1
-
-gUnknown_0203AB6E: @ 203AB6E
- .space 0x1
-
-gUnknown_0203AB6F: @ 203AB6F
- .space 0x1
-
-gUnknown_0203AB70: @ 203AB70
- .space 0x4
-
+ .include "src/field_specials.o"
.include "src/battle_records.o"
gUnknown_0203AB7C: @ 203AB7C
diff --git a/tools/aif2pcm/Makefile b/tools/aif2pcm/Makefile
index 967930c59..e5cb6ad31 100644
--- a/tools/aif2pcm/Makefile
+++ b/tools/aif2pcm/Makefile
@@ -1,6 +1,6 @@
CC = gcc
-CFLAGS = -Wall -Wextra -Wno-switch -Werror -std=c11 -O2 -s
+CFLAGS = -Wall -Wextra -Wno-switch -Werror -std=c11 -O2
LIBS = -lm
diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c
index fbb024a1d..51dbf1bb9 100644
--- a/tools/aif2pcm/main.c
+++ b/tools/aif2pcm/main.c
@@ -469,12 +469,12 @@ do { \
void aif2pcm(const char *aif_filename, const char *pcm_filename, bool compress)
{
struct Bytes *aif = read_bytearray(aif_filename);
- AifData aif_data = {0};
+ AifData aif_data = {0,0,0,0,0,0,0};
read_aif(aif, &aif_data);
int header_size = 0x10;
struct Bytes *pcm;
- struct Bytes output = {0};
+ struct Bytes output = {0,0};
if (compress)
{
diff --git a/tools/bin2c/Makefile b/tools/bin2c/Makefile
index 4cc23a25a..73f78980e 100644
--- a/tools/bin2c/Makefile
+++ b/tools/bin2c/Makefile
@@ -1,6 +1,6 @@
CC = gcc
-CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s
+CFLAGS = -Wall -Wextra -Werror -std=c11 -O2
.PHONY: clean
diff --git a/tools/gbagfx/Makefile b/tools/gbagfx/Makefile
index d791dabb5..6f11b1b3f 100644
--- a/tools/gbagfx/Makefile
+++ b/tools/gbagfx/Makefile
@@ -1,6 +1,6 @@
CC = gcc
-CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s -DPNG_SKIP_SETJMP_CHECK
+CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK
LIBS = -lpng -lz
diff --git a/tools/mid2agb/Makefile b/tools/mid2agb/Makefile
index f27f2cad4..7fd5d5fc8 100644
--- a/tools/mid2agb/Makefile
+++ b/tools/mid2agb/Makefile
@@ -1,6 +1,6 @@
CXX := g++
-CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror
+CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror
SRCS := agb.cpp error.cpp main.cpp midi.cpp tables.cpp
diff --git a/tools/preproc/Makefile b/tools/preproc/Makefile
index ec4a5f365..3d3275819 100644
--- a/tools/preproc/Makefile
+++ b/tools/preproc/Makefile
@@ -1,6 +1,6 @@
CXX := g++
-CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror
+CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror
SRCS := asm_file.cpp c_file.cpp charmap.cpp preproc.cpp string_parser.cpp \
utf8.cpp
diff --git a/tools/ramscrgen/Makefile b/tools/ramscrgen/Makefile
index cc6d458ba..9aa309aa1 100644
--- a/tools/ramscrgen/Makefile
+++ b/tools/ramscrgen/Makefile
@@ -1,6 +1,6 @@
CXX := g++
-CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror
+CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror
SRCS := main.cpp sym_file.cpp elf.cpp
diff --git a/tools/rsfont/Makefile b/tools/rsfont/Makefile
index a78beca50..582be7b88 100644
--- a/tools/rsfont/Makefile
+++ b/tools/rsfont/Makefile
@@ -1,6 +1,6 @@
CC = gcc
-CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s -DPNG_SKIP_SETJMP_CHECK
+CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK
LIBS = -lpng -lz
diff --git a/tools/scaninc/Makefile b/tools/scaninc/Makefile
index 3e1c031a8..367a3350b 100644
--- a/tools/scaninc/Makefile
+++ b/tools/scaninc/Makefile
@@ -1,6 +1,6 @@
CXX = g++
-CXXFLAGS = -Wall -Werror -std=c++11 -O2 -s
+CXXFLAGS = -Wall -Werror -std=c++11 -O2
SRCS = scaninc.cpp c_file.cpp asm_file.cpp