summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile17
-rw-r--r--asm/battle_tower.s10
-rw-r--r--asm/cable_club.s2
-rw-r--r--asm/field_effect.s8533
-rw-r--r--asm/field_effect_helpers.s4
-rw-r--r--asm/field_screen.s30
-rw-r--r--asm/field_specials.s4
-rw-r--r--asm/field_tasks.s1921
-rw-r--r--asm/fldeff_80F9BCC.s12
-rw-r--r--asm/menu_helpers.s986
-rw-r--r--asm/menu_indicators.s1442
-rw-r--r--asm/party_menu.s4
-rw-r--r--asm/pokemon_storage_system.s2
-rw-r--r--asm/pokenav.s6
-rw-r--r--asm/record_mixing.s3711
-rw-r--r--asm/rom_8011DC0.s2
-rw-r--r--asm/rom_8034C54.s1312
-rw-r--r--asm/script_menu.s4
-rw-r--r--asm/shop.s2
-rw-r--r--asm/slot_machine.s2
-rwxr-xr-xcommon_syms/item_menu.txt1
-rw-r--r--common_syms/mauville_old_man.txt2
-rw-r--r--common_syms/overworld.txt5
-rw-r--r--data/battle_1.s12
-rw-r--r--data/event_scripts.s84
-rw-r--r--data/field_effect.s451
-rw-r--r--data/field_effect_scripts.s24
-rw-r--r--data/field_tasks.s99
-rw-r--r--data/maps/events/AquaHideout_B2F.inc4
-rw-r--r--data/maps/events/BattleFrontier_BattlePikeRandomRoom1.inc14
-rw-r--r--data/maps/events/BattleFrontier_BattlePikeRandomRoom3.inc14
-rw-r--r--data/maps/events/BattleFrontier_BattlePikeThreePathRoom.inc18
-rw-r--r--data/maps/events/BattleFrontier_BattlePyramidTop.inc2
-rw-r--r--data/maps/events/DoubleBattleColosseum.inc8
-rw-r--r--data/maps/events/EverGrandeCity.inc22
-rw-r--r--data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc2
-rw-r--r--data/maps/events/MarineCave_End.inc2
-rw-r--r--data/maps/events/MauvilleCity_Gym.inc8
-rw-r--r--data/maps/events/MossdeepCity.inc8
-rw-r--r--data/maps/events/MossdeepCity_Gym.inc18
-rw-r--r--data/maps/events/NavelRock_Top.inc2
-rw-r--r--data/maps/events/NewMauville_Inside.inc18
-rw-r--r--data/maps/events/RecordCorner.inc8
-rw-r--r--data/maps/events/Route110_SeasideCyclingRoadEntrance1.inc4
-rw-r--r--data/maps/events/Route110_SeasideCyclingRoadEntrance2.inc4
-rw-r--r--data/maps/events/Route110_TrickHouseEnd.inc2
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle2.inc8
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle3.inc8
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle5.inc44
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle7.inc8
-rw-r--r--data/maps/events/Route111.inc20
-rw-r--r--data/maps/events/Route121_SafariZoneEntrance.inc2
-rw-r--r--data/maps/events/SingleBattleColosseum.inc4
-rw-r--r--data/maps/events/TerraCave_End.inc2
-rw-r--r--data/maps/events/TradeCenter.inc4
-rw-r--r--data/menu_helpers.s37
-rw-r--r--data/menu_indicators.s93
-rw-r--r--data/record_mixing.s37
-rw-r--r--data/scripts/cable_club.inc12
-rw-r--r--data/scripts/contest_hall.inc146
-rw-r--r--data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc22
-rw-r--r--data/scripts/maps/AquaHideout_B2F.inc4
-rw-r--r--data/scripts/maps/BattleFrontier_BattleArenaBattleRoom.inc22
-rw-r--r--data/scripts/maps/BattleFrontier_BattleArenaCorridor.inc4
-rw-r--r--data/scripts/maps/BattleFrontier_BattleArenaLobby.inc28
-rw-r--r--data/scripts/maps/BattleFrontier_BattleDomeBattleRoom.inc68
-rw-r--r--data/scripts/maps/BattleFrontier_BattleDomeCorridor.inc4
-rw-r--r--data/scripts/maps/BattleFrontier_BattleDomeLobby.inc26
-rw-r--r--data/scripts/maps/BattleFrontier_BattleDomePreBattleRoom.inc12
-rw-r--r--data/scripts/maps/BattleFrontier_BattleFactoryBattleRoom.inc20
-rw-r--r--data/scripts/maps/BattleFrontier_BattleFactoryLobby.inc26
-rw-r--r--data/scripts/maps/BattleFrontier_BattleFactoryPreBattleRoom.inc8
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePalaceBattleRoom.inc26
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePalaceCorridor.inc2
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePalaceLobby.inc28
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePikeCorridor.inc6
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePikeLobby.inc26
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePikeRandomRoom1.inc4
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePikeRandomRoom2.inc6
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePikeRandomRoom3.inc12
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePikeThreePathRoom.inc22
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePointExchangeServiceCorner.inc26
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePyramidEmptySquare.inc20
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePyramidLobby.inc26
-rw-r--r--data/scripts/maps/BattleFrontier_BattlePyramidTop.inc30
-rw-r--r--data/scripts/maps/BattleFrontier_BattleTowerBattleRoom.inc24
-rw-r--r--data/scripts/maps/BattleFrontier_BattleTowerBattleRoom2.inc18
-rw-r--r--data/scripts/maps/BattleFrontier_BattleTowerCorridor.inc6
-rw-r--r--data/scripts/maps/BattleFrontier_BattleTowerCorridor2.inc10
-rw-r--r--data/scripts/maps/BattleFrontier_BattleTowerElevator.inc8
-rw-r--r--data/scripts/maps/BattleFrontier_BattleTowerLobby.inc38
-rw-r--r--data/scripts/maps/BattleFrontier_BattleTowerMultiBattleRoom.inc46
-rw-r--r--data/scripts/maps/BattleFrontier_Lounge3.inc4
-rw-r--r--data/scripts/maps/BattleFrontier_Lounge7.inc32
-rw-r--r--data/scripts/maps/BirthIsland_Exterior.inc2
-rw-r--r--data/scripts/maps/EverGrandeCity.inc2
-rw-r--r--data/scripts/maps/EverGrandeCity_ChampionsRoom.inc6
-rw-r--r--data/scripts/maps/EverGrandeCity_DrakesRoom.inc2
-rw-r--r--data/scripts/maps/EverGrandeCity_GlaciasRoom.inc2
-rw-r--r--data/scripts/maps/EverGrandeCity_Hall1.inc2
-rw-r--r--data/scripts/maps/EverGrandeCity_Hall2.inc2
-rw-r--r--data/scripts/maps/EverGrandeCity_Hall3.inc2
-rw-r--r--data/scripts/maps/EverGrandeCity_Hall4.inc2
-rw-r--r--data/scripts/maps/EverGrandeCity_Hall5.inc2
-rw-r--r--data/scripts/maps/EverGrandeCity_HallOfFame.inc6
-rw-r--r--data/scripts/maps/EverGrandeCity_PhoebesRoom.inc2
-rw-r--r--data/scripts/maps/EverGrandeCity_PokemonLeague_1F.inc6
-rw-r--r--data/scripts/maps/EverGrandeCity_SidneysRoom.inc2
-rw-r--r--data/scripts/maps/FallarborTown_BattleTentBattleRoom.inc14
-rw-r--r--data/scripts/maps/FallarborTown_BattleTentCorridor.inc4
-rw-r--r--data/scripts/maps/FallarborTown_BattleTentLobby.inc30
-rw-r--r--data/scripts/maps/FarawayIsland_Interior.inc8
-rw-r--r--data/scripts/maps/FortreeCity_Gym.inc2
-rw-r--r--data/scripts/maps/LavaridgeTown_Gym_1F.inc18
-rw-r--r--data/scripts/maps/LavaridgeTown_Gym_B1F.inc16
-rw-r--r--data/scripts/maps/LilycoveCity_ContestLobby.inc18
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc42
-rw-r--r--data/scripts/maps/LilycoveCity_Harbor.inc74
-rw-r--r--data/scripts/maps/LilycoveCity_House3.inc10
-rw-r--r--data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc6
-rw-r--r--data/scripts/maps/MarineCave_End.inc4
-rw-r--r--data/scripts/maps/MauvilleCity_GameCorner.inc68
-rw-r--r--data/scripts/maps/MossdeepCity.inc2
-rw-r--r--data/scripts/maps/MossdeepCity_StevensHouse.inc2
-rw-r--r--data/scripts/maps/MtPyre_Exterior.inc4
-rw-r--r--data/scripts/maps/NavelRock_Top.inc8
-rw-r--r--data/scripts/maps/NewMauville_Inside.inc16
-rw-r--r--data/scripts/maps/Route110_SeasideCyclingRoadEntrance1.inc4
-rw-r--r--data/scripts/maps/Route110_SeasideCyclingRoadEntrance2.inc4
-rw-r--r--data/scripts/maps/Route110_TrickHouseEnd.inc14
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle2.inc24
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle3.inc68
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle5.inc232
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle6.inc2
-rw-r--r--data/scripts/maps/Route111.inc20
-rw-r--r--data/scripts/maps/Route113.inc6
-rw-r--r--data/scripts/maps/Route119.inc28
-rw-r--r--data/scripts/maps/Route119_WeatherInstitute_2F.inc2
-rw-r--r--data/scripts/maps/Route120.inc12
-rw-r--r--data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc16
-rw-r--r--data/scripts/maps/RustboroCity.inc40
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_2F.inc4
-rw-r--r--data/scripts/maps/RusturfTunnel.inc28
-rw-r--r--data/scripts/maps/SlateportCity_BattleTentBattleRoom.inc10
-rw-r--r--data/scripts/maps/SlateportCity_BattleTentCorridor.inc8
-rw-r--r--data/scripts/maps/SlateportCity_BattleTentLobby.inc26
-rw-r--r--data/scripts/maps/SlateportCity_Harbor.inc6
-rw-r--r--data/scripts/maps/SlateportCity_PokemonFanClub.inc20
-rw-r--r--data/scripts/maps/SootopolisCity_Gym_1F.inc2
-rw-r--r--data/scripts/maps/SootopolisCity_MysteryEventsHouse_1F.inc4
-rw-r--r--data/scripts/maps/SootopolisCity_MysteryEventsHouse_B1F.inc4
-rw-r--r--data/scripts/maps/SouthernIsland_Interior.inc18
-rw-r--r--data/scripts/maps/TerraCave_End.inc4
-rw-r--r--data/scripts/maps/TrainerHill_Elevator.inc2
-rw-r--r--data/scripts/maps/TrainerHill_Entrance.inc24
-rw-r--r--data/scripts/maps/UnknownMap_25_34.inc104
-rw-r--r--data/scripts/maps/VerdanturfTown_BattleTentBattleRoom.inc14
-rw-r--r--data/scripts/maps/VerdanturfTown_BattleTentCorridor.inc4
-rw-r--r--data/scripts/maps/VerdanturfTown_BattleTentLobby.inc30
-rw-r--r--data/scripts/players_house.inc6
-rw-r--r--data/specials.inc2
-rw-r--r--graphics/unknown/unknown_55C170.pngbin151 -> 99 bytes
-rw-r--r--graphics/unknown/unknown_55C190.pngbin0 -> 102 bytes
-rw-r--r--graphics/unknown/unknown_55C1B0.pngbin0 -> 100 bytes
-rw-r--r--graphics/unknown/unknown_55C1D0.pngbin0 -> 91 bytes
-rw-r--r--graphics/unused/intro_birch_beauty.pngbin2116 -> 2183 bytes
-rw-r--r--graphics_file_rules.mk2
-rw-r--r--include/battle_tower.h25
-rw-r--r--include/cable_club.h13
-rw-r--r--include/constants/vars.h79
-rw-r--r--include/decompress.h2
-rw-r--r--include/field_effect.h155
-rw-r--r--include/field_effect_helpers.h2
-rw-r--r--include/field_map_obj.h2
-rw-r--r--include/field_player_avatar.h5
-rw-r--r--include/field_screen.h4
-rw-r--r--include/field_special_scene.h14
-rw-r--r--include/field_tasks.h5
-rw-r--r--include/fieldmap.h4
-rw-r--r--include/fldeff_80F9BCC.h2
-rw-r--r--include/global.h143
-rw-r--r--include/item_menu.h2
-rw-r--r--include/lilycove_lady.h2
-rw-r--r--include/link.h9
-rw-r--r--include/link_rfu.h1
-rw-r--r--include/list_menu.h33
-rw-r--r--include/mauville_old_man.h9
-rw-r--r--include/menu_helpers.h32
-rw-r--r--include/menu_indicators.h37
-rw-r--r--include/overworld.h4
-rw-r--r--include/pokemon.h28
-rw-r--r--include/record_mixing.h35
-rw-r--r--include/rom_8034C54.h26
-rw-r--r--include/save.h3
-rw-r--r--include/secret_base.h3
-rw-r--r--include/sprite.h1
-rw-r--r--include/strings.h2
-rw-r--r--include/tv.h8
-rw-r--r--ld_script.txt135
-rw-r--r--src/battle_anim_sound_tasks.c2
-rw-r--r--src/battle_interface.c2
-rw-r--r--src/battle_main.c6
-rw-r--r--src/battle_script_commands.c4
-rw-r--r--src/battle_setup.c6
-rw-r--r--src/battle_tv.c2
-rw-r--r--src/berry_blender.c11
-rw-r--r--src/bg.c6
-rw-r--r--src/bike.c1
-rw-r--r--src/daycare.c37
-rw-r--r--src/decompress.c4
-rw-r--r--src/decoration.c13
-rw-r--r--src/dewford_trend.c2
-rw-r--r--src/egg_hatch.c17
-rw-r--r--src/field_effect.c3884
-rw-r--r--src/field_map_obj.c2
-rw-r--r--src/field_tasks.c776
-rw-r--r--src/fldeff_teleport.c2
-rw-r--r--src/fossil_specials.c2
-rw-r--r--src/hof_pc.c1
-rw-r--r--src/item.c2
-rwxr-xr-xsrc/item_menu.c7
-rwxr-xr-xsrc/item_use.c3
-rw-r--r--src/lilycove_lady.c14
-rw-r--r--src/link.c2
-rw-r--r--src/link_rfu.c10
-rw-r--r--src/list_menu.c832
-rw-r--r--src/main_menu.c2
-rw-r--r--src/map_name_popup.c2
-rw-r--r--src/match_call.c4
-rw-r--r--src/mauville_old_man.c33
-rw-r--r--src/menu.c2
-rw-r--r--src/menu_helpers.c455
-rw-r--r--src/mon_markings.c3
-rw-r--r--src/new_game.c7
-rw-r--r--src/overworld.c18
-rw-r--r--src/player_pc.c8
-rw-r--r--src/pokeblock.c3
-rw-r--r--src/pokemon_animation.c2
-rw-r--r--src/pokemon_summary_screen.c14
-rw-r--r--src/record_mixing.c2286
-rw-r--r--src/recorded_battle.c2
-rw-r--r--src/rom_8034C54.c454
-rw-r--r--src/rotating_gate.c8
-rw-r--r--src/secret_base.c9
-rw-r--r--src/text.c8
-rw-r--r--src/time_events.c2
-rw-r--r--src/title_screen.c3
-rw-r--r--src/tv.c22
-rw-r--r--src/util.c2
-rw-r--r--src/walda_phrase.c3
-rw-r--r--sym_bss.txt12
-rw-r--r--sym_common.txt19
-rw-r--r--sym_ewram.txt33
253 files changed, 10661 insertions, 20341 deletions
diff --git a/Makefile b/Makefile
index c38d8fe76..2afb830cf 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,7 @@
+include $(DEVKITARM)/base_tools
+export CPP := $(PREFIX)cpp
+export LD := $(PREFIX)ld
+
SHELL := /bin/bash -o pipefail
ROM := pokeemerald.gba
@@ -16,25 +20,16 @@ ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR)
DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR)
SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR)
-AS := $(DEVKITARM)/bin/arm-none-eabi-as
ASFLAGS := -mcpu=arm7tdmi
CC1 := tools/agbcc/bin/agbcc
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
-CPP := $(DEVKITARM)/bin/arm-none-eabi-cpp
CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef
-LD := $(DEVKITARM)/bin/arm-none-eabi-ld
LDFLAGS = -Map ../../$(MAP)
-OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy
-
-ifeq ($(OS),Windows_NT)
- LIB := ../../tools/agbcc/lib/libgcc.a ../../tools/agbcc/lib/libc.a
-else
- LIB := -L ../../tools/agbcc/lib -lgcc -lc
-endif
+LIB := -L ../../tools/agbcc/lib -lgcc -lc
SHA1 := sha1sum -c
@@ -120,6 +115,8 @@ $(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
$(C_BUILDDIR)/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc
$(C_BUILDDIR)/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc
+$(C_BUILDDIR)/record_mixing.o: CFLAGS += -ffreestanding
+
ifeq ($(NODEP),)
$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) -I include $(C_SUBDIR)/$*.c)
else
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 6cee2dc0a..788061f2b 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -3746,7 +3746,7 @@ _08163FF4:
ldr r0, [r6]
ldr r1, =0x0000064c
adds r0, r1
- bl sub_8164F70
+ bl CalcEmeraldBattleTowerChecksum
bl sub_8163E90
pop {r3,r4}
mov r8, r3
@@ -5484,8 +5484,8 @@ _08164F52:
.pool
thumb_func_end sub_8164ED8
- thumb_func_start sub_8164F70
-sub_8164F70: @ 8164F70
+ thumb_func_start CalcEmeraldBattleTowerChecksum
+CalcEmeraldBattleTowerChecksum: @ 8164F70
push {r4,lr}
adds r2, r0, 0
adds r2, 0xE8
@@ -5504,7 +5504,7 @@ _08164F7E:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8164F70
+ thumb_func_end CalcEmeraldBattleTowerChecksum
thumb_func_start sub_8164F94
sub_8164F94: @ 8164F94
@@ -6750,7 +6750,7 @@ _08165988:
ldr r1, [sp, 0x10]
bl CpuSet
adds r0, r5, 0
- bl sub_8164F70
+ bl CalcEmeraldBattleTowerChecksum
movs r0, 0x1
_081659BE:
add sp, 0x14
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 7ef499226..201f23c17 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -795,7 +795,7 @@ sub_80B2A08: @ 80B2A08
ldrh r0, [r0]
cmp r0, 0x4
bne _080B2A38
- bl sub_800A064
+ bl Link_AnyPartnersPlayingRubyOrSapphire
cmp r0, 0
bne _080B2A4A
bl sub_800AC34
diff --git a/asm/field_effect.s b/asm/field_effect.s
deleted file mode 100644
index 91cd0c972..000000000
--- a/asm/field_effect.s
+++ /dev/null
@@ -1,8533 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start FieldEffectStart
-@ u8 FieldEffectStart(u8 id)
-FieldEffectStart: @ 80B5B18
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl FieldEffectActiveListAdd
- ldr r0, =gFieldEffectScriptPointers
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- str r0, [sp]
- add r4, sp, 0x4
- ldr r5, =gUnknown_0855C1F0
-_080B5B36:
- ldr r0, [sp]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r5
- ldr r2, [r0]
- mov r0, sp
- adds r1, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _080B5B36
- ldr r0, [sp, 0x4]
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end FieldEffectStart
-
- thumb_func_start FieldEffectCmd_loadtiles
-@ bool8 FieldEffectCmd_loadtiles(u8 **script, u8 *returnValue)
-FieldEffectCmd_loadtiles: @ 80B5B60
- push {lr}
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl FieldEffectScript_LoadTiles
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadtiles
-
- thumb_func_start FieldEffectCmd_loadfadedpal
-@ bool8 FieldEffectCmd_loadfadedpal(u8 **script, u8 *returnValue)
-FieldEffectCmd_loadfadedpal: @ 80B5B74
- push {lr}
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl FieldEffectScript_LoadFadedPalette
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadfadedpal
-
- thumb_func_start FieldEffectCmd_loadpal
-@ bool8 FieldEffectCmd_loadpal(u8 **script, u8 *returnValue)
-FieldEffectCmd_loadpal: @ 80B5B88
- push {lr}
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl FieldEffectScript_LoadPalette
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadpal
-
- thumb_func_start FieldEffectCmd_callnative
-@ bool8 FieldEffectCmd_callnative(u8 **script, u8 *returnValue)
-FieldEffectCmd_callnative: @ 80B5B9C
- push {lr}
- ldr r2, [r0]
- adds r2, 0x1
- str r2, [r0]
- bl FieldEffectScript_CallNative
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_callnative
-
- thumb_func_start FieldEffectCmd_end
-@ bool8 FieldEffectCmd_end(u8 **script, u8 *returnValue)
-FieldEffectCmd_end: @ 80B5BB0
- movs r0, 0
- bx lr
- thumb_func_end FieldEffectCmd_end
-
- thumb_func_start FieldEffectCmd_loadgfx_callnative
-@ bool8 FieldEffectCmd_loadgfx_callnative(u8 **script, u8 *returnValue)
-FieldEffectCmd_loadgfx_callnative: @ 80B5BB4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- adds r0, r4, 0
- bl FieldEffectScript_LoadTiles
- adds r0, r4, 0
- bl FieldEffectScript_LoadFadedPalette
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldEffectScript_CallNative
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadgfx_callnative
-
- thumb_func_start FieldEffectCmd_loadtiles_callnative
-@ bool8 FieldEffectCmd_loadtiles_callnative(u8 **script, u8 *returnValue)
-FieldEffectCmd_loadtiles_callnative: @ 80B5BDC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- adds r0, r4, 0
- bl FieldEffectScript_LoadTiles
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldEffectScript_CallNative
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadtiles_callnative
-
- thumb_func_start FieldEffectCmd_loadfadedpal_callnative
-@ bool8 FieldEffectCmd_loadfadedpal_callnative(u8 **script, u8 *returnValue)
-FieldEffectCmd_loadfadedpal_callnative: @ 80B5C00
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- adds r0, r4, 0
- bl FieldEffectScript_LoadFadedPalette
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldEffectScript_CallNative
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadfadedpal_callnative
-
- thumb_func_start FieldEffectScript_ReadWord
-@ u32 FieldEffectScript_ReadWord(u8 **script)
-FieldEffectScript_ReadWord: @ 80B5C24
- ldr r2, [r0]
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- adds r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- adds r0, r1
- bx lr
- thumb_func_end FieldEffectScript_ReadWord
-
- thumb_func_start FieldEffectScript_LoadTiles
-@ void FieldEffectScript_LoadTiles(u8 **script)
-FieldEffectScript_LoadTiles: @ 80B5C3C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl FieldEffectScript_ReadWord
- adds r5, r0, 0
- ldrh r0, [r5, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, =0xffff0000
- cmp r0, r1
- bne _080B5C5A
- adds r0, r5, 0
- bl LoadSpriteSheet
-_080B5C5A:
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldEffectScript_LoadTiles
-
- thumb_func_start FieldEffectScript_LoadFadedPalette
-@ void FieldEffectScript_LoadFadedPalette(u8 **script)
-FieldEffectScript_LoadFadedPalette: @ 80B5C6C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl FieldEffectScript_ReadWord
- adds r4, r0, 0
- bl LoadSpritePalette
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- bl sub_80ABE18
- ldr r0, [r5]
- adds r0, 0x4
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectScript_LoadFadedPalette
-
- thumb_func_start FieldEffectScript_LoadPalette
-@ void FieldEffectScript_LoadPalette(u8 **script)
-FieldEffectScript_LoadPalette: @ 80B5C94
- push {r4,lr}
- adds r4, r0, 0
- bl FieldEffectScript_ReadWord
- bl LoadSpritePalette
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectScript_LoadPalette
-
- thumb_func_start FieldEffectScript_CallNative
-@ void FieldEffectScript_CallNative(u8 **script, u8 *returnValue)
-FieldEffectScript_CallNative: @ 80B5CAC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldEffectScript_ReadWord
- bl _call_via_r0
- str r0, [r5]
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectScript_CallNative
-
- thumb_func_start FieldEffectFreeGraphicsResources
-@ void FieldEffectFreeGraphicsResources(struct obj *object)
-FieldEffectFreeGraphicsResources: @ 80B5CC8
- push {r4,r5,lr}
- adds r1, r0, 0
- adds r1, 0x40
- ldrh r5, [r1]
- ldrb r4, [r0, 0x5]
- lsrs r4, 4
- bl DestroySprite
- adds r0, r5, 0
- bl FieldEffectFreeTilesIfUnused
- adds r0, r4, 0
- bl FieldEffectFreePaletteIfUnused
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectFreeGraphicsResources
-
- thumb_func_start FieldEffectStop
-@ void FieldEffectStop(struct obj *object, u8 id)
-FieldEffectStop: @ 80B5CEC
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl FieldEffectFreeGraphicsResources
- adds r0, r4, 0
- bl FieldEffectActiveListRemove
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectStop
-
- thumb_func_start FieldEffectFreeTilesIfUnused
-@ void FieldEffectFreeTilesIfUnused(u16 tileRangeStart)
-FieldEffectFreeTilesIfUnused: @ 80B5D04
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl GetSpriteTileTagByTileStart
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, =0x0000ffff
- cmp r3, r0
- beq _080B5D58
- movs r2, 0
- ldr r5, =gSprites
-_080B5D1E:
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r5
- adds r0, r1, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _080B5D48
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- bge _080B5D48
- adds r0, r1, 0
- adds r0, 0x40
- ldrh r0, [r0]
- cmp r4, r0
- beq _080B5D58
-_080B5D48:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _080B5D1E
- adds r0, r3, 0
- bl FreeSpriteTilesByTag
-_080B5D58:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldEffectFreeTilesIfUnused
-
- thumb_func_start FieldEffectFreePaletteIfUnused
-@ void FieldEffectFreePaletteIfUnused(u8 paletteSlot)
-FieldEffectFreePaletteIfUnused: @ 80B5D68
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =0x0000ffff
- cmp r5, r0
- beq _080B5DB0
- movs r2, 0
- ldr r6, =gSprites
- adds r3, r4, 0
-_080B5D84:
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _080B5DA0
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- cmp r0, r3
- beq _080B5DB0
-_080B5DA0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _080B5D84
- adds r0, r5, 0
- bl FreeSpritePaletteByTag
-_080B5DB0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldEffectFreePaletteIfUnused
-
- thumb_func_start FieldEffectActiveListClear
-@ void FieldEffectActiveListClear()
-FieldEffectActiveListClear: @ 80B5DC0
- push {r4,lr}
- movs r2, 0
- ldr r4, =gUnknown_03000F58
- movs r3, 0xFF
-_080B5DC8:
- adds r0, r2, r4
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _080B5DC8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldEffectActiveListClear
-
- thumb_func_start FieldEffectActiveListAdd
-@ void FieldEffectActiveListAdd(u8 id)
-FieldEffectActiveListAdd: @ 80B5DE4
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r4, =gUnknown_03000F58
-_080B5DEE:
- adds r1, r2, r4
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080B5E00
- strb r3, [r1]
- b _080B5E0A
- .pool
-_080B5E00:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _080B5DEE
-_080B5E0A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectActiveListAdd
-
- thumb_func_start FieldEffectActiveListRemove
-@ void FieldEffectActiveListRemove(u8 id)
-FieldEffectActiveListRemove: @ 80B5E10
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r4, =gUnknown_03000F58
- movs r5, 0xFF
-_080B5E1C:
- adds r1, r2, r4
- ldrb r0, [r1]
- cmp r0, r3
- bne _080B5E30
- orrs r0, r5
- strb r0, [r1]
- b _080B5E3A
- .pool
-_080B5E30:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _080B5E1C
-_080B5E3A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectActiveListRemove
-
- thumb_func_start FieldEffectActiveListContains
-@ void FieldEffectActiveListContains(u8 id)
-FieldEffectActiveListContains: @ 80B5E40
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, =gUnknown_03000F58
-_080B5E4A:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080B5E5C
- movs r0, 0x1
- b _080B5E68
- .pool
-_080B5E5C:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1F
- bls _080B5E4A
- movs r0, 0
-_080B5E68:
- pop {r1}
- bx r1
- thumb_func_end FieldEffectActiveListContains
-
- thumb_func_start CreateTrainerSprite
-CreateTrainerSprite: @ 80B5E6C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r9, r3
- ldr r7, [sp, 0x34]
- lsls r4, 24
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsrs r4, 21
- ldr r3, =gTrainerFrontPicPaletteTable
- mov r8, r3
- add r8, r4
- mov r0, r8
- adds r1, r7, 0
- bl LoadCompressedObjectPaletteOverrideBuffer
- ldr r0, =gTrainerFrontPicTable
- adds r4, r0
- adds r0, r4, 0
- adds r1, r7, 0
- bl LoadCompressedObjectPicOverrideBuffer
- mov r1, sp
- ldrh r0, [r4, 0x6]
- movs r2, 0
- strh r0, [r1]
- mov r3, r8
- ldrh r0, [r3, 0x4]
- strh r0, [r1, 0x2]
- ldr r0, =gNewGameBirchOamAttributes
- str r0, [sp, 0x4]
- ldr r0, =gDummySpriteAnimTable
- str r0, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r0, =gDummySpriteAffineAnimTable
- str r0, [sp, 0x10]
- ldr r0, =SpriteCallbackDummy
- str r0, [sp, 0x14]
- lsls r5, 16
- asrs r5, 16
- lsls r6, 16
- asrs r6, 16
- mov r0, sp
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, r9
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CreateTrainerSprite
-
- thumb_func_start sub_80B5F0C
-sub_80B5F0C: @ 80B5F0C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r1, r2, 0
- lsls r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r0, =gTrainerFrontPicTable
- lsrs r4, 21
- adds r0, r4, r0
- ldr r0, [r0]
- bl LZDecompressVram
- ldr r0, =gTrainerFrontPicPaletteTable
- adds r4, r0
- ldr r0, [r4]
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B5F0C
-
- thumb_func_start AddNewGameBirchObject
-AddNewGameBirchObject: @ 80B5F44
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =gNewGameBirchObjectPaletteInfo
- bl LoadSpritePalette
- ldr r0, =gNewGameBirchObjectTemplate
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddNewGameBirchObject
-
- thumb_func_start sub_80B5F84
-sub_80B5F84: @ 80B5F84
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 16
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 8
- lsls r1, 16
- asrs r1, 16
- str r1, [sp]
- lsls r2, 16
- asrs r2, 16
- str r2, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- ldr r1, =gMonPaletteTable
- lsls r4, r0, 3
- adds r4, r1
- ldrh r1, [r4, 0x4]
- str r1, [sp, 0xC]
- movs r1, 0
- adds r2, r3, 0
- movs r3, 0x1
- bl sub_818D7D8
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- adds r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AC3F8
- ldr r0, =0x0000ffff
- cmp r5, r0
- beq _080B5FDC
- lsls r0, r5, 24
- lsrs r0, 24
- b _080B5FDE
- .pool
-_080B5FDC:
- movs r0, 0x40
-_080B5FDE:
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B5F84
-
- thumb_func_start sub_80B5FE8
-sub_80B5FE8: @ 80B5FE8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x10
- adds r6, r0, 0
- mov r9, r1
- mov r10, r2
- adds r4, r3, 0
- ldr r5, [sp, 0x2C]
- lsls r6, 16
- lsrs r6, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- bl GetMonSpritePalStructFromOtIdPersonality
- mov r8, r0
- lsls r4, 16
- asrs r4, 16
- str r4, [sp]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- mov r1, r8
- ldrh r0, [r1, 0x4]
- str r0, [sp, 0xC]
- adds r0, r6, 0
- mov r1, r9
- mov r2, r10
- movs r3, 0x1
- bl sub_818D7D8
- lsls r0, 16
- lsrs r4, r0, 16
- mov r1, r8
- ldrh r0, [r1, 0x4]
- bl IndexOfSpritePaletteTag
- adds r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AC3F8
- ldr r0, =0x0000ffff
- cmp r4, r0
- beq _080B605C
- lsls r0, r4, 24
- lsrs r0, 24
- b _080B605E
- .pool
-_080B605C:
- movs r0, 0x40
-_080B605E:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80B5FE8
-
- thumb_func_start sub_80B6070
-sub_80B6070: @ 80B6070
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl sub_80AC428
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- cmp r0, 0
- beq _080B608E
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
-_080B608E:
- adds r0, r5, 0
- bl sub_818D820
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B6070
-
- thumb_func_start MultiplyInvertedPaletteRGBComponents
-MultiplyInvertedPaletteRGBComponents: @ 80B609C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r4, =gPlttBufferUnfaded
- lsrs r0, 15
- adds r4, r0, r4
- ldrh r4, [r4]
- movs r5, 0x1F
- mov r9, r5
- mov r8, r4
- mov r6, r8
- ands r6, r5
- mov r8, r6
- movs r6, 0xF8
- lsls r6, 2
- ands r6, r4
- lsrs r6, 5
- movs r5, 0xF8
- lsls r5, 7
- ands r4, r5
- lsrs r4, 10
- mov r7, r9
- mov r5, r8
- subs r7, r5
- mov r12, r7
- mov r7, r12
- muls r7, r1
- adds r1, r7, 0
- asrs r1, 4
- add r8, r1
- mov r5, r9
- subs r1, r5, r6
- muls r1, r2
- asrs r1, 4
- adds r6, r1
- subs r5, r4
- mov r9, r5
- mov r1, r9
- muls r1, r3
- asrs r1, 4
- adds r4, r1
- mov r7, r8
- lsls r7, 16
- lsls r6, 21
- orrs r6, r7
- lsls r4, 26
- orrs r4, r6
- lsrs r4, 16
- ldr r1, =gPlttBufferFaded
- adds r0, r1
- strh r4, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end MultiplyInvertedPaletteRGBComponents
-
- thumb_func_start sub_80B6128
-sub_80B6128: @ 80B6128
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 16
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r4, =gPlttBufferUnfaded
- lsrs r0, 15
- adds r4, r0, r4
- ldrh r4, [r4]
- movs r5, 0x1F
- mov r8, r5
- mov r6, r8
- ands r6, r4
- mov r8, r6
- movs r5, 0xF8
- lsls r5, 2
- ands r5, r4
- lsrs r5, 5
- movs r6, 0xF8
- lsls r6, 7
- ands r4, r6
- lsrs r4, 10
- mov r6, r8
- muls r6, r1
- adds r1, r6, 0
- asrs r1, 4
- mov r6, r8
- subs r6, r1
- adds r1, r5, 0
- muls r1, r2
- asrs r1, 4
- subs r5, r1
- adds r1, r4, 0
- muls r1, r3
- asrs r1, 4
- subs r4, r1
- lsls r6, 16
- lsls r5, 21
- orrs r5, r6
- lsls r4, 26
- orrs r4, r5
- lsrs r4, 16
- ldr r1, =gPlttBufferFaded
- adds r0, r1
- strh r4, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B6128
-
- thumb_func_start sub_80B61A0
-sub_80B61A0: @ 80B61A0
- push {r4,lr}
- bl CalculatePlayerPartyCount
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =sub_80B61E4
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r1, r0
- strh r4, [r1, 0xA]
- movs r0, 0x5D
- strh r0, [r1, 0xC]
- movs r0, 0x24
- strh r0, [r1, 0xE]
- movs r0, 0x7C
- strh r0, [r1, 0x10]
- movs r0, 0x18
- strh r0, [r1, 0x12]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B61A0
-
- thumb_func_start sub_80B61E4
-sub_80B61E4: @ 80B61E4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r1, r0
- ldr r2, =gUnknown_0855C364
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- lsls r0, 2
- adds r0, r2
- ldr r2, [r0]
- adds r0, r1, 0
- bl _call_via_r2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B61E4
-
- thumb_func_start sub_80B6214
-sub_80B6214: @ 80B6214
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r3, 0xE
- ldrsh r2, [r4, r3]
- movs r3, 0x1
- bl sub_80B646C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl sub_80B6850
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B6214
-
- thumb_func_start sub_80B6250
-sub_80B6250: @ 80B6250
- push {r4,lr}
- adds r2, r0, 0
- ldr r3, =gSprites
- movs r1, 0x14
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r4, 0x2E
- ldrsh r0, [r1, r4]
- cmp r0, 0x1
- ble _080B6282
- movs r0, 0x16
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- strh r1, [r0, 0x2E]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_080B6282:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B6250
-
- thumb_func_start sub_80B628C
-sub_80B628C: @ 80B628C
- push {lr}
- adds r3, r0, 0
- ldr r2, =gSprites
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- ble _080B62AC
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_080B62AC:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B628C
-
- thumb_func_start sub_80B62B4
-sub_80B62B4: @ 80B62B4
- push {lr}
- ldr r2, =gSprites
- movs r3, 0x14
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x6
- ble _080B62E6
- adds r0, r1, 0
- bl DestroySprite
- movs r0, 0x19
- bl FieldEffectActiveListRemove
- ldr r0, =sub_80B61E4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080B62E6:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B62B4
-
- thumb_func_start sub_80B62F4
-sub_80B62F4: @ 80B62F4
- push {r4,lr}
- bl CalculatePlayerPartyCount
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =sub_80B6330
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r1, r0
- strh r4, [r1, 0xA]
- movs r0, 0x75
- strh r0, [r1, 0xC]
- movs r0, 0x34
- strh r0, [r1, 0xE]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B62F4
-
- thumb_func_start sub_80B6330
-sub_80B6330: @ 80B6330
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r1, r0
- ldr r2, =gUnknown_0855C374
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- lsls r0, 2
- adds r0, r2
- ldr r2, [r0]
- adds r0, r1, 0
- bl _call_via_r2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B6330
-
- thumb_func_start sub_80B6360
-sub_80B6360: @ 80B6360
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r3, 0xE
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl sub_80B646C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- ldr r0, =sub_80B6330
- bl FindTaskIdByFunc
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x78
- movs r2, 0x18
- movs r3, 0
- bl sub_80B68EC
- adds r0, r4, 0
- movs r1, 0x28
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80B68EC
- adds r0, r4, 0
- movs r1, 0x48
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80B68EC
- adds r0, r4, 0
- movs r1, 0xA8
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80B68EC
- adds r0, r4, 0
- movs r1, 0xC8
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80B68EC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B6360
-
- thumb_func_start sub_80B63D4
-sub_80B63D4: @ 80B63D4
- push {lr}
- adds r3, r0, 0
- ldr r2, =gSprites
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- ble _080B63FA
- ldrh r0, [r3, 0x26]
- adds r0, 0x1
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_080B63FA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B63D4
-
- thumb_func_start sub_80B6404
-sub_80B6404: @ 80B6404
- push {lr}
- adds r3, r0, 0
- ldr r2, =gSprites
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- ble _080B6424
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_080B6424:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B6404
-
- thumb_func_start sub_80B642C
-sub_80B642C: @ 80B642C
- push {lr}
- ldr r2, =gSprites
- movs r3, 0x14
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x6
- ble _080B645E
- adds r0, r1, 0
- bl DestroySprite
- movs r0, 0x3E
- bl FieldEffectActiveListRemove
- ldr r0, =sub_80B6330
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080B645E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B642C
-
- thumb_func_start sub_80B646C
-sub_80B646C: @ 80B646C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- ldr r0, =sub_80B64C0
- bl CreateInvisibleSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r2, =gSprites
- adds r1, r2
- strh r4, [r1, 0x24]
- strh r5, [r1, 0x26]
- strh r6, [r1, 0x38]
- mov r2, r8
- strh r2, [r1, 0x3A]
- strh r0, [r1, 0x3C]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B646C
-
- thumb_func_start sub_80B64C0
-sub_80B64C0: @ 80B64C0
- push {lr}
- ldr r2, =gUnknown_0855C384
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B64C0
-
- thumb_func_start sub_80B64DC
-sub_80B64DC: @ 80B64DC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B64F4
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080B6550
-_080B64F4:
- movs r0, 0x19
- strh r0, [r4, 0x30]
- ldr r0, =gUnknown_0855C304
- ldr r1, =gUnknown_0855C3A4
- movs r2, 0x32
- ldrsh r3, [r4, r2]
- lsls r3, 2
- adds r3, r1
- ldrh r1, [r4, 0x24]
- ldrh r2, [r3]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x26]
- ldrh r3, [r3, 0x2]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldrh r0, [r4, 0x3C]
- strh r0, [r1, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3A]
- subs r0, 0x1
- strh r0, [r4, 0x3A]
- movs r0, 0x17
- bl PlaySE
-_080B6550:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B6562
- movs r0, 0x20
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080B6562:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B64DC
-
- thumb_func_start sub_80B6574
-sub_80B6574: @ 80B6574
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _080B65A4
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- movs r0, 0x8
- strh r0, [r1, 0x30]
- strh r2, [r1, 0x32]
- strh r2, [r1, 0x34]
- movs r2, 0x38
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080B65A4
- movs r0, 0xB8
- lsls r0, 1
- bl PlayFanfare
-_080B65A4:
- pop {r0}
- bx r0
- thumb_func_end sub_80B6574
-
- thumb_func_start sub_80B65A8
-sub_80B65A8: @ 80B65A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- ldrh r0, [r7, 0x30]
- subs r0, 0x1
- strh r0, [r7, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080B65D8
- movs r0, 0x8
- strh r0, [r7, 0x30]
- ldrh r0, [r7, 0x32]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r7, 0x32]
- cmp r0, 0
- bne _080B65D8
- ldrh r0, [r7, 0x34]
- adds r0, 0x1
- strh r0, [r7, 0x34]
-_080B65D8:
- ldrh r4, [r7, 0x32]
- adds r4, 0x3
- movs r0, 0x3
- mov r8, r0
- mov r1, r8
- ands r4, r1
- ldr r3, =0x00001007
- mov r10, r3
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x84
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldr r6, =gUnknown_0855C3BC
- adds r1, r4, r6
- ldrb r1, [r1]
- ldr r5, =gUnknown_0855C3C0
- adds r2, r4, r5
- ldrb r2, [r2]
- ldr r3, =gUnknown_0855C3C4
- mov r9, r3
- add r4, r9
- ldrb r3, [r4]
- bl MultiplyInvertedPaletteRGBComponents
- ldrh r4, [r7, 0x32]
- adds r4, 0x2
- mov r0, r8
- ands r4, r0
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x83
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- adds r1, r4, r6
- ldrb r1, [r1]
- adds r2, r4, r5
- ldrb r2, [r2]
- add r4, r9
- ldrb r3, [r4]
- bl MultiplyInvertedPaletteRGBComponents
- ldrh r4, [r7, 0x32]
- adds r4, 0x1
- mov r3, r8
- ands r4, r3
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x81
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- adds r1, r4, r6
- ldrb r1, [r1]
- adds r2, r4, r5
- ldrb r2, [r2]
- add r4, r9
- ldrb r3, [r4]
- bl MultiplyInvertedPaletteRGBComponents
- ldrh r4, [r7, 0x32]
- lsls r4, 24
- lsrs r4, 24
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r3, =0x01050000
- adds r0, r3
- lsrs r0, 16
- adds r6, r4, r6
- ldrb r6, [r6]
- adds r5, r4, r5
- ldrb r5, [r5]
- add r4, r9
- ldrb r4, [r4]
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r1, =0x01030000
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- movs r3, 0x34
- ldrsh r0, [r7, r3]
- cmp r0, 0x2
- ble _080B66C2
- ldrh r0, [r7, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r7, 0x2E]
- movs r0, 0x8
- strh r0, [r7, 0x30]
- strh r1, [r7, 0x32]
-_080B66C2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B65A8
-
- thumb_func_start sub_80B66E8
-sub_80B66E8: @ 80B66E8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080B6718
- movs r0, 0x8
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r2, 0x32]
- cmp r0, 0x3
- bne _080B6718
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- movs r0, 0x1E
- strh r0, [r2, 0x30]
-_080B6718:
- ldrh r4, [r2, 0x32]
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x00001007
- mov r8, r0
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x84
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldr r1, =gUnknown_0855C3BC
- adds r1, r4, r1
- ldrb r6, [r1]
- ldr r1, =gUnknown_0855C3C0
- adds r1, r4, r1
- ldrb r5, [r1]
- ldr r1, =gUnknown_0855C3C4
- adds r4, r1
- ldrb r4, [r4]
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- mov r0, r8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x83
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- mov r0, r8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x81
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- mov r0, r8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r1, =0x01050000
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- mov r0, r8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r1, =0x01030000
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B66E8
-
- thumb_func_start sub_80B67DC
-sub_80B67DC: @ 80B67DC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080B67F2
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_080B67F2:
- pop {r0}
- bx r0
- thumb_func_end sub_80B67DC
-
- thumb_func_start sub_80B67F8
-sub_80B67F8: @ 80B67F8
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- strh r1, [r0, 0x2E]
- bx lr
- thumb_func_end sub_80B67F8
-
- thumb_func_start sub_80B6800
-sub_80B6800: @ 80B6800
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080B6816
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _080B681C
-_080B6816:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080B681C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B6800
-
- thumb_func_start nullsub_97
-nullsub_97: @ 80B6824
- bx lr
- thumb_func_end nullsub_97
-
- thumb_func_start sub_80B6828
-sub_80B6828: @ 80B6828
- push {lr}
- adds r3, r0, 0
- ldr r2, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- ble _080B6848
- adds r0, r3, 0
- bl FieldEffectFreeGraphicsResources
-_080B6848:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B6828
-
- thumb_func_start sub_80B6850
-sub_80B6850: @ 80B6850
- push {r4,lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, =gUnknown_0855C31C
- lsls r3, 16
- asrs r3, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r3, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x5]
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- ldr r1, =gUnknown_0855C2AC
- bl SetSubspriteTables
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B6850
-
- thumb_func_start sub_80B68AC
-sub_80B68AC: @ 80B68AC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080B68D0
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080B68D0:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B68E4
- adds r0, r4, 0
- bl FieldEffectFreeGraphicsResources
-_080B68E4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B68AC
-
- thumb_func_start sub_80B68EC
-sub_80B68EC: @ 80B68EC
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- cmp r3, 0
- bne _080B6934
- ldr r0, =gUnknown_0855C334
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- ldr r1, =gUnknown_0855C2C4
- bl SetSubspriteTables
- b _080B6948
- .pool
-_080B6934:
- ldr r0, =gUnknown_0855C34C
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
-_080B6948:
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- strh r5, [r0, 0x2E]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B68EC
-
- thumb_func_start sub_80B6970
-sub_80B6970: @ 80B6970
- push {lr}
- adds r3, r0, 0
- ldr r2, =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x26
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080B69C6
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080B699E
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080B69C0
-_080B699E:
- movs r0, 0x10
- strh r0, [r3, 0x30]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080B69C0:
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
-_080B69C6:
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r0, 0x7F
- ble _080B69D4
- adds r0, r3, 0
- bl FieldEffectFreeGraphicsResources
-_080B69D4:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B6970
-
- thumb_func_start sub_80B69DC
-sub_80B69DC: @ 80B69DC
- push {lr}
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
- ldr r1, =gFieldCallback
- ldr r0, =mapldr_080842E8
- str r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B69DC
-
- thumb_func_start mapldr_080842E8
-mapldr_080842E8: @ 80B69FC
- push {lr}
- bl pal_fill_black
- ldr r0, =task00_8084310
- movs r1, 0
- bl CreateTask
- bl ScriptContext2_Enable
- bl FreezeMapObjects
- ldr r1, =gFieldCallback
- movs r0, 0
- str r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end mapldr_080842E8
-
- thumb_func_start task00_8084310
-task00_8084310: @ 80B6A24
- 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 r4, r0, r1
- movs r0, 0x8
- ldrsh r6, [r4, r0]
- cmp r6, 0
- bne _080B6A64
- bl sub_80ABDFC
- lsls r0, 24
- cmp r0, 0
- beq _080B6A8A
- bl GetCursorSelectionMonId
- ldr r1, =gFieldEffectArguments
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- cmp r0, 0x5
- ble _080B6A58
- str r6, [r1]
-_080B6A58:
- movs r0, 0x1F
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B6A64:
- movs r0, 0x1F
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080B6A8A
- bl Overworld_ResetStateAfterFly
- bl warp_in
- ldr r0, =CB2_LoadMap
- bl SetMainCallback2
- ldr r1, =gFieldCallback
- ldr r0, =mapldr_08084390
- str r0, [r1]
- adds r0, r5, 0
- bl DestroyTask
-_080B6A8A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task00_8084310
-
- thumb_func_start mapldr_08084390
-mapldr_08084390: @ 80B6AA4
- push {r4,lr}
- bl Overworld_PlaySpecialMapMusic
- bl pal_fill_black
- ldr r0, =c3_080843F8
- movs r1, 0
- bl CreateTask
- ldr r4, =gMapObjects
- ldr r3, =gPlayerAvatar
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldrb r1, [r3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080B6AE6
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x3
- bl FieldObjectTurn
-_080B6AE6:
- bl ScriptContext2_Enable
- bl FreezeMapObjects
- ldr r1, =gFieldCallback
- movs r0, 0
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end mapldr_08084390
-
- thumb_func_start c3_080843F8
-c3_080843F8: @ 80B6B0C
- 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
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B6B3E
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B6B58
- movs r0, 0x20
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B6B3E:
- movs r0, 0x20
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080B6B58
- bl ScriptContext2_Disable
- bl UnfreezeMapObjects
- adds r0, r5, 0
- bl DestroyTask
-_080B6B58:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end c3_080843F8
-
- thumb_func_start sub_80B6B68
-sub_80B6B68: @ 80B6B68
- push {lr}
- bl Overworld_PlaySpecialMapMusic
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- bl FreezeMapObjects
- ldr r0, =sub_80B6B94
- movs r1, 0
- bl CreateTask
- ldr r1, =gFieldCallback
- movs r0, 0
- str r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B6B68
-
- thumb_func_start sub_80B6B94
-sub_80B6B94: @ 80B6B94
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- ldr r5, =gUnknown_0855C3C8
-_080B6BA6:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080B6BA6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B6B94
-
- thumb_func_start sub_80B6BCC
-sub_80B6BCC: @ 80B6BCC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r9, r0
- ldr r6, =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r5, r0, 3
- adds r5, r0
- lsls r5, 2
- ldr r0, =gMapObjects
- mov r8, r0
- add r5, r8
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- bl CameraObjectReset2
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r0, 0x1
- strb r0, [r6, 0x6]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- adds r3, r4, 0
- adds r3, 0x42
- ldrb r0, [r3]
- lsrs r0, 6
- mov r1, r9
- strh r0, [r1, 0x10]
- ldrb r0, [r5, 0x3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r5, 0x3]
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldrb r1, [r3]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r3]
- mov r1, r9
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B6BCC
-
- thumb_func_start sub_80B6C74
-sub_80B6C74: @ 80B6C74
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80ABDFC
- lsls r0, 24
- cmp r0, 0
- beq _080B6C88
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B6C88:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6C74
-
- thumb_func_start sub_80B6C90
-sub_80B6C90: @ 80B6C90
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gPlayerAvatar
- ldrb r0, [r6, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r0, r2, 0
- adds r0, 0x29
- movs r4, 0
- ldrsb r4, [r0, r4]
- lsls r0, r4, 17
- negs r0, r0
- ldrh r1, [r2, 0x22]
- ldr r3, =gSpriteCoordOffsetY
- adds r1, r4
- ldrh r3, [r3]
- adds r1, r3
- asrs r0, 16
- adds r0, r1
- negs r0, r0
- movs r1, 0
- strh r0, [r2, 0x26]
- movs r0, 0x1
- strh r0, [r5, 0xA]
- strh r1, [r5, 0xC]
- ldr r2, =gMapObjects
- ldrb r0, [r6, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r0, 0x2B
- bl PlaySE
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B6C90
-
- thumb_func_start sub_80B6D04
-sub_80B6D04: @ 80B6D04
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r2, =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r6, r0, r1
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r5, r0, r1
- ldrh r0, [r4, 0xA]
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r2, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bgt _080B6D46
- ldrh r1, [r4, 0xC]
- adds r0, r2, r1
- strh r0, [r4, 0xC]
- movs r1, 0xF
- ands r0, r1
- cmp r0, 0
- beq _080B6D46
- lsls r0, r2, 1
- strh r0, [r4, 0xA]
-_080B6D46:
- ldrh r2, [r4, 0xE]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B6D84
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _080B6D84
- adds r0, r2, 0x1
- strh r0, [r4, 0xE]
- ldrb r1, [r6, 0x3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r6, 0x3]
- ldrb r1, [r4, 0x10]
- adds r3, r5, 0
- adds r3, 0x42
- lsls r1, 6
- ldrb r2, [r3]
- movs r0, 0x3F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r6]
-_080B6D84:
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _080B6DA8
- movs r0, 0xD6
- bl PlaySE
- ldrb r0, [r6]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r6]
- movs r0, 0
- strh r0, [r5, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B6DA8:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B6D04
-
- thumb_func_start sub_80B6DBC
-sub_80B6DBC: @ 80B6DBC
- push {lr}
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- movs r2, 0
- strh r1, [r0, 0x8]
- movs r1, 0x4
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80B6DBC
-
- thumb_func_start sub_80B6DD8
-sub_80B6DD8: @ 80B6DD8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- ldrh r0, [r4, 0xA]
- negs r2, r0
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B6E00
- lsls r0, r2, 16
- asrs r0, 17
- strh r0, [r4, 0xA]
-_080B6E00:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B6E0E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B6E0E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6DD8
-
- thumb_func_start sub_80B6E18
-sub_80B6E18: @ 80B6E18
- push {lr}
- ldr r1, =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- bl CameraObjectReset1
- bl UnfreezeMapObjects
- bl InstallCameraPanAheadCallback
- ldr r0, =sub_80B6B94
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B6E18
-
- thumb_func_start sub_80B6E4C
-sub_80B6E4C: @ 80B6E4C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, =sub_80B6E88
- 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, 0xA]
- cmp r4, 0x6A
- bne _080B6E78
- movs r0, 0x1
- strh r0, [r1, 0xA]
-_080B6E78:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B6E4C
-
- thumb_func_start sub_80B6E88
-sub_80B6E88: @ 80B6E88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- ldr r5, =gUnknown_0855C3E4
-_080B6E9A:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080B6E9A
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B6E88
-
- thumb_func_start sub_80B6EC0
-sub_80B6EC0: @ 80B6EC0
- push {r4,lr}
- adds r4, r0, 0
- bl FreezeMapObjects
- bl CameraObjectReset2
- ldrb r0, [r4, 0xA]
- bl sub_80E1558
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6EC0
-
- thumb_func_start sub_80B6EE0
-sub_80B6EE0: @ 80B6EE0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080B6F0A
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B6F3E
-_080B6F0A:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xC]
- strh r1, [r5, 0xE]
- ldrb r0, [r5, 0xA]
- cmp r0, 0
- bne _080B6F38
- movs r0, 0x4
- strh r0, [r5, 0x8]
-_080B6F38:
- movs r0, 0x50
- bl PlaySE
-_080B6F3E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B6EE0
-
- thumb_func_start sub_80B6F50
-sub_80B6F50: @ 80B6F50
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80B6FB8
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _080B6F6A
- bl sub_80B7050
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B6F6A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6F50
-
- thumb_func_start sub_80B6F74
-sub_80B6F74: @ 80B6F74
- push {lr}
- bl sub_80B6FB8
- bl sub_80B7060
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80B6F74
-
- thumb_func_start sub_80B6F84
-sub_80B6F84: @ 80B6F84
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80B7004
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _080B6F9E
- bl sub_80B7050
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B6F9E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6F84
-
- thumb_func_start sub_80B6FA8
-sub_80B6FA8: @ 80B6FA8
- push {lr}
- bl sub_80B7004
- bl sub_80B7060
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80B6FA8
-
- thumb_func_start sub_80B6FB8
-sub_80B6FB8: @ 80B6FB8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- movs r0, 0x84
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- movs r0, 0x94
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B6FF6
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
-_080B6FF6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B6FB8
-
- thumb_func_start sub_80B7004
-sub_80B7004: @ 80B7004
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- movs r0, 0x7C
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- movs r0, 0x76
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B7042
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
-_080B7042:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B7004
-
- thumb_func_start sub_80B7050
-sub_80B7050: @ 80B7050
- push {lr}
- bl music_something
- bl sub_80AF0B4
- pop {r0}
- bx r0
- thumb_func_end sub_80B7050
-
- thumb_func_start sub_80B7060
-sub_80B7060: @ 80B7060
- push {lr}
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B709C
- bl sub_80859A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B709C
- bl sub_80E1570
- bl warp_in
- ldr r1, =gFieldCallback
- ldr r0, =sub_80B70B4
- str r0, [r1]
- ldr r0, =CB2_LoadMap
- bl SetMainCallback2
- ldr r0, =sub_80B6E88
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080B709C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B7060
-
- thumb_func_start sub_80B70B4
-sub_80B70B4: @ 80B70B4
- push {lr}
- bl Overworld_PlaySpecialMapMusic
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- ldr r0, =sub_80B70DC
- movs r1, 0
- bl CreateTask
- ldr r1, =gFieldCallback
- movs r0, 0
- str r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B70B4
-
- thumb_func_start sub_80B70DC
-sub_80B70DC: @ 80B70DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- ldr r5, =gUnknown_0855C3FC
-_080B70EE:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080B70EE
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B70DC
-
- thumb_func_start sub_80B7114
-sub_80B7114: @ 80B7114
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl CameraObjectReset2
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gMapObjects
- adds r4, r0
- movs r0, 0x4
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r1, r0, 24
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x10
- strh r0, [r5, 0xA]
- cmp r1, 0x6B
- bne _080B717C
- movs r1, 0x1
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _080B717E
- .pool
-_080B717C:
- movs r1, 0
-_080B717E:
- adds r0, r1, 0
- bl sub_80E1558
- movs r0, 0x1
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B7114
-
- thumb_func_start sub_80B7190
-sub_80B7190: @ 80B7190
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x84
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x94
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B7190
-
- thumb_func_start sub_80B71D0
-sub_80B71D0: @ 80B71D0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r5, r0, r1
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x84
- bl Cos
- strh r0, [r5, 0x24]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x94
- bl Sin
- strh r0, [r5, 0x26]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B720E
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
-_080B720E:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B721E
- strh r0, [r5, 0x24]
- strh r0, [r5, 0x26]
- movs r0, 0x5
- strh r0, [r4, 0x8]
-_080B721E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B71D0
-
- thumb_func_start sub_80B7230
-sub_80B7230: @ 80B7230
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x7C
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x76
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B7230
-
- thumb_func_start sub_80B7270
-sub_80B7270: @ 80B7270
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r5, r0, r1
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x7C
- bl Cos
- strh r0, [r5, 0x24]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x76
- bl Sin
- strh r0, [r5, 0x26]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B72AE
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
-_080B72AE:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B72C0
- strh r0, [r5, 0x24]
- strh r0, [r5, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B72C0:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B7270
-
- thumb_func_start sub_80B72D0
-sub_80B72D0: @ 80B72D0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80E1584
- lsls r0, 24
- cmp r0, 0
- bne _080B72EC
- bl sub_80E1570
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- b _080B72EE
-_080B72EC:
- movs r0, 0
-_080B72EE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B72D0
-
- thumb_func_start sub_80B72F4
-sub_80B72F4: @ 80B72F4
- push {r4,lr}
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B7338
- bl CameraObjectReset1
- bl ScriptContext2_Disable
- movs r0, 0x4
- bl GetGoSpeed0AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r0, =sub_80B70DC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080B7338:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B72F4
-
- thumb_func_start oei_waterfall
-oei_waterfall: @ 80B734C
- push {r4,lr}
- ldr r4, =sub_80B7384
- adds r0, r4, 0
- movs r1, 0xFF
- 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 r2, =gFieldEffectArguments
- ldr r2, [r2]
- strh r2, [r1, 0xA]
- bl _call_via_r4
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oei_waterfall
-
- thumb_func_start sub_80B7384
-sub_80B7384: @ 80B7384
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gUnknown_0855C418
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_080B7396:
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gMapObjects
- adds r1, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _080B7396
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B7384
-
- thumb_func_start sub_80B73D0
-sub_80B73D0: @ 80B73D0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B73D0
-
- thumb_func_start waterfall_1_do_anim_probably
-waterfall_1_do_anim_probably: @ 80B73F0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl ScriptContext2_Enable
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _080B7420
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldr r1, =gFieldEffectArguments
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r0, 0x3B
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B7420:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end waterfall_1_do_anim_probably
-
- thumb_func_start waterfall_2_wait_anim_finish_probably
-waterfall_2_wait_anim_finish_probably: @ 80B742C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080B7446
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- b _080B7448
-_080B7446:
- movs r0, 0
-_080B7448:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end waterfall_2_wait_anim_finish_probably
-
- thumb_func_start sub_80B7450
-sub_80B7450: @ 80B7450
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0x2
- bl GetSimpleGoAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B7450
-
- thumb_func_start sub_80B7478
-sub_80B7478: @ 80B7478
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- bne _080B748E
- movs r0, 0
- b _080B74CA
-_080B748E:
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080B74C4
- bl ScriptContext2_Disable
- ldr r0, =gPlayerAvatar
- strb r4, [r0, 0x6]
- ldr r0, =sub_80B7384
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0x2B
- bl FieldEffectActiveListRemove
- movs r0, 0
- b _080B74CA
- .pool
-_080B74C4:
- movs r0, 0x3
- strh r0, [r5, 0x8]
- movs r0, 0x1
-_080B74CA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B7478
-
- thumb_func_start sub_80B74D0
-sub_80B74D0: @ 80B74D0
- push {r4,lr}
- ldr r4, =sub_80B750C
- adds r0, r4, 0
- movs r1, 0xFF
- 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 r3, =gFieldEffectArguments
- ldr r2, [r3]
- strh r2, [r1, 0x26]
- ldr r2, [r3, 0x4]
- strh r2, [r1, 0x24]
- bl _call_via_r4
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B74D0
-
- thumb_func_start sub_80B750C
-sub_80B750C: @ 80B750C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gUnknown_0855C42C
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_080B751E:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080B751E
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B750C
-
- thumb_func_start dive_1_lock
-dive_1_lock: @ 80B7544
- ldr r2, =gPlayerAvatar
- movs r1, 0x1
- strb r1, [r2, 0x6]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- movs r0, 0
- bx lr
- .pool
- thumb_func_end dive_1_lock
-
- thumb_func_start dive_2_unknown
-dive_2_unknown: @ 80B7558
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, =gFieldEffectArguments
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r0, 0x3B
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end dive_2_unknown
-
- thumb_func_start dive_3_unknown
-dive_3_unknown: @ 80B7580
- push {lr}
- sub sp, 0x8
- mov r1, sp
- adds r1, 0x2
- mov r0, sp
- bl PlayerGetDestCoords
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080B75C4
- ldr r2, =gMapObjects
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1E]
- mov r0, sp
- bl dive_warp
- ldr r0, =sub_80B750C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0x2C
- bl FieldEffectActiveListRemove
-_080B75C4:
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .pool
- thumb_func_end dive_3_unknown
-
- thumb_func_start sub_80B75D8
-sub_80B75D8: @ 80B75D8
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, =sub_80B75F0
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B75D8
-
- thumb_func_start sub_80B75F0
-sub_80B75F0: @ 80B75F0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, =gUnknown_0855C438
- ldr r2, =gTasks
- ldr r5, =gPlayerAvatar
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_080B7604:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gMapObjects
- adds r1, r0
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _080B7604
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B75F0
-
- thumb_func_start sub_80B764C
-sub_80B764C: @ 80B764C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FreezeMapObjects
- bl CameraObjectReset2
- movs r0, 0
- bl SetCameraPanningCallback
- ldr r0, =gPlayerAvatar
- movs r2, 0x1
- strb r2, [r0, 0x6]
- ldrb r0, [r5, 0x3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x3]
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B764C
-
- thumb_func_start sub_80B7684
-sub_80B7684: @ 80B7684
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- ldrh r0, [r4, 0xA]
- negs r0, r0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080B76B0
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B76B0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B7684
-
- thumb_func_start sub_80B76B8
-sub_80B76B8: @ 80B76B8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0
- strh r0, [r2, 0x26]
- movs r0, 0x1
- strh r0, [r4, 0xE]
- ldr r3, =gFieldEffectArguments
- movs r5, 0x10
- ldrsh r0, [r1, r5]
- str r0, [r3]
- movs r5, 0x12
- ldrsh r0, [r1, r5]
- str r0, [r3, 0x4]
- adds r0, r2, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r3, 0x8]
- ldrb r0, [r2, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r3, 0xC]
- movs r0, 0x32
- bl FieldEffectStart
- movs r0, 0xB2
- bl PlaySE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B76B8
-
- thumb_func_start sub_80B7704
-sub_80B7704: @ 80B7704
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- adds r5, r2, 0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- ldrh r0, [r4, 0xA]
- negs r2, r0
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x11
- bgt _080B773E
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- bne _080B7750
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3
- bgt _080B7750
- lsls r0, r2, 1
- b _080B774E
-_080B773E:
- movs r0, 0x4
- ands r1, r0
- cmp r1, 0
- bne _080B7750
- lsls r0, r2, 16
- cmp r0, 0
- ble _080B7750
- asrs r0, 17
-_080B774E:
- strh r0, [r4, 0xA]
-_080B7750:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- ble _080B779C
- adds r0, r5, 0
- adds r0, 0x29
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r2, r1, 17
- negs r2, r2
- movs r7, 0x26
- ldrsh r3, [r5, r7]
- movs r7, 0x22
- ldrsh r0, [r5, r7]
- adds r0, r1
- ldr r1, =gSpriteCoordOffsetY
- movs r7, 0
- ldrsh r1, [r1, r7]
- adds r0, r1
- asrs r2, 16
- adds r0, r2
- cmn r3, r0
- ble _080B7798
- ldrh r0, [r5, 0x26]
- ldrh r1, [r4, 0xE]
- subs r0, r1
- strh r0, [r5, 0x26]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x7
- bgt _080B779C
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080B779C
- .pool
-_080B7798:
- movs r0, 0x1
- strh r0, [r4, 0x10]
-_080B779C:
- ldrh r2, [r4, 0x12]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B77DA
- movs r7, 0x26
- ldrsh r1, [r5, r7]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080B77DA
- adds r0, r2, 0x1
- strh r0, [r4, 0x12]
- ldrb r0, [r6, 0x3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r6, 0x3]
- ldrb r1, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- adds r2, r5, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
-_080B77DA:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B77F0
- movs r7, 0x10
- ldrsh r0, [r4, r7]
- cmp r0, 0
- beq _080B77F0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B77F0:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B7704
-
- thumb_func_start sub_80B77F8
-sub_80B77F8: @ 80B77F8
- push {r4,lr}
- adds r4, r0, 0
- bl music_something
- bl sub_80AF0B4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B77F8
-
- thumb_func_start sub_80B7814
-sub_80B7814: @ 80B7814
- push {lr}
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B784C
- bl sub_80859A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B784C
- bl warp_in
- ldr r1, =gFieldCallback
- ldr r0, =mapldr_080851BC
- str r0, [r1]
- ldr r0, =CB2_LoadMap
- bl SetMainCallback2
- ldr r0, =sub_80B75F0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080B784C:
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B7814
-
- thumb_func_start mapldr_080851BC
-mapldr_080851BC: @ 80B7868
- push {lr}
- bl Overworld_PlaySpecialMapMusic
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- ldr r0, =gFieldCallback
- movs r1, 0
- str r1, [r0]
- ldr r0, =sub_80B7890
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end mapldr_080851BC
-
- thumb_func_start sub_80B7890
-sub_80B7890: @ 80B7890
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, =gUnknown_0855C450
- ldr r2, =gTasks
- ldr r5, =gPlayerAvatar
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_080B78A4:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gMapObjects
- adds r1, r0
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _080B78A4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B7890
-
- thumb_func_start sub_80B78EC
-sub_80B78EC: @ 80B78EC
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl CameraObjectReset2
- bl FreezeMapObjects
- ldr r1, =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B78EC
-
- thumb_func_start sub_80B791C
-sub_80B791C: @ 80B791C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl sub_80ABDFC
- lsls r0, 24
- cmp r0, 0
- beq _080B795C
- ldr r1, =gFieldEffectArguments
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r5, r2]
- str r0, [r1, 0x4]
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r1, 0x8]
- ldrb r0, [r6, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r1, 0xC]
- movs r0, 0x31
- bl FieldEffectStart
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B795C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B791C
-
- thumb_func_start sub_80B7968
-sub_80B7968: @ 80B7968
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- movs r0, 0xA
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _080B79B0
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- ldrb r1, [r4, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- bl CameraObjectReset1
- movs r0, 0xAF
- bl PlaySE
- movs r0, 0x4
- bl sub_8093514
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
-_080B79B0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B7968
-
- thumb_func_start sub_80B79BC
-sub_80B79BC: @ 80B79BC
- push {lr}
- adds r0, r1, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B79E6
- ldr r1, =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- bl UnfreezeMapObjects
- ldr r0, =sub_80B7890
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080B79E6:
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B79BC
-
- thumb_func_start sub_80B79F4
-sub_80B79F4: @ 80B79F4
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- adds r0, 0x84
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- movs r1, 0x3
- ldrb r3, [r4, 0xC]
- ands r3, r1
- lsls r3, 2
- ldrb r4, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x2
- orrs r1, r3
- strb r1, [r2]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B79F4
-
- thumb_func_start sub_80B7A58
-sub_80B7A58: @ 80B7A58
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B7A70
- adds r0, r2, 0
- movs r1, 0x32
- bl FieldEffectStop
-_080B7A70:
- pop {r0}
- bx r0
- thumb_func_end sub_80B7A58
-
- thumb_func_start sub_80B7A74
-sub_80B7A74: @ 80B7A74
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, =sub_80B7A8C
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B7A74
-
- thumb_func_start sub_80B7A8C
-sub_80B7A8C: @ 80B7A8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, =gUnknown_0855C460
- ldr r2, =gTasks
- ldr r5, =gPlayerAvatar
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_080B7AA0:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gMapObjects
- adds r1, r0
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _080B7AA0
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B7A8C
-
- thumb_func_start sub_80B7AE8
-sub_80B7AE8: @ 80B7AE8
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl FreezeMapObjects
- bl CameraObjectReset2
- ldr r1, =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrb r0, [r4, 0x3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x3]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B7AE8
-
- thumb_func_start sub_80B7B18
-sub_80B7B18: @ 80B7B18
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B7B8C
- ldrh r1, [r5, 0xA]
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- cmp r0, 0x3
- ble _080B7B6C
- ldr r1, =gFieldEffectArguments
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- str r0, [r1, 0x4]
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r1, 0x8]
- ldrb r0, [r6, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r1, 0xC]
- movs r0, 0x31
- bl FieldEffectStart
- strh r0, [r5, 0xA]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080B7B8C
- .pool
-_080B7B6C:
- adds r0, r1, 0x1
- strh r0, [r5, 0xA]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay4AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- movs r0, 0x27
- bl PlaySE
-_080B7B8C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80B7B18
-
- thumb_func_start sub_80B7B94
-sub_80B7B94: @ 80B7B94
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- ldr r2, =gSprites
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080B7BBE
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_080B7BBE:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B7B94
-
- thumb_func_start sub_80B7BCC
-sub_80B7BCC: @ 80B7BCC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x31
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080B7BEA
- bl music_something
- bl sub_80AF0B4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B7BEA:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B7BCC
-
- thumb_func_start sub_80B7BF4
-sub_80B7BF4: @ 80B7BF4
- push {lr}
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B7C2C
- bl sub_80859A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B7C2C
- bl warp_in
- ldr r1, =gFieldCallback
- ldr r0, =sub_80B6B68
- str r0, [r1]
- ldr r0, =CB2_LoadMap
- bl SetMainCallback2
- ldr r0, =sub_80B7A8C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080B7C2C:
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B7BF4
-
- thumb_func_start sub_80B7C48
-sub_80B7C48: @ 80B7C48
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- adds r0, 0x80
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- movs r1, 0x3
- ldrb r3, [r4, 0xC]
- ands r3, r1
- lsls r3, 2
- ldrb r4, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x2
- orrs r1, r3
- strb r1, [r2]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B7C48
-
- thumb_func_start sub_80B7CAC
-sub_80B7CAC: @ 80B7CAC
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B7CC4
- adds r0, r2, 0
- movs r1, 0x31
- bl FieldEffectStop
-_080B7CC4:
- pop {r0}
- bx r0
- thumb_func_end sub_80B7CAC
-
- thumb_func_start sub_80B7CC8
-sub_80B7CC8: @ 80B7CC8
- push {lr}
- bl ScriptContext2_Enable
- bl FreezeMapObjects
- ldr r0, =sub_80B7CE4
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B7CC8
-
- thumb_func_start sub_80B7CE4
-sub_80B7CE4: @ 80B7CE4
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gUnknown_0855C474
- ldr r2, =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B7CE4
-
- thumb_func_start sub_80B7D14
-sub_80B7D14: @ 80B7D14
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x40
- strh r0, [r4, 0x24]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7D14
-
- thumb_func_start sub_80B7D34
-sub_80B7D34: @ 80B7D34
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, =gUnknown_0855C47C
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldrh r1, [r4, 0x24]
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B7D60
- subs r0, r1, 0x1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080B7D60
- bl music_something
- bl sub_80AF0B4
-_080B7D60:
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080B7D86
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B7E40
-_080B7D86:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B7DF8
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B7DF8
- bl sub_80859A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B7DF8
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetDirection
- bl sub_8084E14
- bl warp_in
- ldr r1, =gFieldCallback
- ldr r0, =mapldr_080859D4
- str r0, [r1]
- ldr r0, =CB2_LoadMap
- bl SetMainCallback2
- ldr r0, =sub_80B7CE4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _080B7E40
- .pool
-_080B7DF8:
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B7E0C
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _080B7E40
-_080B7E0C:
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r0, [r0]
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0xB
- bgt _080B7E34
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
-_080B7E34:
- ldrh r1, [r4, 0xC]
- lsls r1, 16
- asrs r1, 18
- movs r0, 0x8
- asrs r0, r1
- strh r0, [r4, 0xA]
-_080B7E40:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7D34
-
- thumb_func_start mapldr_080859D4
-mapldr_080859D4: @ 80B7E48
- push {lr}
- bl Overworld_PlaySpecialMapMusic
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- bl FreezeMapObjects
- ldr r1, =gFieldCallback
- movs r0, 0
- str r0, [r1]
- ldr r2, =gMapObjects
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldr r0, =sub_80B7E94
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end mapldr_080859D4
-
- thumb_func_start sub_80B7E94
-sub_80B7E94: @ 80B7E94
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gUnknown_0855C484
- ldr r2, =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B7E94
-
- thumb_func_start sub_80B7EC4
-sub_80B7EC4: @ 80B7EC4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80ABDFC
- lsls r0, 24
- cmp r0, 0
- beq _080B7EE2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
-_080B7EE2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7EC4
-
- thumb_func_start sub_80B7EE8
-sub_80B7EE8: @ 80B7EE8
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r1, =gUnknown_0855C47C
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r6, r0, r1
- ldrh r1, [r5, 0xA]
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080B7F1A
- subs r0, r1, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _080B7FAC
-_080B7F1A:
- adds r0, r6, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080B7F32
- adds r0, r6, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B7FC0
-_080B7F32:
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x1F
- ble _080B7F7C
- movs r2, 0x26
- ldrsh r4, [r5, r2]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080B7F7C
- ldrb r1, [r6, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r6, 0x1]
- bl ScriptContext2_Disable
- bl UnfreezeMapObjects
- ldr r0, =sub_80B7E94
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _080B7FC0
- .pool
-_080B7F7C:
- ldrb r0, [r6, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r0, [r0]
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl FieldObjectSetSpecialAnim
- ldrh r1, [r5, 0xC]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0x1F
- bgt _080B7FA4
- adds r0, r1, 0x1
- strh r0, [r5, 0xC]
-_080B7FA4:
- ldrh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 18
- strh r0, [r5, 0xA]
-_080B7FAC:
- ldrb r2, [r6, 0x1]
- lsls r1, r2, 26
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 5
- subs r0, 0x22
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
-_080B7FC0:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7EE8
-
- thumb_func_start sub_80B7FC8
-sub_80B7FC8: @ 80B7FC8
- push {lr}
- ldr r0, =sub_80B7FDC
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B7FC8
-
- thumb_func_start sub_80B7FDC
-sub_80B7FDC: @ 80B7FDC
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gUnknown_0855C48C
- ldr r2, =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B7FDC
-
- thumb_func_start sub_80B800C
-sub_80B800C: @ 80B800C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- bl FreezeMapObjects
- bl CameraObjectReset2
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B800C
-
- thumb_func_start sub_80B8034
-sub_80B8034: @ 80B8034
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, =gUnknown_0855C47C
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r5, r0, r1
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B8066
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _080B8080
-_080B8066:
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
- adds r0, r5, 0
- bl FieldObjectTurn
- movs r0, 0x8
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_080B8080:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- ble _080B80AE
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r1, r0
- bne _080B80AE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x4
- strh r0, [r4, 0xA]
- movs r0, 0x8
- strh r0, [r4, 0xC]
- movs r0, 0x1
- strh r0, [r4, 0xE]
- movs r0, 0x2D
- bl PlaySE
-_080B80AE:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8034
-
- thumb_func_start sub_80B80C4
-sub_80B80C4: @ 80B80C4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, =gUnknown_0855C47C
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r2, =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r3, r0, r1
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r5, r0, r1
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _080B810E
- movs r0, 0x4
- strh r0, [r4, 0xA]
- ldrb r0, [r3, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
- adds r0, r3, 0
- bl FieldObjectTurn
-_080B810E:
- ldrh r0, [r5, 0x22]
- ldrh r1, [r4, 0xE]
- subs r0, r1
- strh r0, [r5, 0x22]
- ldrh r1, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- adds r0, r1, r2
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _080B813A
- movs r0, 0x4
- strh r0, [r4, 0xC]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x7
- bgt _080B813A
- lsls r0, r1, 1
- strh r0, [r4, 0xE]
-_080B813A:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- ble _080B8168
- ldrb r1, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x5]
- adds r2, r5, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _080B8168
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
-_080B8168:
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0xA7
- ble _080B817E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl music_something
- bl sub_80AF0B4
-_080B817E:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B80C4
-
- thumb_func_start sub_80B8198
-sub_80B8198: @ 80B8198
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B81E6
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B81B8
- bl sub_81BE72C
- movs r0, 0x1
- strh r0, [r4, 0x12]
-_080B81B8:
- bl sub_80859A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B81E6
- bl Overworld_SetWarpDestToLastHealLoc
- bl warp_in
- ldr r0, =CB2_LoadMap
- bl SetMainCallback2
- ldr r1, =gFieldCallback
- ldr r0, =mapldr_08085D88
- str r0, [r1]
- ldr r0, =sub_80B7FDC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080B81E6:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8198
-
- thumb_func_start mapldr_08085D88
-mapldr_08085D88: @ 80B8200
- push {lr}
- bl Overworld_PlaySpecialMapMusic
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- bl FreezeMapObjects
- ldr r1, =gFieldCallback
- movs r0, 0
- str r0, [r1]
- ldr r2, =gMapObjects
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- bl CameraObjectReset2
- ldr r0, =sub_80B8250
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end mapldr_08085D88
-
- thumb_func_start sub_80B8250
-sub_80B8250: @ 80B8250
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gUnknown_0855C49C
- ldr r2, =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8250
-
- thumb_func_start sub_80B8280
-sub_80B8280: @ 80B8280
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_80ABDFC
- lsls r0, 24
- cmp r0, 0
- beq _080B82F6
- ldr r5, =gPlayerAvatar
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r0, r2, 0
- adds r0, 0x29
- movs r4, 0
- ldrsb r4, [r0, r4]
- lsls r0, r4, 17
- negs r0, r0
- ldrh r1, [r2, 0x22]
- ldr r3, =gSpriteCoordOffsetY
- adds r1, r4
- ldrh r3, [r3]
- adds r1, r3
- asrs r0, 16
- adds r0, r1
- negs r0, r0
- strh r0, [r2, 0x26]
- ldr r3, =gMapObjects
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r3, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r3
- strb r0, [r1, 0x1]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- movs r0, 0x8
- strh r0, [r6, 0xA]
- movs r0, 0x1
- strh r0, [r6, 0xC]
- adds r2, 0x42
- ldrb r0, [r2]
- lsrs r0, 6
- strh r0, [r6, 0x24]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- movs r0, 0x2D
- bl PlaySE
-_080B82F6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8280
-
- thumb_func_start sub_80B830C
-sub_80B830C: @ 80B830C
- push {r4-r7,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, =gUnknown_0855C47C
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r2, =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r6, r0, r1
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r5, r0, r1
- ldrh r0, [r4, 0xA]
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- blt _080B8384
- ldrh r1, [r4, 0x22]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080B83AA
- adds r0, r1, 0x1
- strh r0, [r4, 0x22]
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r6]
- ldrh r1, [r4, 0x24]
- adds r3, r5, 0
- adds r3, 0x42
- lsls r1, 6
- ldrb r2, [r3]
- movs r0, 0x3F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _080B83AA
- .pool
-_080B8384:
- ldrb r1, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x5]
- adds r2, r5, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _080B83AA
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
-_080B83AA:
- ldrh r2, [r5, 0x26]
- movs r3, 0x26
- ldrsh r1, [r5, r3]
- movs r0, 0x30
- negs r0, r0
- cmp r1, r0
- blt _080B83CE
- ldrh r1, [r4, 0xA]
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- ble _080B83CE
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _080B83CE
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
-_080B83CE:
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- movs r7, 0
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080B83F0
- movs r0, 0x4
- strh r0, [r4, 0xC]
- ldrb r0, [r6, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
- adds r0, r6, 0
- bl FieldObjectTurn
-_080B83F0:
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _080B8406
- strh r7, [r5, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- strh r0, [r4, 0xA]
- strh r7, [r4, 0xC]
-_080B8406:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B830C
-
- thumb_func_start sub_80B8410
-sub_80B8410: @ 80B8410
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, =gUnknown_0855C47C
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r5, r0, r1
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _080B8484
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
- adds r0, r5, 0
- bl FieldObjectTurn
- movs r0, 0x8
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080B8484
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r1, r0
- bne _080B8484
- bl ScriptContext2_Disable
- bl CameraObjectReset1
- bl UnfreezeMapObjects
- ldr r0, =sub_80B8250
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080B8484:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8410
-
- thumb_func_start sub_80B849C
-sub_80B849C: @ 80B849C
- push {r4,lr}
- bl Overworld_GetMapTypeOfSaveblockLocation
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B84BC
- ldr r0, =sub_80B8554
- b _080B84BE
- .pool
-_080B84BC:
- ldr r0, =sub_80B88B4
-_080B84BE:
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, =gFieldEffectArguments
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- ldr r2, [r2, 0x8]
- bl sub_80B8C60
- ldr r2, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x26]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B849C
-
- thumb_func_start sub_80B84F8
-sub_80B84F8: @ 80B84F8
- push {r4-r6,lr}
- ldr r5, =gFieldEffectArguments
- ldr r0, [r5]
- movs r6, 0x80
- lsls r6, 24
- ands r6, r0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- str r0, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [r5, 0x4]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [r5, 0x8]
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- movs r0, 0x6
- bl FieldEffectStart
- movs r0, 0x3B
- bl FieldEffectActiveListRemove
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B84F8
-
- thumb_func_start sub_80B8554
-sub_80B8554: @ 80B8554
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gUnknown_0855C4A8
- ldr r2, =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8554
-
- thumb_func_start sub_80B8584
-sub_80B8584: @ 80B8584
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =0x04000048
- ldrh r0, [r0]
- strh r0, [r4, 0x1E]
- ldr r0, =0x0400004a
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- adds r0, r4, 0
- adds r0, 0x22
- ldr r1, =gMain
- ldr r1, [r1, 0xC]
- bl StoreWordInTwoHalfwords
- ldr r1, =0x0000f0f1
- strh r1, [r4, 0xA]
- ldr r0, =0x00005051
- strh r0, [r4, 0xC]
- movs r0, 0x3F
- strh r0, [r4, 0xE]
- movs r0, 0x3E
- strh r0, [r4, 0x10]
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4, 0xC]
- movs r0, 0x44
- bl SetGpuReg
- ldrh r1, [r4, 0xE]
- movs r0, 0x48
- bl SetGpuReg
- ldrh r1, [r4, 0x10]
- movs r0, 0x4A
- bl SetGpuReg
- ldr r0, =sub_80B880C
- bl SetVBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8584
-
- thumb_func_start sub_80B85F8
-sub_80B85F8: @ 80B85F8
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, =0x04000008
- ldrh r1, [r0]
- lsrs r1, 2
- lsls r1, 30
- lsrs r1, 16
- ldrh r4, [r0]
- lsrs r4, 8
- lsls r4, 27
- lsrs r4, 16
- ldr r0, =gUnknown_0855AE50
- movs r5, 0xC0
- lsls r5, 19
- adds r1, r5
- movs r2, 0x80
- lsls r2, 1
- bl CpuSet
- movs r0, 0
- str r0, [sp]
- adds r5, r4, r5
- ldr r2, =0x05000200
- mov r0, sp
- adds r1, r5, 0
- bl CpuSet
- ldr r0, =gUnknown_0855B050
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r4, 0
- bl sub_80B8874
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B85F8
-
- thumb_func_start sub_80B8660
-sub_80B8660: @ 80B8660
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x12]
- subs r0, 0x10
- strh r0, [r3, 0x12]
- ldrh r6, [r3, 0xA]
- ldrh r2, [r3, 0xC]
- movs r7, 0xFF
- lsrs r1, r6, 8
- subs r1, 0x10
- lsls r1, 16
- lsrs r0, r2, 8
- subs r0, 0x2
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r7, 0
- ands r0, r2
- adds r5, r0, 0x2
- lsrs r2, r1, 16
- cmp r1, 0
- bge _080B868C
- movs r2, 0
-_080B868C:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0x27
- bgt _080B8696
- movs r4, 0x28
-_080B8696:
- cmp r5, 0x78
- ble _080B869C
- movs r5, 0x78
-_080B869C:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 8
- adds r0, r7, 0
- ands r0, r6
- orrs r1, r0
- strh r1, [r3, 0xA]
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r4, 8
- adds r1, r5, 0
- orrs r0, r1
- strh r0, [r3, 0xC]
- cmp r2, 0
- bne _080B86DC
- cmp r4, 0x28
- bne _080B86DC
- cmp r1, 0x78
- bne _080B86DC
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, =sub_80B8CC0
- str r1, [r0]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_080B86DC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8660
-
- thumb_func_start sub_80B86EC
-sub_80B86EC: @ 80B86EC
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x12]
- subs r0, 0x10
- strh r0, [r3, 0x12]
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3C
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080B8712
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_080B8712:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B86EC
-
- thumb_func_start sub_80B871C
-sub_80B871C: @ 80B871C
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x12]
- subs r0, 0x10
- strh r0, [r3, 0x12]
- ldrh r2, [r3, 0xC]
- lsls r1, r2, 16
- movs r0, 0xFF
- asrs r1, 24
- adds r1, 0x6
- lsls r1, 16
- ands r0, r2
- subs r0, 0x6
- lsls r0, 16
- lsrs r2, r0, 16
- lsrs r4, r1, 16
- asrs r1, 16
- cmp r1, 0x50
- ble _080B8744
- movs r4, 0x50
-_080B8744:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x50
- bgt _080B874E
- movs r2, 0x51
-_080B874E:
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r0, 8
- lsls r2, 16
- asrs r2, 16
- orrs r1, r2
- strh r1, [r3, 0xC]
- cmp r0, 0x50
- bne _080B876A
- cmp r2, 0x51
- bne _080B876A
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_080B876A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B871C
-
- thumb_func_start sub_80B8770
-sub_80B8770: @ 80B8770
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, =0x04000008
- ldrh r1, [r0]
- lsrs r1, 8
- lsls r1, 27
- lsrs r1, 16
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC0
- lsls r0, 19
- adds r1, r0
- ldr r2, =0x05000200
- mov r0, sp
- bl CpuSet
- movs r0, 0xF1
- strh r0, [r4, 0xA]
- movs r0, 0xA1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x1E]
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8770
-
- thumb_func_start overworld_bg_setup_2
-overworld_bg_setup_2: @ 80B87B8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, 0x22
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp]
- bl SetVBlankCallback
- bl sub_8197200
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- bl sub_80B6070
- movs r0, 0x6
- bl FieldEffectActiveListRemove
- ldr r0, =sub_80B8554
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end overworld_bg_setup_2
-
- thumb_func_start sub_80B880C
-sub_80B880C: @ 80B880C
- push {r4,lr}
- sub sp, 0x4
- ldr r0, =sub_80B8554
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- adds r0, r4, 0
- adds r0, 0x22
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp]
- bl _call_via_r0
- ldrh r1, [r4, 0xA]
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4, 0xC]
- movs r0, 0x44
- bl SetGpuReg
- ldrh r1, [r4, 0xE]
- movs r0, 0x48
- bl SetGpuReg
- ldrh r1, [r4, 0x10]
- movs r0, 0x4A
- bl SetGpuReg
- ldrh r1, [r4, 0x12]
- movs r0, 0x10
- bl SetGpuReg
- ldrh r1, [r4, 0x14]
- movs r0, 0x12
- bl SetGpuReg
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B880C
-
- thumb_func_start sub_80B8874
-sub_80B8874: @ 80B8874
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, =0x06000140
- adds r2, r0, r1
- movs r1, 0
- ldr r5, =gUnknown_0855B070
- movs r0, 0xF0
- lsls r0, 8
- adds r4, r0, 0
- ldr r3, =0x0000013f
-_080B888A:
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- orrs r0, r4
- strh r0, [r2]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, 0x2
- cmp r1, r3
- bls _080B888A
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8874
-
- thumb_func_start sub_80B88B4
-sub_80B88B4: @ 80B88B4
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gUnknown_0855C4C4
- ldr r2, =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B88B4
-
- thumb_func_start sub_80B88E4
-sub_80B88E4: @ 80B88E4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0xA]
- movs r0, 0x10
- bl SetGpuReg
- ldrh r1, [r4, 0xC]
- movs r0, 0x12
- bl SetGpuReg
- adds r0, r4, 0
- adds r0, 0x22
- ldr r1, =gMain
- ldr r1, [r1, 0xC]
- bl StoreWordInTwoHalfwords
- ldr r0, =sub_80B8AE0
- bl SetVBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B88E4
-
- thumb_func_start sub_80B8920
-sub_80B8920: @ 80B8920
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, =0x04000008
- ldrh r1, [r0]
- lsrs r1, 2
- lsls r1, 30
- lsrs r1, 16
- ldrh r4, [r0]
- lsrs r4, 8
- lsls r4, 27
- lsrs r4, 16
- movs r0, 0
- mov r8, r0
- strh r4, [r6, 0x20]
- ldr r0, =gUnknown_0855B2F0
- movs r5, 0xC0
- lsls r5, 19
- adds r1, r5
- movs r2, 0x40
- bl CpuSet
- mov r0, r8
- str r0, [sp]
- adds r4, r5
- ldr r2, =0x05000200
- mov r0, sp
- adds r1, r4, 0
- bl CpuSet
- ldr r0, =gUnknown_0855B370
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8920
-
- thumb_func_start sub_80B898C
-sub_80B898C: @ 80B898C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80B8B38
- lsls r0, 24
- cmp r0, 0
- beq _080B89C4
- movs r0, 0x42
- movs r1, 0xF0
- bl SetGpuReg
- ldr r1, =0x00002878
- movs r0, 0x46
- bl SetGpuReg
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, =sub_80B8CC0
- str r1, [r0]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B89C4:
- adds r0, r4, 0
- bl sub_80B8B28
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B898C
-
- thumb_func_start sub_80B89DC
-sub_80B89DC: @ 80B89DC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80B8B28
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3C
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080B8A00
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B8A00:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B89DC
-
- thumb_func_start sub_80B8A0C
-sub_80B8A0C: @ 80B8A0C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_80B8B28
- ldrh r1, [r4, 0xA]
- movs r0, 0x7
- ands r0, r1
- movs r1, 0
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- ldr r5, =0x0000ffff
- movs r0, 0x42
- adds r1, r5, 0
- bl SetGpuReg
- movs r0, 0x46
- adds r1, r5, 0
- bl SetGpuReg
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8A0C
-
- thumb_func_start sub_80B8A44
-sub_80B8A44: @ 80B8A44
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80B8B28
- adds r0, r4, 0
- bl sub_80B8BF0
- lsls r0, 24
- cmp r0, 0
- beq _080B8A5E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B8A5E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B8A44
-
- thumb_func_start sub_80B8A64
-sub_80B8A64: @ 80B8A64
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, =0x04000008
- ldrh r1, [r0]
- lsrs r1, 8
- lsls r1, 27
- lsrs r1, 16
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC0
- lsls r0, 19
- adds r1, r0
- ldr r2, =0x05000200
- mov r0, sp
- bl CpuSet
- adds r0, r4, 0
- adds r0, 0x22
- add r1, sp, 0x4
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp, 0x4]
- bl SetVBlankCallback
- bl sub_8197200
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- bl sub_80B6070
- movs r0, 0x6
- bl FieldEffectActiveListRemove
- ldr r0, =sub_80B88B4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8A64
-
- thumb_func_start sub_80B8AE0
-sub_80B8AE0: @ 80B8AE0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, =sub_80B88B4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- adds r0, r4, 0
- adds r0, 0x22
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp]
- bl _call_via_r0
- ldrh r1, [r4, 0xA]
- movs r0, 0x10
- bl SetGpuReg
- ldrh r1, [r4, 0xC]
- movs r0, 0x12
- bl SetGpuReg
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8AE0
-
- thumb_func_start sub_80B8B28
-sub_80B8B28: @ 80B8B28
- ldrh r1, [r0, 0xA]
- subs r1, 0x10
- strh r1, [r0, 0xA]
- ldrh r1, [r0, 0xE]
- adds r1, 0x10
- strh r1, [r0, 0xE]
- bx lr
- thumb_func_end sub_80B8B28
-
- thumb_func_start sub_80B8B38
-sub_80B8B38: @ 80B8B38
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r2, [r5, 0x10]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1F
- ble _080B8B54
- movs r0, 0x1
- b _080B8BD8
-_080B8B54:
- ldrh r0, [r5, 0xE]
- lsls r0, 16
- asrs r3, r0, 19
- movs r1, 0x1F
- ands r3, r1
- movs r4, 0x10
- ldrsh r0, [r5, r4]
- cmp r3, r0
- blt _080B8BD6
- movs r0, 0x20
- subs r3, r0, r3
- ands r3, r1
- subs r0, r2
- mov r12, r0
- mov r7, r12
- ands r7, r1
- mov r12, r7
- ldrh r0, [r5, 0x20]
- ldr r1, =0x06000140
- adds r1, r0
- mov r8, r1
- movs r4, 0
- ldr r7, =gUnknown_0855B390
- mov r10, r7
- movs r0, 0xF0
- lsls r0, 8
- mov r9, r0
- adds r1, r3, 0x1
- movs r0, 0x1F
- ands r1, r0
- str r1, [sp]
- mov r6, r12
- adds r6, 0x1
- ands r6, r0
-_080B8B98:
- lsls r1, r4, 5
- adds r2, r1, r3
- lsls r2, 1
- add r2, r8
- mov r7, r12
- adds r0, r7, r1
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- mov r7, r9
- orrs r0, r7
- strh r0, [r2]
- ldr r0, [sp]
- adds r2, r1, r0
- lsls r2, 1
- add r2, r8
- adds r1, r6, r1
- lsls r1, 1
- add r1, r10
- ldrh r0, [r1]
- mov r1, r9
- orrs r0, r1
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x9
- bls _080B8B98
- ldrh r0, [r5, 0x10]
- adds r0, 0x2
- strh r0, [r5, 0x10]
-_080B8BD6:
- movs r0, 0
-_080B8BD8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B8B38
-
- thumb_func_start sub_80B8BF0
-sub_80B8BF0: @ 80B8BF0
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1F
- ble _080B8C00
- movs r0, 0x1
- b _080B8C54
-_080B8C00:
- ldrh r0, [r5, 0xE]
- lsls r0, 16
- asrs r0, 19
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r2, r0
- blt _080B8C52
- ldrh r0, [r5, 0xA]
- lsls r0, 16
- asrs r2, r0, 19
- movs r0, 0x1F
- ands r2, r0
- ldrh r0, [r5, 0x20]
- ldr r1, =0x06000140
- adds r6, r0, r1
- movs r3, 0
- movs r0, 0xF0
- lsls r0, 8
- adds r7, r0, 0
- adds r4, r2, 0x1
- movs r0, 0x1F
- ands r4, r0
-_080B8C30:
- lsls r0, r3, 5
- adds r1, r0, r2
- lsls r1, 1
- adds r1, r6
- strh r7, [r1]
- adds r0, r4
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bls _080B8C30
- ldrh r0, [r5, 0x10]
- adds r0, 0x2
- strh r0, [r5, 0x10]
-_080B8C52:
- movs r0, 0
-_080B8C54:
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B8BF0
-
- thumb_func_start sub_80B8C60
-sub_80B8C60: @ 80B8C60
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- movs r5, 0x80
- lsls r5, 24
- ands r5, r6
- lsrs r5, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r0, =0x7fffffff
- ands r6, r0
- lsls r0, r6, 16
- lsrs r0, 16
- movs r3, 0xA0
- lsls r3, 1
- movs r4, 0x50
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- bl sub_80B5FE8
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, =gSprites
- adds r2, r1
- ldr r1, =SpriteCallbackDummy
- str r1, [r2, 0x1C]
- ldrb r3, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- strb r1, [r2, 0x5]
- strh r6, [r2, 0x2E]
- strh r5, [r2, 0x3A]
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B8C60
-
- thumb_func_start sub_80B8CC0
-sub_80B8CC0: @ 80B8CC0
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x20]
- subs r0, 0x14
- strh r0, [r1, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- bgt _080B8D00
- movs r0, 0x78
- strh r0, [r1, 0x20]
- movs r0, 0x1E
- strh r0, [r1, 0x30]
- ldr r0, =sub_80B8D04
- str r0, [r1, 0x1C]
- movs r2, 0x3A
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080B8CF8
- ldrh r0, [r1, 0x2E]
- movs r1, 0
- movs r2, 0x7D
- movs r3, 0xA
- bl PlayCry2
- b _080B8D00
- .pool
-_080B8CF8:
- ldrh r0, [r1, 0x2E]
- movs r1, 0
- bl PlayCry1
-_080B8D00:
- pop {r0}
- bx r0
- thumb_func_end sub_80B8CC0
-
- thumb_func_start sub_80B8D04
-sub_80B8D04: @ 80B8D04
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080B8D18
- ldr r0, =sub_80B8D20
- str r0, [r1, 0x1C]
-_080B8D18:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8D04
-
- thumb_func_start sub_80B8D20
-sub_80B8D20: @ 80B8D20
- push {lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x20]
- movs r0, 0x20
- ldrsh r1, [r2, r0]
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- bge _080B8D38
- movs r0, 0x1
- strh r0, [r2, 0x3C]
- b _080B8D3E
-_080B8D38:
- adds r0, r3, 0
- subs r0, 0x14
- strh r0, [r2, 0x20]
-_080B8D3E:
- pop {r0}
- bx r0
- thumb_func_end sub_80B8D20
-
- thumb_func_start sub_80B8D44
-sub_80B8D44: @ 80B8D44
- push {lr}
- ldr r0, =sub_80B8D84
- movs r1, 0xFF
- 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, =gFieldEffectArguments
- ldr r0, [r0]
- strh r0, [r1, 0x26]
- bl Overworld_ClearSavedMusic
- ldr r0, =0x0000016d
- bl Overworld_ChangeMusicTo
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B8D44
-
- thumb_func_start sub_80B8D84
-sub_80B8D84: @ 80B8D84
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gUnknown_0855C4E0
- ldr r2, =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8D84
-
- thumb_func_start sub_80B8DB4
-sub_80B8DB4: @ 80B8DB4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- bl FreezeMapObjects
- ldr r5, =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r5, 0x6]
- movs r0, 0x8
- bl SetPlayerAvatarStateMask
- adds r6, r4, 0
- adds r6, 0xA
- movs r0, 0xC
- adds r0, r4
- mov r8, r0
- adds r0, r6, 0
- mov r1, r8
- bl PlayerGetDestCoords
- ldr r2, =gMapObjects
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsrs r0, 4
- adds r1, r6, 0
- mov r2, r8
- bl MoveCoords
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8DB4
-
- thumb_func_start sub_80B8E14
-sub_80B8E14: @ 80B8E14
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080B8E3E
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B8E50
-_080B8E3E:
- bl sub_808C114
- adds r0, r4, 0
- movs r1, 0x39
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080B8E50:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8E14
-
- thumb_func_start sub_80B8E60
-sub_80B8E60: @ 80B8E60
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- beq _080B8E96
- ldr r2, =gFieldEffectArguments
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x3B
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B8E96:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8E60
-
- thumb_func_start sub_80B8EA8
-sub_80B8EA8: @ 80B8EA8
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080B8F12
- ldr r5, =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gMapObjects
- adds r4, r0
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetGraphicsId
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl sub_8093540
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r1, =gFieldEffectArguments
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- str r0, [r1]
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- str r0, [r1, 0x4]
- ldrb r0, [r5, 0x5]
- str r0, [r1, 0x8]
- movs r0, 0x8
- bl FieldEffectStart
- strb r0, [r4, 0x1A]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_080B8F12:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8EA8
-
- thumb_func_start sub_80B8F24
-sub_80B8F24: @ 80B8F24
- push {r4,r5,lr}
- ldr r5, =gPlayerAvatar
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B8F84
- movs r0, 0
- strb r0, [r5, 0x6]
- ldrb r1, [r5]
- movs r0, 0xDF
- ands r0, r1
- strb r0, [r5]
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_81555AC
- bl UnfreezeMapObjects
- bl ScriptContext2_Disable
- movs r0, 0x9
- bl FieldEffectActiveListRemove
- ldr r0, =sub_80B8D84
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080B8F84:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B8F24
-
- thumb_func_start sub_80B8F98
-sub_80B8F98: @ 80B8F98
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, =gFieldEffectObjectTemplatePointers
- adds r0, 0x90
- ldr r0, [r0]
- movs r2, 0x18
- negs r2, r2
- movs r1, 0x78
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, r0, 4
- add r1, r8
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- movs r2, 0xF
- ands r0, r2
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r2, 0
- strh r2, [r1, 0x2E]
- strh r2, [r1, 0x30]
- strh r2, [r1, 0x32]
- ldr r0, =0x0000ffff
- strh r0, [r1, 0x34]
- ldrh r0, [r1, 0x22]
- strh r0, [r1, 0x36]
- strh r2, [r1, 0x38]
- ldr r1, =0x00003e41
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x00000e0e
- movs r0, 0x52
- bl SetGpuReg
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r0, =gUnknown_0855B610
- movs r1, 0xC0
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x12
- movs r1, 0x78
- bl SetGpuReg
- movs r4, 0x3
- ldr r7, =0x0600f800
- ldr r0, =0x0000bff4
- adds r6, r0, 0
-_080B901A:
- movs r2, 0xC
- lsls r0, r4, 1
- lsls r5, r4, 5
- adds r0, r4
- lsls r3, r0, 1
-_080B9024:
- adds r0, r5, r2
- lsls r0, 1
- adds r0, r7
- adds r1, r2, r6
- adds r1, r3, r1
- adds r1, 0x1
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x11
- bls _080B9024
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xE
- bls _080B901A
- movs r0, 0
- ldr r5, =gUnknown_0855B630
-_080B904A:
- movs r4, 0
- adds r7, r0, 0x1
- lsls r6, r0, 5
-_080B9050:
- lsls r1, r4, 2
- adds r1, r6, r1
- ldr r0, =0x06008020
- adds r3, r1, r0
- adds r0, r1, 0x1
- adds r0, r5
- ldrb r2, [r0]
- lsls r2, 8
- adds r0, r1, r5
- ldrb r0, [r0]
- adds r0, r2
- strh r0, [r3]
- ldr r0, =0x06008022
- adds r3, r1, r0
- adds r0, r1, 0x3
- adds r0, r5
- ldrb r2, [r0]
- lsls r2, 8
- adds r1, 0x2
- adds r1, r5
- ldrb r0, [r1]
- adds r0, r2
- strh r0, [r3]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080B9050
- lsls r0, r7, 24
- lsrs r0, 24
- cmp r0, 0x59
- bls _080B904A
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B8F98
-
- thumb_func_start sub_80B90CC
-sub_80B90CC: @ 80B90CC
- push {r4,lr}
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x68]
- movs r1, 0x78
- movs r2, 0
- movs r3, 0x1
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- ldrb r1, [r2, 0x5]
- movs r0, 0xF
- ands r0, r1
- movs r1, 0xD
- negs r1, r1
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, =sub_80B9128
- str r0, [r2, 0x1C]
- ldr r0, =gFieldEffectArguments
- ldr r0, [r0]
- strh r0, [r2, 0x30]
- movs r0, 0x9E
- bl PlaySE
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B90CC
-
- thumb_func_start sub_80B9128
-sub_80B9128: @ 80B9128
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x8C
- bl Cos
- movs r5, 0
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x48
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080B918A
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r1, 0x22]
- strh r5, [r1, 0x24]
- strh r5, [r1, 0x26]
-_080B918A:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _080B919A
- adds r0, r4, 0
- movs r1, 0x1E
- bl FieldEffectStop
-_080B919A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9128
-
- thumb_func_start sub_80B91A4
-sub_80B91A4: @ 80B91A4
- push {lr}
- ldr r0, =sub_80B91D4
- movs r1, 0xFE
- 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, =gFieldEffectArguments
- ldr r0, [r0]
- strh r0, [r1, 0xA]
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B91A4
-
- thumb_func_start sub_80B91D4
-sub_80B91D4: @ 80B91D4
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gUnknown_0855C4F4
- ldr r2, =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B91D4
-
- thumb_func_start sub_80B9204
-sub_80B9204: @ 80B9204
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080B922E
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B924C
-_080B922E:
- ldrb r0, [r6]
- strh r0, [r5, 0x26]
- movs r0, 0x1
- strb r0, [r6, 0x6]
- bl SetPlayerAvatarStateMask
- bl sub_808C114
- adds r0, r4, 0
- movs r1, 0x39
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080B924C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9204
-
- thumb_func_start sub_80B925C
-sub_80B925C: @ 80B925C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B928C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r1, =gFieldEffectArguments
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r0, 0x3B
- bl FieldEffectStart
-_080B928C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B925C
-
- thumb_func_start sub_80B92A0
-sub_80B92A0: @ 80B92A0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080B92E8
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r5, r0, r1
- ldrh r1, [r4, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080B92D8
- ldrb r0, [r5, 0x1A]
- movs r1, 0x2
- bl sub_81555AC
- ldrb r0, [r5, 0x1A]
- movs r1, 0
- bl sub_81555D8
-_080B92D8:
- bl sub_80B94C4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B92E8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B92A0
-
- thumb_func_start sub_80B92F8
-sub_80B92F8: @ 80B92F8
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0xA]
- bl sub_80B9508
- lsls r0, 24
- cmp r0, 0
- beq _080B932C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x10
- strh r0, [r4, 0xC]
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- movs r1, 0x2
- bl FieldObjectSetSpecialAnim
-_080B932C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B92F8
-
- thumb_func_start sub_80B933C
-sub_80B933C: @ 80B933C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r2, r0, r1
- ldrh r1, [r4, 0xC]
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080B9362
- subs r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080B9380
-_080B9362:
- adds r0, r2, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B9380
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x9E
- bl PlaySE
- ldrb r0, [r4, 0xA]
- bl sub_80B9524
-_080B9380:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B933C
-
- thumb_func_start sub_80B9390
-sub_80B9390: @ 80B9390
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080B9406
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r4, r0, r1
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetGraphicsId
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r6, =gSprites
- adds r0, r6
- movs r1, 0x16
- bl StartSpriteAnim
- ldrb r0, [r4, 0x1]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- movs r1, 0x48
- bl FieldObjectSetSpecialAnim
- ldrh r1, [r5, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080B93FC
- ldrb r1, [r4, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
-_080B93FC:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- strh r0, [r5, 0xC]
-_080B9406:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9390
-
- thumb_func_start sub_80B9418
-sub_80B9418: @ 80B9418
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _080B9464
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gMapObjects
- adds r4, r0
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimActive
- ldrb r1, [r4, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
- ldrb r0, [r5, 0xA]
- ldrb r1, [r4, 0x4]
- bl sub_80B9560
- bl CameraObjectReset2
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080B9464:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9418
-
- thumb_func_start sub_80B9474
-sub_80B9474: @ 80B9474
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0xA]
- bl sub_80B9508
- lsls r0, 24
- cmp r0, 0
- beq _080B948E
- bl sub_80AF0B4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B948E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B9474
-
- thumb_func_start sub_80B9494
-sub_80B9494: @ 80B9494
- push {lr}
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B94B6
- movs r0, 0x1F
- bl FieldEffectActiveListRemove
- ldr r0, =sub_80B91D4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080B94B6:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9494
-
- thumb_func_start sub_80B94C4
-sub_80B94C4: @ 80B94C4
- push {lr}
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x68]
- movs r1, 0xFF
- movs r2, 0xB4
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, =gSprites
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- movs r3, 0xD
- negs r3, r3
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- ldr r1, =sub_80B957C
- str r1, [r2, 0x1C]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B94C4
-
- thumb_func_start sub_80B9508
-sub_80B9508: @ 80B9508
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .pool
- thumb_func_end sub_80B9508
-
- thumb_func_start sub_80B9524
-sub_80B9524: @ 80B9524
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- ldr r0, =sub_80B963C
- str r0, [r4, 0x1C]
- movs r1, 0
- movs r0, 0x78
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x22]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x2E
- movs r2, 0x10
- bl memset
- movs r0, 0x40
- strh r0, [r4, 0x3A]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9524
-
- thumb_func_start sub_80B9560
-sub_80B9560: @ 80B9560
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- strh r1, [r2, 0x3A]
- bx lr
- .pool
- thumb_func_end sub_80B9560
-
- thumb_func_start sub_80B957C
-sub_80B957C: @ 80B957C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B9628
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B95C0
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, =gUnknown_0855C548
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r0, 0x76
- strh r0, [r4, 0x20]
- ldr r0, =0x0000ffd0
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x40
- strh r0, [r4, 0x30]
- adds r0, 0xC0
- strh r0, [r4, 0x32]
-_080B95C0:
- ldrh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x32]
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- ldr r0, =0x000007ff
- cmp r1, r0
- bgt _080B95F6
- adds r0, r2, 0
- adds r0, 0x60
- strh r0, [r4, 0x32]
-_080B95F6:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x81
- ble _080B9628
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- lsrs r1, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- adds r0, r4, 0
- movs r3, 0
- bl CalcCenterToCornerVec
-_080B9628:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B957C
-
- thumb_func_start sub_80B963C
-sub_80B963C: @ 80B963C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x8C
- bl Cos
- movs r5, 0
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x48
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- beq _080B969A
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r1, 0x22]
- strh r5, [r1, 0x24]
- strh r5, [r1, 0x26]
-_080B969A:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _080B96A6
- movs r0, 0x1
- strh r0, [r4, 0x3C]
-_080B96A6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B963C
-
- thumb_func_start sub_80B96B0
-sub_80B96B0: @ 80B96B0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B9784
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080B96FA
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, =gUnknown_0855C548
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0x5E
- strh r0, [r4, 0x20]
- ldr r0, =0x0000ffe0
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0xF0
- strh r0, [r4, 0x30]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x32]
- movs r0, 0x80
- strh r0, [r4, 0x36]
-_080B96FA:
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r2, r1
- ldrh r0, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r4, 0x30]
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- movs r1, 0x20
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r2, 0x80
- lsls r2, 1
- cmp r0, r2
- ble _080B973C
- ldrh r0, [r4, 0x36]
- subs r0, r1, r0
- strh r0, [r4, 0x32]
-_080B973C:
- ldrh r1, [r4, 0x36]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0xFF
- bgt _080B974C
- adds r0, r1, 0
- adds r0, 0x18
- strh r0, [r4, 0x36]
-_080B974C:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0xFF
- bgt _080B9756
- strh r2, [r4, 0x32]
-_080B9756:
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x3B
- ble _080B9784
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080B9784:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B96B0
-
- thumb_func_start sub_80B9794
-sub_80B9794: @ 80B9794
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80B9524
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_80B96B0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9794
-
- thumb_func_start sub_80B97C0
-sub_80B97C0: @ 80B97C0
- push {lr}
- ldr r0, =sub_80B97D4
- movs r1, 0xFE
- bl CreateTask
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B97C0
-
- thumb_func_start sub_80B97D4
-sub_80B97D4: @ 80B97D4
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gUnknown_0855C550
- ldr r2, =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B97D4
-
- thumb_func_start sub_80B9804
-sub_80B9804: @ 80B9804
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080B982E
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B98A6
-_080B982E:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x11
- strh r0, [r5, 0xC]
- ldrb r0, [r6]
- strh r0, [r5, 0x26]
- movs r0, 0x1
- strb r0, [r6, 0x6]
- bl SetPlayerAvatarStateMask
- ldrh r1, [r5, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080B9856
- ldrb r0, [r4, 0x1A]
- movs r1, 0
- bl sub_81555AC
-_080B9856:
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetGraphicsId
- bl CameraObjectReset2
- adds r0, r4, 0
- movs r1, 0x3
- bl FieldObjectTurn
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0x16
- bl StartSpriteAnim
- ldrb r1, [r4, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_80B94C4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xA]
- bl sub_80B9524
- ldrb r0, [r5, 0xA]
- ldrb r1, [r4, 0x4]
- bl sub_80B9560
-_080B98A6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9804
-
- thumb_func_start sub_80B98B8
-sub_80B98B8: @ 80B98B8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0xC]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080B98D0
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080B9910
-_080B98D0:
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- ldrb r0, [r5, 0xA]
- movs r1, 0x40
- bl sub_80B9560
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xC]
-_080B9910:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B98B8
-
- thumb_func_start sub_80B9924
-sub_80B9924: @ 80B9924
- push {r4,lr}
- sub sp, 0x24
- adds r4, r0, 0
- ldr r1, =gUnknown_0855C56C
- mov r0, sp
- movs r2, 0x24
- bl memcpy
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _080B9962
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B9962:
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9924
-
- thumb_func_start sub_80B9978
-sub_80B9978: @ 80B9978
- push {r4-r6,lr}
- adds r6, r0, 0
- ldrb r0, [r6, 0xA]
- bl sub_80B9508
- lsls r0, 24
- cmp r0, 0
- beq _080B99DC
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r5, r0, 3
- adds r5, r0
- lsls r5, 2
- ldr r0, =gMapObjects
- adds r5, r0
- ldrb r0, [r5, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- ldrb r1, [r5, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x1]
- movs r0, 0x10
- ldrsh r1, [r5, r0]
- movs r0, 0x12
- ldrsh r2, [r5, r0]
- adds r0, r5, 0
- bl sub_808EB08
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- bl sub_808C114
- adds r0, r5, 0
- movs r1, 0x39
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_080B99DC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9978
-
- thumb_func_start sub_80B99F0
-sub_80B99F0: @ 80B99F0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080B9A18
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldrb r0, [r4, 0xA]
- bl sub_80B9794
-_080B9A18:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B99F0
-
- thumb_func_start sub_80B9A28
-sub_80B9A28: @ 80B9A28
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0xA]
- bl sub_80B9508
- lsls r0, 24
- cmp r0, 0
- beq _080B9A54
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x10
- strh r0, [r4, 0xA]
-_080B9A54:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9A28
-
- thumb_func_start sub_80B9A60
-sub_80B9A60: @ 80B9A60
- push {r4-r7,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0xA]
- subs r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _080B9ACA
- ldr r6, =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r4, r0, r1
- movs r7, 0
- ldrh r1, [r5, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080B9A94
- movs r7, 0x3
- ldrb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_81555AC
-_080B9A94:
- adds r0, r7, 0
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetGraphicsId
- adds r0, r4, 0
- movs r1, 0x1
- bl FieldObjectTurn
- ldrh r0, [r5, 0x26]
- strb r0, [r6]
- movs r0, 0
- strb r0, [r6, 0x6]
- movs r0, 0x20
- bl FieldEffectActiveListRemove
- ldr r0, =sub_80B97D4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080B9ACA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9A60
-
- thumb_func_start sub_80B9ADC
-sub_80B9ADC: @ 80B9ADC
- push {r4,lr}
- sub sp, 0x4
- ldr r4, =gFieldEffectArguments
- ldrb r0, [r4]
- ldrb r1, [r4, 0x4]
- ldrb r2, [r4, 0x8]
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080B9B2C
- ldr r0, =sub_80B9BE8
- 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
- mov r0, sp
- ldrb r0, [r0]
- strh r0, [r1, 0xC]
- ldr r0, [r4]
- strh r0, [r1, 0x14]
- ldr r0, [r4, 0x4]
- strh r0, [r1, 0x16]
- ldr r0, [r4, 0x8]
- strh r0, [r1, 0x18]
- b _080B9B32
- .pool
-_080B9B2C:
- movs r0, 0x41
- bl FieldEffectActiveListRemove
-_080B9B32:
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B9ADC
-
- thumb_func_start sub_80B9B3C
-sub_80B9B3C: @ 80B9B3C
- 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
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080B9B78
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080B9B7C
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B9B7C
- subs r0, r1, 0x1
- b _080B9B7A
- .pool
-_080B9B78:
- movs r0, 0x4
-_080B9B7A:
- strh r0, [r4, 0xA]
-_080B9B7C:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080B9BB6
- movs r0, 0
- strh r0, [r4]
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B9BAC
- ldrh r1, [r4, 0xA]
- negs r1, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl SetCameraPanning
- b _080B9BB6
-_080B9BAC:
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
-_080B9BB6:
- bl UpdateCameraPanning
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080B9BC8
- adds r0, r5, 0
- bl DestroyTask
-_080B9BC8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B9B3C
-
- thumb_func_start sub_80B9BD0
-sub_80B9BD0: @ 80B9BD0
- 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, 0x16]
- bx lr
- .pool
- thumb_func_end sub_80B9BD0
-
- thumb_func_start sub_80B9BE8
-sub_80B9BE8: @ 80B9BE8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- bl InstallCameraPanAheadCallback
- movs r0, 0
- bl SetCameraPanningCallback
- ldr r1, =gUnknown_0855C590
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl _call_via_r2
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9BE8
-
- thumb_func_start sub_80B9C28
-sub_80B9C28: @ 80B9C28
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =sub_80B9B3C
- movs r1, 0x5A
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x58
- bl PlaySE
- strh r4, [r5, 0xA]
- ldrh r0, [r5, 0x2]
- adds r0, 0x1
- strh r0, [r5, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9C28
-
- thumb_func_start sub_80B9C54
-sub_80B9C54: @ 80B9C54
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- ldrh r0, [r7, 0x6]
- adds r0, 0x1
- strh r0, [r7, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- ble _080B9CC2
- ldr r2, =gMapObjects
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- ldrb r0, [r1, 0x1]
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x1]
- ldr r6, =0x0000ffff
- ldr r5, =0x00007fff
- adds r0, r6, 0
- movs r1, 0x10
- adds r2, r5, 0
- bl BlendPalettes
- str r5, [sp]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- adds r0, r4, 0
- bl sub_80B9D24
- movs r0, 0x57
- bl PlaySE
- ldrb r0, [r7, 0xA]
- bl sub_80B9BD0
- movs r0, 0
- strh r0, [r7, 0x6]
- ldrh r0, [r7, 0x2]
- adds r0, 0x1
- strh r0, [r7, 0x2]
-_080B9CC2:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9C54
-
- thumb_func_start sub_80B9CDC
-sub_80B9CDC: @ 80B9CDC
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B9D16
- ldr r0, =sub_80B9B3C
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _080B9D16
- bl InstallCameraPanAheadCallback
- ldrb r0, [r4, 0xC]
- ldrb r1, [r4, 0xE]
- ldrb r2, [r4, 0x10]
- bl RemoveFieldObjectByLocalIdAndMap
- movs r0, 0x41
- bl FieldEffectActiveListRemove
- adds r0, r5, 0
- bl DestroyTask
-_080B9D16:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9CDC
-
- thumb_func_start sub_80B9D24
-sub_80B9D24: @ 80B9D24
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r0, =gUnknown_03005DEC
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r3, 0x20
- ldrsh r0, [r6, r3]
- adds r2, r0
- movs r1, 0x24
- ldrsh r0, [r6, r1]
- adds r2, r0
- ldr r0, =gUnknown_03005DE8
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r3, 0x22
- ldrsh r1, [r6, r3]
- adds r0, r1
- movs r3, 0x26
- ldrsh r1, [r6, r3]
- adds r0, r1
- subs r0, 0x4
- movs r5, 0
- lsls r2, 16
- mov r8, r2
- lsls r7, r0, 16
-_080B9D5A:
- ldr r0, =gUnknown_0855C5EC
- mov r2, r8
- asrs r1, r2, 16
- asrs r2, r7, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080B9D96
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- strh r5, [r4, 0x2E]
- ldrb r1, [r6, 0x5]
- lsrs r1, 4
- lsls r1, 4
- ldrb r2, [r4, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
-_080B9D96:
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B9D5A
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9D24
-
- thumb_func_start sub_80B9DB8
-sub_80B9DB8: @ 80B9DB8
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080B9DE4
- cmp r0, 0x1
- bgt _080B9DCE
- cmp r0, 0
- beq _080B9DD8
- b _080B9E02
-_080B9DCE:
- cmp r0, 0x2
- beq _080B9DF0
- cmp r0, 0x3
- beq _080B9DF6
- b _080B9E02
-_080B9DD8:
- ldrh r0, [r1, 0x20]
- subs r0, 0x10
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x22]
- subs r0, 0xC
- b _080B9E00
-_080B9DE4:
- ldrh r0, [r1, 0x20]
- adds r0, 0x10
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x22]
- subs r0, 0xC
- b _080B9E00
-_080B9DF0:
- ldrh r0, [r1, 0x20]
- subs r0, 0x10
- b _080B9DFA
-_080B9DF6:
- ldrh r0, [r1, 0x20]
- adds r0, 0x10
-_080B9DFA:
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x22]
- adds r0, 0xC
-_080B9E00:
- strh r0, [r1, 0x22]
-_080B9E02:
- ldrh r0, [r1, 0x20]
- adds r0, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xF8
- bhi _080B9E1E
- movs r0, 0x22
- ldrsh r2, [r1, r0]
- movs r0, 0x4
- negs r0, r0
- cmp r2, r0
- blt _080B9E1E
- cmp r2, 0xA4
- ble _080B9E24
-_080B9E1E:
- adds r0, r1, 0
- bl DestroySprite
-_080B9E24:
- pop {r0}
- bx r0
- thumb_func_end sub_80B9DB8
-
- thumb_func_start sub_80B9E28
-sub_80B9E28: @ 80B9E28
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, =gFieldEffectArguments
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080B9EBE
- mov r0, sp
- ldrb r0, [r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gMapObjects
- adds r4, r0
- movs r0, 0x10
- ldrsh r5, [r4, r0]
- subs r5, 0x7
- movs r0, 0x12
- ldrsh r6, [r4, r0]
- subs r6, 0x7
- ldr r1, [r7, 0xC]
- subs r5, r1, r5
- lsls r5, 4
- ldr r2, [r7, 0x10]
- subs r6, r2, r6
- lsls r6, 4
- adds r1, 0x7
- lsls r1, 16
- asrs r1, 16
- adds r2, 0x7
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- bl npc_coords_shift
- ldr r0, =sub_80B9EDC
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- ldrb r0, [r4, 0x4]
- strh r0, [r2, 0xA]
- ldr r3, =gSprites
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- adds r0, r5
- strh r0, [r2, 0xC]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- adds r0, r6
- strh r0, [r2, 0xE]
- ldr r0, [r7, 0x14]
- strh r0, [r2, 0x18]
- mov r0, sp
- ldrb r0, [r0]
- strh r0, [r2, 0x1A]
-_080B9EBE:
- movs r0, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B9E28
-
- thumb_func_start sub_80B9EDC
-sub_80B9EDC: @ 80B9EDC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080B9F10
- cmp r0, 0x1
- beq _080B9F4E
- b _080B9FAC
- .pool
-_080B9F10:
- ldrh r0, [r6, 0x20]
- lsls r0, 4
- strh r0, [r5, 0x8]
- ldrh r0, [r6, 0x22]
- lsls r0, 4
- strh r0, [r5, 0xA]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- lsls r0, 4
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- subs r0, r1
- movs r2, 0x10
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0xC]
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- lsls r0, 4
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- subs r0, r1
- movs r2, 0x10
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0xE]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080B9F4E:
- ldrh r1, [r5, 0x10]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080B9F7C
- subs r0, r1, 0x1
- strh r0, [r5, 0x10]
- ldrh r1, [r5, 0xC]
- ldrh r0, [r5, 0x8]
- adds r1, r0
- strh r1, [r5, 0x8]
- ldrh r0, [r5, 0xE]
- ldrh r2, [r5, 0xA]
- adds r0, r2
- strh r0, [r5, 0xA]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r6, 0x20]
- ldrh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r6, 0x22]
- b _080B9FAC
-_080B9F7C:
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gMapObjects
- adds r4, r0
- ldrh r0, [r5, 0x4]
- strh r0, [r6, 0x20]
- ldrh r0, [r5, 0x6]
- strh r0, [r6, 0x22]
- adds r0, r4, 0
- bl npc_coords_shift_still
- ldrb r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x42
- bl FieldEffectActiveListRemove
- adds r0, r7, 0
- bl DestroyTask
-_080B9FAC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B9EDC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
index 754a8f7ff..77f8213b3 100644
--- a/asm/field_effect_helpers.s
+++ b/asm/field_effect_helpers.s
@@ -204,7 +204,7 @@ _0815405A:
bl pal_patch_for_npc
_0815406A:
adds r0, r4, 0
- bl sub_80ABE18
+ bl UpdateSpritePaletteWithWeather
_08154070:
pop {r4}
pop {r0}
@@ -227,7 +227,7 @@ npc_pal_op_A: @ 8154078
adds r1, r4, 0
bl pal_patch_for_npc
adds r0, r4, 0
- bl sub_80ABE18
+ bl UpdateSpritePaletteWithWeather
_0815409C:
pop {r4}
pop {r0}
diff --git a/asm/field_screen.s b/asm/field_screen.s
index e3d48f882..e35c768dd 100644
--- a/asm/field_screen.s
+++ b/asm/field_screen.s
@@ -1764,8 +1764,8 @@ _080ABDE4:
.pool
thumb_func_end FadeScreen
- thumb_func_start sub_80ABDFC
-sub_80ABDFC: @ 80ABDFC
+ thumb_func_start IsWeatherNotFadingIn
+IsWeatherNotFadingIn: @ 80ABDFC
ldr r0, =gUnknown_02038454
ldr r1, =0x000006c6
adds r0, r1
@@ -1777,11 +1777,11 @@ sub_80ABDFC: @ 80ABDFC
lsrs r0, 31
bx lr
.pool
- thumb_func_end sub_80ABDFC
+ thumb_func_end IsWeatherNotFadingIn
- thumb_func_start sub_80ABE18
-@ void sub_80ABE18(u8 a1)
-sub_80ABE18: @ 80ABE18
+ thumb_func_start UpdateSpritePaletteWithWeather
+@ void UpdateSpritePaletteWithWeather(u8 a1)
+UpdateSpritePaletteWithWeather: @ 80ABE18
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 8
@@ -1882,7 +1882,7 @@ _080ABEF4:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80ABE18
+ thumb_func_end UpdateSpritePaletteWithWeather
thumb_func_start ApplyWeatherGammaShiftToPal
ApplyWeatherGammaShiftToPal: @ 80ABF00
@@ -1939,7 +1939,7 @@ sub_80ABF4C: @ 80ABF4C
movs r2, 0x20
bl LoadPalette
ldrb r0, [r4]
- bl sub_80ABE18
+ bl UpdateSpritePaletteWithWeather
pop {r4}
pop {r0}
bx r0
@@ -2504,8 +2504,8 @@ sub_80AC3E4: @ 80AC3E4
.pool
thumb_func_end sub_80AC3E4
- thumb_func_start sub_80AC3F8
-sub_80AC3F8: @ 80AC3F8
+ thumb_func_start PreservePaletteInWeather
+PreservePaletteInWeather: @ 80AC3F8
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
@@ -2524,16 +2524,16 @@ sub_80AC3F8: @ 80AC3F8
pop {r0}
bx r0
.pool
- thumb_func_end sub_80AC3F8
+ thumb_func_end PreservePaletteInWeather
- thumb_func_start sub_80AC428
-sub_80AC428: @ 80AC428
+ thumb_func_start ResetPreservedPalettesInWeather
+ResetPreservedPalettesInWeather: @ 80AC428
ldr r1, =gUnknown_03000F50
ldr r0, =gUnknown_0854C250
str r0, [r1]
bx lr
.pool
- thumb_func_end sub_80AC428
+ thumb_func_end ResetPreservedPalettesInWeather
thumb_func_start sub_80AC438
sub_80AC438: @ 80AC438
@@ -8702,7 +8702,7 @@ sub_80AF710: @ 80AF710
thumb_func_start sub_80AF71C
sub_80AF71C: @ 80AF71C
push {lr}
- bl sub_80ABDFC
+ bl IsWeatherNotFadingIn
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/field_specials.s b/asm/field_specials.s
index ca22af002..852d5ce7c 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -3155,7 +3155,7 @@ SetRoute119Weather: @ 8139648
bl get_map_light_from_warp0
lsls r0, 24
lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
+ bl is_map_type_1_2_3_5_or_6
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3173,7 +3173,7 @@ SetRoute123Weather: @ 8139668
bl get_map_light_from_warp0
lsls r0, 24
lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
+ bl is_map_type_1_2_3_5_or_6
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/field_tasks.s b/asm/field_tasks.s
deleted file mode 100644
index 09f5bbc9b..000000000
--- a/asm/field_tasks.s
+++ /dev/null
@@ -1,1921 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start task_per_step_callback_manager
-task_per_step_callback_manager: @ 809D88C
- 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, 0x8
- ldrsh r1, [r1, r2]
- ldr r2, =gUnknown_08510348
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_per_step_callback_manager
-
- thumb_func_start sub_809D8B8
-sub_809D8B8: @ 809D8B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0809D8CA
- cmp r0, 0x1
- beq _0809D8E8
- b _0809D8FC
-_0809D8CA:
- ldr r0, =gMain
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _0809D8FC
- bl DoTimeBasedEvents
- ldrh r0, [r4]
- adds r0, 0x1
- b _0809D8FA
- .pool
-_0809D8E8:
- ldr r0, =gMain
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0809D8FC
- ldrh r0, [r4]
- subs r0, 0x1
-_0809D8FA:
- strh r0, [r4]
-_0809D8FC:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809D8B8
-
- thumb_func_start sub_809D908
-sub_809D908: @ 809D908
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- cmp r0, 0
- bne _0809D930
- adds r0, r4, 0
- bl sub_809D8B8
- adds r0, r4, 0x2
- adds r1, r4, 0x4
- bl UpdateAmbientCry
-_0809D930:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809D908
-
- thumb_func_start SetUpFieldTasks
-SetUpFieldTasks: @ 809D93C
- push {r4,r5,lr}
- ldr r5, =task_per_step_callback_manager
- adds r0, r5, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0809D966
- adds r0, r5, 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
- strh r4, [r1, 0x8]
-_0809D966:
- ldr r4, =sub_809E638
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _0809D97C
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_0809D97C:
- ldr r4, =sub_809D908
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _0809D992
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_0809D992:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetUpFieldTasks
-
- thumb_func_start ActivatePerStepCallback
-ActivatePerStepCallback: @ 809D9A8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =task_per_step_callback_manager
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0809D9EA
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r1, r0, r1
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x1E
-_0809D9CC:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _0809D9CC
- cmp r4, 0x7
- bls _0809D9E8
- movs r0, 0
- strh r0, [r1]
- b _0809D9EA
- .pool
-_0809D9E8:
- strh r4, [r1]
-_0809D9EA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ActivatePerStepCallback
-
- thumb_func_start ResetFieldTasksArgs
-ResetFieldTasksArgs: @ 809D9F0
- push {lr}
- ldr r0, =task_per_step_callback_manager
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, =sub_809D908
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0809DA1A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
-_0809DA1A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetFieldTasksArgs
-
- thumb_func_start nullsub_34
-nullsub_34: @ 809DA2C
- bx lr
- thumb_func_end nullsub_34
-
- thumb_func_start sub_809DA30
-sub_809DA30: @ 809DA30
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogVerticalLog1
- lsls r0, 24
- cmp r0, 0
- beq _0809DA48
- adds r0, r5, 0
- b _0809DA80
-_0809DA48:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogVerticalLog2
- lsls r0, 24
- cmp r0, 0
- beq _0809DA5A
- adds r0, r5, 0
- adds r0, 0x8
- b _0809DA80
-_0809DA5A:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogHorizontalLog1
- lsls r0, 24
- cmp r0, 0
- beq _0809DA6C
- adds r0, r5, 0
- adds r0, 0x10
- b _0809DA80
-_0809DA6C:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogHorizontalLog2
- lsls r0, 24
- cmp r0, 0
- bne _0809DA7C
- movs r0, 0
- b _0809DA80
-_0809DA7C:
- adds r0, r5, 0
- adds r0, 0x18
-_0809DA80:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809DA30
-
- thumb_func_start sub_809DA88
-sub_809DA88: @ 809DA88
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r3
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r7, r2, 16
- adds r0, r6, 0
- adds r1, r7, 0
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_809DA30
- adds r4, r0, 0
- adds r5, r4, 0
- cmp r4, 0
- beq _0809DB06
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- ldrh r2, [r4, 0x2]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _0809DADE
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_0809DADE:
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- ldrh r2, [r5, 0x6]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _0809DB06
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_0809DB06:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809DA88
-
- thumb_func_start sub_809DB10
-sub_809DB10: @ 809DB10
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, =gUnknown_08510368
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_809DA88
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809DB10
-
- thumb_func_start sub_809DB34
-sub_809DB34: @ 809DB34
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, =gUnknown_08510388
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_809DA88
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809DB34
-
- thumb_func_start sub_809DB58
-sub_809DB58: @ 809DB58
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, =gUnknown_085103A8
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_809DA88
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809DB58
-
- thumb_func_start sub_809DB7C
-sub_809DB7C: @ 809DB7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r10, r8
- lsls r1, 16
- lsrs r7, r1, 16
- mov r9, r7
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r5, r3, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogVerticalLog1
- lsls r0, 24
- cmp r0, 0
- beq _0809DBC0
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, r5
- ble _0809DC06
-_0809DBBC:
- movs r0, 0
- b _0809DC08
-_0809DBC0:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogVerticalLog2
- lsls r0, 24
- cmp r0, 0
- beq _0809DBD8
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r5
- bge _0809DC06
- b _0809DBBC
-_0809DBD8:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogHorizontalLog1
- lsls r0, 24
- cmp r0, 0
- beq _0809DBF0
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- ble _0809DC06
- b _0809DBBC
-_0809DBF0:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogHorizontalLog2
- lsls r0, 24
- cmp r0, 0
- beq _0809DC06
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- blt _0809DBBC
-_0809DC06:
- movs r0, 0x1
-_0809DC08:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809DB7C
-
- thumb_func_start sub_809DC18
-sub_809DC18: @ 809DC18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- mov r10, r8
- lsls r3, 16
- lsrs r7, r3, 16
- mov r9, r7
- lsls r0, 16
- asrs r6, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogVerticalLog1
- lsls r0, 24
- cmp r0, 0
- beq _0809DC5C
- lsls r0, r7, 16
- asrs r0, 16
- cmp r5, r0
- bge _0809DCA2
-_0809DC58:
- movs r0, 0
- b _0809DCA4
-_0809DC5C:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogVerticalLog2
- lsls r0, 24
- cmp r0, 0
- beq _0809DC74
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r5, r0
- ble _0809DCA2
- b _0809DC58
-_0809DC74:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogHorizontalLog1
- lsls r0, 24
- cmp r0, 0
- beq _0809DC8C
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bge _0809DCA2
- b _0809DC58
-_0809DC8C:
- adds r0, r4, 0
- bl MetatileBehavior_IsPacifilogHorizontalLog2
- lsls r0, 24
- cmp r0, 0
- beq _0809DCA2
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bgt _0809DC58
-_0809DCA2:
- movs r0, 0x1
-_0809DCA4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809DC18
-
- thumb_func_start sub_809DCB4
-sub_809DCB4: @ 809DCB4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r6, r5, 0
- cmp r0, 0x1
- beq _0809DD0E
- cmp r0, 0x1
- bgt _0809DCEC
- cmp r0, 0
- beq _0809DCF2
- b _0809DE1E
- .pool
-_0809DCEC:
- cmp r0, 0x2
- beq _0809DDDC
- b _0809DE1E
-_0809DCF2:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r2, 0x1
- bl sub_809DB34
- b _0809DE1A
-_0809DD0E:
- mov r0, sp
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0809DD28
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r7, 0x6
- ldrsh r0, [r4, r7]
- cmp r1, r0
- beq _0809DE1E
-_0809DD28:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r5, 0x6
- ldrsh r3, [r4, r5]
- bl sub_809DB7C
- cmp r0, 0
- beq _0809DD70
- movs r7, 0x4
- ldrsh r0, [r4, r7]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_809DB10
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- movs r5, 0x6
- ldrsh r1, [r4, r5]
- movs r2, 0
- bl sub_809DB58
- ldrh r0, [r4, 0x4]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x6]
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
- b _0809DD7A
-_0809DD70:
- movs r7, 0x1
- negs r7, r7
- adds r0, r7, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
-_0809DD7A:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r5, r6, 0
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r7, 0x6
- ldrsh r3, [r4, r7]
- bl sub_809DC18
- cmp r0, 0
- beq _0809DDAE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_809DB10
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
-_0809DDAE:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r6]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r5, 0
- ldrsh r1, [r6, r5]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _0809DE1E
- movs r0, 0x46
- bl PlaySE
- b _0809DE1E
-_0809DDDC:
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _0809DE1E
- mov r0, sp
- movs r7, 0
- ldrsh r0, [r0, r7]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_809DB34
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _0809DE1A
- movs r5, 0xA
- ldrsh r0, [r4, r5]
- cmp r0, r1
- beq _0809DE1A
- movs r7, 0x8
- ldrsh r0, [r4, r7]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_809DB58
-_0809DE1A:
- movs r0, 0x1
- strh r0, [r4, 0x2]
-_0809DE1E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809DCB4
-
- thumb_func_start sub_809DE28
-sub_809DE28: @ 809DE28
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809DE82
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, =0x0000024e
- cmp r1, r0
- beq _0809DE68
- adds r0, 0x8
- cmp r1, r0
- beq _0809DE78
- b _0809DE82
- .pool
-_0809DE68:
- ldr r2, =0x0000024f
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0809DE82
- .pool
-_0809DE78:
- ldr r2, =0x00000257
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0809DE82:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809DE28
-
- thumb_func_start sub_809DE8C
-sub_809DE8C: @ 809DE8C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809DEE6
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, =0x0000024f
- cmp r1, r0
- beq _0809DECC
- adds r0, 0x8
- cmp r1, r0
- beq _0809DEDC
- b _0809DEE6
- .pool
-_0809DECC:
- ldr r2, =0x0000024e
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0809DEE6
- .pool
-_0809DEDC:
- ldr r2, =0x00000256
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0809DEE6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809DE8C
-
- thumb_func_start sub_809DEF0
-sub_809DEF0: @ 809DEF0
- 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
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r6, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r0, 0x2
- ldrsh r5, [r6, r0]
- mov r9, r4
- cmp r5, 0x1
- beq _0809DF84
- cmp r5, 0x1
- bgt _0809DF30
- cmp r5, 0
- beq _0809DF38
- b _0809E0F6
- .pool
-_0809DF30:
- cmp r5, 0x2
- bne _0809DF36
- b _0809E064
-_0809DF36:
- b _0809E0F6
-_0809DF38:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r1, r9
- ldrh r0, [r1]
- strh r0, [r6, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r1, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- cmp r0, 0
- bne _0809DF62
- b _0809E0F2
-_0809DF62:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_809DE28
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
- b _0809E0F2
-_0809DF84:
- ldrh r0, [r6, 0x6]
- mov r8, r0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- ldrh r2, [r6, 0x4]
- mov r10, r2
- movs r3, 0x4
- ldrsh r7, [r6, r3]
- cmp r0, r7
- bne _0809DFAC
- mov r0, r9
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- lsls r0, r3, 16
- asrs r0, 16
- cmp r1, r0
- bne _0809DFAC
- b _0809E0F6
-_0809DFAC:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r8
- lsls r4, r0, 16
- asrs r1, r4, 16
- adds r0, r7, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r7, r0, 24
- bl PlayerGetZCoord
- movs r1, 0
- ands r5, r0
- lsls r0, r5, 24
- adds r5, r4, 0
- cmp r0, 0
- bne _0809DFF4
- movs r1, 0x1
-_0809DFF4:
- cmp r1, 0
- beq _0809E008
- ldr r1, [sp, 0x4]
- cmp r1, 0x1
- beq _0809E002
- cmp r7, 0x1
- bne _0809E008
-_0809E002:
- movs r0, 0x47
- bl PlaySE
-_0809E008:
- cmp r7, 0
- beq _0809E044
- mov r2, r10
- lsls r4, r2, 16
- asrs r4, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809DE8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_809DE28
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
-_0809E044:
- mov r0, r10
- strh r0, [r6, 0x8]
- mov r1, r8
- strh r1, [r6, 0xA]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r2, r9
- ldrh r0, [r2]
- strh r0, [r6, 0x6]
- cmp r7, 0
- beq _0809E0F6
- movs r0, 0x10
- strh r0, [r6, 0xC]
- movs r0, 0x2
- strh r0, [r6, 0x2]
-_0809E064:
- ldrh r0, [r6, 0xC]
- subs r0, 0x1
- strh r0, [r6, 0xC]
- ldrh r3, [r6, 0x8]
- mov r10, r3
- ldrh r0, [r6, 0xA]
- mov r8, r0
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- movs r1, 0x7
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bhi _0809E0EA
- lsls r0, 2
- ldr r1, =_0809E094
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0809E094:
- .4byte _0809E0B4
- .4byte _0809E0EA
- .4byte _0809E0EA
- .4byte _0809E0EA
- .4byte _0809E0C6
- .4byte _0809E0EA
- .4byte _0809E0EA
- .4byte _0809E0EA
-_0809E0B4:
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r8
- lsls r1, r3, 16
- asrs r1, 16
- bl CurrentMapDrawMetatileAt
- b _0809E0EA
-_0809E0C6:
- mov r0, r10
- lsls r5, r0, 16
- asrs r5, 16
- mov r1, r8
- lsls r4, r1, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809DE28
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809DE8C
-_0809E0EA:
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0809E0F6
-_0809E0F2:
- movs r0, 0x1
- strh r0, [r6, 0x2]
-_0809E0F6:
- 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_809DEF0
-
- thumb_func_start sub_809E108
-sub_809E108: @ 809E108
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r0, 16
- ldr r2, =0xfffd0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xA
- bhi _0809E144
- lsls r0, r1, 16
- asrs r1, r0, 16
- ldr r2, =0xfffa0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xD
- bhi _0809E144
- ldr r0, =gUnknown_085103C8
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _0809E144
- movs r0, 0x1
- b _0809E146
- .pool
-_0809E144:
- movs r0, 0
-_0809E146:
- pop {r1}
- bx r1
- thumb_func_end sub_809E108
-
- thumb_func_start sub_809E14C
-sub_809E14C: @ 809E14C
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809E108
- cmp r0, 0
- beq _0809E17A
- ldr r1, =gUnknown_085103C8
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl GetVarPointer
- subs r2, r5, 0x3
- movs r1, 0x1
- lsls r1, r2
- ldrh r2, [r0]
- orrs r1, r2
- strh r1, [r0]
-_0809E17A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809E14C
-
- thumb_func_start sub_809E184
-sub_809E184: @ 809E184
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809E108
- cmp r0, 0
- beq _0809E1B6
- ldr r1, =gUnknown_085103C8
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl VarGet
- lsls r0, 16
- subs r2, r5, 0x3
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r2
- ands r1, r0
- cmp r1, 0
- bne _0809E1C0
-_0809E1B6:
- movs r0, 0
- b _0809E1C2
- .pool
-_0809E1C0:
- movs r0, 0x1
-_0809E1C2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809E184
-
- thumb_func_start sub_809E1C8
-sub_809E1C8: @ 809E1C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0]
- mov r9, r1
- ldr r7, [r0, 0x4]
- movs r5, 0
- cmp r5, r9
- bge _0809E210
-_0809E1E0:
- movs r4, 0
- adds r0, r5, 0x1
- mov r8, r0
- cmp r4, r7
- bge _0809E20A
- lsls r6, r5, 16
-_0809E1EC:
- lsls r1, r4, 16
- asrs r1, 16
- asrs r0, r6, 16
- bl sub_809E184
- cmp r0, 0x1
- bne _0809E204
- adds r1, r4, 0x7
- adds r0, r5, 0x7
- ldr r2, =0x0000020e
- bl MapGridSetMetatileIdAt
-_0809E204:
- adds r4, 0x1
- cmp r4, r7
- blt _0809E1EC
-_0809E20A:
- mov r5, r8
- cmp r5, r9
- blt _0809E1E0
-_0809E210:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809E1C8
-
- thumb_func_start sub_809E224
-sub_809E224: @ 809E224
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r5, r1, r0
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0809E270
- cmp r0, 0x1
- bgt _0809E24C
- cmp r0, 0
- beq _0809E258
- b _0809E3A6
- .pool
-_0809E24C:
- cmp r0, 0x2
- beq _0809E306
- cmp r0, 0x3
- bne _0809E256
- b _0809E360
-_0809E256:
- b _0809E3A6
-_0809E258:
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- b _0809E3A2
-_0809E270:
- mov r7, sp
- adds r7, 0x2
- mov r0, sp
- adds r1, r7, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0809E29A
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0809E29A
- b _0809E3A6
-_0809E29A:
- strh r2, [r5, 0x4]
- ldrh r0, [r7]
- strh r0, [r5, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, =0x00004022
- bl GetVarPointer
- adds r6, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsThinIce
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E2E0
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x2
- b _0809E2F8
- .pool
-_0809E2E0:
- adds r0, r4, 0
- bl MetatileBehavior_IsCrackedIce
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E3A6
- movs r0, 0
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x3
-_0809E2F8:
- strh r0, [r5, 0x2]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x8]
- ldrh r0, [r7]
- strh r0, [r5, 0xA]
- b _0809E3A6
-_0809E306:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _0809E36A
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x2A
- bl PlaySE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, =0x0000020e
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- asrs r1, 16
- bl sub_809E14C
- b _0809E3A2
- .pool
-_0809E360:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0809E370
-_0809E36A:
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- b _0809E3A6
-_0809E370:
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x29
- bl PlaySE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, =0x00000206
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
-_0809E3A2:
- movs r0, 0x1
- strh r0, [r5, 0x2]
-_0809E3A6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809E224
-
- thumb_func_start sub_809E3B4
-sub_809E3B4: @ 809E3B4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0809E3EE
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0809E47A
-_0809E3EE:
- strh r2, [r5, 0x2]
- ldrh r0, [r4]
- strh r0, [r5, 0x4]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsAsh
- lsls r0, 24
- cmp r0, 0
- beq _0809E47A
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- ldr r1, =0x0000020a
- cmp r0, r1
- bne _0809E444
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, =0x00000212
- movs r3, 0x4
- bl ash
- b _0809E456
- .pool
-_0809E444:
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, =0x00000206
- movs r3, 0x4
- bl ash
-_0809E456:
- movs r0, 0x87
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- cmp r0, 0
- beq _0809E47A
- ldr r0, =0x00004048
- bl GetVarPointer
- adds r2, r0, 0
- ldrh r1, [r2]
- ldr r0, =0x0000270e
- cmp r1, r0
- bhi _0809E47A
- adds r0, r1, 0x1
- strh r0, [r2]
-_0809E47A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809E3B4
-
- thumb_func_start sub_809E490
-sub_809E490: @ 809E490
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, =0x0000022f
- ldr r2, =0x00000237
- cmp r0, r1
- bne _0809E4AC
- subs r2, 0x31
-_0809E4AC:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809E490
-
- thumb_func_start sub_809E4CC
-sub_809E4CC: @ 809E4CC
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- ldrh r1, [r5, 0x8]
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- adds r7, r4, 0
- cmp r0, 0
- beq _0809E51E
- subs r0, r1, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bne _0809E51E
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl sub_809E490
-_0809E51E:
- ldrh r1, [r5, 0xE]
- movs r3, 0xE
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0809E53E
- subs r0, r1, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0809E53E
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- bl sub_809E490
-_0809E53E:
- lsls r0, r6, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl MetatileBehavior_IsCrackedFloorHole
- lsls r0, 24
- cmp r0, 0
- beq _0809E556
- ldr r0, =0x00004022
- movs r1, 0
- bl VarSet
-_0809E556:
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0809E572
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0809E5D2
-_0809E572:
- strh r2, [r5, 0x4]
- adds r4, r7, 0
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- adds r0, r6, 0
- bl MetatileBehavior_IsCrackedFloor
- lsls r0, 24
- cmp r0, 0
- beq _0809E5D2
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _0809E59A
- ldr r0, =0x00004022
- movs r1, 0
- bl VarSet
-_0809E59A:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0809E5BC
- movs r0, 0x3
- strh r0, [r5, 0x8]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0xA]
- ldrh r0, [r4]
- strh r0, [r5, 0xC]
- b _0809E5D2
- .pool
-_0809E5BC:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _0809E5D2
- movs r0, 0x3
- strh r0, [r5, 0xE]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x10]
- ldrh r0, [r7]
- strh r0, [r5, 0x12]
-_0809E5D2:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809E4CC
-
- thumb_func_start sub_809E5DC
-sub_809E5DC: @ 809E5DC
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- ldrh r0, [r3]
- subs r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- cmp r0, 0
- bne _0809E5F8
- movs r2, 0xE8
- b _0809E60C
-_0809E5F8:
- ldr r1, =gUnknown_085103FC
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _0809E604
- adds r0, 0x7
-_0809E604:
- asrs r0, 3
- lsls r0, 1
- adds r0, r1
- ldrh r2, [r0]
-_0809E60C:
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE8
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809E5DC
-
- thumb_func_start sub_809E638
-sub_809E638: @ 809E638
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- 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
- orrs r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- mov r8, r5
- cmp r1, 0
- beq _0809E688
- cmp r1, 0x1
- beq _0809E6B4
- b _0809E708
- .pool
-_0809E688:
- strh r7, [r4]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- movs r0, 0x1
- strh r0, [r4, 0x2]
- strh r1, [r4, 0x8]
- strh r1, [r4, 0xE]
- strh r1, [r4, 0x14]
- strh r1, [r4, 0x1A]
- b _0809E708
-_0809E6A2:
- movs r0, 0x20
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x2]
- mov r2, r8
- ldrh r0, [r2]
- strh r0, [r1, 0x4]
- b _0809E708
-_0809E6B4:
- mov r0, sp
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bne _0809E6D0
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r3, 0
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0809E708
-_0809E6D0:
- strh r2, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- 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_IsMuddySlope
- lsls r0, 24
- cmp r0, 0
- beq _0809E708
- movs r6, 0x4
- adds r1, r4, 0
- adds r1, 0x8
-_0809E6F8:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0809E6A2
- adds r1, 0x6
- adds r6, 0x3
- cmp r6, 0xD
- ble _0809E6F8
-_0809E708:
- ldr r2, =gCamera
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E728
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r7, r0
- beq _0809E728
- strh r7, [r4]
- ldrh r0, [r2, 0x4]
- ldrh r1, [r2, 0x8]
- b _0809E72C
- .pool
-_0809E728:
- movs r0, 0
- movs r1, 0
-_0809E72C:
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- lsls r0, r1, 16
- asrs r7, r0, 16
- adds r5, r4, 0
- adds r5, 0x8
- adds r4, r5, 0
- movs r6, 0x9
-_0809E73E:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0809E762
- ldrh r0, [r4, 0x2]
- mov r3, r8
- subs r0, r3
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- subs r0, r7
- strh r0, [r4, 0x4]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- adds r0, r5, 0
- bl sub_809E5DC
-_0809E762:
- adds r4, 0x6
- adds r5, 0x6
- subs r6, 0x3
- cmp r6, 0
- bge _0809E73E
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809E638
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s
index e31375f9f..8f1e198b8 100644
--- a/asm/fldeff_80F9BCC.s
+++ b/asm/fldeff_80F9BCC.s
@@ -2431,8 +2431,8 @@ sub_80FAFF8: @ 80FAFF8
.pool
thumb_func_end sub_80FAFF8
- thumb_func_start sub_80FB00C
-sub_80FB00C: @ 80FB00C
+ thumb_func_start CreateRecordMixingSprite
+CreateRecordMixingSprite: @ 80FB00C
push {r4,r5,lr}
ldr r0, =gUnknown_0858E864
bl LoadSpritePalette
@@ -2478,10 +2478,10 @@ _080FB06E:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_80FB00C
+ thumb_func_end CreateRecordMixingSprite
- thumb_func_start sub_80FB074
-sub_80FB074: @ 80FB074
+ thumb_func_start DestroyRecordMixingSprite
+DestroyRecordMixingSprite: @ 80FB074
push {r4-r7,lr}
ldr r4, =gSprites
adds r7, r4, 0
@@ -2509,6 +2509,6 @@ _080FB098:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80FB074
+ thumb_func_end DestroyRecordMixingSprite
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
deleted file mode 100644
index 90e846b97..000000000
--- a/asm/menu_helpers.s
+++ /dev/null
@@ -1,986 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ResetVramOamAndBgCntRegs
-ResetVramOamAndBgCntRegs: @ 8121DA0
- push {r4,lr}
- sub sp, 0xC
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xE
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xC
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xA
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x8
- movs r1, 0
- bl SetGpuReg
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, =0x0100c000
- mov r0, sp
- bl CpuSet
- movs r4, 0
- str r4, [sp, 0x4]
- add r0, sp, 0x4
- movs r1, 0xE0
- lsls r1, 19
- ldr r2, =0x05000100
- bl CpuSet
- add r0, sp, 0x8
- strh r4, [r0]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, =0x01000200
- bl CpuSet
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetVramOamAndBgCntRegs
-
- thumb_func_start ResetAllBgsCoordinates
-ResetAllBgsCoordinates: @ 8121E10
- push {lr}
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- pop {r0}
- bx r0
- thumb_func_end ResetAllBgsCoordinates
-
- thumb_func_start SetVBlankHBlankCallbacksToNull
-@ void SetVBlankHBlankCallbacksToNull()
-SetVBlankHBlankCallbacksToNull: @ 8121E68
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- pop {r0}
- bx r0
- thumb_func_end SetVBlankHBlankCallbacksToNull
-
- thumb_func_start DisplayMessageAndContinueTask
-@ void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 windowBorderFirstTileNum, u8 windowBorderPalette, u8 fontId, u8 speed, u8 *str, void ( *callback)(u8 taskId))
-DisplayMessageAndContinueTask: @ 8121E7C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- adds r6, r1, 0
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r7, r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_0203A140
- strb r6, [r0]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8197B1C
- ldr r4, =gStringVar4
- ldr r0, [sp, 0x30]
- cmp r0, r4
- beq _08121EC0
- adds r0, r4, 0
- ldr r1, [sp, 0x30]
- bl StringExpandPlaceholders
-_08121EC0:
- ldr r2, =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- 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]
- adds r0, r6, 0
- adds r1, r7, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl AddTextPrinterParameterized
- ldr r1, =gUnknown_0300117C
- ldr r0, [sp, 0x34]
- str r0, [r1]
- ldr r1, =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, =Task_ContinueTaskAfterMessagePrints
- str r1, [r0]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DisplayMessageAndContinueTask
-
- thumb_func_start RunTextPrintersRetIsActive
-RunTextPrintersRetIsActive: @ 8121F20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl RunTextPrinters
- adds r0, r4, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end RunTextPrintersRetIsActive
-
- thumb_func_start Task_ContinueTaskAfterMessagePrints
-@ void Task_ContinueTaskAfterMessagePrints(u8 taskId)
-Task_ContinueTaskAfterMessagePrints: @ 8121F3C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_0203A140
- ldrb r0, [r0]
- bl RunTextPrintersRetIsActive
- lsls r0, 16
- cmp r0, 0
- bne _08121F5A
- ldr r0, =gUnknown_0300117C
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_08121F5A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_ContinueTaskAfterMessagePrints
-
- thumb_func_start sub_8121F68
-sub_8121F68: @ 8121F68
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gUnknown_0203A138
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [r3]
- str r2, [r3, 0x4]
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, =Task_CallYesOrNoCallback
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_8121F68
-
- thumb_func_start CreateYesNoMenuWithCallbacks
-@ void CreateYesNoMenuWithCallbacks(u8 taskId, struct WindowTemplate *windowTemplate, int a3, int a4, int a5, u16 borderFirstTileNum, u8 borderPalette, void ( **callbacks)(u8 taskId))
-CreateYesNoMenuWithCallbacks: @ 8121F94
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- ldr r1, [sp, 0x10]
- ldr r2, [sp, 0x14]
- ldr r5, [sp, 0x18]
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0
- bl CreateYesNoMenu
- ldr r2, =gUnknown_0203A138
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =Task_CallYesOrNoCallback
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreateYesNoMenuWithCallbacks
-
- thumb_func_start Task_CallYesOrNoCallback
-@ void Task_CallYesOrNoCallback(u8 taskId)
-Task_CallYesOrNoCallback: @ 8121FDC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08122002
- cmp r1, 0
- bgt _08121FFC
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08122018
- b _08122028
-_08121FFC:
- cmp r1, 0x1
- beq _08122018
- b _08122028
-_08122002:
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203A138
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _08122028
- .pool
-_08122018:
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203A138
- ldr r1, [r0, 0x4]
- adds r0, r4, 0
- bl _call_via_r1
-_08122028:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_CallYesOrNoCallback
-
- thumb_func_start AdjustQuantityAccordingToDPadInput
-@ bool8 AdjustQuantityAccordingToDPadInput(u16 *quantity, u16 maxQuantity)
-AdjustQuantityAccordingToDPadInput: @ 8122034
- push {r4-r6,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r5, r1, 0
- ldrh r4, [r2]
- adds r6, r4, 0
- ldr r0, =gMain
- ldrh r0, [r0, 0x30]
- movs r3, 0xF0
- ands r3, r0
- cmp r3, 0x40
- bne _0812206C
- adds r0, r4, 0x1
- strh r0, [r2]
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, r1
- ble _0812205E
- movs r0, 0x1
- strh r0, [r2]
-_0812205E:
- movs r0, 0
- ldrsh r1, [r2, r0]
-_08122062:
- lsls r0, r4, 16
- b _081220B6
- .pool
-_0812206C:
- cmp r3, 0x80
- bne _08122082
- subs r0, r4, 0x1
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bgt _0812207C
- strh r1, [r2]
-_0812207C:
- movs r3, 0
- ldrsh r1, [r2, r3]
- b _08122062
-_08122082:
- cmp r3, 0x10
- bne _0812209C
- adds r0, r4, 0
- adds r0, 0xA
- strh r0, [r2]
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, r5
- ble _08122096
- strh r5, [r2]
-_08122096:
- movs r3, 0
- ldrsh r1, [r2, r3]
- b _08122062
-_0812209C:
- cmp r3, 0x20
- bne _081220C6
- adds r0, r4, 0
- subs r0, 0xA
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bgt _081220B0
- movs r0, 0x1
- strh r0, [r2]
-_081220B0:
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r0, r6, 16
-_081220B6:
- asrs r0, 16
- cmp r1, r0
- beq _081220C6
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- b _081220C8
-_081220C6:
- movs r0, 0
-_081220C8:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end AdjustQuantityAccordingToDPadInput
-
- thumb_func_start GetLRKeysState
-GetLRKeysState: @ 81220D0
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _08122106
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _081220F8
- movs r0, 0x1
- b _08122108
- .pool
-_081220F8:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08122106
- movs r0, 0x2
- b _08122108
-_08122106:
- movs r0, 0
-_08122108:
- pop {r1}
- bx r1
- thumb_func_end GetLRKeysState
-
- thumb_func_start sub_812210C
-sub_812210C: @ 812210C
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _08122142
- ldr r0, =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _08122134
- movs r0, 0x1
- b _08122144
- .pool
-_08122134:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08122142
- movs r0, 0x2
- b _08122144
-_08122142:
- movs r0, 0
-_08122144:
- pop {r1}
- bx r1
- thumb_func_end sub_812210C
-
- thumb_func_start sub_8122148
-sub_8122148: @ 8122148
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08122174
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldr r0, =0x00001919
- cmp r1, r0
- beq _08122166
- bl InUnionRoom
- cmp r0, 0x1
- bne _08122174
-_08122166:
- movs r0, 0
- b _08122176
- .pool
-_08122174:
- movs r0, 0x1
-_08122176:
- pop {r1}
- bx r1
- thumb_func_end sub_8122148
-
- thumb_func_start itemid_80BF6D8_mail_related
-itemid_80BF6D8_mail_related: @ 812217C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl is_c1_link_related_active
- cmp r0, 0x1
- beq _08122192
- bl InUnionRoom
- cmp r0, 0x1
- bne _081221A4
-_08122192:
- adds r0, r4, 0
- bl ItemIsMail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081221A4
- movs r0, 0
- b _081221A6
-_081221A4:
- movs r0, 0x1
-_081221A6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end itemid_80BF6D8_mail_related
-
- thumb_func_start sub_81221AC
-sub_81221AC: @ 81221AC
- push {lr}
- bl is_c1_link_related_active
- cmp r0, 0x1
- beq _081221BE
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081221C8
-_081221BE:
- movs r0, 0x1
- b _081221CA
- .pool
-_081221C8:
- movs r0, 0
-_081221CA:
- pop {r1}
- bx r1
- thumb_func_end sub_81221AC
-
- thumb_func_start sub_81221D0
-sub_81221D0: @ 81221D0
- push {lr}
- bl sub_81221AC
- lsls r0, 24
- cmp r0, 0
- beq _081221E6
- bl sub_8087598
- lsls r0, 24
- lsrs r0, 24
- b _081221E8
-_081221E6:
- movs r0, 0
-_081221E8:
- pop {r1}
- bx r1
- thumb_func_end sub_81221D0
-
- thumb_func_start sub_81221EC
-sub_81221EC: @ 81221EC
- push {lr}
- bl sub_81221D0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08122202
- bl sub_800B504
- cmp r0, 0x1
- bne _08122206
-_08122202:
- movs r0, 0x1
- b _08122208
-_08122206:
- movs r0, 0
-_08122208:
- pop {r1}
- bx r1
- thumb_func_end sub_81221EC
-
- thumb_func_start sub_812220C
-sub_812220C: @ 812220C
- push {r4-r6,lr}
- adds r6, r2, 0
- ldr r2, [sp, 0x10]
- lsls r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- adds r4, r0, 0
- movs r0, 0
- strb r0, [r3]
- movs r2, 0
- lsrs r1, 24
- cmp r2, r1
- bcs _08122240
-_08122226:
- lsls r0, r2, 2
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0
- beq _08122236
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
-_08122236:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r1
- bcc _08122226
-_08122240:
- ldrb r0, [r3]
- adds r1, r0, 0x1
- strb r1, [r3]
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, r5
- bls _08122252
- strb r5, [r6]
- b _08122254
-_08122252:
- strb r1, [r6]
-_08122254:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812220C
-
- thumb_func_start sub_812225C
-sub_812225C: @ 812225C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- ldrh r0, [r4]
- cmp r0, 0
- beq _0812227A
- adds r0, r2
- cmp r0, r3
- ble _0812227A
- subs r0, r3, r2
- strh r0, [r4]
-_0812227A:
- ldrh r0, [r4]
- ldrh r1, [r5]
- adds r0, r1
- cmp r0, r3
- blt _08122290
- cmp r3, 0
- bne _0812228C
- strh r3, [r5]
- b _08122290
-_0812228C:
- subs r0, r3, 0x1
- strh r0, [r5]
-_08122290:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812225C
-
- thumb_func_start sub_8122298
-sub_8122298: @ 8122298
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, [sp, 0x14]
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r2, r0, 24
- lsrs r0, r2, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081222F0
- lsrs r2, 25
- ldrh r0, [r4]
- cmp r0, r2
- bcc _08122322
- movs r1, 0
- subs r0, r2
- cmp r1, r0
- bge _08122322
- ldrh r0, [r5]
- adds r0, r7
- cmp r0, r6
- beq _08122322
-_081222CC:
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- ldrh r0, [r4]
- subs r0, r2
- cmp r1, r0
- bge _08122322
- ldrh r0, [r5]
- adds r0, r7
- cmp r0, r6
- bne _081222CC
- b _08122322
-_081222F0:
- ldrh r3, [r4]
- lsrs r2, 25
- adds r0, r2, 0x1
- cmp r3, r0
- blt _08122322
- movs r1, 0
- subs r0, r3, r2
- b _08122316
-_08122300:
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- ldrh r0, [r4]
- subs r0, r2
-_08122316:
- cmp r1, r0
- bgt _08122322
- ldrh r0, [r5]
- adds r0, r7
- cmp r0, r6
- bne _08122300
-_08122322:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8122298
-
- thumb_func_start LoadListMenuArrowsGfx
-LoadListMenuArrowsGfx: @ 8122328
- push {lr}
- ldr r0, =gUnknown_0859F514
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0859F51C
- bl LoadCompressedObjectPalette
- pop {r0}
- bx r0
- .pool
- thumb_func_end LoadListMenuArrowsGfx
-
- thumb_func_start sub_8122344
-sub_8122344: @ 8122344
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- lsls r1, 24
- lsrs r6, r1, 24
- movs r5, 0
- cmp r5, r6
- bcs _0812239C
- ldr r7, =gSprites
-_08122358:
- lsls r1, r5, 4
- ldr r0, =gUnknown_0859F524
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- mov r1, r8
- adds r4, r1, r5
- strb r0, [r4]
- cmp r5, 0
- beq _0812237E
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0x1
- bl StartSpriteAnim
-_0812237E:
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _08122358
-_0812239C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8122344
-
- thumb_func_start sub_81223B0
-sub_81223B0: @ 81223B0
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r4, 0
- cmp r4, r5
- bcs _081223F6
- ldr r7, =gSprites
-_081223C0:
- subs r0, r5, 0x1
- cmp r4, r0
- bne _081223DC
- adds r0, r6, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- bl DestroySpriteAndFreeResources
- b _081223EC
- .pool
-_081223DC:
- adds r0, r6, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- bl DestroySprite
-_081223EC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _081223C0
-_081223F6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81223B0
-
- thumb_func_start sub_81223FC
-sub_81223FC: @ 81223FC
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r0, r2, 24
- movs r3, 0
- cmp r3, r4
- bcs _0812243E
- ldr r1, =gSprites
- mov r12, r1
- movs r1, 0x1
- ands r0, r1
- lsls r5, r0, 2
- movs r7, 0x5
- negs r7, r7
-_0812241C:
- adds r0, r6, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r5
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r4
- bcc _0812241C
-_0812243E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81223FC
-
- thumb_func_start sub_8122448
-@ void sub_8122448(int a1, u8 a2, u16 x, u16 y)
-sub_8122448: @ 8122448
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- movs r0, 0x80
- ands r0, r4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x7F
- ands r4, r0
- movs r3, 0
- cmp r3, r4
- bcs _081224C8
- ldr r5, =gSprites
- lsls r0, r7, 16
- asrs r0, 16
- subs r0, 0x8
- mov r12, r0
-_0812247E:
- subs r0, r4, 0x1
- cmp r3, r0
- bne _081224A0
- mov r0, r8
- cmp r0, 0
- beq _081224A0
- adds r2, r6, r3
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r12
- strh r1, [r0, 0x24]
- b _081224AE
- .pool
-_081224A0:
- adds r2, r6, r3
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r7, [r0, 0x24]
-_081224AE:
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r9
- adds r1, 0x1
- strh r1, [r0, 0x22]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r4
- bcc _0812247E
-_081224C8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8122448
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/menu_indicators.s b/asm/menu_indicators.s
deleted file mode 100644
index b923b53d0..000000000
--- a/asm/menu_indicators.s
+++ /dev/null
@@ -1,1442 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_81AF08C
-sub_81AF08C: @ 81AF08C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r2, r1, r0
- cmp r3, 0x10
- bhi _081AF154
- lsls r0, r3, 2
- ldr r1, =_081AF0B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081AF0B8:
- .4byte _081AF0FC
- .4byte _081AF0FC
- .4byte _081AF100
- .4byte _081AF104
- .4byte _081AF108
- .4byte _081AF10C
- .4byte _081AF110
- .4byte _081AF114
- .4byte _081AF118
- .4byte _081AF11C
- .4byte _081AF122
- .4byte _081AF12A
- .4byte _081AF130
- .4byte _081AF138
- .4byte _081AF140
- .4byte _081AF146
- .4byte _081AF14E
-_081AF0FC:
- ldr r0, [r2, 0x4]
- b _081AF158
-_081AF100:
- ldrh r0, [r2, 0xC]
- b _081AF158
-_081AF104:
- ldrh r0, [r2, 0xE]
- b _081AF158
-_081AF108:
- ldrb r0, [r2, 0x10]
- b _081AF158
-_081AF10C:
- ldrb r0, [r2, 0x11]
- b _081AF158
-_081AF110:
- ldrb r0, [r2, 0x12]
- b _081AF158
-_081AF114:
- ldrb r0, [r2, 0x13]
- b _081AF158
-_081AF118:
- ldrb r0, [r2, 0x14]
- b _081AF124
-_081AF11C:
- ldrb r0, [r2, 0x14]
- lsrs r0, 4
- b _081AF158
-_081AF122:
- ldrb r0, [r2, 0x15]
-_081AF124:
- lsls r0, 28
- lsrs r0, 28
- b _081AF158
-_081AF12A:
- ldrb r0, [r2, 0x15]
- lsrs r0, 4
- b _081AF158
-_081AF130:
- ldrb r0, [r2, 0x16]
- lsls r0, 29
- lsrs r0, 29
- b _081AF158
-_081AF138:
- ldrb r0, [r2, 0x16]
- lsls r0, 26
- lsrs r0, 29
- b _081AF158
-_081AF140:
- ldrb r0, [r2, 0x16]
- lsrs r0, 6
- b _081AF158
-_081AF146:
- ldrb r0, [r2, 0x17]
- lsls r0, 26
- lsrs r0, 26
- b _081AF158
-_081AF14E:
- ldrb r0, [r2, 0x17]
- lsrs r0, 6
- b _081AF158
-_081AF154:
- movs r0, 0x1
- negs r0, r0
-_081AF158:
- pop {r1}
- bx r1
- thumb_func_end sub_81AF08C
-
- thumb_func_start sub_81AF15C
-sub_81AF15C: @ 81AF15C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r3, r1, r0
- cmp r4, 0x10
- bhi _081AF25C
- lsls r0, r4, 2
- ldr r1, =_081AF188
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081AF188:
- .4byte _081AF1CC
- .4byte _081AF1CC
- .4byte _081AF1D0
- .4byte _081AF1D4
- .4byte _081AF1D8
- .4byte _081AF1DC
- .4byte _081AF1E0
- .4byte _081AF1E4
- .4byte _081AF1E8
- .4byte _081AF1F4
- .4byte _081AF202
- .4byte _081AF20E
- .4byte _081AF21C
- .4byte _081AF228
- .4byte _081AF236
- .4byte _081AF244
- .4byte _081AF250
-_081AF1CC:
- str r2, [r3, 0x4]
- b _081AF25C
-_081AF1D0:
- strh r2, [r3, 0xC]
- b _081AF25C
-_081AF1D4:
- strh r2, [r3, 0xE]
- b _081AF25C
-_081AF1D8:
- strb r2, [r3, 0x10]
- b _081AF25C
-_081AF1DC:
- strb r2, [r3, 0x11]
- b _081AF25C
-_081AF1E0:
- strb r2, [r3, 0x12]
- b _081AF25C
-_081AF1E4:
- strb r2, [r3, 0x13]
- b _081AF25C
-_081AF1E8:
- movs r0, 0xF
- ands r2, r0
- ldrb r1, [r3, 0x14]
- movs r0, 0x10
- negs r0, r0
- b _081AF1FA
-_081AF1F4:
- lsls r2, 4
- ldrb r1, [r3, 0x14]
- movs r0, 0xF
-_081AF1FA:
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x14]
- b _081AF25C
-_081AF202:
- movs r0, 0xF
- ands r2, r0
- ldrb r1, [r3, 0x15]
- movs r0, 0x10
- negs r0, r0
- b _081AF214
-_081AF20E:
- lsls r2, 4
- ldrb r1, [r3, 0x15]
- movs r0, 0xF
-_081AF214:
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x15]
- b _081AF25C
-_081AF21C:
- movs r0, 0x7
- ands r2, r0
- ldrb r1, [r3, 0x16]
- movs r0, 0x8
- negs r0, r0
- b _081AF23C
-_081AF228:
- movs r0, 0x7
- ands r2, r0
- lsls r2, 3
- ldrb r1, [r3, 0x16]
- movs r0, 0x39
- negs r0, r0
- b _081AF23C
-_081AF236:
- lsls r2, 6
- ldrb r1, [r3, 0x16]
- movs r0, 0x3F
-_081AF23C:
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x16]
- b _081AF25C
-_081AF244:
- movs r0, 0x3F
- ands r2, r0
- ldrb r1, [r3, 0x17]
- movs r0, 0x40
- negs r0, r0
- b _081AF256
-_081AF250:
- lsls r2, 6
- ldrb r1, [r3, 0x17]
- movs r0, 0x3F
-_081AF256:
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x17]
-_081AF25C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81AF15C
-
- thumb_func_start sub_81AF264
-sub_81AF264: @ 81AF264
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081AF276
- cmp r0, 0x1
- beq _081AF28A
- b _081AF2E4
-_081AF276:
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081AF2E4
-_081AF28A:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081AF29A
- cmp r0, 0x1
- beq _081AF2C0
- ldrh r2, [r4, 0x38]
- b _081AF2DE
-_081AF29A:
- movs r0, 0x34
- ldrsh r3, [r4, r0]
- ldr r1, =gSineTable
- ldrh r2, [r4, 0x38]
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r3
- cmp r0, 0
- bge _081AF2B4
- adds r0, 0xFF
-_081AF2B4:
- asrs r0, 8
- strh r0, [r4, 0x24]
- b _081AF2DE
- .pool
-_081AF2C0:
- movs r0, 0x34
- ldrsh r3, [r4, r0]
- ldr r1, =gSineTable
- ldrh r2, [r4, 0x38]
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r3
- cmp r0, 0
- bge _081AF2DA
- adds r0, 0xFF
-_081AF2DA:
- asrs r0, 8
- strh r0, [r4, 0x26]
-_081AF2DE:
- ldrh r0, [r4, 0x36]
- adds r0, r2, r0
- strh r0, [r4, 0x38]
-_081AF2E4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AF264
-
- thumb_func_start AddScrollIndicatorArrowObject
-AddScrollIndicatorArrowObject: @ 81AF2F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- adds r6, r0, 0
- ldr r5, [sp, 0x30]
- lsls r6, 24
- lsrs r6, 24
- mov r8, r6
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 16
- lsrs r5, 16
- mov r12, r5
- mov r4, sp
- ldr r0, =gUnknown_08614244
- ldm r0!, {r5-r7}
- stm r4!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r4!, {r5-r7}
- mov r0, sp
- movs r4, 0
- strh r3, [r0]
- mov r3, r12
- strh r3, [r0, 0x2]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r1
- adds r5, r3, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r5]
- strh r4, [r3, 0x2E]
- ldr r1, =gUnknown_086141FC
- mov r5, r8
- lsls r6, r5, 2
- adds r6, r1
- ldrb r2, [r6]
- lsls r1, r2, 28
- lsrs r1, 28
- strh r1, [r3, 0x30]
- lsrs r2, 4
- strh r2, [r3, 0x32]
- ldrb r1, [r6, 0x1]
- strh r1, [r3, 0x34]
- ldrh r1, [r6, 0x2]
- strh r1, [r3, 0x36]
- strh r4, [r3, 0x38]
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddScrollIndicatorArrowObject
-
- thumb_func_start AddScrollIndicatorArrowPair
-AddScrollIndicatorArrowPair: @ 81AF380
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- adds r6, r0, 0
- mov r9, r1
- ldr r0, =gUnknown_086142C8
- str r0, [sp, 0x4]
- ldr r5, =0xffff0000
- ldr r0, [sp, 0x8]
- ands r0, r5
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- ldr r4, =0x0000ffff
- ands r0, r4
- orrs r0, r1
- str r0, [sp, 0x8]
- add r0, sp, 0x4
- bl LoadCompressedObjectPic
- ldrh r2, [r6, 0xC]
- cmp r2, r4
- bne _081AF3DC
- ldr r0, =gUnknown_086142A8
- ldrb r1, [r6, 0xE]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- b _081AF3EE
- .pool
-_081AF3DC:
- ldr r0, =gUnknown_086142A8
- str r0, [sp, 0xC]
- add r0, sp, 0xC
- ldr r1, [r0, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpritePalette
-_081AF3EE:
- ldr r0, =Task_ScrollIndicatorArrowPair
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r7, r0, r1
- movs r0, 0
- strb r0, [r7]
- mov r0, r9
- str r0, [r7, 0x4]
- ldrh r0, [r6, 0x6]
- strh r0, [r7, 0x8]
- ldrh r0, [r6, 0x8]
- strh r0, [r7, 0xA]
- ldrh r0, [r6, 0xA]
- strh r0, [r7, 0xE]
- ldrh r0, [r6, 0xC]
- strh r0, [r7, 0x10]
- ldrb r0, [r6]
- ldrb r1, [r6, 0x1]
- ldrb r2, [r6, 0x2]
- ldrh r3, [r6, 0xA]
- ldrh r4, [r6, 0xC]
- str r4, [sp]
- bl AddScrollIndicatorArrowObject
- strb r0, [r7, 0xC]
- ldrb r0, [r6, 0x3]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x5]
- ldrh r3, [r6, 0xA]
- ldrh r4, [r6, 0xC]
- str r4, [sp]
- bl AddScrollIndicatorArrowObject
- strb r0, [r7, 0xD]
- ldrh r1, [r6, 0xC]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _081AF47C
- ldr r5, =gSprites
- ldrb r0, [r7, 0xC]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r6, 0xE]
- lsls r3, 4
- ldrb r4, [r1, 0x5]
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r4
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r7, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r6, 0xE]
- lsls r1, 4
- ldrb r3, [r0, 0x5]
- ands r2, r3
- orrs r2, r1
- strb r2, [r0, 0x5]
-_081AF47C:
- mov r0, r8
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddScrollIndicatorArrowPair
-
- thumb_func_start AddScrollIndicatorArrowPairParametrized
-AddScrollIndicatorArrowPairParametrized: @ 81AF4A0
- push {r4,lr}
- adds r4, r1, 0
- subs r0, 0x2
- cmp r0, 0x1
- bhi _081AF4C4
- ldr r0, =gUnknown_0203CE8C
- movs r1, 0x2
- strb r1, [r0]
- strb r4, [r0, 0x1]
- strb r2, [r0, 0x2]
- movs r1, 0x3
- strb r1, [r0, 0x3]
- strb r4, [r0, 0x4]
- strb r3, [r0, 0x5]
- b _081AF4D6
- .pool
-_081AF4C4:
- ldr r0, =gUnknown_0203CE8C
- movs r1, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r4, [r0, 0x2]
- movs r1, 0x1
- strb r1, [r0, 0x3]
- strb r3, [r0, 0x4]
- strb r4, [r0, 0x5]
-_081AF4D6:
- adds r2, r0, 0
- movs r1, 0
- movs r0, 0
- strh r0, [r2, 0x6]
- ldr r0, [sp, 0x8]
- strh r0, [r2, 0x8]
- ldr r0, [sp, 0xC]
- strh r0, [r2, 0xA]
- ldr r0, [sp, 0x10]
- strh r0, [r2, 0xC]
- strb r1, [r2, 0xE]
- adds r0, r2, 0
- ldr r1, [sp, 0x14]
- bl AddScrollIndicatorArrowPair
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddScrollIndicatorArrowPairParametrized
-
- thumb_func_start Task_ScrollIndicatorArrowPair
-Task_ScrollIndicatorArrowPair: @ 81AF504
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- ldr r0, [r4, 0x4]
- ldrh r5, [r0]
- ldrh r0, [r4, 0x8]
- cmp r5, r0
- bne _081AF548
- ldr r0, =0x0000ffff
- cmp r5, r0
- beq _081AF548
- ldr r3, =gSprites
- ldrb r1, [r4, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- b _081AF55E
- .pool
-_081AF548:
- ldr r3, =gSprites
- ldrb r1, [r4, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
-_081AF55E:
- strb r1, [r0]
- ldrh r0, [r4, 0xA]
- cmp r5, r0
- bne _081AF580
- ldrb r1, [r4, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- b _081AF594
- .pool
-_081AF580:
- ldrb r1, [r4, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
-_081AF594:
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end Task_ScrollIndicatorArrowPair
-
- thumb_func_start Task_ScrollIndicatorArrowPairOnMainMenu
-Task_ScrollIndicatorArrowPairOnMainMenu: @ 81AF59C
- push {r4,lr}
- 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 r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081AF5E8
- ldr r3, =gSprites
- ldrb r1, [r4, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r4, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- b _081AF612
- .pool
-_081AF5E8:
- ldr r3, =gSprites
- ldrb r1, [r4, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
-_081AF612:
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_ScrollIndicatorArrowPairOnMainMenu
-
- thumb_func_start RemoveScrollIndicatorArrowPair
-RemoveScrollIndicatorArrowPair: @ 81AF620
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldrh r0, [r5, 0xE]
- ldr r4, =0x0000ffff
- cmp r0, r4
- beq _081AF63E
- bl FreeSpriteTilesByTag
-_081AF63E:
- ldrh r0, [r5, 0x10]
- cmp r0, r4
- beq _081AF648
- bl FreeSpritePaletteByTag
-_081AF648:
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl DestroySprite
- ldrb r1, [r5, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r6, 0
- bl DestroyTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end RemoveScrollIndicatorArrowPair
-
- thumb_func_start ListMenuAddCursorObjectInternal
-ListMenuAddCursorObjectInternal: @ 81AF680
- push {lr}
- cmp r1, 0
- beq _081AF68A
- cmp r1, 0x1
- beq _081AF690
-_081AF68A:
- bl ListMenuAddRedOutlineCursorObject
- b _081AF694
-_081AF690:
- bl ListMenuAddRedArrowCursorObject
-_081AF694:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end ListMenuAddCursorObjectInternal
-
- thumb_func_start ListMenuUpdateCursorObject
-@ void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 a4)
-ListMenuUpdateCursorObject: @ 81AF69C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r3, 0
- beq _081AF6B4
- cmp r3, 0x1
- beq _081AF6BA
- b _081AF6BE
-_081AF6B4:
- bl ListMenuUpdateRedOutlineCursorObject
- b _081AF6BE
-_081AF6BA:
- bl ListMenuUpdateRedArrowCursorObject
-_081AF6BE:
- pop {r0}
- bx r0
- thumb_func_end ListMenuUpdateCursorObject
-
- thumb_func_start ListMenuRemoveCursorObject
-ListMenuRemoveCursorObject: @ 81AF6C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r1, 0
- beq _081AF6D4
- cmp r1, 0x1
- beq _081AF6DA
- b _081AF6DE
-_081AF6D4:
- bl ListMenuRemoveRedOutlineCursorObject
- b _081AF6DE
-_081AF6DA:
- bl ListMenuRemoveRedArrowCursorObject
-_081AF6DE:
- pop {r0}
- bx r0
- thumb_func_end ListMenuRemoveCursorObject
-
- thumb_func_start Task_RedOutlineCursor
-Task_RedOutlineCursor: @ 81AF6E4
- bx lr
- thumb_func_end Task_RedOutlineCursor
-
- thumb_func_start ListMenuGetRedOutlineCursorSpriteCount
-ListMenuGetRedOutlineCursorSpriteCount: @ 81AF6E8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- movs r3, 0x4
- cmp r0, 0x10
- bls _081AF708
- movs r2, 0x8
- subs r0, 0x8
- cmp r2, r0
- bge _081AF708
-_081AF700:
- adds r3, 0x2
- adds r2, 0x8
- cmp r2, r0
- blt _081AF700
-_081AF708:
- cmp r1, 0x10
- bls _081AF71C
- movs r2, 0x8
- subs r1, 0x8
- cmp r2, r1
- bge _081AF71C
-_081AF714:
- adds r3, 0x2
- adds r2, 0x8
- cmp r2, r1
- blt _081AF714
-_081AF71C:
- lsls r0, r3, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end ListMenuGetRedOutlineCursorSpriteCount
-
- thumb_func_start ListMenuSetUpRedOutlineCursorSpriteOamTable
-ListMenuSetUpRedOutlineCursorSpriteOamTable: @ 81AF724
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r3, r2, 0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r0, =gUnknown_0861425C
- ldr r0, [r0]
- str r0, [r3]
- movs r1, 0x88
- strb r1, [r3]
- strb r1, [r3, 0x1]
- ldr r0, =gUnknown_08614260
- ldr r0, [r0]
- str r0, [r3, 0x4]
- mov r2, r8
- adds r2, 0x80
- strb r2, [r3, 0x4]
- strb r1, [r3, 0x5]
- ldr r0, =gUnknown_08614274
- ldr r0, [r0]
- str r0, [r3, 0x8]
- strb r1, [r3, 0x8]
- mov r4, r9
- adds r4, 0x80
- strb r4, [r3, 0x9]
- ldr r0, =gUnknown_08614278
- ldr r0, [r0]
- str r0, [r3, 0xC]
- strb r2, [r3, 0xC]
- strb r4, [r3, 0xD]
- movs r0, 0x4
- mov r12, r0
- mov r2, r8
- cmp r2, 0x10
- bls _081AF7B8
- movs r2, 0x8
- mov r5, r8
- subs r5, 0x8
- cmp r2, r5
- bge _081AF7B8
- ldr r0, =gUnknown_08614264
- ldr r0, [r0]
- str r0, [sp]
- ldr r0, =gUnknown_08614270
- ldr r6, [r0]
- adds r1, r3, 0
- adds r1, 0x10
- movs r7, 0x88
- mov r10, r7
-_081AF796:
- ldr r0, [sp]
- str r0, [r1]
- adds r0, r2, 0
- subs r0, 0x78
- strb r0, [r1]
- mov r7, r10
- strb r7, [r1, 0x1]
- adds r1, 0x4
- str r6, [r1]
- strb r0, [r1]
- strb r4, [r1, 0x1]
- adds r1, 0x4
- movs r0, 0x2
- add r12, r0
- adds r2, 0x8
- cmp r2, r5
- blt _081AF796
-_081AF7B8:
- mov r2, r9
- cmp r2, 0x10
- bls _081AF7F6
- movs r1, 0x8
- mov r4, r9
- subs r4, 0x8
- cmp r1, r4
- bge _081AF7F6
- ldr r0, =gUnknown_08614268
- ldr r6, [r0]
- ldr r0, =gUnknown_0861426C
- ldr r5, [r0]
- mov r7, r12
- lsls r0, r7, 2
- adds r2, r0, r3
- movs r7, 0x88
- mov r3, r8
- adds r3, 0x80
-_081AF7DC:
- str r6, [r2]
- strb r7, [r2]
- adds r0, r1, 0
- subs r0, 0x78
- strb r0, [r2, 0x1]
- adds r2, 0x4
- str r5, [r2]
- strb r3, [r2]
- strb r0, [r2, 0x1]
- adds r2, 0x4
- adds r1, 0x8
- cmp r1, r4
- blt _081AF7DC
-_081AF7F6:
- 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 ListMenuSetUpRedOutlineCursorSpriteOamTable
-
- thumb_func_start ListMenuAddRedOutlineCursorObject
-ListMenuAddRedOutlineCursorObject: @ 81AF828
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x28
- adds r6, r0, 0
- ldr r0, =gUnknown_08614338
- str r0, [sp, 0x18]
- ldr r5, =0xffff0000
- add r0, sp, 0x18
- ldr r1, [r0, 0x4]
- ands r1, r5
- movs r2, 0x80
- lsls r2, 1
- orrs r1, r2
- ldrh r2, [r6, 0x6]
- lsls r2, 16
- ldr r3, =0x0000ffff
- ands r1, r3
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPic
- ldrh r2, [r6, 0x8]
- ldr r7, =0x0000ffff
- cmp r2, r7
- bne _081AF884
- ldr r0, =gUnknown_086142A8
- ldrb r1, [r6, 0xA]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- b _081AF896
- .pool
-_081AF884:
- ldr r0, =gUnknown_086142A8
- str r0, [sp, 0x20]
- add r0, sp, 0x20
- ldr r1, [r0, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpritePalette
-_081AF896:
- ldr r0, =Task_RedOutlineCursor
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldrh r0, [r6, 0x6]
- movs r3, 0
- mov r8, r3
- strh r0, [r5, 0xE]
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x10]
- ldrh r0, [r6, 0x2]
- ldrh r1, [r6, 0x4]
- bl ListMenuGetRedOutlineCursorSpriteCount
- strb r0, [r5]
- ldrb r0, [r5]
- lsls r0, 2
- bl Alloc
- adds r2, r0, 0
- str r2, [r5, 0x8]
- str r2, [r5, 0x4]
- ldrh r0, [r6, 0x2]
- ldrh r1, [r6, 0x4]
- bl ListMenuSetUpRedOutlineCursorSpriteOamTable
- mov r1, sp
- ldr r0, =gDummySpriteTemplate
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- mov r1, sp
- ldrh r0, [r6, 0x6]
- strh r0, [r1]
- ldrh r0, [r6, 0x8]
- strh r0, [r1, 0x2]
- ldrb r1, [r6]
- adds r1, 0x78
- ldrb r2, [r6, 0x1]
- adds r2, 0x78
- mov r0, sp
- movs r3, 0
- bl CreateSprite
- strb r0, [r5, 0xC]
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r7, =gSprites
- adds r0, r7
- adds r1, r5, 0
- bl SetSubspriteTables
- ldrb r0, [r5, 0xC]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x43
- mov r1, r8
- strb r1, [r0]
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x42
- ldrb r2, [r0]
- movs r1, 0x40
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrh r1, [r6, 0x8]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _081AF96E
- ldrb r0, [r5, 0xC]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r6, 0xA]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_081AF96E:
- adds r0, r4, 0
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ListMenuAddRedOutlineCursorObject
-
- thumb_func_start ListMenuUpdateRedOutlineCursorObject
-@ void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y)
-ListMenuUpdateRedOutlineCursorObject: @ 81AF994
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- ldr r0, =gTasks + 0x8
- adds r3, r0
- ldr r5, =gSprites
- ldrb r4, [r3, 0xC]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- adds r1, 0x78
- strh r1, [r0, 0x20]
- ldrb r1, [r3, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r2, 0x78
- strh r2, [r0, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ListMenuUpdateRedOutlineCursorObject
-
- thumb_func_start ListMenuRemoveRedOutlineCursorObject
-ListMenuRemoveRedOutlineCursorObject: @ 81AF9D8
- push {r4-r6,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
- ldr r0, [r4, 0x8]
- bl Free
- ldrh r0, [r4, 0xE]
- ldr r6, =0x0000ffff
- cmp r0, r6
- beq _081AF9FC
- bl FreeSpriteTilesByTag
-_081AF9FC:
- ldrh r0, [r4, 0x10]
- cmp r0, r6
- beq _081AFA06
- bl FreeSpritePaletteByTag
-_081AFA06:
- ldrb r1, [r4, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ListMenuRemoveRedOutlineCursorObject
-
- thumb_func_start ObjectCB_RedArrowCursor
-ObjectCB_RedArrowCursor: @ 81AFA30
- push {lr}
- adds r2, r0, 0
- ldr r1, =gSineTable
- ldrh r3, [r2, 0x2E]
- lsls r0, r3, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _081AFA48
- adds r0, 0x3F
-_081AFA48:
- asrs r0, 6
- strh r0, [r2, 0x24]
- adds r0, r3, 0
- adds r0, 0x8
- strh r0, [r2, 0x2E]
- pop {r0}
- bx r0
- .pool
- thumb_func_end ObjectCB_RedArrowCursor
-
- thumb_func_start Task_RedArrowCursor
-Task_RedArrowCursor: @ 81AFA5C
- bx lr
- thumb_func_end Task_RedArrowCursor
-
- thumb_func_start ListMenuAddRedArrowCursorObject
-ListMenuAddRedArrowCursorObject: @ 81AFA60
- push {r4-r7,lr}
- sub sp, 0x28
- adds r5, r0, 0
- ldr r0, =gUnknown_08614378
- str r0, [sp, 0x18]
- ldr r6, =0xffff0000
- add r0, sp, 0x18
- ldr r1, [r0, 0x4]
- ands r1, r6
- movs r2, 0x80
- orrs r1, r2
- ldrh r2, [r5, 0x6]
- lsls r2, 16
- ldr r4, =0x0000ffff
- ands r1, r4
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPic
- ldrh r2, [r5, 0x8]
- cmp r2, r4
- bne _081AFAB4
- ldr r0, =gUnknown_086142A8
- ldrb r1, [r5, 0xA]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- b _081AFAC6
- .pool
-_081AFAB4:
- ldr r0, =gUnknown_086142A8
- str r0, [sp, 0x20]
- add r0, sp, 0x20
- ldr r1, [r0, 0x4]
- ands r1, r6
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpritePalette
-_081AFAC6:
- ldr r0, =Task_RedArrowCursor
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x4]
- mov r1, sp
- ldr r0, =gUnknown_08614290
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- mov r1, sp
- ldrh r0, [r5, 0x6]
- strh r0, [r1]
- ldrh r0, [r5, 0x8]
- strh r0, [r1, 0x2]
- ldrb r1, [r5]
- ldrb r2, [r5, 0x1]
- mov r0, sp
- movs r3, 0
- bl CreateSprite
- strb r0, [r4]
- ldr r3, =gSprites
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x8
- strh r2, [r0, 0x24]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x26]
- ldrh r1, [r5, 0x8]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _081AFB46
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0xA]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_081AFB46:
- adds r0, r6, 0
- add sp, 0x28
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ListMenuAddRedArrowCursorObject
-
- thumb_func_start ListMenuUpdateRedArrowCursorObject
-@ void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y)
-ListMenuUpdateRedArrowCursorObject: @ 81AFB68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- ldr r0, =gTasks + 0x8
- adds r3, r0
- ldr r5, =gSprites
- ldrb r4, [r3]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- strh r1, [r0, 0x20]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ListMenuUpdateRedArrowCursorObject
-
- thumb_func_start ListMenuRemoveRedArrowCursorObject
-ListMenuRemoveRedArrowCursorObject: @ 81AFBA0
- push {r4-r6,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]
- ldr r6, =0x0000ffff
- cmp r0, r6
- beq _081AFBBE
- bl FreeSpriteTilesByTag
-_081AFBBE:
- ldrh r0, [r4, 0x4]
- cmp r0, r6
- beq _081AFBC8
- bl FreeSpritePaletteByTag
-_081AFBC8:
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ListMenuRemoveRedArrowCursorObject
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 185d26109..4001b7144 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -10231,7 +10231,7 @@ task_launch_hm_phase_2: @ 81B5750
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80ABDFC
+ bl IsWeatherNotFadingIn
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -17337,7 +17337,7 @@ task_hm_without_phase_2: @ 81B93E0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80ABDFC
+ bl IsWeatherNotFadingIn
lsls r0, 24
cmp r0, 0
beq _081B93FE
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 111093bee..5988eb732 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -245,7 +245,7 @@ _080C72AC:
b _080C7318
.pool
_080C730C:
- bl sub_80ABDFC
+ bl IsWeatherNotFadingIn
lsls r0, 24
cmp r0, 0
bne _080C7318
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 9c42ed730..2cc643547 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -1568,7 +1568,7 @@ sub_81C7E58: @ 81C7E58
ldr r2, [r6]
mov r8, r2
mov r0, r8
- bl sub_8034974
+ bl GetDecompressedDataSize
adds r5, r0, 0
lsls r4, 5
ldr r0, =gPokenavLeftHeader_Pal
@@ -1650,7 +1650,7 @@ sub_81C7F24: @ 81C7F24
adds r1, r2
ldr r6, [r1]
adds r0, r6, 0
- bl sub_8034974
+ bl GetDecompressedDataSize
adds r5, r0, 0
lsls r4, 5
ldr r0, =gPokenavLeftHeader_Pal
@@ -26676,7 +26676,7 @@ _081D4B3A:
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
- bl sub_80ABE18
+ bl UpdateSpritePaletteWithWeather
ldrh r1, [r5, 0x10]
mov r0, sp
strh r1, [r0]
diff --git a/asm/record_mixing.s b/asm/record_mixing.s
deleted file mode 100644
index acfcf48ed..000000000
--- a/asm/record_mixing.s
+++ /dev/null
@@ -1,3711 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80E6BE8
-sub_80E6BE8: @ 80E6BE8
- push {lr}
- ldr r0, =sub_80E715C
- bl sub_80B37D4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E6BE8
-
- thumb_func_start sub_80E6BF8
-sub_80E6BF8: @ 80E6BF8
- push {r4,lr}
- ldr r2, =gUnknown_03001134
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r3, =0x00001a9c
- adds r0, r1, r3
- str r0, [r2]
- ldr r2, =gUnknown_03001138
- ldr r4, =0x000027cc
- adds r0, r1, r4
- str r0, [r2]
- ldr r2, =gUnknown_0300113C
- ldr r3, =0x00002b50
- adds r0, r1, r3
- str r0, [r2]
- ldr r2, =gUnknown_03001140
- ldr r4, =0x00002e28
- adds r0, r1, r4
- str r0, [r2]
- ldr r2, =gUnknown_03001144
- ldr r3, =0x00002e68
- adds r0, r1, r3
- str r0, [r2]
- ldr r2, =gUnknown_03001148
- ldr r0, =gUnknown_02039F9C
- str r0, [r2]
- ldr r2, =gUnknown_0300114C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r4, =0x0000064c
- adds r3, r0, r4
- str r3, [r2]
- ldr r2, =gUnknown_03001150
- ldr r4, =0x00003b58
- adds r1, r4
- str r1, [r2]
- ldr r1, =gUnknown_03001154
- adds r0, 0xDC
- str r0, [r1]
- ldr r0, =gUnknown_03001158
- str r3, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E6BF8
-
- thumb_func_start sub_80E6CA0
-sub_80E6CA0: @ 80E6CA0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gUnknown_03001134
- ldr r1, [r0]
- movs r4, 0xC8
- lsls r4, 4
- adds r0, r5, 0
- adds r2, r4, 0
- bl memcpy
- adds r4, r5, r4
- ldr r0, =gUnknown_03001138
- ldr r1, [r0]
- movs r2, 0xE1
- lsls r2, 2
- adds r0, r4, 0
- bl memcpy
- adds r0, r4, 0
- bl sub_80F14F8
- ldr r1, =0x00001004
- adds r0, r5, r1
- ldr r1, =gUnknown_0300113C
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r2, =0x00001044
- adds r0, r5, r2
- ldr r1, =gUnknown_03001140
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r1, =0x00001084
- adds r0, r5, r1
- ldr r1, =gUnknown_03001144
- ldr r1, [r1]
- movs r2, 0x28
- bl memcpy
- ldr r2, =0x000010ac
- adds r0, r5, r2
- bl sub_80E89F8
- ldr r0, =gUnknown_0300114C
- ldr r0, [r0]
- ldr r2, =0x00001124
- adds r1, r5, r2
- bl sub_81659DC
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080E6D1C
- bl GetRecordMixingGift
- ldr r2, =0x000011c8
- adds r1, r5, r2
- strh r0, [r1]
-_080E6D1C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E6CA0
-
- thumb_func_start sub_80E6D54
-sub_80E6D54: @ 80E6D54
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gUnknown_03001134
- ldr r1, [r0]
- movs r4, 0xC8
- lsls r4, 4
- adds r0, r5, 0
- adds r2, r4, 0
- bl memcpy
- adds r0, r5, 0
- bl sub_80EB18C
- adds r4, r5, r4
- ldr r0, =gUnknown_03001138
- ldr r1, [r0]
- movs r2, 0xE1
- lsls r2, 2
- adds r0, r4, 0
- bl memcpy
- adds r0, r4, 0
- bl sub_80F1208
- ldr r1, =0x00001004
- adds r0, r5, r1
- ldr r1, =gUnknown_0300113C
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r2, =0x00001044
- adds r4, r5, r2
- ldr r0, =gUnknown_03001140
- ldr r1, [r0]
- adds r0, r4, 0
- movs r2, 0x40
- bl memcpy
- adds r0, r4, 0
- bl sub_8120B70
- ldr r1, =0x00001084
- adds r0, r5, r1
- ldr r1, =gUnknown_03001144
- ldr r1, [r1]
- movs r2, 0x28
- bl memcpy
- ldr r2, =0x000010ac
- adds r4, r5, r2
- adds r0, r4, 0
- bl sub_80E89F8
- adds r0, r4, 0
- bl sub_80E8A54
- ldr r0, =gUnknown_0300114C
- ldr r0, [r0]
- ldr r1, =0x00001124
- adds r4, r5, r1
- adds r1, r4, 0
- bl sub_81659DC
- adds r0, r4, 0
- bl TaskDummy4
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080E6DEE
- bl GetRecordMixingGift
- ldr r2, =0x000011c8
- adds r1, r5, r2
- strh r0, [r1]
-_080E6DEE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E6D54
-
- thumb_func_start sub_80E6E24
-sub_80E6E24: @ 80E6E24
- push {r4,r5,lr}
- bl sub_80E9914
- bl sub_80F0BB8
- bl sub_80E6BF8
- bl sub_800A064
- cmp r0, 0
- beq _080E6E60
- bl sub_800A03C
- cmp r0, 0
- bne _080E6E50
- ldr r0, =gUnknown_0203A018
- ldr r0, [r0]
- bl sub_80E6CA0
- b _080E6F12
- .pool
-_080E6E50:
- ldr r0, =gUnknown_0203A018
- ldr r0, [r0]
- bl sub_80E6D54
- b _080E6F12
- .pool
-_080E6E60:
- ldr r5, =gUnknown_0203A018
- ldr r0, [r5]
- ldr r1, =gUnknown_03001134
- ldr r1, [r1]
- movs r4, 0xC8
- lsls r4, 4
- adds r2, r4, 0
- bl memcpy
- ldr r0, [r5]
- adds r0, r4
- ldr r1, =gUnknown_03001138
- ldr r1, [r1]
- movs r2, 0xE1
- lsls r2, 2
- bl memcpy
- ldr r0, [r5]
- ldr r1, =0x00001004
- adds r0, r1
- ldr r1, =gUnknown_0300113C
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r0, [r5]
- ldr r2, =0x00001044
- adds r0, r2
- ldr r1, =gUnknown_03001140
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r0, [r5]
- ldr r1, =0x00001214
- adds r0, r1
- ldr r1, =gUnknown_03001150
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r0, [r5]
- ldr r2, =0x00001084
- adds r0, r2
- ldr r1, =gUnknown_03001144
- ldr r1, [r1]
- movs r2, 0x28
- bl memcpy
- ldr r0, [r5]
- ldr r1, =0x000010ac
- adds r0, r1
- bl sub_80E89F8
- ldr r0, [r5]
- ldr r4, =0x00001124
- adds r0, r4
- ldr r1, =gUnknown_0300114C
- ldr r1, [r1]
- movs r2, 0xEC
- bl memcpy
- ldr r0, [r5]
- adds r0, r4
- bl sub_80E8AC0
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080E6EFA
- bl GetRecordMixingGift
- ldr r1, [r5]
- ldr r2, =0x00001210
- adds r1, r2
- strh r0, [r1]
-_080E6EFA:
- ldr r0, [r5]
- ldr r1, =0x00001254
- adds r0, r1
- ldr r1, =gUnknown_03001154
- ldr r1, [r1]
- bl sub_80E8110
- ldr r0, [r5]
- ldr r2, =0x000012dc
- adds r0, r2
- bl sub_80E8260
-_080E6F12:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E6E24
-
- thumb_func_start sub_80E6F60
-sub_80E6F60: @ 80E6F60
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- bl sub_800A064
- cmp r0, 0
- beq _080E7014
- ldr r5, =gUnknown_0203A014
- ldr r0, [r5]
- movs r1, 0xC8
- lsls r1, 4
- mov r8, r1
- add r0, r8
- bl sub_80E7B2C
- ldr r0, [r5]
- ldr r6, =0x00001230
- lsls r4, 24
- lsrs r4, 24
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80EAF80
- ldr r3, [r5]
- ldr r1, =0x000010ac
- adds r0, r3, r1
- add r3, r8
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80E7B60
- ldr r0, [r5]
- ldr r1, =0x00001124
- adds r0, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80E7948
- ldr r0, [r5]
- add r0, r8
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80F01E8
- ldr r0, [r5]
- ldr r1, =0x00001004
- adds r0, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80F0C7C
- ldr r0, [r5]
- ldr r1, =0x00001044
- adds r0, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80E78C4
- ldr r0, [r5]
- ldr r1, =0x00001084
- adds r0, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_812287C
- ldr r0, [r5]
- ldr r1, =0x000011c8
- adds r0, r1
- adds r1, r4, 0
- bl sub_80E7F68
- b _080E70BE
- .pool
-_080E7014:
- ldr r5, =gUnknown_0203A014
- ldr r0, [r5]
- movs r1, 0xC8
- lsls r1, 4
- mov r8, r1
- add r0, r8
- bl sub_80E7B2C
- ldr r0, [r5]
- ldr r6, =0x00001444
- lsls r4, 24
- lsrs r4, 24
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80EAF80
- ldr r0, [r5]
- add r0, r8
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80F01E8
- ldr r0, [r5]
- ldr r1, =0x00001004
- adds r0, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80F0C7C
- ldr r0, [r5]
- ldr r1, =0x00001044
- adds r0, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80E78C4
- ldr r0, [r5]
- ldr r1, =0x00001084
- adds r0, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_812287C
- ldr r3, [r5]
- ldr r1, =0x000010ac
- adds r0, r3, r1
- add r3, r8
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80E7B60
- ldr r0, [r5]
- ldr r1, =0x00001124
- adds r0, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80E7948
- ldr r0, [r5]
- ldr r1, =0x00001210
- adds r0, r1
- adds r1, r4, 0
- bl sub_80E7F68
- ldr r0, [r5]
- ldr r1, =0x00001214
- adds r0, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80E7A14
- ldr r0, [r5]
- ldr r1, =0x00001254
- adds r0, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80E8468
- ldr r0, [r5]
- ldr r1, =0x000012dc
- adds r0, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80E89AC
-_080E70BE:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E6F60
-
- thumb_func_start sub_80E70F4
-sub_80E70F4: @ 80E70F4
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0
- bl NewMenuHelpers_DrawDialogueFrame
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0
- bl PrintTextOnWindow
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E70F4
-
- thumb_func_start sub_80E7128
-sub_80E7128: @ 80E7128
- 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, 0x32
- bne _080E7150
- movs r0, 0xE2
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x8]
-_080E7150:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E7128
-
- thumb_func_start sub_80E715C
-sub_80E715C: @ 80E715C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- bls _080E7176
- b _080E730A
-_080E7176:
- lsls r0, 2
- ldr r1, =_080E7188
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080E7188:
- .4byte _080E71A0
- .4byte _080E7218
- .4byte _080E724C
- .4byte _080E726C
- .4byte _080E72AC
- .4byte _080E72C0
-_080E71A0:
- ldr r4, =gUnknown_0203A018
- ldr r0, =0x00001444
- bl Alloc
- str r0, [r4]
- ldr r4, =gUnknown_0203A014
- ldr r0, =0x00005110
- bl Alloc
- str r0, [r4]
- ldr r0, =gSpecialVar_0x8005
- ldrb r0, [r0]
- bl sub_8009628
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x1
- bl VarSet
- ldr r1, =gUnknown_03001130
- movs r0, 0
- strb r0, [r1]
- bl sub_80E6E24
- bl sub_80FB00C
- movs r0, 0x1
- strh r0, [r5]
- ldr r0, =sub_80E7324
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldr r0, =sub_80E7128
- movs r1, 0x51
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1E]
- b _080E730A
- .pool
-_080E7218:
- ldr r2, =gTasks
- movs r0, 0x14
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080E730A
- movs r0, 0x2
- strh r0, [r5]
- ldr r0, =0x00000894
- bl FlagSet
- bl sub_80FB074
- ldrb r0, [r5, 0x1E]
- bl DestroyTask
- b _080E730A
- .pool
-_080E724C:
- ldr r0, =sub_80E7FF8
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- movs r0, 0x3
- strh r0, [r5]
- movs r0, 0xE0
- bl PlaySE
- b _080E730A
- .pool
-_080E726C:
- ldr r2, =gTasks
- movs r0, 0x14
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r4, [r0, 0x4]
- cmp r4, 0
- bne _080E730A
- movs r0, 0x4
- strh r0, [r5]
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E7296
- bl sub_80B3050
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
-_080E7296:
- ldr r0, =gText_RecordMixingComplete
- bl sub_80E70F4
- strh r4, [r5, 0x10]
- b _080E730A
- .pool
-_080E72AC:
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080E730A
- movs r0, 0x5
- strh r0, [r5]
- b _080E730A
-_080E72C0:
- ldr r2, =gTasks
- movs r0, 0x14
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080E730A
- ldr r0, =gUnknown_0203A014
- ldr r0, [r0]
- bl Free
- ldr r0, =gUnknown_0203A018
- ldr r0, [r0]
- bl Free
- bl sub_808729C
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E72F8
- ldr r0, =sub_80AF2B4
- movs r1, 0xA
- bl CreateTask
-_080E72F8:
- movs r0, 0
- movs r1, 0x1
- bl sub_8197434
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080E730A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E715C
-
- thumb_func_start sub_80E7324
-sub_80E7324: @ 80E7324
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r6, =gTasks
- adds r5, r0, r6
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0x64
- beq _080E73A0
- cmp r1, 0x64
- bgt _080E7362
- cmp r1, 0x1
- bne _080E7346
- b _080E7464
-_080E7346:
- cmp r1, 0x1
- bgt _080E7354
- cmp r1, 0
- beq _080E7384
- b _080E7566
- .pool
-_080E7354:
- cmp r1, 0x2
- bne _080E735A
- b _080E7490
-_080E735A:
- cmp r1, 0x5
- bne _080E7360
- b _080E7550
-_080E7360:
- b _080E7566
-_080E7362:
- cmp r1, 0xC9
- beq _080E73F8
- cmp r1, 0xC9
- bgt _080E7370
- cmp r1, 0x65
- beq _080E73B8
- b _080E7566
-_080E7370:
- ldr r0, =0x0000012d
- cmp r1, r0
- beq _080E7432
- adds r0, 0x63
- cmp r1, r0
- beq _080E744A
- b _080E7566
- .pool
-_080E7384:
- ldr r0, =gText_MixingRecords
- bl sub_80E70F4
- movs r0, 0xE1
- lsls r0, 3
- strh r0, [r5, 0x18]
- movs r0, 0xC8
- lsls r0, 1
- strh r0, [r5, 0x8]
- bl ClearLinkCallback_2
- b _080E7566
- .pool
-_080E73A0:
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bgt _080E73B0
- b _080E7566
-_080E73B0:
- movs r0, 0
- strh r0, [r5, 0x20]
- movs r0, 0x65
- b _080E7564
-_080E73B8:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsLinkMaster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E73EA
- bl sub_800AA48
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _080E73DA
- b _080E7566
-_080E73DA:
- movs r0, 0x15
- bl PlaySE
- movs r1, 0
- movs r0, 0xC9
- strh r0, [r5, 0x8]
- strh r1, [r5, 0x20]
- b _080E7566
-_080E73EA:
- movs r0, 0x16
- bl PlaySE
- ldr r0, =0x0000012d
- b _080E7564
- .pool
-_080E73F8:
- bl sub_800AA48
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080E740C
- b _080E7566
-_080E740C:
- ldrh r4, [r5, 0x20]
- adds r4, 0x1
- strh r4, [r5, 0x20]
- lsls r4, 16
- asrs r4, 16
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- cmp r4, r1
- bgt _080E742A
- b _080E7566
-_080E742A:
- bl sub_800A620
- movs r0, 0x1
- b _080E7564
-_080E7432:
- bl sub_800AA48
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080E7446
- b _080E7566
-_080E7446:
- movs r0, 0x1
- b _080E7564
-_080E744A:
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bgt _080E745A
- b _080E7566
-_080E745A:
- movs r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- strh r0, [r5, 0x20]
- b _080E7566
-_080E7464:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E746E
- b _080E7566
-_080E746E:
- ldr r4, =gStringVar1
- bl sub_80E7810
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0x5
- b _080E7564
- .pool
-_080E7490:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x8]
- bl sub_80E7810
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- ldr r0, =sub_80E756C
- str r0, [r5]
- bl sub_800A064
- cmp r0, 0
- beq _080E7504
- ldr r0, =gUnknown_0203A018
- ldr r0, [r0]
- adds r1, r5, 0
- adds r1, 0xC
- bl sub_80E7808
- ldr r0, =sub_80E7630
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r0, r1, r6
- strh r4, [r0, 0x8]
- ldr r0, =gUnknown_0203A014
- ldr r0, [r0]
- adds r1, r6, r1
- adds r1, 0x12
- bl sub_80E7808
- ldr r1, =gUnknown_0300115C
- ldr r0, =0x00001230
- str r0, [r1]
- b _080E7566
- .pool
-_080E7504:
- ldr r0, =gUnknown_0203A018
- ldr r0, [r0]
- adds r1, r5, 0
- adds r1, 0xC
- bl sub_80E7808
- ldr r0, =sub_80E7630
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r0, r1, r6
- strh r4, [r0, 0x8]
- ldr r0, =gUnknown_0203A014
- ldr r0, [r0]
- adds r1, r6, r1
- adds r1, 0x12
- bl sub_80E7808
- ldr r1, =gUnknown_0300115C
- ldr r0, =0x00001444
- str r0, [r1]
- b _080E7566
- .pool
-_080E7550:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080E7566
- movs r0, 0
- strh r0, [r5, 0x1C]
- movs r0, 0x2
-_080E7564:
- strh r0, [r5, 0x8]
-_080E7566:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E7324
-
- thumb_func_start sub_80E756C
-sub_80E756C: @ 80E756C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r5, r1, r0
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080E7624
- lsls r0, r1, 2
- ldr r1, =_080E7598
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080E7598:
- .4byte _080E75AC
- .4byte _080E75D0
- .4byte _080E7624
- .4byte _080E75E2
- .4byte _080E760E
-_080E75AC:
- adds r0, r5, 0
- adds r0, 0xC
- bl sub_80E77FC
- adds r1, r0, 0
- movs r0, 0x10
- ldrsh r2, [r5, r0]
- movs r0, 0xC8
- muls r0, r2
- adds r1, r0
- ldr r0, =gBlockSendBuffer
- movs r2, 0xC8
- bl memcpy
- b _080E75FC
- .pool
-_080E75D0:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080E75FC
- movs r0, 0x1
- bl sub_800A4D8
- b _080E75FC
-_080E75E2:
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
- movs r1, 0x10
- ldrsh r4, [r5, r1]
- ldr r0, =gUnknown_0300115C
- ldr r0, [r0]
- movs r1, 0xC8
- bl __udivsi3
- adds r0, 0x1
- cmp r4, r0
- bne _080E7608
-_080E75FC:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080E7624
- .pool
-_080E7608:
- movs r0, 0
- strh r0, [r5, 0x8]
- b _080E7624
-_080E760E:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _080E7624
- ldr r0, =sub_80E77D4
- str r0, [r5]
-_080E7624:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E756C
-
- thumb_func_start sub_80E7630
-sub_80E7630: @ 80E7630
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r0, 2
- ldr r1, [sp]
- adds r0, r1
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- mov r10, r0
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- bl sub_800A9D8
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x4]
- cmp r3, r0
- bne _080E773E
- movs r4, 0
- mov r8, r4
- b _080E771C
- .pool
-_080E7678:
- ldr r1, [sp, 0x4]
- mov r0, r8
- asrs r1, r0
- movs r0, 0x1
- ands r1, r0
- movs r2, 0x1
- add r2, r8
- mov r9, r2
- cmp r1, 0
- beq _080E7714
- mov r0, r10
- adds r0, 0x12
- bl sub_80E77FC
- mov r3, r9
- lsls r4, r3, 1
- mov r5, r10
- adds r5, 0x8
- adds r4, r5, r4
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r7, 0xC8
- muls r1, r7
- adds r0, r1
- ldr r3, =gUnknown_0300115C
- ldr r1, [r3]
- mov r2, r8
- muls r2, r1
- adds r1, r2, 0
- adds r6, r0, r1
- mov r0, r8
- bl sub_80E7820
- adds r1, r0, 0
- movs r3, 0
- ldrsh r2, [r4, r3]
- adds r0, r2, 0x1
- muls r0, r7
- ldr r4, =gUnknown_0300115C
- ldr r3, [r4]
- cmp r0, r3
- bls _080E76DC
- muls r2, r7
- subs r2, r3, r2
- adds r0, r6, 0
- bl memcpy
- b _080E76E4
- .pool
-_080E76DC:
- adds r0, r6, 0
- movs r2, 0xC8
- bl memcpy
-_080E76E4:
- mov r0, r8
- bl ResetBlockReceivedFlag
- mov r0, r9
- lsls r1, r0, 1
- adds r1, r5, r1
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r2, 0
- ldrsh r4, [r1, r2]
- ldr r3, =gUnknown_0300115C
- ldr r0, [r3]
- movs r1, 0xC8
- bl __udivsi3
- adds r0, 0x1
- cmp r4, r0
- bne _080E7714
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
-_080E7714:
- mov r4, r9
- lsls r0, r4, 24
- lsrs r0, 24
- mov r8, r0
-_080E771C:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- bcc _080E7678
- ldr r2, =gTasks
- mov r0, r10
- movs r3, 0x8
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
-_080E773E:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- ldr r4, [sp, 0x8]
- cmp r4, r0
- bne _080E7752
- ldr r0, [sp]
- bl DestroyTask
-_080E7752:
- 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_80E7630
-
- thumb_func_start sub_80E776C
-sub_80E776C: @ 80E776C
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r2, =gTasks
- adds r0, r2
- movs r4, 0x1C
- ldrsh r1, [r0, r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080E7794
- adds r0, r3, 0
- bl DestroyTask
-_080E7794:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E776C
-
- thumb_func_start sub_80E77A0
-sub_80E77A0: @ 80E77A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r1, r0
- ldr r0, =sub_80E776C
- str r0, [r1]
- ldr r0, =gUnknown_03001130
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E77C4
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- bl sub_80E6F60
-_080E77C4:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E77A0
-
- thumb_func_start sub_80E77D4
-sub_80E77D4: @ 80E77D4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, =sub_80E77A0
- str r0, [r1]
- ldr r1, =gUnknown_03001130
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_80E77D4
-
- thumb_func_start sub_80E77FC
-sub_80E77FC: @ 80E77FC
- adds r1, r0, 0
- ldrh r0, [r1]
- ldrh r1, [r1, 0x2]
- lsls r1, 16
- orrs r0, r1
- bx lr
- thumb_func_end sub_80E77FC
-
- thumb_func_start sub_80E7808
-sub_80E7808: @ 80E7808
- strh r0, [r1]
- lsrs r0, 16
- strh r0, [r1, 0x2]
- bx lr
- thumb_func_end sub_80E7808
-
- thumb_func_start sub_80E7810
-sub_80E7810: @ 80E7810
- push {lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80E7810
-
- thumb_func_start sub_80E7820
-sub_80E7820: @ 80E7820
- lsls r0, 24
- lsrs r0, 16
- ldr r1, =gBlockRecvBuffer
- adds r0, r1
- bx lr
- .pool
- thumb_func_end sub_80E7820
-
- thumb_func_start sub_80E7830
-sub_80E7830: @ 80E7830
- push {r4,lr}
- adds r4, r0, 0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080E7868
- cmp r0, 0x3
- bhi _080E784A
- cmp r0, 0x2
- beq _080E7850
- b _080E78B8
-_080E784A:
- cmp r0, 0x4
- beq _080E7894
- b _080E78B8
-_080E7850:
- movs r3, 0
- ldr r2, =gUnknown_0858CF8C
- adds r1, r4, 0
-_080E7856:
- adds r0, r3, r2
- ldrb r0, [r0]
- stm r1!, {r0}
- adds r3, 0x1
- cmp r3, 0x1
- bls _080E7856
- b _080E78B8
- .pool
-_080E7868:
- movs r0, 0
- bl GetLinkPlayerTrainerId
- adds r2, r0, 0
- movs r0, 0x1
- ands r2, r0
- movs r3, 0
- ldr r1, =gUnknown_0858CF8E
- lsls r0, r2, 1
- adds r0, r2
- adds r1, r0, r1
- adds r2, r4, 0
-_080E7880:
- ldrb r0, [r1]
- stm r2!, {r0}
- adds r1, 0x1
- adds r3, 0x1
- cmp r3, 0x2
- bls _080E7880
- b _080E78B8
- .pool
-_080E7894:
- movs r0, 0
- bl GetLinkPlayerTrainerId
- movs r1, 0x9
- bl __umodsi3
- adds r2, r0, 0
- movs r3, 0
- ldr r1, =gUnknown_0858CF94
- lsls r0, r2, 2
- adds r1, r0, r1
- adds r2, r4, 0
-_080E78AC:
- ldrb r0, [r1]
- stm r2!, {r0}
- adds r1, 0x1
- adds r3, 0x1
- cmp r3, 0x3
- bls _080E78AC
-_080E78B8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E7830
-
- thumb_func_start sub_80E78C4
-sub_80E78C4: @ 80E78C4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- mov r9, r0
- mov r8, r1
- lsls r2, 24
- lsrs r7, r2, 24
- mov r0, sp
- bl sub_80E7830
- lsls r0, r7, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- muls r0, r1
- mov r2, r9
- adds r6, r2, r0
- ldr r2, =gLinkPlayers
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0]
- ldrh r5, [r0, 0x1A]
- bl sub_800A064
- cmp r0, 0
- beq _080E7910
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8120D34
- b _080E791A
- .pool
-_080E7910:
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8120CD0
-_080E791A:
- ldr r0, =gUnknown_03001140
- ldr r0, [r0]
- lsls r1, r7, 2
- add r1, sp
- ldr r1, [r1]
- mov r2, r8
- muls r2, r1
- adds r1, r2, 0
- add r1, r9
- movs r2, 0x40
- bl memcpy
- bl ResetMauvilleOldManFlag
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E78C4
-
- thumb_func_start sub_80E7948
-sub_80E7948: @ 80E7948
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- mov r8, r0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- mov r0, sp
- bl sub_80E7830
- bl sub_800A064
- cmp r0, 0
- beq _080E79AC
- lsls r0, r6, 2
- mov r1, sp
- adds r5, r1, r0
- ldr r0, [r5]
- muls r0, r7
- add r0, r8
- adds r4, r7, 0
- muls r4, r6
- mov r1, r8
- adds r6, r1, r4
- adds r1, r6, 0
- bl sub_816587C
- mov r9, r4
- cmp r0, 0x1
- bne _080E79FE
- adds r7, r6, 0
- ldr r2, =gLinkPlayers
- ldr r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x1A]
- adds r0, r7, 0
- adds r0, 0xE4
- strb r1, [r0]
- adds r0, r7, 0
- bl sub_8164F70
- b _080E79FE
- .pool
-_080E79AC:
- adds r5, r7, 0
- muls r5, r6
- mov r0, r8
- adds r4, r0, r5
- lsls r0, r6, 2
- add r0, sp
- ldr r0, [r0]
- adds r1, r7, 0
- muls r1, r0
- add r1, r8
- adds r0, r4, 0
- movs r2, 0xEC
- bl memcpy
- adds r7, r4, 0
- movs r6, 0
- mov r9, r5
-_080E79CE:
- movs r0, 0x2C
- muls r0, r6
- adds r0, 0x34
- adds r1, r7, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _080E79F2
- adds r4, r1, 0
- adds r4, 0x20
- adds r0, r4, 0
- bl IsStringJapanese
- cmp r0, 0
- beq _080E79F2
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
-_080E79F2:
- adds r6, 0x1
- cmp r6, 0x3
- ble _080E79CE
- adds r0, r7, 0
- bl sub_8164F70
-_080E79FE:
- mov r0, r8
- add r0, r9
- bl sub_81628A0
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E7948
-
- thumb_func_start sub_80E7A14
-sub_80E7A14: @ 80E7A14
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- mov r8, r0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r5, r2, 24
- mov r0, sp
- bl sub_80E7830
- adds r0, r7, 0
- muls r0, r5
- add r0, r8
- ldr r6, =gUnknown_03001150
- ldr r1, [r6]
- movs r2, 0x40
- bl memcpy
- bl GetLilycoveLadyId
- lsls r0, 24
- cmp r0, 0
- bne _080E7A60
- movs r0, 0x40
- bl Alloc
- adds r4, r0, 0
- cmp r4, 0
- beq _080E7A8A
- ldr r1, [r6]
- movs r2, 0x40
- bl memcpy
- b _080E7A62
- .pool
-_080E7A60:
- movs r4, 0
-_080E7A62:
- ldr r0, =gUnknown_03001150
- ldr r0, [r0]
- lsls r1, r5, 2
- add r1, sp
- ldr r1, [r1]
- muls r1, r7
- add r1, r8
- movs r2, 0x40
- bl memcpy
- bl sub_818DA78
- cmp r4, 0
- beq _080E7A8A
- adds r0, r4, 0
- bl sub_818E570
- adds r0, r4, 0
- bl Free
-_080E7A8A:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E7A14
-
- thumb_func_start sub_80E7A9C
-sub_80E7A9C: @ 80E7A9C
- ldrh r0, [r0, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- thumb_func_end sub_80E7A9C
-
- thumb_func_start sub_80E7AA4
-sub_80E7AA4: @ 80E7AA4
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x38
- mov r8, r0
- mov r10, r1
- mov r9, r2
- adds r4, r3, 0
- ldr r5, [sp, 0x54]
- lsls r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsrs r4, 23
- add r4, r9
- ldrb r0, [r4]
- mov r6, r10
- muls r6, r0
- add r6, r8
- ldrb r0, [r4, 0x1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- adds r1, r6, r1
- mov r0, sp
- movs r2, 0x38
- bl memcpy
- lsls r5, 1
- add r5, r9
- ldrb r0, [r5]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r8, r0
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 3
- adds r6, r0
- ldrb r0, [r5, 0x1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- add r1, r8
- adds r0, r6, 0
- movs r2, 0x38
- bl memcpy
- ldrb r1, [r5, 0x1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 3
- add r8, r0
- mov r0, r8
- mov r1, sp
- movs r2, 0x38
- bl memcpy
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E7AA4
-
- thumb_func_start sub_80E7B2C
-sub_80E7B2C: @ 80E7B2C
- push {r4,lr}
- adds r3, r0, 0
- movs r2, 0
- movs r1, 0
- ldr r4, =gUnknown_03001160
-_080E7B36:
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r0, r2, r0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, 0x1
- cmp r1, 0xFF
- ble _080E7B36
- strb r2, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E7B2C
-
- thumb_func_start sub_80E7B54
-sub_80E7B54: @ 80E7B54
- ldr r0, =gUnknown_03001160
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_80E7B54
-
- thumb_func_start sub_80E7B60
-sub_80E7B60: @ 80E7B60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x58
- str r0, [sp, 0x2C]
- str r1, [sp, 0x30]
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x38]
- ldr r0, =gLinkPlayers
- ldrh r0, [r0, 0x4]
- bl SeedRng2
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- mov r8, r0
- mov r1, sp
- adds r1, 0x1C
- str r1, [sp, 0x4C]
- mov r2, sp
- adds r2, 0x1D
- str r2, [sp, 0x50]
- mov r3, sp
- adds r3, 0xC
- str r3, [sp, 0x48]
- movs r7, 0xFF
- add r3, sp, 0x8
- movs r2, 0
- adds r6, r1, 0
- ldr r5, [sp, 0x50]
-_080E7BB0:
- mov r1, sp
- add r1, r8
- adds r1, 0x4
- ldrb r0, [r1]
- orrs r0, r7
- strb r0, [r1]
- mov r1, r8
- adds r0, r3, r1
- strb r2, [r0]
- lsls r1, 1
- adds r0, r6, r1
- strb r2, [r0]
- adds r1, r5, r1
- strb r2, [r1]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0x3
- bls _080E7BB0
- bl sub_800A064
- str r0, [sp, 0x3C]
- movs r2, 0
- mov r8, r2
- lsls r4, 16
- str r4, [sp, 0x54]
- ldr r0, [sp, 0x30]
- mov r3, r9
- muls r3, r0
- str r3, [sp, 0x44]
- b _080E7D04
- .pool
-_080E7BF8:
- ldr r1, [sp, 0x30]
- mov r0, r8
- muls r0, r1
- ldr r2, [sp, 0x2C]
- adds r7, r2, r0
- ldr r1, =gLinkPlayers
- mov r3, r8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x1A]
- mov r9, r1
- ldrb r0, [r0]
- str r0, [sp, 0x40]
- movs r6, 0
- ldr r0, [r7, 0x70]
- cmp r6, r0
- bcs _080E7CFA
- movs r2, 0x10
- negs r2, r2
- mov r10, r2
-_080E7C24:
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 3
- adds r5, r7, r0
- ldrh r0, [r5, 0x20]
- cmp r0, 0
- beq _080E7CEE
- ldr r3, [sp, 0x3C]
- cmp r3, 0
- beq _080E7C9A
- adds r4, r5, 0
- adds r4, 0x24
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _080E7C54
- movs r4, 0x1
- b _080E7C5C
- .pool
-_080E7C54:
- adds r0, r4, 0
- bl StripExtCtrlCodes
- mov r4, r9
-_080E7C5C:
- ldrh r1, [r5, 0x2C]
- ldr r0, =0x000015fc
- cmp r1, r0
- bne _080E7C74
- adds r0, r5, 0
- adds r0, 0x2C
- bl StripExtCtrlCodes
- movs r1, 0x1
- b _080E7C76
- .pool
-_080E7C74:
- mov r1, r9
-_080E7C76:
- ldr r0, [sp, 0x40]
- subs r0, 0x1
- cmp r0, 0x1
- bhi _080E7CEE
- adds r2, r5, 0
- adds r2, 0x37
- movs r0, 0xF
- ands r4, r0
- ldrb r0, [r2]
- mov r3, r10
- ands r0, r3
- orrs r0, r4
- lsls r1, 4
- movs r3, 0xF
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- b _080E7CEE
-_080E7C9A:
- mov r0, r9
- cmp r0, 0x1
- bne _080E7CEE
- adds r0, r5, 0
- adds r0, 0x24
- bl IsStringJapanese
- cmp r0, 0
- beq _080E7CBA
- adds r0, r5, 0
- adds r0, 0x37
- ldrb r1, [r0]
- mov r2, r10
- ands r1, r2
- movs r2, 0x1
- b _080E7CC6
-_080E7CBA:
- adds r0, r5, 0
- adds r0, 0x37
- ldrb r1, [r0]
- mov r3, r10
- ands r1, r3
- movs r2, 0x2
-_080E7CC6:
- orrs r1, r2
- strb r1, [r0]
- adds r4, r0, 0
- adds r0, r5, 0
- adds r0, 0x2C
- bl IsStringJapanese
- cmp r0, 0
- beq _080E7CE2
- ldrb r0, [r4]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x10
- b _080E7CEA
-_080E7CE2:
- ldrb r0, [r4]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x20
-_080E7CEA:
- orrs r1, r0
- strb r1, [r4]
-_080E7CEE:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, [r7, 0x70]
- cmp r6, r0
- bcc _080E7C24
-_080E7CFA:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_080E7D04:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- bcs _080E7D12
- b _080E7BF8
-_080E7D12:
- movs r0, 0
- str r0, [sp, 0x34]
- mov r8, r0
- ldr r1, [sp, 0x54]
- lsrs r0, r1, 16
- ldr r2, [sp, 0x34]
- cmp r2, r0
- bcs _080E7D70
- adds r5, r0, 0
-_080E7D24:
- ldr r3, [sp, 0x30]
- mov r0, r8
- muls r0, r3
- ldr r1, [sp, 0x2C]
- adds r7, r1, r0
- ldr r0, [r7, 0x70]
- cmp r0, 0
- beq _080E7D62
- movs r6, 0
- cmp r6, r0
- bcs _080E7D62
- adds r3, r7, 0
- adds r3, 0x74
- ldr r2, [sp, 0x4C]
- mov r0, r8
- lsls r1, r0, 1
- movs r4, 0x1
-_080E7D46:
- lsls r0, r6, 1
- adds r0, r3, r0
- ldrh r0, [r0]
- cmp r0, 0
- bne _080E7D56
- adds r0, r6, r1
- adds r0, r2, r0
- strb r4, [r0]
-_080E7D56:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, [r7, 0x70]
- cmp r6, r0
- bcc _080E7D46
-_080E7D62:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r8, r5
- bcc _080E7D24
-_080E7D70:
- movs r6, 0
- mov r8, r6
- ldr r1, [sp, 0x54]
- cmp r1, 0
- beq _080E7E64
- add r2, sp, 0x24
- mov r10, r2
- movs r3, 0x25
- add r3, sp
- mov r9, r3
-_080E7D84:
- ldr r1, [sp, 0x30]
- mov r0, r8
- muls r0, r1
- ldr r2, [sp, 0x2C]
- adds r7, r2, r0
- mov r3, r8
- lsls r1, r3, 1
- ldr r2, [sp, 0x4C]
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080E7DA6
- ldr r3, [sp, 0x50]
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E7DB0
-_080E7DA6:
- ldr r0, [sp, 0x34]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x34]
-_080E7DB0:
- ldr r2, [sp, 0x4C]
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E7DD4
- ldr r3, [sp, 0x50]
- adds r0, r3, r1
- ldrb r2, [r0]
- cmp r2, 0
- bne _080E7DD4
-_080E7DC4:
- lsls r1, r6, 1
- mov r3, r10
- adds r0, r3, r1
- mov r3, r8
- strb r3, [r0]
- add r1, r9
- strb r2, [r1]
- b _080E7E4E
-_080E7DD4:
- ldr r2, [sp, 0x4C]
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E7DE8
- ldr r3, [sp, 0x50]
- adds r0, r3, r1
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _080E7DC4
-_080E7DE8:
- ldr r2, [sp, 0x4C]
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E7E54
- ldr r3, [sp, 0x50]
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E7E54
- lsls r5, r6, 1
- mov r1, r10
- adds r0, r1, r5
- mov r2, r8
- strb r2, [r0]
- adds r0, r7, 0
- bl sub_80E7A9C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- adds r0, 0x38
- bl sub_80E7A9C
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r4, 0
- bne _080E7E30
- cmp r1, 0
- beq _080E7E34
- mov r3, r9
- adds r1, r3, r5
- movs r0, 0x1
- strb r0, [r1]
- b _080E7E4E
-_080E7E30:
- cmp r1, 0
- beq _080E7E48
-_080E7E34:
- bl Random2
- mov r1, r9
- adds r2, r1, r5
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- strb r0, [r2]
- b _080E7E4E
-_080E7E48:
- mov r2, r9
- adds r0, r2, r5
- strb r1, [r0]
-_080E7E4E:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080E7E54:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- mov r8, r3
- ldr r1, [sp, 0x54]
- cmp r0, r1
- bcc _080E7D84
-_080E7E64:
- movs r2, 0
- mov r8, r2
- ldr r3, [sp, 0x44]
- lsls r0, r3, 4
- subs r0, r3
- lsls r0, 3
- ldr r1, [sp, 0x2C]
- adds r7, r1, r0
- ldr r1, [sp, 0x48]
-_080E7E76:
- mov r2, r8
- lsls r0, r2, 2
- adds r0, r1, r0
- str r7, [r0]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0x3
- bls _080E7E76
- bl sub_80E7B54
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, [sp, 0x34]
- cmp r3, 0x3
- beq _080E7EC8
- cmp r3, 0x3
- bgt _080E7EAE
- cmp r3, 0x2
- beq _080E7EB6
- b _080E7F1C
-_080E7EAE:
- ldr r0, [sp, 0x34]
- cmp r0, 0x4
- beq _080E7EE8
- b _080E7F1C
-_080E7EB6:
- add r2, sp, 0x24
- movs r0, 0x1
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- movs r3, 0
- bl sub_80E7AA4
- b _080E7F1C
-_080E7EC8:
- ldr r0, =gUnknown_0858CFB8
- lsls r1, 1
- adds r2, r1, r0
- ldrb r3, [r2]
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- add r2, sp, 0x24
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- bl sub_80E7AA4
- b _080E7F1C
- .pool
-_080E7EE8:
- add r6, sp, 0x24
- ldr r4, =gUnknown_0858CFBE
- lsls r5, r1, 2
- adds r0, r5, r4
- ldrb r3, [r0]
- adds r0, r4, 0x1
- adds r0, r5, r0
- ldrb r0, [r0]
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- adds r2, r6, 0
- bl sub_80E7AA4
- adds r0, r4, 0x2
- adds r0, r5, r0
- ldrb r3, [r0]
- adds r4, 0x3
- adds r5, r4
- ldrb r0, [r5]
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- adds r2, r6, 0
- bl sub_80E7AA4
-_080E7F1C:
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x44]
- adds r7, r1, r2
- ldr r4, =gSaveBlock1Ptr
- ldr r0, [r4]
- movs r3, 0xC2
- lsls r3, 6
- adds r0, r3
- adds r1, r7, 0
- movs r2, 0x38
- bl memcpy
- ldr r0, [r4]
- ldr r1, =0x0000310c
- adds r0, r1
- adds r1, r7, 0
- adds r1, 0x38
- movs r2, 0x38
- bl memcpy
- ldr r0, [sp, 0x38]
- bl SeedRng
- add sp, 0x58
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E7B60
-
- thumb_func_start sub_80E7F68
-sub_80E7F68: @ 80E7F68
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- cmp r1, 0
- beq _080E7FEC
- ldrh r0, [r4]
- cmp r0, 0
- beq _080E7FEC
- bl GetPocketByItemId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _080E7FEC
- ldrh r0, [r4]
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- cmp r0, 0
- bne _080E7FE4
- ldrh r0, [r4]
- movs r1, 0x1
- bl CheckPCHasItem
- lsls r0, 24
- cmp r0, 0
- bne _080E7FE4
- ldrh r0, [r4]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- cmp r0, 0
- beq _080E7FE4
- ldr r0, =0x00004001
- ldrh r1, [r4]
- bl VarSet
- ldr r0, =gStringVar1
- ldr r1, =gLinkPlayers + 8
- bl StringCopy
- ldrh r1, [r4]
- ldr r0, =0x00000113
- cmp r1, r0
- bne _080E7FEC
- ldr r0, =0x000008b3
- bl FlagSet
- b _080E7FEC
- .pool
-_080E7FE4:
- ldr r0, =0x00004001
- movs r1, 0
- bl VarSet
-_080E7FEC:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E7F68
-
- thumb_func_start sub_80E7FF8
-sub_80E7FF8: @ 80E7FF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- bls _080E8012
- b _080E810A
-_080E8012:
- lsls r0, 2
- ldr r1, =_080E8024
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080E8024:
- .4byte _080E80F2
- .4byte _080E804C
- .4byte _080E805A
- .4byte _080E8064
- .4byte _080E807C
- .4byte _080E8090
- .4byte _080E80A4
- .4byte _080E80C0
- .4byte _080E80EE
- .4byte _080E80FA
-_080E804C:
- bl sub_800A064
- cmp r0, 0
- bne _080E80F2
- movs r0, 0x6
- strh r0, [r4, 0x8]
- b _080E810A
-_080E805A:
- bl sub_8076D5C
- bl sub_8153430
- b _080E80F2
-_080E8064:
- bl sub_8153474
- lsls r0, 24
- cmp r0, 0
- beq _080E810A
- bl sav2_gender2_inplace_and_xFE
- movs r1, 0
- movs r0, 0x4
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- b _080E810A
-_080E807C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080E810A
- bl sub_800AC34
- b _080E80F2
-_080E8090:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E810A
- adds r0, r5, 0
- bl DestroyTask
- b _080E810A
- .pool
-_080E80A4:
- movs r0, 0
- bl sub_801048C
- lsls r0, 24
- cmp r0, 0
- bne _080E810A
- ldr r0, =sub_8153688
- movs r1, 0x5
- bl CreateTask
- b _080E80F2
- .pool
-_080E80C0:
- ldr r0, =sub_8153688
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _080E810A
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E80E8
- movs r0, 0x1
- bl sub_801048C
- movs r0, 0x8
- strh r0, [r4, 0x8]
- b _080E810A
- .pool
-_080E80E8:
- movs r0, 0x4
- strh r0, [r4, 0x8]
- b _080E810A
-_080E80EE:
- bl sub_800ADF8
-_080E80F2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E810A
-_080E80FA:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _080E810A
- adds r0, r5, 0
- bl DestroyTask
-_080E810A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E7FF8
-
- thumb_func_start sub_80E8110
-sub_80E8110: @ 80E8110
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- str r0, [sp]
- mov r10, r1
- adds r1, r0, 0
- adds r1, 0x38
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, [sp]
- adds r1, 0x7C
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- ldr r0, [sp]
- mov r1, r10
- movs r2, 0x44
- bl memcpy
- movs r0, 0
- str r0, [sp, 0x8]
- movs r1, 0
- str r1, [sp, 0xC]
- movs r2, 0
- str r2, [sp, 0x4]
- mov r8, r2
- movs r7, 0
- ldr r0, =gSaveBlock2Ptr
- mov r9, r0
-_080E8150:
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0xB2
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 30
- adds r0, r7, r0
- movs r1, 0x3
- bl __modsi3
- adds r6, r0, 0x1
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- mov r2, r10
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x38
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080E81B8
- adds r5, r1, 0
- adds r5, 0x34
- adds r0, r5, 0
- bl ReadUnalignedWord
- adds r4, r0, 0
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0xA
- bl ReadUnalignedWord
- cmp r4, r0
- beq _080E819A
- movs r2, 0x1
- add r8, r2
- str r6, [sp, 0x4]
-_080E819A:
- adds r0, r5, 0
- bl ReadUnalignedWord
- adds r4, r0, 0
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0xA
- bl ReadUnalignedWord
- cmp r4, r0
- bne _080E81B8
- ldr r2, [sp, 0xC]
- adds r2, 0x1
- str r2, [sp, 0xC]
- str r6, [sp, 0x8]
-_080E81B8:
- adds r7, 0x1
- cmp r7, 0x1
- ble _080E8150
- mov r0, r8
- cmp r0, 0
- bne _080E81D0
- ldr r1, [sp, 0xC]
- cmp r1, 0
- beq _080E81D0
- mov r8, r1
- ldr r2, [sp, 0x8]
- str r2, [sp, 0x4]
-_080E81D0:
- mov r0, r8
- cmp r0, 0x1
- beq _080E81E0
- cmp r0, 0x2
- beq _080E81EC
- b _080E824C
- .pool
-_080E81E0:
- ldr r2, [sp, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r10
- b _080E820E
-_080E81EC:
- bl Random2
- lsls r0, 16
- ldr r1, =0x33330000
- cmp r0, r1
- bls _080E8224
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB2
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 30
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r10
- adds r1, 0x44
-_080E820E:
- ldr r0, [sp]
- adds r0, 0x44
- movs r2, 0x44
- bl memcpy
- b _080E824C
- .pool
-_080E8224:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB2
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 30
- adds r0, 0x1
- movs r1, 0x3
- bl __modsi3
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r10
- adds r1, 0x44
- ldr r0, [sp]
- adds r0, 0x44
- movs r2, 0x44
- bl memcpy
-_080E824C:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E8110
-
- thumb_func_start sub_80E8260
-sub_80E8260: @ 80E8260
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r8, r0
- movs r6, 0
- ldr r0, =gSaveBlock2Ptr
- mov r10, r0
-_080E8274:
- movs r7, 0
- lsls r0, r6, 5
- adds r6, 0x1
- mov r9, r6
- mov r1, r8
- adds r4, r0, r1
- adds r0, 0x6
- adds r6, r1, r0
- adds r5, r4, 0
-_080E8286:
- mov r2, r10
- ldr r1, [r2]
- adds r1, 0xA
- adds r0, r5, 0
- bl CopyUnalignedWord
- movs r0, 0x2
- strb r0, [r4, 0xE]
- mov r0, r10
- ldr r1, [r0]
- adds r0, r6, 0
- bl StringCopy
- adds r4, 0x10
- adds r6, 0x10
- adds r5, 0x10
- adds r7, 0x1
- cmp r7, 0x1
- ble _080E8286
- mov r6, r9
- cmp r6, 0x8
- ble _080E8274
- ldr r1, =gSaveBlock2Ptr
- mov r10, r1
- ldr r2, =0x00000ee1
- str r2, [sp, 0x4]
- movs r4, 0x99
- lsls r4, 1
- add r4, r8
- movs r0, 0x95
- lsls r0, 1
- add r0, r8
- mov r9, r0
- ldr r1, =0x00000ef1
- str r1, [sp, 0x8]
- movs r6, 0x92
- lsls r6, 1
- add r6, r8
- movs r5, 0x90
- lsls r5, 1
- add r5, r8
- movs r7, 0x1
-_080E82DA:
- movs r0, 0x2
- strb r0, [r4, 0x8]
- mov r2, r10
- ldr r1, [r2]
- adds r1, 0xA
- adds r0, r5, 0
- bl CopyUnalignedWord
- mov r0, r10
- ldr r1, [r0]
- ldr r2, [sp, 0x8]
- adds r1, r2
- adds r0, r6, 0
- bl CopyUnalignedWord
- mov r0, r10
- ldr r1, [r0]
- mov r0, r9
- bl StringCopy
- mov r2, r10
- ldr r1, [r2]
- ldr r0, [sp, 0x4]
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, [sp, 0x4]
- adds r1, 0x8
- str r1, [sp, 0x4]
- adds r4, 0x1C
- movs r2, 0x1C
- add r9, r2
- ldr r0, [sp, 0x8]
- adds r0, 0x4
- str r0, [sp, 0x8]
- adds r6, 0x1C
- adds r5, 0x1C
- subs r7, 0x1
- cmp r7, 0
- bge _080E82DA
- movs r6, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- mov r4, r8
- movs r1, 0xC4
- adds r1, r4
- mov r9, r1
- movs r2, 0x84
- adds r2, r4
- mov r8, r2
- movs r0, 0x44
- adds r0, r4
- mov r12, r0
- adds r7, r4, 0x4
- movs r1, 0xCF
- lsls r1, 4
- adds r1, r3, r1
- str r1, [sp]
- mov r10, r4
- ldr r2, =0x00000cf4
- adds r5, r3, r2
-_080E8356:
- lsls r2, r6, 1
- ldr r1, [sp]
- ldrh r0, [r1]
- strh r0, [r7]
- ldrh r0, [r5]
- strh r0, [r7, 0x20]
- ldrh r0, [r5, 0x4]
- mov r1, r12
- strh r0, [r1]
- ldr r1, =0x00000d14
- adds r0, r3, r1
- adds r0, r2
- ldrh r0, [r0]
- mov r1, r12
- strh r0, [r1, 0x20]
- movs r1, 0xDD
- lsls r1, 4
- adds r0, r3, r1
- adds r0, r2
- ldrh r0, [r0]
- mov r1, r8
- strh r0, [r1]
- ldr r1, =0x00000dde
- adds r0, r3, r1
- adds r0, r2
- ldrh r0, [r0]
- mov r1, r8
- strh r0, [r1, 0x20]
- ldr r1, =0x00000dea
- adds r0, r3, r1
- adds r0, r2
- ldrh r0, [r0]
- mov r1, r9
- strh r0, [r1]
- ldr r1, =0x00000e08
- adds r0, r3, r1
- adds r0, r2
- ldrh r0, [r0]
- mov r1, r9
- strh r0, [r1, 0x20]
- ldr r1, =0x00000e1e
- adds r0, r3, r1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x82
- lsls r0, 1
- add r0, r10
- strh r1, [r0]
- ldr r1, =0x00000cfc
- adds r0, r3, r1
- adds r0, r2
- ldrh r1, [r0]
- movs r2, 0x94
- lsls r2, 1
- adds r0, r4, r2
- strh r1, [r0]
- adds r4, 0x1C
- movs r0, 0x10
- add r9, r0
- add r8, r0
- add r12, r0
- adds r7, 0x10
- ldr r1, [sp]
- adds r1, 0x2
- str r1, [sp]
- add r10, r0
- adds r5, 0x2
- adds r6, 0x1
- cmp r6, 0x1
- ble _080E8356
- 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_80E8260
-
- thumb_func_start sub_80E841C
-sub_80E841C: @ 80E841C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r0, 0
- mov r8, r0
- adds r6, r1, 0
- adds r6, 0x34
- adds r5, r1, 0
-_080E842E:
- adds r0, r7, 0
- adds r0, 0x34
- bl ReadUnalignedWord
- adds r4, r0, 0
- adds r0, r6, 0
- bl ReadUnalignedWord
- cmp r4, r0
- bne _080E844E
- ldrb r0, [r7, 0x2]
- ldrb r1, [r5, 0x2]
- cmp r0, r1
- bne _080E844E
- movs r0, 0x1
- b _080E845E
-_080E844E:
- adds r6, 0x44
- adds r5, 0x44
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x3
- ble _080E842E
- movs r0, 0
-_080E845E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E841C
-
- thumb_func_start sub_80E8468
-sub_80E8468: @ 80E8468
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- mov r0, sp
- bl sub_80E7830
- lsls r4, 2
- mov r1, sp
- adds r0, r1, r4
- ldr r0, [r0]
- muls r0, r5
- adds r3, r6, r0
- movs r7, 0
- movs r2, 0
- mov r8, r2
- movs r5, 0
- adds r6, r3, 0
- adds r6, 0x38
- adds r4, r3, 0
-_080E8496:
- ldrb r0, [r6]
- cmp r0, 0xFF
- beq _080E84B4
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r1, 0xDC
- adds r0, r4, 0
- str r3, [sp, 0x10]
- bl sub_80E841C
- ldr r3, [sp, 0x10]
- cmp r0, 0
- bne _080E84B4
- adds r7, 0x1
- mov r8, r5
-_080E84B4:
- adds r6, 0x44
- adds r4, 0x44
- adds r5, 0x1
- cmp r5, 0x1
- ble _080E8496
- cmp r7, 0x1
- beq _080E84CC
- cmp r7, 0x2
- beq _080E8508
- b _080E8566
- .pool
-_080E84CC:
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xB2
- ldrb r1, [r1]
- lsls r1, 27
- lsrs r1, 30
- adds r2, r1, 0x1
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r0, r1
- adds r0, 0xDC
- mov r2, r8
- lsls r1, r2, 4
- add r1, r8
- lsls r1, 2
- adds r1, r3
- movs r2, 0x44
- bl memcpy
- ldr r4, [r4]
- adds r4, 0xB2
- ldrb r5, [r4]
- lsls r0, r5, 27
- lsrs r0, 30
- adds r0, 0x1
- b _080E8550
- .pool
-_080E8508:
- movs r5, 0
- adds r6, r3, 0
-_080E850C:
- movs r0, 0x1
- eors r0, r5
- ldr r7, =gSaveBlock2Ptr
- ldr r4, [r7]
- adds r1, r4, 0
- adds r1, 0xB2
- ldrb r1, [r1]
- lsls r1, 27
- lsrs r1, 30
- adds r0, r1
- movs r1, 0x3
- bl __modsi3
- adds r2, r0, 0x1
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0
- adds r4, 0xDC
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0x44
- bl memcpy
- adds r6, 0x44
- adds r5, 0x1
- cmp r5, 0x1
- ble _080E850C
- ldr r4, [r7]
- adds r4, 0xB2
- ldrb r5, [r4]
- lsls r0, r5, 27
- lsrs r0, 30
- adds r0, 0x2
-_080E8550:
- movs r1, 0x3
- bl __modsi3
- movs r1, 0x3
- ands r0, r1
- lsls r0, 3
- movs r1, 0x19
- negs r1, r1
- ands r1, r5
- orrs r1, r0
- strb r1, [r4]
-_080E8566:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E8468
-
- thumb_func_start sub_80E8578
-sub_80E8578: @ 80E8578
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x54
- str r0, [sp]
- ldr r0, [sp, 0x74]
- movs r4, 0
- mov r8, r4
- movs r5, 0
- str r5, [sp, 0x4]
- ldr r4, =gUnknown_03001168
- b _080E85A0
- .pool
-_080E8598:
- adds r1, r2
- ldr r6, [sp, 0x4]
- adds r6, 0x1
- str r6, [sp, 0x4]
-_080E85A0:
- ldr r5, [sp, 0x4]
- cmp r5, r0
- bge _080E85B6
- cmp r5, r3
- beq _080E85B0
- stm r4!, {r1}
- movs r6, 0x1
- add r8, r6
-_080E85B0:
- mov r5, r8
- cmp r5, 0x3
- bne _080E8598
-_080E85B6:
- movs r6, 0
- str r6, [sp, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x24]
-_080E85BE:
- movs r0, 0
- str r0, [sp, 0x8]
- ldr r1, [sp, 0x4]
- adds r1, 0x1
- str r1, [sp, 0x28]
- ldr r2, [sp, 0x4]
- lsls r2, 1
- str r2, [sp, 0x34]
- ldr r3, [sp, 0x4]
- adds r3, r2, r3
- str r3, [sp, 0x10]
- movs r4, 0
- str r4, [sp, 0x44]
- movs r5, 0
- str r5, [sp, 0x48]
-_080E85DC:
- movs r6, 0
- mov r8, r6
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, [sp, 0x10]
- lsls r0, r2, 5
- ldr r3, [sp, 0x48]
- adds r0, r3, r0
- adds r3, r0, r1
- lsls r0, r2, 6
- ldr r4, [sp, 0x44]
- adds r0, r4, r0
- ldr r5, [sp]
- adds r2, r0, r5
-_080E85F8:
- adds r0, r2, 0
- movs r6, 0x87
- lsls r6, 2
- adds r1, r3, r6
- ldm r1!, {r4-r6}
- stm r0!, {r4-r6}
- ldr r1, [r1]
- str r1, [r0]
- adds r3, 0x10
- adds r2, 0x10
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x2
- ble _080E85F8
- movs r2, 0
- mov r8, r2
- ldr r3, [sp, 0x24]
- cmp r8, r3
- bge _080E86DC
- ldr r4, [sp, 0x4]
- lsls r4, 5
- mov r9, r4
- ldr r5, [sp, 0x8]
- lsls r7, r5, 4
- ldr r6, [sp, 0x34]
- ldr r1, [sp, 0x4]
- adds r0, r6, r1
- lsls r0, 6
- str r0, [sp, 0x14]
- ldr r2, [sp]
- adds r0, r2, r0
- ldr r3, [sp, 0x44]
- str r3, [sp, 0x18]
- adds r0, r3
- str r0, [sp, 0x1C]
- ldr r4, [sp, 0x14]
- adds r0, r3, r4
- adds r0, r2
- adds r0, 0x30
- mov r10, r0
-_080E864A:
- movs r5, 0
- str r5, [sp, 0xC]
- movs r3, 0
- mov r6, r8
- lsls r6, 2
- str r6, [sp, 0x38]
- ldr r1, [sp, 0x18]
- ldr r2, [sp, 0x14]
- adds r0, r1, r2
- ldr r4, [sp]
- adds r5, r0, r4
- ldr r0, =gUnknown_03001168
- adds r0, r6, r0
- str r0, [sp, 0x50]
-_080E8666:
- lsls r0, r3, 4
- ldr r6, [sp, 0x1C]
- adds r0, r6, r0
- str r3, [sp, 0x4C]
- bl ReadUnalignedWord
- adds r4, r0, 0
- ldr r1, [sp, 0x50]
- ldr r0, [r1]
- add r0, r9
- adds r0, r7
- bl ReadUnalignedWord
- ldr r3, [sp, 0x4C]
- cmp r4, r0
- bne _080E86A8
- ldr r2, [sp, 0xC]
- adds r2, 0x1
- str r2, [sp, 0xC]
- ldr r4, [sp, 0x50]
- ldr r0, [r4]
- mov r6, r9
- adds r1, r7, r6
- adds r1, r0, r1
- ldrh r0, [r5, 0x4]
- ldrh r2, [r1, 0x4]
- cmp r0, r2
- bcs _080E86A8
- adds r0, r5, 0
- ldm r1!, {r2,r4,r6}
- stm r0!, {r2,r4,r6}
- ldr r1, [r1]
- str r1, [r0]
-_080E86A8:
- adds r5, 0x10
- adds r3, 0x1
- cmp r3, 0x2
- ble _080E8666
- ldr r3, [sp, 0xC]
- cmp r3, 0
- bne _080E86CE
- ldr r0, =gUnknown_03001168
- ldr r4, [sp, 0x38]
- adds r0, r4, r0
- ldr r0, [r0]
- mov r5, r9
- adds r2, r7, r5
- mov r1, r10
- adds r0, r2
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldr r0, [r0]
- str r0, [r1]
-_080E86CE:
- movs r4, 0x10
- add r10, r4
- movs r5, 0x1
- add r8, r5
- ldr r6, [sp, 0x24]
- cmp r8, r6
- blt _080E864A
-_080E86DC:
- ldr r0, [sp, 0x44]
- adds r0, 0x60
- str r0, [sp, 0x44]
- ldr r1, [sp, 0x48]
- adds r1, 0x30
- str r1, [sp, 0x48]
- ldr r2, [sp, 0x8]
- adds r2, 0x1
- str r2, [sp, 0x8]
- cmp r2, 0x1
- bgt _080E86F4
- b _080E85DC
-_080E86F4:
- ldr r3, [sp, 0x28]
- str r3, [sp, 0x4]
- cmp r3, 0x8
- bgt _080E86FE
- b _080E85BE
-_080E86FE:
- movs r4, 0
- str r4, [sp, 0x8]
-_080E8702:
- ldr r5, [sp, 0x8]
- adds r5, 0x1
- str r5, [sp, 0x2C]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- movs r0, 0x54
- ldr r6, [sp, 0x8]
- muls r0, r6
- adds r3, r0, r1
- movs r0, 0xA8
- muls r0, r6
- ldr r1, [sp]
- adds r2, r0, r1
- movs r4, 0x2
- mov r8, r4
-_080E8720:
- movs r5, 0xD8
- lsls r5, 3
- adds r0, r2, r5
- ldr r6, =0x0000057c
- adds r1, r3, r6
- ldm r1!, {r4-r6}
- stm r0!, {r4-r6}
- ldm r1!, {r4-r6}
- stm r0!, {r4-r6}
- ldr r1, [r1]
- str r1, [r0]
- adds r3, 0x1C
- adds r2, 0x1C
- movs r0, 0x1
- negs r0, r0
- add r8, r0
- mov r1, r8
- cmp r1, 0
- bge _080E8720
- movs r2, 0
- mov r8, r2
- ldr r3, [sp, 0x24]
- cmp r8, r3
- blt _080E8752
- b _080E885A
-_080E8752:
- ldr r4, [sp, 0x8]
- lsls r1, r4, 3
- movs r0, 0xA8
- adds r5, r4, 0
- muls r5, r0
- str r5, [sp, 0x20]
- str r5, [sp, 0x3C]
- subs r1, r4
- lsls r1, 2
- mov r10, r1
-_080E8766:
- movs r6, 0
- str r6, [sp, 0xC]
- mov r0, r8
- lsls r0, 2
- str r0, [sp, 0x38]
- mov r1, r8
- adds r1, 0x1
- str r1, [sp, 0x30]
- ldr r0, =gUnknown_03001168
- ldr r2, [sp, 0x38]
- adds r2, r0
- mov r9, r2
- ldr r3, [sp]
- movs r4, 0xD8
- lsls r4, 3
- adds r0, r3, r4
- ldr r5, [sp, 0x3C]
- adds r7, r5, r0
- str r6, [sp, 0x40]
- movs r3, 0x2
-_080E878E:
- ldr r1, [sp, 0x20]
- movs r2, 0xD8
- lsls r2, 3
- adds r0, r1, r2
- ldr r4, [sp]
- adds r0, r4, r0
- ldr r6, [sp, 0x40]
- adds r5, r0, r6
- adds r0, r5, 0
- str r3, [sp, 0x4C]
- bl ReadUnalignedWord
- adds r4, r0, 0
- movs r6, 0x90
- lsls r6, 1
- add r6, r10
- mov r1, r9
- ldr r0, [r1]
- adds r0, r6
- bl ReadUnalignedWord
- ldr r3, [sp, 0x4C]
- cmp r4, r0
- bne _080E8808
- adds r0, r5, 0x4
- bl ReadUnalignedWord
- adds r4, r0, 0
- mov r2, r9
- ldr r0, [r2]
- adds r0, r6
- adds r0, 0x4
- bl ReadUnalignedWord
- ldr r3, [sp, 0x4C]
- cmp r4, r0
- bne _080E8808
- ldr r4, [sp, 0xC]
- adds r4, 0x1
- str r4, [sp, 0xC]
- mov r5, r9
- ldr r0, [r5]
- mov r6, r10
- adds r2, r0, r6
- movs r0, 0x94
- lsls r0, 1
- adds r1, r2, r0
- ldrh r0, [r7, 0x8]
- ldrh r1, [r1]
- cmp r0, r1
- bcs _080E8808
- adds r0, r7, 0
- movs r4, 0x90
- lsls r4, 1
- adds r1, r2, r4
- ldm r1!, {r2,r5,r6}
- stm r0!, {r2,r5,r6}
- ldm r1!, {r4-r6}
- stm r0!, {r4-r6}
- ldr r1, [r1]
- str r1, [r0]
-_080E8808:
- adds r7, 0x1C
- ldr r0, [sp, 0x40]
- adds r0, 0x1C
- str r0, [sp, 0x40]
- subs r3, 0x1
- cmp r3, 0
- bge _080E878E
- ldr r1, [sp, 0xC]
- cmp r1, 0
- bne _080E8850
- mov r0, r8
- adds r0, 0x3
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r2, [sp, 0x20]
- adds r1, r2
- ldr r3, [sp]
- adds r1, r3, r1
- ldr r0, =gUnknown_03001168
- ldr r4, [sp, 0x38]
- adds r0, r4, r0
- ldr r0, [r0]
- add r0, r10
- movs r5, 0xD8
- lsls r5, 3
- adds r1, r5
- movs r6, 0x90
- lsls r6, 1
- adds r0, r6
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldr r0, [r0]
- str r0, [r1]
-_080E8850:
- ldr r3, [sp, 0x30]
- mov r8, r3
- ldr r4, [sp, 0x24]
- cmp r8, r4
- blt _080E8766
-_080E885A:
- ldr r5, [sp, 0x2C]
- str r5, [sp, 0x8]
- cmp r5, 0x1
- bgt _080E8864
- b _080E8702
-_080E8864:
- add sp, 0x54
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E8578
-
- thumb_func_start sub_80E8880
-sub_80E8880: @ 80E8880
- push {r4-r7,lr}
- mov r12, r0
- adds r7, r1, 0
- movs r5, 0
-_080E8888:
- movs r2, 0
- movs r4, 0x1
- negs r4, r4
- movs r1, 0
- adds r6, r5, 0x1
- adds r3, r7, 0
-_080E8894:
- ldrh r0, [r3, 0x4]
- cmp r0, r2
- ble _080E889E
- adds r4, r1, 0
- adds r2, r0, 0
-_080E889E:
- adds r3, 0x10
- adds r1, 0x1
- cmp r1, 0x5
- ble _080E8894
- cmp r4, 0
- blt _080E88C0
- lsls r1, r5, 4
- lsls r2, r4, 4
- adds r2, r7
- add r1, r12
- adds r0, r2, 0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0
- strh r0, [r2, 0x4]
-_080E88C0:
- adds r5, r6, 0
- cmp r5, 0x2
- ble _080E8888
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E8880
-
- thumb_func_start sub_80E88CC
-sub_80E88CC: @ 80E88CC
- push {r4-r7,lr}
- mov r12, r0
- adds r6, r1, 0
- movs r5, 0
-_080E88D4:
- movs r3, 0
- movs r4, 0x1
- negs r4, r4
- movs r2, 0
- adds r7, r5, 0x1
- adds r1, r6, 0
-_080E88E0:
- ldrh r0, [r1, 0x8]
- cmp r0, r3
- ble _080E88EA
- adds r4, r2, 0
- adds r3, r0, 0
-_080E88EA:
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, 0x5
- ble _080E88E0
- cmp r4, 0
- blt _080E8918
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- lsls r2, r4, 3
- subs r2, r4
- lsls r2, 2
- adds r2, r6
- add r1, r12
- adds r0, r2, 0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0
- strh r0, [r2, 0x8]
-_080E8918:
- adds r5, r7, 0
- cmp r5, 0x2
- ble _080E88D4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E88CC
-
- thumb_func_start sub_80E8924
-sub_80E8924: @ 80E8924
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- movs r0, 0
- ldr r1, =gSaveBlock2Ptr
- mov r10, r1
-_080E8936:
- lsls r1, r0, 1
- adds r2, r0, 0x1
- mov r8, r2
- adds r1, r0
- lsls r0, r1, 5
- movs r2, 0x87
- lsls r2, 2
- adds r7, r0, r2
- lsls r1, 6
- mov r0, r9
- adds r4, r0, r1
- movs r6, 0
- movs r5, 0x1
-_080E8950:
- mov r1, r10
- ldr r0, [r1]
- adds r0, r7
- adds r0, r6
- adds r1, r4, 0
- bl sub_80E8880
- adds r4, 0x60
- adds r6, 0x30
- subs r5, 0x1
- cmp r5, 0
- bge _080E8950
- mov r0, r8
- cmp r0, 0x8
- ble _080E8936
- movs r5, 0
- ldr r4, =gSaveBlock2Ptr
-_080E8972:
- movs r0, 0x54
- adds r1, r5, 0
- muls r1, r0
- ldr r2, =0x0000057c
- adds r1, r2
- ldr r0, [r4]
- adds r0, r1
- movs r1, 0xA8
- muls r1, r5
- movs r2, 0xD8
- lsls r2, 3
- adds r1, r2
- add r1, r9
- bl sub_80E88CC
- adds r5, 0x1
- cmp r5, 0x1
- ble _080E8972
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E8924
-
- thumb_func_start sub_80E89AC
-sub_80E89AC: @ 80E89AC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r6, r0, 0
- mov r8, r1
- mov r9, r2
- bl GetLinkPlayerCount
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x81
- lsls r0, 4
- bl AllocZeroed
- adds r5, r0, 0
- str r4, [sp]
- adds r1, r6, 0
- mov r2, r8
- mov r3, r9
- bl sub_80E8578
- adds r0, r5, 0
- bl sub_80E8924
- adds r0, r5, 0
- bl Free
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E89AC
-
- thumb_func_start sub_80E89F8
-sub_80E89F8: @ 80E89F8
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, =gUnknown_02039F9C
- ldr r4, =gSaveBlock1Ptr
- ldr r1, [r4]
- movs r0, 0xC2
- lsls r0, 6
- adds r1, r0
- adds r0, r5, 0
- movs r2, 0x38
- bl memcpy
- ldr r1, [r4]
- ldr r0, =0x0000310c
- adds r1, r0
- adds r0, r5, 0
- adds r0, 0x38
- movs r2, 0x38
- bl memcpy
- ldr r0, [r4]
- ldr r1, =0x00003030
- adds r0, r1
- adds r1, r5, 0
- bl InitDaycareMailRecordMixing
- ldr r0, =gUnknown_03001148
- ldr r1, [r0]
- adds r0, r6, 0
- movs r2, 0x78
- bl memcpy
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E89F8
-
- thumb_func_start sub_80E8A54
-sub_80E8A54: @ 80E8A54
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r0, 0
- mov r9, r0
- ldr r0, [r5, 0x70]
- cmp r9, r0
- bcs _080E8AAE
- adds r4, r5, 0
- adds r4, 0x2C
- movs r0, 0x24
- adds r0, r5
- mov r8, r0
- adds r7, r5, 0
- adds r7, 0x37
- adds r6, r5, 0
-_080E8A78:
- ldrh r0, [r6, 0x20]
- cmp r0, 0
- beq _080E8A9A
- ldrb r1, [r4, 0xB]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- beq _080E8A90
- mov r0, r8
- movs r1, 0xFC
- bl PadNameString
-_080E8A90:
- ldrb r1, [r7]
- lsrs r1, 4
- adds r0, r4, 0
- bl ConvertInternationalString
-_080E8A9A:
- adds r4, 0x38
- movs r0, 0x38
- add r8, r0
- adds r7, 0x38
- adds r6, 0x38
- movs r0, 0x1
- add r9, r0
- ldr r0, [r5, 0x70]
- cmp r9, r0
- bcc _080E8A78
-_080E8AAE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E8A54
-
- thumb_func_start TaskDummy4
-TaskDummy4: @ 80E8ABC
- bx lr
- thumb_func_end TaskDummy4
-
- thumb_func_start sub_80E8AC0
-sub_80E8AC0: @ 80E8AC0
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_080E8AC6:
- movs r0, 0x2C
- muls r0, r4
- adds r0, 0x34
- adds r1, r5, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _080E8ADC
- adds r0, r1, 0
- adds r0, 0x20
- bl StripExtCtrlCodes
-_080E8ADC:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080E8AC6
- adds r0, r5, 0
- bl sub_8164F70
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E8AC0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s
index 2ba5926aa..b7f03739a 100644
--- a/asm/rom_8011DC0.s
+++ b/asm/rom_8011DC0.s
@@ -4,7 +4,7 @@
.syntax unified
.text
-
+
thumb_func_start nullsub_89
nullsub_89: @ 80124E8
bx lr
diff --git a/asm/rom_8034C54.s b/asm/rom_8034C54.s
deleted file mode 100644
index 4274f26b6..000000000
--- a/asm/rom_8034C54.s
+++ /dev/null
@@ -1,1312 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8034C54
-sub_8034C54: @ 8034C54
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r5, =gUnknown_02022E10
- ldr r0, [r5]
- cmp r0, 0
- beq _08034C64
- bl sub_8034CC8
-_08034C64:
- movs r0, 0x8
- bl Alloc
- str r0, [r5]
- cmp r0, 0
- bne _08034C78
- movs r0, 0
- b _08034CC0
- .pool
-_08034C78:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- bl Alloc
- ldr r1, [r5]
- str r0, [r1, 0x4]
- cmp r0, 0
- bne _08034C94
- adds r0, r1, 0
- bl Free
- movs r0, 0
- b _08034CC0
-_08034C94:
- str r4, [r1]
- movs r3, 0
- cmp r3, r4
- bcs _08034CBE
- movs r7, 0
- movs r6, 0xFF
- movs r2, 0
-_08034CA2:
- ldr r0, [r5]
- ldr r0, [r0, 0x4]
- adds r0, r2, r0
- strb r7, [r0]
- ldr r0, [r5]
- ldr r1, [r0, 0x4]
- adds r1, r2, r1
- ldrb r0, [r1, 0x1]
- orrs r0, r6
- strb r0, [r1, 0x1]
- adds r2, 0x1C
- adds r3, 0x1
- cmp r3, r4
- bcc _08034CA2
-_08034CBE:
- movs r0, 0x1
-_08034CC0:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8034C54
-
- thumb_func_start sub_8034CC8
-sub_8034CC8: @ 8034CC8
- push {r4,r5,lr}
- ldr r2, =gUnknown_02022E10
- ldr r1, [r2]
- cmp r1, 0
- beq _08034D08
- ldr r0, [r1, 0x4]
- cmp r0, 0
- beq _08034CFC
- movs r4, 0
- ldr r0, [r1]
- cmp r4, r0
- bcs _08034CF2
- adds r5, r2, 0
-_08034CE2:
- adds r0, r4, 0
- bl sub_80353DC
- adds r4, 0x1
- ldr r0, [r5]
- ldr r0, [r0]
- cmp r4, r0
- bcc _08034CE2
-_08034CF2:
- ldr r0, =gUnknown_02022E10
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bl Free
-_08034CFC:
- ldr r4, =gUnknown_02022E10
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
-_08034D08:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8034CC8
-
- thumb_func_start sub_8034D14
-sub_8034D14: @ 8034D14
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r8, r0
- mov r10, r1
- adds r5, r2, 0
- ldr r6, =gUnknown_02022E10
- ldr r0, [r6]
- cmp r0, 0
- beq _08034DD4
- ldr r1, [r0, 0x4]
- mov r0, r8
- lsls r2, r0, 3
- subs r0, r2, r0
- lsls r4, r0, 2
- adds r1, r4, r1
- ldrb r0, [r1]
- mov r9, r2
- cmp r0, 0
- bne _08034DD4
- ldrb r0, [r5, 0x1]
- bl sub_8035518
- ldr r1, [r6]
- ldr r1, [r1, 0x4]
- adds r1, r4, r1
- strb r0, [r1, 0x1]
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r0, r4, r0
- ldrb r0, [r0, 0x1]
- cmp r0, 0xFF
- beq _08034DD4
- ldr r0, [r5, 0x8]
- ldrh r0, [r0, 0x6]
- bl GetSpriteTileStartByTag
- ldr r2, [r6]
- ldr r1, [r2, 0x4]
- adds r1, r4, r1
- strh r0, [r1, 0xA]
- ldr r0, [r2, 0x4]
- adds r0, r4, r0
- ldrh r1, [r0, 0xA]
- ldr r7, =0xffff0000
- lsrs r0, r7, 16
- cmp r1, r0
- bne _08034DE0
- ldr r2, [r5, 0x8]
- ldrh r0, [r2, 0x4]
- adds r1, r2, 0
- cmp r0, 0
- beq _08034D94
- adds r0, r1, 0
- bl LoadSpriteSheet
- b _08034DB4
- .pool
-_08034D94:
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, [r2]
- bl sub_8034974
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x4]
- ands r1, r7
- orrs r1, r0
- str r1, [sp, 0x4]
- mov r0, sp
- bl LoadCompressedObjectPic
-_08034DB4:
- ldr r1, [r6]
- ldr r1, [r1, 0x4]
- adds r1, r4, r1
- strh r0, [r1, 0xA]
- ldr r0, =gUnknown_02022E10
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- mov r2, r9
- mov r3, r8
- subs r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0xA]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08034DE0
-_08034DD4:
- movs r0, 0
- b _08034EE8
- .pool
-_08034DE0:
- ldr r0, [r5, 0xC]
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- ldr r6, =gUnknown_02022E10
- ldr r1, [r6]
- ldr r1, [r1, 0x4]
- mov r4, r9
- mov r3, r8
- subs r2, r4, r3
- lsls r4, r2, 2
- adds r1, r4, r1
- strb r0, [r1, 0x4]
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r0, r4, r0
- ldrb r0, [r0, 0x4]
- cmp r0, 0xFF
- bne _08034E14
- ldr r0, [r5, 0xC]
- bl LoadSpritePalette
- ldr r1, [r6]
- ldr r1, [r1, 0x4]
- adds r1, r4, r1
- strb r0, [r1, 0x4]
-_08034E14:
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- adds r1, r4, r1
- ldrb r0, [r5]
- lsls r0, 30
- lsrs r0, 30
- strb r0, [r1, 0x2]
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r0, r4, r0
- ldrb r1, [r5, 0x1]
- strb r1, [r0, 0x3]
- ldr r2, [r6]
- ldr r0, [r2, 0x4]
- adds r0, r4, r0
- ldrh r1, [r5, 0x4]
- strh r1, [r0, 0xC]
- ldr r0, [r2, 0x4]
- adds r0, r4, r0
- ldrh r1, [r5, 0x6]
- strh r1, [r0, 0xE]
- ldr r1, [r2, 0x4]
- adds r1, r4, r1
- ldrb r0, [r5]
- lsls r0, 28
- lsrs r0, 30
- strb r0, [r1, 0x6]
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- adds r1, r4, r1
- ldrb r0, [r5]
- lsls r0, 26
- lsrs r0, 30
- strb r0, [r1, 0x5]
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- adds r1, r4, r1
- ldrb r0, [r5]
- lsrs r0, 6
- strb r0, [r1, 0x7]
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r0, r4, r0
- ldrb r1, [r5, 0x2]
- strb r1, [r0, 0x8]
- ldrb r1, [r5]
- lsls r0, r1, 28
- lsrs r0, 30
- lsls r1, 26
- lsrs r1, 30
- bl sub_80355F8
- ldr r1, [r6]
- ldr r1, [r1, 0x4]
- adds r1, r4, r1
- strb r0, [r1, 0x9]
- ldr r2, [r6]
- ldr r0, [r2, 0x4]
- adds r0, r4, r0
- ldr r1, [r5, 0x8]
- ldrh r1, [r1, 0x6]
- strh r1, [r0, 0x10]
- ldr r0, [r2, 0x4]
- adds r0, r4, r0
- ldr r1, [r5, 0xC]
- ldrh r1, [r1, 0x4]
- strh r1, [r0, 0x12]
- ldr r0, [r2, 0x4]
- adds r0, r4, r0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r0, r4, r0
- str r1, [r0, 0x14]
- movs r3, 0x1
- ldrb r0, [r5, 0x1]
- cmp r3, r0
- bcs _08034ECA
-_08034EB2:
- ldr r0, [r6]
- ldr r2, [r0, 0x4]
- adds r2, r4, r2
- ldr r1, [r2, 0x14]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- str r0, [r2, 0x14]
- adds r3, 0x1
- ldrb r2, [r5, 0x1]
- cmp r3, r2
- bcc _08034EB2
-_08034ECA:
- ldr r0, =gUnknown_02022E10
- ldr r0, [r0]
- mov r3, r9
- mov r4, r8
- subs r1, r3, r4
- lsls r1, 2
- ldr r0, [r0, 0x4]
- adds r0, r1
- bl sub_8034EFC
- mov r0, r8
- mov r1, r10
- bl sub_8035044
- movs r0, 0x1
-_08034EE8:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8034D14
-
- thumb_func_start sub_8034EFC
-sub_8034EFC: @ 8034EFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- ldrb r5, [r4, 0x1]
- movs r0, 0xC
- ldrsh r7, [r4, r0]
- ldrb r0, [r4, 0x3]
- adds r0, 0x1
- mov r8, r0
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- lsls r1, r5, 3
- ldr r2, =gMain+0x38
- mov r9, r2
- add r1, r9
- mov r0, r8
- lsls r2, r0, 2
- movs r0, 0x80
- lsls r0, 17
- orrs r2, r0
- mov r0, sp
- bl CpuSet
- movs r6, 0
- ldrb r5, [r4, 0x1]
- cmp r6, r8
- bcs _08034FCE
- movs r1, 0x3F
- mov r10, r1
- movs r2, 0xD
- negs r2, r2
- mov r9, r2
-_08034F46:
- lsls r0, r5, 3
- ldr r1, =gMain
- adds r3, r0, r1
- ldrh r1, [r4, 0xE]
- adds r0, r3, 0
- adds r0, 0x38
- strb r1, [r0]
- ldr r2, =0x000001ff
- adds r0, r2, 0
- adds r1, r7, 0
- ands r1, r0
- ldrh r2, [r3, 0x3A]
- ldr r0, =0xfffffe00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x3A]
- ldrb r1, [r4, 0x6]
- movs r0, 0x39
- adds r0, r3
- mov r12, r0
- lsls r1, 6
- ldrb r2, [r0]
- mov r0, r10
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrb r1, [r4, 0x5]
- movs r2, 0x3B
- adds r2, r3
- mov r12, r2
- lsls r1, 6
- ldrb r2, [r2]
- mov r0, r10
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r4, 0xA]
- ldr r1, =0x000003ff
- ands r1, r0
- ldrh r2, [r3, 0x3C]
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x3C]
- adds r3, 0x3D
- movs r0, 0x3
- ldrb r1, [r4, 0x7]
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrb r2, [r4, 0x4]
- lsls r2, 4
- movs r1, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- ldrb r0, [r4, 0x8]
- adds r7, r0
- adds r6, 0x1
- adds r5, 0x1
- cmp r6, r8
- bcc _08034F46
-_08034FCE:
- subs r5, 0x1
- ldr r0, =gMain
- lsls r3, r5, 3
- adds r3, r0
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- ldrb r0, [r4, 0x8]
- subs r1, r0
- ldr r2, =0x000001ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x3A]
- ldr r0, =0xfffffe00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x3A]
- adds r2, r3, 0
- adds r2, 0x39
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4, 0x9]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- ldrh r4, [r4, 0xA]
- adds r1, r4
- ldr r2, =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x3C]
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x3C]
- 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_8034EFC
-
- thumb_func_start sub_8035044
-sub_8035044: @ 8035044
- push {r4-r6,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- ldr r0, =gUnknown_02022E10
- ldr r1, [r0]
- adds r6, r0, 0
- cmp r1, 0
- beq _080350A8
- ldr r2, [r1, 0x4]
- lsls r1, r3, 3
- subs r0, r1, r3
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2]
- adds r5, r1, 0
- cmp r0, 0
- beq _080350A8
- str r4, [r2, 0x18]
- cmp r4, 0
- bge _08035078
- movs r2, 0x1
- negs r4, r4
- b _0803507A
- .pool
-_08035078:
- movs r2, 0
-_0803507A:
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- subs r0, r5, r3
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x2]
- cmp r3, 0x1
- beq _0803509A
- cmp r3, 0x1
- ble _08035092
- cmp r3, 0x2
- beq _080350A2
-_08035092:
- adds r1, r4, 0
- bl sub_80350B0
- b _080350A8
-_0803509A:
- adds r1, r4, 0
- bl sub_8035164
- b _080350A8
-_080350A2:
- adds r1, r4, 0
- bl sub_80352C0
-_080350A8:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8035044
-
- thumb_func_start sub_80350B0
-sub_80350B0: @ 80350B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- mov r9, r1
- str r2, [sp]
- ldr r5, [r0, 0x14]
- ldrb r7, [r0, 0x1]
- ldr r0, =gMain
- mov r10, r0
- cmp r5, 0
- beq _0803511A
- lsls r0, r7, 3
- adds r0, 0x3C
- mov r1, r10
- adds r6, r0, r1
-_080350D6:
- mov r0, r9
- adds r1, r5, 0
- bl __udivsi3
- adds r4, r0, 0
- adds r0, r4, 0
- muls r0, r5
- mov r2, r9
- subs r2, r0
- mov r9, r2
- adds r0, r5, 0
- movs r1, 0xA
- bl __udivsi3
- adds r5, r0, 0
- mov r1, r8
- ldrb r0, [r1, 0x9]
- adds r1, r4, 0
- muls r1, r0
- mov r2, r8
- ldrh r2, [r2, 0xA]
- adds r1, r2
- ldr r2, =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r0, [r6]
- ldr r2, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r6]
- adds r6, 0x8
- adds r7, 0x1
- cmp r5, 0
- bne _080350D6
-_0803511A:
- ldr r0, [sp]
- cmp r0, 0
- beq _08035140
- lsls r0, r7, 3
- add r0, r10
- adds r0, 0x39
- ldrb r2, [r0]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _08035154
- .pool
-_08035140:
- lsls r2, r7, 3
- add r2, r10
- adds r2, 0x39
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
-_08035154:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80350B0
-
- thumb_func_start sub_8035164
-sub_8035164: @ 8035164
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r6, r0, 0
- mov r8, r1
- str r2, [sp]
- ldr r5, [r6, 0x14]
- ldr r3, =gUnknown_03000DD4
- ldrb r0, [r6, 0x1]
- str r0, [r3]
- ldr r2, =gUnknown_03000DD8
- movs r0, 0
- str r0, [r2]
- ldr r1, =gUnknown_03000DDC
- subs r0, 0x1
- str r0, [r1]
- adds r7, r3, 0
- mov r10, r1
- ldr r0, =gMain
- mov r9, r0
- cmp r5, 0
- beq _0803524C
-_08035196:
- mov r0, r8
- adds r1, r5, 0
- bl __udivsi3
- adds r4, r0, 0
- adds r0, r4, 0
- muls r0, r5
- mov r1, r8
- subs r1, r0
- mov r8, r1
- adds r0, r5, 0
- movs r1, 0xA
- bl __udivsi3
- adds r5, r0, 0
- cmp r4, 0
- bne _080351C8
- mov r2, r10
- ldr r1, [r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080351C8
- cmp r5, 0
- bne _08035224
-_080351C8:
- ldr r2, [r7]
- lsls r2, 3
- add r2, r9
- ldrb r0, [r6, 0x9]
- adds r3, r4, 0
- muls r3, r0
- ldrh r4, [r6, 0xA]
- adds r3, r4
- ldr r1, =0x000003ff
- adds r0, r1, 0
- ands r3, r0
- ldrh r0, [r2, 0x3C]
- ldr r4, =0xfffffc00
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r3
- strh r0, [r2, 0x3C]
- adds r2, 0x39
- ldrb r0, [r2]
- movs r1, 0x4
- negs r1, r1
- ands r0, r1
- strb r0, [r2]
- mov r2, r10
- ldr r1, [r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0803523A
- ldr r4, =gUnknown_03000DD8
- ldr r0, [r4]
- str r0, [r2]
- b _0803523A
- .pool
-_08035224:
- ldr r0, [r7]
- lsls r0, 3
- add r0, r9
- adds r0, 0x39
- ldrb r1, [r0]
- movs r2, 0x4
- negs r2, r2
- ands r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_0803523A:
- ldr r0, [r7]
- adds r0, 0x1
- str r0, [r7]
- ldr r4, =gUnknown_03000DD8
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- cmp r5, 0
- bne _08035196
-_0803524C:
- ldr r0, [sp]
- cmp r0, 0
- beq _08035298
- ldr r1, [r7]
- lsls r1, 3
- add r1, r9
- adds r1, 0x39
- ldrb r2, [r1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r3, [r7]
- lsls r3, 3
- add r3, r9
- movs r1, 0xC
- ldrsh r2, [r6, r1]
- mov r4, r10
- ldr r0, [r4]
- subs r0, 0x1
- ldrb r1, [r6, 0x8]
- muls r0, r1
- adds r2, r0
- ldr r1, =0x000001ff
- adds r0, r1, 0
- ands r2, r0
- ldrh r1, [r3, 0x3A]
- ldr r0, =0xfffffe00
- ands r0, r1
- orrs r0, r2
- strh r0, [r3, 0x3A]
- b _080352AE
- .pool
-_08035298:
- ldr r0, [r7]
- lsls r0, 3
- add r0, r9
- adds r0, 0x39
- ldrb r2, [r0]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_080352AE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8035164
-
- thumb_func_start sub_80352C0
-sub_80352C0: @ 80352C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r8, r0
- mov r10, r1
- str r2, [sp]
- ldr r5, [r0, 0x14]
- ldrb r3, [r0, 0x1]
- movs r0, 0
- str r0, [sp, 0x4]
- mov r9, r0
- cmp r5, 0
- beq _0803535A
-_080352E0:
- lsls r0, r3, 3
- adds r1, r0, 0
- adds r1, 0x39
- ldr r2, =gMain
- adds r7, r1, r2
- adds r0, 0x3C
- adds r6, r0, r2
-_080352EE:
- mov r0, r10
- adds r1, r5, 0
- str r3, [sp, 0x8]
- bl __udivsi3
- adds r4, r0, 0
- adds r0, r4, 0
- muls r0, r5
- mov r1, r10
- subs r1, r0
- mov r10, r1
- adds r0, r5, 0
- movs r1, 0xA
- bl __udivsi3
- adds r5, r0, 0
- ldr r3, [sp, 0x8]
- cmp r4, 0
- bne _0803531E
- ldr r2, [sp, 0x4]
- cmp r2, 0
- bne _0803531E
- cmp r5, 0
- bne _080352E0
-_0803531E:
- movs r0, 0x1
- str r0, [sp, 0x4]
- mov r1, r8
- ldrb r0, [r1, 0x9]
- adds r2, r4, 0
- muls r2, r0
- ldrh r4, [r1, 0xA]
- adds r2, r4
- ldr r1, =0x000003ff
- adds r0, r1, 0
- ands r2, r0
- ldrh r0, [r6]
- ldr r4, =0xfffffc00
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strh r0, [r6]
- ldrb r0, [r7]
- movs r2, 0x4
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r7]
- adds r7, 0x8
- adds r6, 0x8
- adds r3, 0x1
- movs r4, 0x1
- add r9, r4
- cmp r5, 0
- bne _080352EE
-_0803535A:
- mov r0, r8
- ldrb r0, [r0, 0x3]
- cmp r9, r0
- bge _0803538A
- ldr r1, =gMain
- movs r5, 0x4
- negs r5, r5
- movs r4, 0x2
- lsls r0, r3, 3
- adds r0, 0x39
- adds r2, r0, r1
-_08035370:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- orrs r0, r4
- strb r0, [r2]
- adds r2, 0x8
- adds r3, 0x1
- movs r1, 0x1
- add r9, r1
- mov r0, r8
- ldrb r0, [r0, 0x3]
- cmp r9, r0
- blt _08035370
-_0803538A:
- ldr r1, [sp]
- cmp r1, 0
- beq _080353B0
- lsls r0, r3, 3
- ldr r2, =gMain
- adds r0, r2
- adds r0, 0x39
- ldrb r2, [r0]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _080353C6
- .pool
-_080353B0:
- lsls r2, r3, 3
- ldr r4, =gMain
- adds r2, r4
- adds r2, 0x39
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
-_080353C6:
- 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_80352C0
-
- thumb_func_start sub_80353DC
-sub_80353DC: @ 80353DC
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, =gUnknown_02022E10
- ldr r0, [r0]
- cmp r0, 0
- beq _0803546E
- ldr r2, [r0, 0x4]
- lsls r1, r4, 3
- subs r0, r1, r4
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2]
- adds r5, r1, 0
- cmp r0, 0
- beq _0803546E
- ldrb r3, [r2, 0x3]
- adds r0, r3, 0x1
- ldrb r2, [r2, 0x1]
- cmp r0, 0
- beq _08035426
- ldr r1, =gMain
- movs r7, 0x4
- negs r7, r7
- movs r6, 0x2
- adds r3, r0, 0
- lsls r0, r2, 3
- adds r0, 0x39
- adds r2, r0, r1
-_08035414:
- ldrb r1, [r2]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strb r0, [r2]
- subs r3, 0x1
- adds r2, 0x8
- cmp r3, 0
- bne _08035414
-_08035426:
- adds r0, r4, 0
- bl sub_8035570
- cmp r0, 0
- bne _08035442
- ldr r0, =gUnknown_02022E10
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- subs r0, r5, r4
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x10]
- bl FreeSpriteTilesByTag
-_08035442:
- adds r0, r4, 0
- bl sub_80355B4
- cmp r0, 0
- bne _0803545E
- ldr r0, =gUnknown_02022E10
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- subs r0, r5, r4
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x12]
- bl FreeSpritePaletteByTag
-_0803545E:
- ldr r0, =gUnknown_02022E10
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- subs r0, r5, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0803546E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80353DC
-
- thumb_func_start sub_803547C
-sub_803547C: @ 803547C
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, =gUnknown_02022E10
- ldr r1, [r0]
- adds r7, r0, 0
- cmp r1, 0
- beq _0803550C
- ldr r2, [r1, 0x4]
- lsls r1, r4, 3
- subs r0, r1, r4
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2]
- adds r6, r1, 0
- cmp r0, 0
- beq _0803550C
- ldrb r3, [r2, 0x3]
- adds r1, r3, 0x1
- ldrb r0, [r2, 0x1]
- cmp r5, 0
- beq _080354D8
- cmp r1, 0
- beq _0803550C
- ldr r1, =gMain
- movs r5, 0x4
- negs r5, r5
- movs r4, 0x2
- adds r3, 0x1
- lsls r0, 3
- adds r0, 0x39
- adds r2, r0, r1
-_080354BC:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- orrs r0, r4
- strb r0, [r2]
- subs r3, 0x1
- adds r2, 0x8
- cmp r3, 0
- bne _080354BC
- b _0803550C
- .pool
-_080354D8:
- cmp r1, 0
- beq _080354FA
- ldr r1, =gMain
- movs r5, 0x4
- negs r5, r5
- adds r3, 0x1
- lsls r0, 3
- adds r0, 0x39
- adds r2, r0, r1
-_080354EA:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2]
- subs r3, 0x1
- adds r2, 0x8
- cmp r3, 0
- bne _080354EA
-_080354FA:
- ldr r0, [r7]
- ldr r1, [r0, 0x4]
- subs r0, r6, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0, 0x18]
- adds r0, r4, 0
- bl sub_8035044
-_0803550C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_803547C
-
- thumb_func_start sub_8035518
-sub_8035518: @ 8035518
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0x40
- movs r3, 0
- ldr r0, =gUnknown_02022E10
- ldr r0, [r0]
- ldr r2, [r0]
- cmp r3, r2
- bcs _0803555A
- ldr r1, [r0, 0x4]
-_0803552E:
- ldrb r0, [r1]
- cmp r0, 0
- bne _08035548
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- beq _08035552
- ldrb r0, [r1, 0x3]
- cmp r0, r4
- bhi _08035552
- ldrb r0, [r1, 0x1]
- b _0803556A
- .pool
-_08035548:
- adds r0, r5, 0x1
- ldrb r5, [r1, 0x3]
- adds r0, r5
- lsls r0, 16
- lsrs r5, r0, 16
-_08035552:
- adds r1, 0x1C
- adds r3, 0x1
- cmp r3, r2
- bcc _0803552E
-_0803555A:
- adds r0, r5, r4
- adds r0, 0x1
- cmp r0, 0x80
- bgt _08035568
- lsls r0, r5, 24
- lsrs r0, 24
- b _0803556A
-_08035568:
- movs r0, 0xFF
-_0803556A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8035518
-
- thumb_func_start sub_8035570
-sub_8035570: @ 8035570
- push {r4-r6,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r0, =gUnknown_02022E10
- ldr r0, [r0]
- ldr r4, [r0]
- cmp r2, r4
- bcs _080355AC
- ldr r1, [r0, 0x4]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r5, r0, r1
-_0803558A:
- ldrb r0, [r1]
- cmp r0, 0
- beq _080355A4
- cmp r2, r3
- beq _080355A4
- ldrh r0, [r1, 0x10]
- ldrh r6, [r5, 0x10]
- cmp r0, r6
- bne _080355A4
- movs r0, 0x1
- b _080355AE
- .pool
-_080355A4:
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, r4
- bcc _0803558A
-_080355AC:
- movs r0, 0
-_080355AE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8035570
-
- thumb_func_start sub_80355B4
-sub_80355B4: @ 80355B4
- push {r4-r6,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r0, =gUnknown_02022E10
- ldr r0, [r0]
- ldr r4, [r0]
- cmp r2, r4
- bcs _080355F0
- ldr r1, [r0, 0x4]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r5, r0, r1
-_080355CE:
- ldrb r0, [r1]
- cmp r0, 0
- beq _080355E8
- cmp r2, r3
- beq _080355E8
- ldrh r0, [r1, 0x12]
- ldrh r6, [r5, 0x12]
- cmp r0, r6
- bne _080355E8
- movs r0, 0x1
- b _080355F2
- .pool
-_080355E8:
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, r4
- bcc _080355CE
-_080355F0:
- movs r0, 0
-_080355F2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80355B4
-
- thumb_func_start sub_80355F8
-sub_80355F8: @ 80355F8
- ldr r2, =gUnknown_082FF1C8
- lsls r0, 2
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_80355F8
-
- thumb_func_start sub_8035608
-sub_8035608: @ 8035608
- push {lr}
- bl ResetSpriteData
- ldr r0, =gUnknown_0831AC88
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r0, =sub_8035648
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8035608
-
- thumb_func_start sub_8035648
-sub_8035648: @ 8035648
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8035648
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_menu.s b/asm/script_menu.s
index 0624dba83..a2e2ec59e 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -1316,7 +1316,7 @@ _080E28CA:
ldr r1, =gSprites
adds r0, r1
ldrb r1, [r4, 0xC]
- bl sub_80B6070
+ bl FreeResourcesAndDestroySprite
_080E28DE:
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -1363,7 +1363,7 @@ ScriptMenu_ShowPokemonPic: @ 80E2900
asrs r2, 16
mov r0, r8
movs r3, 0
- bl sub_80B5F84
+ bl CreateMonSprite_PicBox
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
diff --git a/asm/shop.s b/asm/shop.s
index eac0956cb..a09d05323 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -316,7 +316,7 @@ Task_ExitSellMenu: @ 80DFCF8
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
- bl sub_80ABDFC
+ bl IsWeatherNotFadingIn
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 88f73fe2c..fc475c2e3 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -5583,7 +5583,7 @@ _0812D08E:
lsrs r3, 24
adds r1, r3, 0
adds r2, r3, 0
- bl sub_80B6128
+ bl MultiplyPaletteRGBComponents
_0812D0A6:
pop {r4-r7}
pop {r0}
diff --git a/common_syms/item_menu.txt b/common_syms/item_menu.txt
deleted file mode 100755
index 112b591aa..000000000
--- a/common_syms/item_menu.txt
+++ /dev/null
@@ -1 +0,0 @@
-gFieldCallback
diff --git a/common_syms/mauville_old_man.txt b/common_syms/mauville_old_man.txt
index edb40a31c..9d77b8692 100644
--- a/common_syms/mauville_old_man.txt
+++ b/common_syms/mauville_old_man.txt
@@ -1 +1 @@
-gBardSong \ No newline at end of file
+gBardSong
diff --git a/common_syms/overworld.txt b/common_syms/overworld.txt
new file mode 100644
index 000000000..687b67545
--- /dev/null
+++ b/common_syms/overworld.txt
@@ -0,0 +1,5 @@
+gUnknown_03005DA8
+gFieldCallback
+gUnknown_03005DB0
+gUnknown_03005DB4
+gFieldLinkPlayerCount
diff --git a/data/battle_1.s b/data/battle_1.s
deleted file mode 100644
index 37f68bfd6..000000000
--- a/data/battle_1.s
+++ /dev/null
@@ -1,12 +0,0 @@
-
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_082FF1C8:: @ 82FF1C8
- .byte 0x01, 0x04, 0x10, 0x40
- .byte 0x02, 0x04, 0x08, 0x20
- .byte 0x02, 0x04, 0x08, 0x20
- .byte 0x00, 0x00, 0x00, 0x00
diff --git a/data/event_scripts.s b/data/event_scripts.s
index c2906e649..841a9935c 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -1938,11 +1938,11 @@ RustboroCity_EventScript_271ED7:: @ 8271ED7
end
RustboroCity_EventScript_271EEF:: @ 8271EEF
- setvar VAR_0x4010, 105
+ setvar VAR_OBJ_GFX_ID_0, 105
return
RustboroCity_EventScript_271EF5:: @ 8271EF5
- setvar VAR_0x4010, 100
+ setvar VAR_OBJ_GFX_ID_0, 100
return
LavaridgeTown_EventScript_271EFB:: @ 8271EFB
@@ -1956,11 +1956,11 @@ Route119_EventScript_271EFB:: @ 8271EFB
end
LavaridgeTown_EventScript_271F13:: @ 8271F13
- setvar VAR_0x4013, 106
+ setvar VAR_OBJ_GFX_ID_3, 106
return
LavaridgeTown_EventScript_271F19:: @ 8271F19
- setvar VAR_0x4013, 101
+ setvar VAR_OBJ_GFX_ID_3, 101
return
EventScript_271F1F:: @ 8271F1F
@@ -1972,11 +1972,11 @@ EventScript_271F1F:: @ 8271F1F
end
EventScript_271F37:: @ 8271F37
- setvar VAR_0x4010, 100
+ setvar VAR_OBJ_GFX_ID_0, 100
return
EventScript_271F3D:: @ 8271F3D
- setvar VAR_0x4010, 105
+ setvar VAR_OBJ_GFX_ID_0, 105
return
DewfordTown_Gym_EventScript_271F43:: @ 8271F43
@@ -2393,25 +2393,25 @@ EventScript_272274:: @ 8272274
waitse
playmoncry SPECIES_KYOGRE, 2
waitmoncry
- setvar VAR_0x4005, 1
+ setvar VAR_TEMP_5, 1
releaseall
end
EventScript_272283:: @ 8272283
lockall
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
goto EventScript_2722A7
end
EventScript_27228F:: @ 827228F
lockall
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
goto EventScript_2722A7
end
EventScript_27229B:: @ 827229B
lockall
- setvar VAR_0x4003, 1
+ setvar VAR_TEMP_3, 1
goto EventScript_2722A7
end
@@ -2429,11 +2429,11 @@ CaveOfOrigin_1F_EventScript_2722C1:: @ 82722C1
CaveOfOrigin_UnusedRubySapphireMap1_EventScript_2722C1:: @ 82722C1
CaveOfOrigin_UnusedRubySapphireMap2_EventScript_2722C1:: @ 82722C1
CaveOfOrigin_UnusedRubySapphireMap3_EventScript_2722C1:: @ 82722C1
- setvar VAR_0x4001, 1
- setvar VAR_0x4002, 1
- setvar VAR_0x4003, 1
- setvar VAR_0x4004, 1
- setvar VAR_0x4005, 1
+ setvar VAR_TEMP_1, 1
+ setvar VAR_TEMP_2, 1
+ setvar VAR_TEMP_3, 1
+ setvar VAR_TEMP_4, 1
+ setvar VAR_TEMP_5, 1
return
Route120_EventScript_2722DB:: @ 82722DB
@@ -3522,7 +3522,7 @@ MossdeepCity_StevensHouse_EventScript_2737A0:: @ 82737A0
Route119_WeatherInstitute_2F_EventScript_2737A0:: @ 82737A0
RustboroCity_DevonCorp_2F_EventScript_2737A0:: @ 82737A0
bufferboxname 0, 16438
- bufferspeciesname 1, VAR_0x4001
+ bufferspeciesname 1, VAR_TEMP_1
checkflag FLAG_SYS_PC_LANETTE
call_if 0, LittlerootTown_ProfessorBirchsLab_EventScript_2737BB
checkflag FLAG_SYS_PC_LANETTE
@@ -13216,12 +13216,12 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3ECF:: @ 82C3ECF
end
BattleFrontier_BattlePikeRandomRoom1_MapScript2_2C3EDE: @ 82C3EDE
- map_script_2 VAR_0x4004, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EE8
+ map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EE8
.2byte 0
BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EE8:: @ 82C3EE8
- setvar VAR_0x4011, 28
- setvar VAR_0x4010, 28
+ setvar VAR_OBJ_GFX_ID_1, 28
+ setvar VAR_OBJ_GFX_ID_0, 28
setvar VAR_0x8004, 5
special sub_81A703C
compare VAR_RESULT, 3
@@ -13233,17 +13233,17 @@ BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3EE8:: @ 82C3EE8
compare VAR_RESULT, 8
goto_eq BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F3F
hideobjectat 2, BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_1
- setvar VAR_0x4004, 1
+ setvar VAR_TEMP_4, 1
turnobject 255, 2
end
BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F35:: @ 82C3F35
- setvar VAR_0x4004, 1
+ setvar VAR_TEMP_4, 1
turnobject 255, 2
end
BattleFrontier_BattlePikeRandomRoom1_EventScript_2C3F3F:: @ 82C3F3F
- setvar VAR_0x4004, 1
+ setvar VAR_TEMP_4, 1
turnobject 255, 2
hideobjectat 1, BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_1
end
@@ -13313,26 +13313,26 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4049:: @ 82C4049
end
BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4062:: @ 82C4062
- setvar VAR_0x4003, 1
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_3, 1
+ setvar VAR_TEMP_2, 1
end
BattleFrontier_BattlePikeThreePathRoom_EventScript_2C406D:: @ 82C406D
- setvar VAR_0x4003, 0
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_3, 0
+ setvar VAR_TEMP_2, 0
lockall
msgbox BattleFrontier_BattlePikeThreePathRoom_Text_25CE36, 4
closemessage
end
BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082:: @ 82C4082
- setvar VAR_0x4003, 1
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_3, 1
+ setvar VAR_TEMP_2, 1
end
BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D:: @ 82C408D
- setvar VAR_0x4003, 0
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_3, 0
+ setvar VAR_TEMP_2, 0
lockall
msgbox BattleFrontier_BattlePikeRandomRoom1_Text_25CE36, 4
closemessage
@@ -13435,13 +13435,13 @@ BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4174:: @ 82C4174
end
BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202:: @ 82C4202
- setvar VAR_0x4003, 1
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_3, 1
+ setvar VAR_TEMP_2, 1
end
BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D:: @ 82C420D
- setvar VAR_0x4003, 0
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_3, 0
+ setvar VAR_TEMP_2, 0
lockall
msgbox BattleFrontier_BattlePikeRandomRoom3_Text_25CE36, 4
closemessage
@@ -14632,7 +14632,7 @@ TrainerHill_2F_MapScript1_2C8336: @ 82C8336
TrainerHill_3F_MapScript1_2C8336: @ 82C8336
TrainerHill_4F_MapScript1_2C8336: @ 82C8336
TrainerHill_Roof_MapScript1_2C8336: @ 82C8336
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_2, 0
setvar VAR_0x8004, 4
special sp194_trainer_tower
setvar VAR_0x8004, 1
@@ -14648,11 +14648,11 @@ TrainerHill_Roof_MapScript1_2C8336: @ 82C8336
TrainerHill_1F_MapScript2_2C8372: @ 82C8372
TrainerHill_2F_MapScript2_2C8372: @ 82C8372
- map_script_2 VAR_0x4003, 0, TrainerHill_1F_EventScript_2C837C
+ map_script_2 VAR_TEMP_3, 0, TrainerHill_1F_EventScript_2C837C
.2byte 0
TrainerHill_1F_EventScript_2C837C:: @ 82C837C
- setvar VAR_0x4003, 1
+ setvar VAR_TEMP_3, 1
@ forced stop
TrainerHill_1F_MapScript2_2C8381: @ 82C8381
@@ -14660,8 +14660,8 @@ TrainerHill_2F_MapScript2_2C8381: @ 82C8381
TrainerHill_3F_MapScript2_2C8381: @ 82C8381
TrainerHill_4F_MapScript2_2C8381: @ 82C8381
TrainerHill_Roof_MapScript2_2C8381: @ 82C8381
- map_script_2 VAR_0x4002, 0, TrainerHill_1F_EventScript_2C83A6
- map_script_2 VAR_0x4001, 1, TrainerHill_1F_EventScript_2C83DF
+ map_script_2 VAR_TEMP_2, 0, TrainerHill_1F_EventScript_2C83A6
+ map_script_2 VAR_TEMP_1, 1, TrainerHill_1F_EventScript_2C83DF
.2byte 0
TrainerHill_1F_EventScript_2C8393:: @ 82C8393
@@ -14673,7 +14673,7 @@ TrainerHill_1F_EventScript_2C8393:: @ 82C8393
end
TrainerHill_1F_EventScript_2C83A6:: @ 82C83A6
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
setvar VAR_0x8004, 9
special sp194_trainer_tower
compare VAR_RESULT, 1
@@ -14690,12 +14690,12 @@ TrainerHill_1F_EventScript_2C83C9:: @ 82C83C9
special sp194_trainer_tower
setvar VAR_0x8004, 5
special sp194_trainer_tower
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
end
TrainerHill_1F_EventScript_2C83DF:: @ 82C83DF
TrainerHill_Entrance_EventScript_2C83DF:: @ 82C83DF
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
warp TRAINER_HILL_ENTRANCE, 255, 9, 6
waitstate
end
diff --git a/data/field_effect.s b/data/field_effect.s
deleted file mode 100644
index e6f8a558e..000000000
--- a/data/field_effect.s
+++ /dev/null
@@ -1,451 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
- .align 2
-gNewGameBirchPic:: @ 8553A90
- .incbin "graphics/birch_speech/birch.4bpp"
-
- .space 0x3800
-
- .incbin "graphics/unused/intro_birch_beauty.4bpp"
-
- .align 2
-gNewGameBirchPalette:: @ 855A950
- .incbin "graphics/birch_speech/birch.gbapal"
-
- .align 2
-gSpriteImage_855A970:: @ 855A970
- .incbin "graphics/misc/pokeball_glow.4bpp"
-
- .align 2
-gFieldEffectObjectPalette4:: @ 855A990
- .incbin "graphics/map_objects/palettes/field_effect_object_palette_04.gbapal"
-
- .align 2
-gSpriteImage_855A9B0:: @ 855A9B0
- .incbin "graphics/misc/pokecenter_monitor/0.4bpp"
-
- .align 2
-gSpriteImage_855AA70:: @ 855AA70
- .incbin "graphics/misc/pokecenter_monitor/1.4bpp"
-
- .align 2
-gSpriteImage_855AB30:: @ 855AB30
- .incbin "graphics/misc/big_hof_monitor.4bpp"
-
- .align 2
-gSpriteImage_855AD30:: @ 855AD30
- .incbin "graphics/misc/small_hof_monitor.4bpp"
-
- .align 2
-gFieldEffectObjectPalette5:: @ 855AE30
- .incbin "graphics/map_objects/palettes/field_effect_object_palette_05.gbapal"
-
- .align 2
-gUnknown_0855AE50:: @ 855AE50
- .incbin "graphics/misc/field_move_streaks.4bpp"
-
- .align 2
-gUnknown_0855B050:: @ 855B050
- .incbin "graphics/misc/field_move_streaks.gbapal"
-
- .align 2
-gUnknown_0855B070:: @ 855B070
- .incbin "graphics/misc/field_move_streaks_map.bin"
-
- .align 2
-gUnknown_0855B2F0:: @ 855B2F0
- .incbin "graphics/misc/darkness_field_move_streaks.4bpp"
-
- .align 2
-gUnknown_0855B370:: @ 855B370
- .incbin "graphics/misc/darkness_field_move_streaks.gbapal"
-
- .align 2
-gUnknown_0855B390:: @ 855B390
- .incbin "graphics/misc/darkness_field_move_streaks_map.bin"
-
- .align 2
-gUnknown_0855B610:: @ 855B610
- .incbin "graphics/misc/spotlight.gbapal"
-
- .align 2
-gUnknown_0855B630:: @ 855B630
- .incbin "graphics/misc/spotlight.4bpp"
-
- .align 2
-gUnknown_0855C170:: @ 855C170
- .incbin "graphics/unknown/unknown_55C170.4bpp"
-
- .align 2
-gUnknown_0855C1F0:: @ 855C1F0
- .4byte FieldEffectCmd_loadtiles
- .4byte FieldEffectCmd_loadfadedpal
- .4byte FieldEffectCmd_loadpal
- .4byte FieldEffectCmd_callnative
- .4byte FieldEffectCmd_end
- .4byte FieldEffectCmd_loadgfx_callnative
- .4byte FieldEffectCmd_loadtiles_callnative
- .4byte FieldEffectCmd_loadfadedpal_callnative
-
- .align 2
-@ TODO: something else uses these too
-gNewGameBirchOamAttributes:: @ 855C210
- .4byte OAM_SIZE_64x64
- .2byte 0
-
- .align 2
-gOamData_855C218:: @ 855C218
- .2byte 0x0000, 0x0000, 0x0000, 0x0000
-
- .align 2
-gOamData_855C220:: @ 855C220
- .2byte 0x0000, 0x4000, 0x0000, 0x0000
-
- .align 2
-gNewGameBirchPicTable:: @ 855C228
- obj_tiles gNewGameBirchPic, 0x800
-
- .align 2
-gNewGameBirchObjectPaletteInfo:: @ 855C230
- obj_pal gNewGameBirchPalette, 0x1006
-
- .align 2
-gNewGameBirchImageAnim:: @ 855C238
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gNewGameBirchImageAnimTable:: @ 855C240
- .4byte gNewGameBirchImageAnim
-
- .align 2
-gNewGameBirchObjectTemplate:: @ 855C244
- spr_template 0xFFFF, 0x1006, gNewGameBirchOamAttributes, gNewGameBirchImageAnimTable, gNewGameBirchPicTable, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gFieldEffectObjectPaletteInfo4:: @ 855C25C
- obj_pal gFieldEffectObjectPalette4, 0x1007
-
- .align 2
-gFieldEffectObjectPaletteInfo5:: @ 855C264
- obj_pal gFieldEffectObjectPalette5, 0x1010
-
- .align 2
-gOamData_855C26C:: @ 855C26C
- .2byte 0x4000, 0x8000, 0x0000, 0x0000
-
- .align 2
-gUnknown_855C274:: @ 855C274
- obj_frame_tiles gSpriteImage_855A970, 0x0020
-
- .align 2
-gUnknown_855C27C:: @ 855C27C
- obj_frame_tiles gSpriteImage_855A9B0, 0x00c0
- obj_frame_tiles gSpriteImage_855AA70, 0x00c0
-
- .align 2
-gUnknown_855C28C:: @ 855C28C
- obj_frame_tiles gSpriteImage_855AB30, 0x0200
-
- .align 2
-gUnknown_855C294:: @ 855C294
- obj_frame_tiles gSpriteImage_855AD30, 0x0200
-
- .align 2
-gSubspriteTable_855C29C:: @ 855C29C
- subsprite -12, -8, 2, 0, 16x8
- subsprite 4, -8, 2, 2, 8x8
- subsprite -12, 0, 2, 3, 16x8
- subsprite 4, 0, 2, 5, 8x8
-
- .align 2
-gUnknown_0855C2AC:: @ 855C2AC
- .4byte 4, gSubspriteTable_855C29C
-
- .align 2
-gSubspriteTable_855C2B4:: @ 855C2B4
- subsprite -32, -8, 2, 0, 32x8
- subsprite 0, -8, 2, 4, 32x8
- subsprite -32, 0, 2, 8, 32x8
- subsprite 0, 0, 2, 12, 32x8
-
- .align 2
-gUnknown_0855C2C4:: @ 855C2C4
- .4byte 4, gSubspriteTable_855C2B4
-
- .align 2
-gUnknown_0855C2CC:: @ 855C2CC
- .2byte 0x0000, 0x0001, 0xfffe, 0x0000
-
- .align 2
-gUnknown_0855C2D4:: @ 855C2D4
- .2byte 0x0000, 0x0010, 0x0001, 0x0010, 0x0000, 0x0010, 0x0001, 0x0010, 0x0000, 0x0010, 0x0001, 0x0010, 0x0000, 0x0010, 0x0001, 0x0010
- .2byte 0xffff, 0x0000
-
- .align 2
-gUnknown_0855C2F8:: @ 855C2F8
- .4byte gUnknown_0855C2CC
- .4byte gUnknown_0855C2D4
-
- .align 2
-gUnknown_0855C300:: @ 855C300
- .4byte gUnknown_0855C2CC
-
- .align 2
-gUnknown_0855C304:: @ 855C304
- spr_template 0xffff, 0x1007, gOamData_855C218, gUnknown_0855C2F8, gUnknown_855C274, gDummySpriteAffineAnimTable, sub_80B6828
-
- .align 2
-gUnknown_0855C31C:: @ 855C31C
- spr_template 0xffff, 0x1004, gOamData_855C220, gUnknown_0855C2F8, gUnknown_855C27C, gDummySpriteAffineAnimTable, sub_80B68AC
-
- .align 2
-gUnknown_0855C334:: @ 855C334
- spr_template 0xffff, 0x1010, gOamData_855C220, gUnknown_0855C300, gUnknown_855C28C, gDummySpriteAffineAnimTable, sub_80B6970
-
- .align 2
-gUnknown_0855C34C:: @ 855C34C
- spr_template 0xffff, 0x1010, gOamData_855C26C, gUnknown_0855C300, gUnknown_855C294, gDummySpriteAffineAnimTable, sub_80B6970
-
- .align 2
-gUnknown_0855C364:: @ 855C364
- .4byte sub_80B6214
- .4byte sub_80B6250
- .4byte sub_80B628C
- .4byte sub_80B62B4
-
- .align 2
-gUnknown_0855C374:: @ 855C374
- .4byte sub_80B6360
- .4byte sub_80B63D4
- .4byte sub_80B6404
- .4byte sub_80B642C
-
- .align 2
-gUnknown_0855C384:: @ 855C384
- .4byte sub_80B64DC
- .4byte sub_80B6574
- .4byte sub_80B65A8
- .4byte sub_80B66E8
- .4byte sub_80B67DC
- .4byte sub_80B67F8
- .4byte sub_80B6800
- .4byte nullsub_97
-
- .align 1
-gUnknown_0855C3A4:: @ 855C3A4
- .2byte 0x0000, 0x0000, 0x0006, 0x0000, 0x0000, 0x0004, 0x0006, 0x0004, 0x0000, 0x0008, 0x0006, 0x0008
-
-gUnknown_0855C3BC:: @ 855C3BC
- .byte 0x10, 0x0c, 0x08, 0x00
-
-gUnknown_0855C3C0:: @ 855C3C0
- .byte 0x10, 0x0c, 0x08, 0x00
-
-gUnknown_0855C3C4:: @ 855C3C4
- .byte 0x00, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_0855C3C8:: @ 855C3C8
- .4byte sub_80B6BCC
- .4byte sub_80B6C74
- .4byte sub_80B6C90
- .4byte sub_80B6D04
- .4byte sub_80B6DBC
- .4byte sub_80B6DD8
- .4byte sub_80B6E18
-
- .align 2
-gUnknown_0855C3E4:: @ 855C3E4
- .4byte sub_80B6EC0
- .4byte sub_80B6EE0
- .4byte sub_80B6F50
- .4byte sub_80B6F74
- .4byte sub_80B6F84
- .4byte sub_80B6FA8
-
- .align 2
-gUnknown_0855C3FC:: @ 855C3FC
- .4byte sub_80B7114
- .4byte sub_80B7190
- .4byte sub_80B71D0
- .4byte sub_80B7230
- .4byte sub_80B7270
- .4byte sub_80B72D0
- .4byte sub_80B72F4
-
- .align 2
-gUnknown_0855C418:: @ 855C418
- .4byte sub_80B73D0
- .4byte waterfall_1_do_anim_probably
- .4byte waterfall_2_wait_anim_finish_probably
- .4byte sub_80B7450
- .4byte sub_80B7478
-
- .align 2
-gUnknown_0855C42C:: @ 855C42C
- .4byte dive_1_lock
- .4byte dive_2_unknown
- .4byte dive_3_unknown
-
- .align 2
-gUnknown_0855C438:: @ 855C438
- .4byte sub_80B764C
- .4byte sub_80B7684
- .4byte sub_80B76B8
- .4byte sub_80B7704
- .4byte sub_80B77F8
- .4byte sub_80B7814
-
- .align 2
-gUnknown_0855C450:: @ 855C450
- .4byte sub_80B78EC
- .4byte sub_80B791C
- .4byte sub_80B7968
- .4byte sub_80B79BC
-
- .align 2
-gUnknown_0855C460:: @ 855C460
- .4byte sub_80B7AE8
- .4byte sub_80B7B18
- .4byte sub_80B7B94
- .4byte sub_80B7BCC
- .4byte sub_80B7BF4
-
- .align 2
-gUnknown_0855C474:: @ 855C474
- .4byte sub_80B7D14
- .4byte sub_80B7D34
-
-gUnknown_0855C47C:: @ 855C47C
- .byte 0x01, 0x03, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_0855C484:: @ 855C484
- .4byte sub_80B7EC4
- .4byte sub_80B7EE8
-
- .align 2
-gUnknown_0855C48C:: @ 855C48C
- .4byte sub_80B800C
- .4byte sub_80B8034
- .4byte sub_80B80C4
- .4byte sub_80B8198
-
- .align 2
-gUnknown_0855C49C:: @ 855C49C
- .4byte sub_80B8280
- .4byte sub_80B830C
- .4byte sub_80B8410
-
- .align 2
-gUnknown_0855C4A8:: @ 855C4A8
- .4byte sub_80B8584
- .4byte sub_80B85F8
- .4byte sub_80B8660
- .4byte sub_80B86EC
- .4byte sub_80B871C
- .4byte sub_80B8770
- .4byte overworld_bg_setup_2
-
- .align 2
-gUnknown_0855C4C4:: @ 855C4C4
- .4byte sub_80B88E4
- .4byte sub_80B8920
- .4byte sub_80B898C
- .4byte sub_80B89DC
- .4byte sub_80B8A0C
- .4byte sub_80B8A44
- .4byte sub_80B8A64
-
- .align 2
-gUnknown_0855C4E0:: @ 855C4E0
- .4byte sub_80B8DB4
- .4byte sub_80B8E14
- .4byte sub_80B8E60
- .4byte sub_80B8EA8
- .4byte sub_80B8F24
-
- .align 2
-gUnknown_0855C4F4:: @ 855C4F4
- .4byte sub_80B9204
- .4byte sub_80B925C
- .4byte sub_80B92A0
- .4byte sub_80B92F8
- .4byte sub_80B933C
- .4byte sub_80B9390
- .4byte sub_80B9418
- .4byte sub_80B9474
- .4byte sub_80B9494
-
- .align 2
-gUnknown_0855C518:: @ 855C518
- .2byte 0x0008, 0x0008, 0x00e2, 0x0000, 0x001c, 0x001c, 0x1e00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_0855C530:: @ 855C530
- .2byte 0x0100, 0x0100, 0x0040, 0x0000, 0xfff6, 0xfff6, 0x1600, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
-
- .align 2
-gUnknown_0855C548:: @ 855C548
- .4byte gUnknown_0855C518
- .4byte gUnknown_0855C530
-
- .align 2
-gUnknown_0855C550:: @ 855C550
- .4byte sub_80B9804
- .4byte sub_80B98B8
- .4byte sub_80B9924
- .4byte sub_80B9978
- .4byte sub_80B99F0
- .4byte sub_80B9A28
- .4byte sub_80B9A60
-
-gUnknown_0855C56C:: @ 855C56C
- .byte 0xfe, 0xff, 0xfc, 0xff, 0xfb, 0xff, 0xfa, 0xff, 0xf9, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf9, 0xff, 0xf9, 0xff, 0xfa, 0xff, 0xfb, 0xff, 0xfd, 0xff, 0xfe, 0xff, 0x00, 0x00, 0x02, 0x00
- .byte 0x04, 0x00, 0x08, 0x00
-
- .align 2
-gUnknown_0855C590:: @ 855C590
- .4byte sub_80B9C28
- .4byte sub_80B9C54
- .4byte sub_80B9CDC
-
- .align 2
-gUnknown_0855C59C:: @ 855C59C
- obj_frame_tiles gUnknown_0855C170, 0x0020
- obj_frame_tiles gUnknown_0855C170 + 0x20, 0x0020
- obj_frame_tiles gUnknown_0855C170 + 0x40, 0x0020
- obj_frame_tiles gUnknown_0855C170 + 0x60, 0x0020
-
- .align 2
-gUnknown_0855C5BC:: @ 855C5BC
- .2byte 0x0000, 0x0000, 0xffff, 0x0000
-
- .align 2
-gUnknown_0855C5C4:: @ 855C5C4
- .2byte 0x0001, 0x0000, 0xffff, 0x0000
-
- .align 2
-gUnknown_0855C5CC:: @ 855C5CC
- .2byte 0x0002, 0x0000, 0xffff, 0x0000
-
- .align 2
-gUnknown_0855C5D4:: @ 855C5D4
- .2byte 0x0003, 0x0000, 0xffff, 0x0000
-
- .align 2
-gUnknown_0855C5DC:: @ 855C5DC
- .4byte gUnknown_0855C5BC
- .4byte gUnknown_0855C5C4
- .4byte gUnknown_0855C5CC
- .4byte gUnknown_0855C5D4
-
- .align 2
-gUnknown_0855C5EC:: @ 855C5EC
- spr_template 0xffff, 0x111a, gOamData_855C218, gUnknown_0855C5DC, gUnknown_0855C59C, gDummySpriteAffineAnimTable, sub_80B9DB8
-
diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s
index c06497093..8dfbd6782 100644
--- a/data/field_effect_scripts.s
+++ b/data/field_effect_scripts.s
@@ -98,7 +98,7 @@ gFieldEffectScript_Ripple:: @ 82DBB02
field_eff_end
gFieldEffectScript_FieldMoveShowMon:: @ 82DBB0C
- field_eff_callnative sub_80B849C
+ field_eff_callnative FldEff_FieldMoveShowMon
field_eff_end
gFieldEffectScript_Ash:: @ 82DBB12
@@ -110,7 +110,7 @@ gFieldEffectScript_SurfBlob:: @ 82DBB1C
field_eff_end
gFieldEffectScript_UseSurf:: @ 82DBB22
- field_eff_callnative sub_80B8D44
+ field_eff_callnative FldEff_UseSurf
field_eff_end
gFieldEffectScript_GroundImpactDust:: @ 82DBB28
@@ -175,7 +175,7 @@ gFieldEffectScript_DeepSandFootprints:: @ 82DBBAC
gFieldEffectScript_Unknown25:: @ 82DBBB6
field_eff_loadfadedpal gFieldEffectObjectPaletteInfo4
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_80B61A0
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, FldEff_PokecenterHeal
field_eff_end
gFieldEffectScript_Unknown26:: @ 82DBBC5
@@ -195,15 +195,15 @@ gFieldEffectScript_MountainDisguise:: @ 82DBBD7
field_eff_end
gFieldEffectScript_Unknown30:: @ 82DBBDD
- field_eff_callnative sub_80B90CC
+ field_eff_callnative FldEff_NPCFlyOut
field_eff_end
gFieldEffectScript_UseFly:: @ 82DBBE3
- field_eff_callnative sub_80B91A4
+ field_eff_callnative FldEff_UseFly
field_eff_end
gFieldEffectScript_FlyIn:: @ 82DBBE9
- field_eff_callnative sub_80B97C0
+ field_eff_callnative FldEff_FlyIn
field_eff_end
gFieldEffectScript_ExclamationMarkIcon2:: @ 82DBBEF
@@ -247,11 +247,11 @@ gFieldEffectScript_HotSpringsWater:: @ 82DBC35
field_eff_end
gFieldEffectScript_Unknown43:: @ 82DBC3F
- field_eff_callnative oei_waterfall
+ field_eff_callnative FldEff_UseWaterfall
field_eff_end
gFieldEffectScript_Unknown44:: @ 82DBC45
- field_eff_callnative sub_80B74D0
+ field_eff_callnative FldEff_UseDive
field_eff_end
gFieldEffectScript_Unknown45:: @ 82DBC4B
@@ -272,11 +272,11 @@ gFieldEffectScript_Unknown48:: @ 82DBC66
field_eff_end
gFieldEffectScript_JumpOutOfAsh:: @ 82DBC6C
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, sub_80B7C48
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_PopOutOfAsh
field_eff_end
gFieldEffectScript_Unknown50:: @ 82DBC76
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, sub_80B79F4
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, FldEff_LavaridgeGymWarp
field_eff_end
gFieldEffectScript_Unknown51:: @ 82DBC80
@@ -312,7 +312,7 @@ gFieldEffectScript_Unknown58:: @ 82DBCC2
field_eff_end
gFieldEffectScript_FieldMoveShowMonInit:: @ 82DBCCC
- field_eff_callnative sub_80B84F8
+ field_eff_callnative FldEff_FieldMoveShowMonInit
field_eff_end
gFieldEffectScript_Unknown60:: @ 82DBCD2
@@ -325,7 +325,7 @@ gFieldEffectScript_Unknown61:: @ 82DBCD8
gFieldEffectScript_Unknown62:: @ 82DBCDE
field_eff_loadfadedpal gFieldEffectObjectPaletteInfo4
- field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo5, sub_80B62F4
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo5, FldEff_HallOfFameRecord
field_eff_end
gFieldEffectScript_Unknown63:: @ 82DBCED
diff --git a/data/field_tasks.s b/data/field_tasks.s
deleted file mode 100644
index 310fd0e2a..000000000
--- a/data/field_tasks.s
+++ /dev/null
@@ -1,99 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
-gUnknown_08510348:: @ 8510348
- .4byte nullsub_34
- .4byte sub_809E3B4
- .4byte sub_809DEF0
- .4byte sub_809DCB4
- .4byte sub_809E224
- .4byte EndTruckSequence
- .4byte sub_80EA3E4
- .4byte sub_809E4CC
-
-gUnknown_08510368:: @ 8510368
- .byte 0
- .byte 0
- .2byte 0x259
- .byte 0
- .byte 1
- .2byte 0x261
- .byte 0
- .byte 0xFF
- .2byte 0x259
- .byte 0
- .byte 0
- .2byte 0x261
- .byte 0
- .byte 0
- .2byte 0x252
- .byte 1
- .byte 0
- .2byte 0x253
- .byte 0xFF
- .byte 0
- .2byte 0x252
- .byte 0
- .byte 0
- .2byte 0x253
-
-gUnknown_08510388:: @ 8510388
- .byte 0
- .byte 0
- .2byte 0x25A
- .byte 0
- .byte 1
- .2byte 0x262
- .byte 0
- .byte 0xFF
- .2byte 0x25A
- .byte 0
- .byte 0
- .2byte 0x262
- .byte 0
- .byte 0
- .2byte 0x254
- .byte 1
- .byte 0
- .2byte 0x255
- .byte 0xFF
- .byte 0
- .2byte 0x254
- .byte 0
- .byte 0
- .2byte 0x255
-
-gUnknown_085103A8:: @ 85103A8
- .byte 0
- .byte 0
- .2byte 0x258
- .byte 0
- .byte 1
- .2byte 0x260
- .byte 0
- .byte 0xFF
- .2byte 0x258
- .byte 0
- .byte 0
- .2byte 0x260
- .byte 0
- .byte 0
- .2byte 0x250
- .byte 1
- .byte 0
- .2byte 0x251
- .byte 0xFF
- .byte 0
- .2byte 0x250
- .byte 0
- .byte 0
- .2byte 0x251
-
-gUnknown_085103C8:: @ 85103C8
- .2byte 0, 0, 0, 0, 0, 0, 0x4001, 0x4002, 0x4003, 0x4004, 0, 0, 0x4005, 0x4006, 0x4007, 0, 0, 0x4008, 0x4009, 0x400a, 0, 0, 0, 0, 0, 0
-
-gUnknown_085103FC:: @ 85103FC
- .2byte 0xE8, 0xeb, 0xea, 0xe9
diff --git a/data/maps/events/AquaHideout_B2F.inc b/data/maps/events/AquaHideout_B2F.inc
index 8a338a2bb..24f97a1ea 100644
--- a/data/maps/events/AquaHideout_B2F.inc
+++ b/data/maps/events/AquaHideout_B2F.inc
@@ -19,8 +19,8 @@ AquaHideout_B2F_MapWarps: @ 85355BC
warp_def 32, 20, 3, 4, AQUA_HIDEOUT_B1F
AquaHideout_B2F_MapCoordEvents: @ 853560C
- coord_event 28, 17, 3, 0, VAR_0x4001, 0, 0, AquaHideout_B2F_EventScript_233DE5
- coord_event 28, 16, 3, 0, VAR_0x4001, 0, 0, AquaHideout_B2F_EventScript_233DE5
+ coord_event 28, 17, 3, 0, VAR_TEMP_1, 0, 0, AquaHideout_B2F_EventScript_233DE5
+ coord_event 28, 16, 3, 0, VAR_TEMP_1, 0, 0, AquaHideout_B2F_EventScript_233DE5
AquaHideout_B2F_MapEvents:: @ 853562C
map_events AquaHideout_B2F_MapObjects, AquaHideout_B2F_MapWarps, AquaHideout_B2F_MapCoordEvents, 0x0
diff --git a/data/maps/events/BattleFrontier_BattlePikeRandomRoom1.inc b/data/maps/events/BattleFrontier_BattlePikeRandomRoom1.inc
index 40d5db12b..c7c3a36d0 100644
--- a/data/maps/events/BattleFrontier_BattlePikeRandomRoom1.inc
+++ b/data/maps/events/BattleFrontier_BattlePikeRandomRoom1.inc
@@ -3,13 +3,13 @@ BattleFrontier_BattlePikeRandomRoom1_MapObjects: @ 853CD54
object_event 2, MAP_OBJ_GFX_TRADER, 0, 0, 3, 4, 3, 8, 17, 0, 0, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D88D, 0, 0, 0
BattleFrontier_BattlePikeRandomRoom1_MapCoordEvents: @ 853CD84
- coord_event 4, 3, 3, 0, VAR_0x4001, 0, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C40A2
- coord_event 3, 6, 3, 0, VAR_0x4002, 0, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082
- coord_event 3, 7, 3, 0, VAR_0x4003, 1, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D
- coord_event 4, 6, 3, 0, VAR_0x4002, 0, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082
- coord_event 5, 6, 3, 0, VAR_0x4002, 0, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082
- coord_event 4, 7, 3, 0, VAR_0x4003, 1, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D
- coord_event 5, 7, 3, 0, VAR_0x4003, 1, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D
+ coord_event 4, 3, 3, 0, VAR_TEMP_1, 0, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C40A2
+ coord_event 3, 6, 3, 0, VAR_TEMP_2, 0, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082
+ coord_event 3, 7, 3, 0, VAR_TEMP_3, 1, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D
+ coord_event 4, 6, 3, 0, VAR_TEMP_2, 0, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082
+ coord_event 5, 6, 3, 0, VAR_TEMP_2, 0, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C4082
+ coord_event 4, 7, 3, 0, VAR_TEMP_3, 1, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D
+ coord_event 5, 7, 3, 0, VAR_TEMP_3, 1, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_2C408D
BattleFrontier_BattlePikeRandomRoom1_MapEvents:: @ 853CDF4
map_events BattleFrontier_BattlePikeRandomRoom1_MapObjects, 0x0, BattleFrontier_BattlePikeRandomRoom1_MapCoordEvents, 0x0
diff --git a/data/maps/events/BattleFrontier_BattlePikeRandomRoom3.inc b/data/maps/events/BattleFrontier_BattlePikeRandomRoom3.inc
index d2988ab50..20e6cb085 100644
--- a/data/maps/events/BattleFrontier_BattlePikeRandomRoom3.inc
+++ b/data/maps/events/BattleFrontier_BattlePikeRandomRoom3.inc
@@ -1,11 +1,11 @@
BattleFrontier_BattlePikeRandomRoom3_MapCoordEvents: @ 853CE34
- coord_event 4, 3, 3, 0, VAR_0x4001, 0, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4174
- coord_event 3, 18, 3, 0, VAR_0x4002, 0, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202
- coord_event 4, 18, 3, 0, VAR_0x4002, 0, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202
- coord_event 5, 18, 3, 0, VAR_0x4002, 0, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202
- coord_event 3, 19, 3, 0, VAR_0x4003, 1, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D
- coord_event 4, 19, 3, 0, VAR_0x4003, 1, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D
- coord_event 5, 19, 3, 0, VAR_0x4003, 1, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D
+ coord_event 4, 3, 3, 0, VAR_TEMP_1, 0, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4174
+ coord_event 3, 18, 3, 0, VAR_TEMP_2, 0, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202
+ coord_event 4, 18, 3, 0, VAR_TEMP_2, 0, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202
+ coord_event 5, 18, 3, 0, VAR_TEMP_2, 0, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C4202
+ coord_event 3, 19, 3, 0, VAR_TEMP_3, 1, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D
+ coord_event 4, 19, 3, 0, VAR_TEMP_3, 1, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D
+ coord_event 5, 19, 3, 0, VAR_TEMP_3, 1, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_2C420D
BattleFrontier_BattlePikeRandomRoom3_MapEvents:: @ 853CEA4
map_events 0x0, 0x0, BattleFrontier_BattlePikeRandomRoom3_MapCoordEvents, 0x0
diff --git a/data/maps/events/BattleFrontier_BattlePikeThreePathRoom.inc b/data/maps/events/BattleFrontier_BattlePikeThreePathRoom.inc
index 9345b5819..7894ab85a 100644
--- a/data/maps/events/BattleFrontier_BattlePikeThreePathRoom.inc
+++ b/data/maps/events/BattleFrontier_BattlePikeThreePathRoom.inc
@@ -3,15 +3,15 @@ BattleFrontier_BattlePikeThreePathRoom_MapObjects: @ 853CC80
object_event 2, MAP_OBJ_GFX_WOMAN_6, 0, 0, 8, 5, 3, 8, 0, 0, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CABB, 0, 0, 0
BattleFrontier_BattlePikeThreePathRoom_MapCoordEvents: @ 853CCB0
- coord_event 2, 3, 3, 0, VAR_0x4001, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F4E
- coord_event 6, 3, 3, 0, VAR_0x4001, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F59
- coord_event 10, 3, 3, 0, VAR_0x4001, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F64
- coord_event 5, 10, 0, 0, VAR_0x4003, 1, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C406D
- coord_event 6, 10, 0, 0, VAR_0x4003, 1, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C406D
- coord_event 6, 9, 3, 0, VAR_0x4002, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4062
- coord_event 5, 9, 3, 0, VAR_0x4002, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4062
- coord_event 7, 9, 3, 0, VAR_0x4002, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4062
- coord_event 7, 10, 0, 0, VAR_0x4003, 1, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C406D
+ coord_event 2, 3, 3, 0, VAR_TEMP_1, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F4E
+ coord_event 6, 3, 3, 0, VAR_TEMP_1, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F59
+ coord_event 10, 3, 3, 0, VAR_TEMP_1, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C3F64
+ coord_event 5, 10, 0, 0, VAR_TEMP_3, 1, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C406D
+ coord_event 6, 10, 0, 0, VAR_TEMP_3, 1, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C406D
+ coord_event 6, 9, 3, 0, VAR_TEMP_2, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4062
+ coord_event 5, 9, 3, 0, VAR_TEMP_2, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4062
+ coord_event 7, 9, 3, 0, VAR_TEMP_2, 0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C4062
+ coord_event 7, 10, 0, 0, VAR_TEMP_3, 1, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_2C406D
BattleFrontier_BattlePikeThreePathRoom_MapEvents:: @ 853CD40
map_events BattleFrontier_BattlePikeThreePathRoom_MapObjects, 0x0, BattleFrontier_BattlePikeThreePathRoom_MapCoordEvents, 0x0
diff --git a/data/maps/events/BattleFrontier_BattlePyramidTop.inc b/data/maps/events/BattleFrontier_BattlePyramidTop.inc
index d06650789..79e4770ea 100644
--- a/data/maps/events/BattleFrontier_BattlePyramidTop.inc
+++ b/data/maps/events/BattleFrontier_BattlePyramidTop.inc
@@ -3,7 +3,7 @@ BattleFrontier_BattlePyramidTop_MapObjects: @ 853C7C0
object_event 2, MAP_OBJ_GFX_BRANDON, 0, 0, 17, 7, 0, 7, 17, 0, 0, 0, 0x0, 0, 0, 0
BattleFrontier_BattlePyramidTop_MapCoordEvents: @ 853C7F0
- coord_event 17, 9, 4, 0, VAR_0x4002, 0, 0, BattleFrontier_BattlePyramidTop_EventScript_255256
+ coord_event 17, 9, 4, 0, VAR_TEMP_2, 0, 0, BattleFrontier_BattlePyramidTop_EventScript_255256
BattleFrontier_BattlePyramidTop_MapEvents:: @ 853C800
map_events BattleFrontier_BattlePyramidTop_MapObjects, 0x0, BattleFrontier_BattlePyramidTop_MapCoordEvents, 0x0
diff --git a/data/maps/events/DoubleBattleColosseum.inc b/data/maps/events/DoubleBattleColosseum.inc
index 401daaaf5..d1d4f0fef 100644
--- a/data/maps/events/DoubleBattleColosseum.inc
+++ b/data/maps/events/DoubleBattleColosseum.inc
@@ -5,10 +5,10 @@ DoubleBattleColosseum_MapWarps: @ 8539E88
warp_def 8, 8, 3, 127, NONE
DoubleBattleColosseum_MapCoordEvents: @ 8539EA8
- coord_event 3, 4, 3, 0, VAR_0x4000, 0, 0, gUnknown_08277388
- coord_event 3, 6, 3, 0, VAR_0x4000, 0, 0, gUnknown_082773BE
- coord_event 10, 4, 3, 0, VAR_0x4000, 0, 0, gUnknown_082773A3
- coord_event 10, 6, 3, 0, VAR_0x4000, 0, 0, gUnknown_082773D9
+ coord_event 3, 4, 3, 0, VAR_TEMP_0, 0, 0, gUnknown_08277388
+ coord_event 3, 6, 3, 0, VAR_TEMP_0, 0, 0, gUnknown_082773BE
+ coord_event 10, 4, 3, 0, VAR_TEMP_0, 0, 0, gUnknown_082773A3
+ coord_event 10, 6, 3, 0, VAR_TEMP_0, 0, 0, gUnknown_082773D9
DoubleBattleColosseum_MapEvents:: @ 8539EE8
map_events 0x0, DoubleBattleColosseum_MapWarps, DoubleBattleColosseum_MapCoordEvents, 0x0
diff --git a/data/maps/events/EverGrandeCity.inc b/data/maps/events/EverGrandeCity.inc
index 47fec07ea..fb471b4ff 100644
--- a/data/maps/events/EverGrandeCity.inc
+++ b/data/maps/events/EverGrandeCity.inc
@@ -5,17 +5,17 @@ EverGrandeCity_MapWarps: @ 8527588
warp_def 18, 27, 0, 1, VICTORY_ROAD_1F
EverGrandeCity_MapCoordEvents: @ 85275A8
- coord_event 17, 58, 1, 0, VAR_0x4001, 0, 0, EverGrandeCity_EventScript_1E7D46
- coord_event 16, 58, 1, 0, VAR_0x4001, 0, 0, EverGrandeCity_EventScript_1E7D46
- coord_event 18, 58, 1, 0, VAR_0x4001, 0, 0, EverGrandeCity_EventScript_1E7D46
- coord_event 19, 58, 1, 0, VAR_0x4001, 0, 0, EverGrandeCity_EventScript_1E7D46
- coord_event 20, 58, 1, 0, VAR_0x4001, 0, 0, EverGrandeCity_EventScript_1E7D46
- coord_event 21, 58, 1, 0, VAR_0x4001, 0, 0, EverGrandeCity_EventScript_1E7D46
- coord_event 22, 58, 1, 0, VAR_0x4001, 0, 0, EverGrandeCity_EventScript_1E7D46
- coord_event 23, 58, 1, 0, VAR_0x4001, 0, 0, EverGrandeCity_EventScript_1E7D46
- coord_event 24, 58, 1, 0, VAR_0x4001, 0, 0, EverGrandeCity_EventScript_1E7D46
- coord_event 25, 58, 1, 0, VAR_0x4001, 0, 0, EverGrandeCity_EventScript_1E7D46
- coord_event 26, 58, 1, 0, VAR_0x4001, 0, 0, EverGrandeCity_EventScript_1E7D46
+ coord_event 17, 58, 1, 0, VAR_TEMP_1, 0, 0, EverGrandeCity_EventScript_1E7D46
+ coord_event 16, 58, 1, 0, VAR_TEMP_1, 0, 0, EverGrandeCity_EventScript_1E7D46
+ coord_event 18, 58, 1, 0, VAR_TEMP_1, 0, 0, EverGrandeCity_EventScript_1E7D46
+ coord_event 19, 58, 1, 0, VAR_TEMP_1, 0, 0, EverGrandeCity_EventScript_1E7D46
+ coord_event 20, 58, 1, 0, VAR_TEMP_1, 0, 0, EverGrandeCity_EventScript_1E7D46
+ coord_event 21, 58, 1, 0, VAR_TEMP_1, 0, 0, EverGrandeCity_EventScript_1E7D46
+ coord_event 22, 58, 1, 0, VAR_TEMP_1, 0, 0, EverGrandeCity_EventScript_1E7D46
+ coord_event 23, 58, 1, 0, VAR_TEMP_1, 0, 0, EverGrandeCity_EventScript_1E7D46
+ coord_event 24, 58, 1, 0, VAR_TEMP_1, 0, 0, EverGrandeCity_EventScript_1E7D46
+ coord_event 25, 58, 1, 0, VAR_TEMP_1, 0, 0, EverGrandeCity_EventScript_1E7D46
+ coord_event 26, 58, 1, 0, VAR_TEMP_1, 0, 0, EverGrandeCity_EventScript_1E7D46
EverGrandeCity_MapBGEvents: @ 8527658
bg_event 19, 43, 5, 0, 0, EverGrandeCity_EventScript_1E7D2B
diff --git a/data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc b/data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc
index 11d501116..e765a7390 100644
--- a/data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc
+++ b/data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc
@@ -7,7 +7,7 @@ LilycoveCity_CoveLilyMotel_1F_MapWarps: @ 853114C
warp_def 2, 1, 0, 0, LILYCOVE_CITY_COVE_LILY_MOTEL_2F
LilycoveCity_CoveLilyMotel_1F_MapCoordEvents: @ 8531164
- coord_event 10, 2, 3, 0, VAR_0x4001, 0, 0, LilycoveCity_CoveLilyMotel_1F_EventScript_218211
+ coord_event 10, 2, 3, 0, VAR_TEMP_1, 0, 0, LilycoveCity_CoveLilyMotel_1F_EventScript_218211
LilycoveCity_CoveLilyMotel_1F_MapEvents:: @ 8531174
map_events LilycoveCity_CoveLilyMotel_1F_MapObjects, LilycoveCity_CoveLilyMotel_1F_MapWarps, LilycoveCity_CoveLilyMotel_1F_MapCoordEvents, 0x0
diff --git a/data/maps/events/MarineCave_End.inc b/data/maps/events/MarineCave_End.inc
index 385a05193..ad11733e1 100644
--- a/data/maps/events/MarineCave_End.inc
+++ b/data/maps/events/MarineCave_End.inc
@@ -5,7 +5,7 @@ MarineCave_End_MapWarps: @ 8537800
warp_def 20, 4, 0, 0, MARINE_CAVE_ENTRANCE
MarineCave_End_MapCoordEvents: @ 8537808
- coord_event 9, 26, 3, 0, VAR_0x4001, 1, 0, MarineCave_End_EventScript_23B01B
+ coord_event 9, 26, 3, 0, VAR_TEMP_1, 1, 0, MarineCave_End_EventScript_23B01B
MarineCave_End_MapEvents:: @ 8537818
map_events MarineCave_End_MapObjects, MarineCave_End_MapWarps, MarineCave_End_MapCoordEvents, 0x0
diff --git a/data/maps/events/MauvilleCity_Gym.inc b/data/maps/events/MauvilleCity_Gym.inc
index acbbeccef..44ae41601 100644
--- a/data/maps/events/MauvilleCity_Gym.inc
+++ b/data/maps/events/MauvilleCity_Gym.inc
@@ -12,10 +12,10 @@ MauvilleCity_Gym_MapWarps: @ 852FE04
warp_def 5, 20, 0, 0, MAUVILLE_CITY
MauvilleCity_Gym_MapCoordEvents: @ 852FE14
- coord_event 4, 12, 3, 0, VAR_0x4000, 0, 0, MauvilleCity_Gym_EventScript_20E01E
- coord_event 3, 9, 3, 0, VAR_0x4000, 0, 0, MauvilleCity_Gym_EventScript_20E043
- coord_event 0, 15, 3, 0, VAR_0x4000, 0, 0, MauvilleCity_Gym_EventScript_20DFF9
- coord_event 8, 9, 3, 0, VAR_0x4000, 0, 0, MauvilleCity_Gym_EventScript_20E068
+ coord_event 4, 12, 3, 0, VAR_TEMP_0, 0, 0, MauvilleCity_Gym_EventScript_20E01E
+ coord_event 3, 9, 3, 0, VAR_TEMP_0, 0, 0, MauvilleCity_Gym_EventScript_20E043
+ coord_event 0, 15, 3, 0, VAR_TEMP_0, 0, 0, MauvilleCity_Gym_EventScript_20DFF9
+ coord_event 8, 9, 3, 0, VAR_TEMP_0, 0, 0, MauvilleCity_Gym_EventScript_20E068
MauvilleCity_Gym_MapBGEvents: @ 852FE54
bg_event 3, 18, 0, 1, 0, MauvilleCity_Gym_EventScript_20E14B
diff --git a/data/maps/events/MossdeepCity.inc b/data/maps/events/MossdeepCity.inc
index 5d3717531..d048ecb5d 100644
--- a/data/maps/events/MossdeepCity.inc
+++ b/data/maps/events/MossdeepCity.inc
@@ -30,10 +30,10 @@ MossdeepCity_MapWarps: @ 85271B0
warp_def 36, 24, 0, 0, MOSSDEEP_CITY_GAME_CORNER_1F
MossdeepCity_MapCoordEvents: @ 8527200
- coord_event 25, 25, 0, 0, VAR_0x4001, 0, 0, MossdeepCity_EventScript_1E4B38
- coord_event 26, 25, 0, 0, VAR_0x4001, 0, 0, MossdeepCity_EventScript_1E4B38
- coord_event 32, 27, 0, 0, VAR_0x4001, 0, 0, MossdeepCity_EventScript_1E4B38
- coord_event 33, 27, 0, 0, VAR_0x4001, 0, 0, MossdeepCity_EventScript_1E4B38
+ coord_event 25, 25, 0, 0, VAR_TEMP_1, 0, 0, MossdeepCity_EventScript_1E4B38
+ coord_event 26, 25, 0, 0, VAR_TEMP_1, 0, 0, MossdeepCity_EventScript_1E4B38
+ coord_event 32, 27, 0, 0, VAR_TEMP_1, 0, 0, MossdeepCity_EventScript_1E4B38
+ coord_event 33, 27, 0, 0, VAR_TEMP_1, 0, 0, MossdeepCity_EventScript_1E4B38
coord_event 42, 21, 5, 0, VAR_0x405D, 1, 0, MossdeepCity_EventScript_1E4B41
coord_event 41, 22, 5, 0, VAR_0x405D, 1, 0, MossdeepCity_EventScript_1E4B41
coord_event 41, 23, 5, 0, VAR_0x405D, 1, 0, MossdeepCity_EventScript_1E4B41
diff --git a/data/maps/events/MossdeepCity_Gym.inc b/data/maps/events/MossdeepCity_Gym.inc
index cf3e42434..57a717638 100644
--- a/data/maps/events/MossdeepCity_Gym.inc
+++ b/data/maps/events/MossdeepCity_Gym.inc
@@ -53,15 +53,15 @@ MossdeepCity_Gym_MapWarps: @ 853284C
warp_def 21, 10, 0, 12, MOSSDEEP_CITY_GYM
MossdeepCity_Gym_MapCoordEvents: @ 85328BC
- coord_event 2, 21, 3, 0, VAR_0x4001, 0, 0, MossdeepCity_Gym_EventScript_220C67
- coord_event 8, 10, 3, 0, VAR_0x4001, 0, 0, MossdeepCity_Gym_EventScript_220C7D
- coord_event 6, 7, 3, 0, VAR_0x4001, 0, 0, MossdeepCity_Gym_EventScript_220C7D
- coord_event 15, 34, 3, 0, VAR_0x4001, 0, 0, MossdeepCity_Gym_EventScript_220C93
- coord_event 23, 24, 3, 0, VAR_0x4001, 0, 0, MossdeepCity_Gym_EventScript_220CA9
- coord_event 23, 21, 3, 0, VAR_0x4001, 0, 0, MossdeepCity_Gym_EventScript_220CA9
- coord_event 8, 6, 3, 0, VAR_0x4001, 0, 0, MossdeepCity_Gym_EventScript_220CBF
- coord_event 21, 6, 0, 0, VAR_0x4001, 0, 0, MossdeepCity_Gym_EventScript_220AF1
- coord_event 3, 30, 3, 0, VAR_0x4001, 0, 0, MossdeepCity_Gym_EventScript_220C67
+ coord_event 2, 21, 3, 0, VAR_TEMP_1, 0, 0, MossdeepCity_Gym_EventScript_220C67
+ coord_event 8, 10, 3, 0, VAR_TEMP_1, 0, 0, MossdeepCity_Gym_EventScript_220C7D
+ coord_event 6, 7, 3, 0, VAR_TEMP_1, 0, 0, MossdeepCity_Gym_EventScript_220C7D
+ coord_event 15, 34, 3, 0, VAR_TEMP_1, 0, 0, MossdeepCity_Gym_EventScript_220C93
+ coord_event 23, 24, 3, 0, VAR_TEMP_1, 0, 0, MossdeepCity_Gym_EventScript_220CA9
+ coord_event 23, 21, 3, 0, VAR_TEMP_1, 0, 0, MossdeepCity_Gym_EventScript_220CA9
+ coord_event 8, 6, 3, 0, VAR_TEMP_1, 0, 0, MossdeepCity_Gym_EventScript_220CBF
+ coord_event 21, 6, 0, 0, VAR_TEMP_1, 0, 0, MossdeepCity_Gym_EventScript_220AF1
+ coord_event 3, 30, 3, 0, VAR_TEMP_1, 0, 0, MossdeepCity_Gym_EventScript_220C67
MossdeepCity_Gym_MapBGEvents: @ 853294C
bg_event 4, 34, 0, 1, 0, MossdeepCity_Gym_EventScript_220C33
diff --git a/data/maps/events/NavelRock_Top.inc b/data/maps/events/NavelRock_Top.inc
index 6fb99be16..695011311 100644
--- a/data/maps/events/NavelRock_Top.inc
+++ b/data/maps/events/NavelRock_Top.inc
@@ -5,7 +5,7 @@ NavelRock_Top_MapWarps: @ 853DB8C
warp_def 13, 20, 3, 1, NAVEL_ROCK_UP_4
NavelRock_Top_MapCoordEvents: @ 853DB94
- coord_event 12, 10, 3, 0, VAR_0x4001, 0, 0, NavelRock_Top_EventScript_26916F
+ coord_event 12, 10, 3, 0, VAR_TEMP_1, 0, 0, NavelRock_Top_EventScript_26916F
NavelRock_Top_MapBGEvents: @ 853DBA4
bg_event 12, 9, 3, 7, 0, ITEM_SACRED_ASH, 109, 0
diff --git a/data/maps/events/NewMauville_Inside.inc b/data/maps/events/NewMauville_Inside.inc
index 74255c763..a2d81c9c1 100644
--- a/data/maps/events/NewMauville_Inside.inc
+++ b/data/maps/events/NewMauville_Inside.inc
@@ -12,15 +12,15 @@ NewMauville_Inside_MapWarps: @ 8536568
warp_def 32, 33, 3, 1, NEW_MAUVILLE_ENTRANCE
NewMauville_Inside_MapCoordEvents: @ 8536570
- coord_event 30, 38, 3, 0, VAR_0x4001, 0, 0, NewMauville_Inside_EventScript_237459
- coord_event 18, 36, 3, 0, VAR_0x4002, 0, 0, NewMauville_Inside_EventScript_237471
- coord_event 4, 26, 3, 0, VAR_0x4001, 0, 0, NewMauville_Inside_EventScript_237459
- coord_event 16, 22, 3, 0, VAR_0x4001, 0, 0, NewMauville_Inside_EventScript_237459
- coord_event 25, 18, 3, 0, VAR_0x4002, 0, 0, NewMauville_Inside_EventScript_237471
- coord_event 2, 11, 3, 0, VAR_0x4002, 0, 0, NewMauville_Inside_EventScript_237471
- coord_event 6, 11, 3, 0, VAR_0x4001, 0, 0, NewMauville_Inside_EventScript_237459
- coord_event 13, 10, 3, 0, VAR_0x4001, 0, 0, NewMauville_Inside_EventScript_237459
- coord_event 17, 10, 3, 0, VAR_0x4002, 0, 0, NewMauville_Inside_EventScript_237471
+ coord_event 30, 38, 3, 0, VAR_TEMP_1, 0, 0, NewMauville_Inside_EventScript_237459
+ coord_event 18, 36, 3, 0, VAR_TEMP_2, 0, 0, NewMauville_Inside_EventScript_237471
+ coord_event 4, 26, 3, 0, VAR_TEMP_1, 0, 0, NewMauville_Inside_EventScript_237459
+ coord_event 16, 22, 3, 0, VAR_TEMP_1, 0, 0, NewMauville_Inside_EventScript_237459
+ coord_event 25, 18, 3, 0, VAR_TEMP_2, 0, 0, NewMauville_Inside_EventScript_237471
+ coord_event 2, 11, 3, 0, VAR_TEMP_2, 0, 0, NewMauville_Inside_EventScript_237471
+ coord_event 6, 11, 3, 0, VAR_TEMP_1, 0, 0, NewMauville_Inside_EventScript_237459
+ coord_event 13, 10, 3, 0, VAR_TEMP_1, 0, 0, NewMauville_Inside_EventScript_237459
+ coord_event 17, 10, 3, 0, VAR_TEMP_2, 0, 0, NewMauville_Inside_EventScript_237471
coord_event 33, 6, 3, 0, VAR_0x40BA, 1, 0, NewMauville_Inside_EventScript_237725
NewMauville_Inside_MapBGEvents: @ 8536610
diff --git a/data/maps/events/RecordCorner.inc b/data/maps/events/RecordCorner.inc
index 67c2c56da..672abbbd4 100644
--- a/data/maps/events/RecordCorner.inc
+++ b/data/maps/events/RecordCorner.inc
@@ -8,10 +8,10 @@ RecordCorner_MapWarps: @ 8539E14
warp_def 10, 9, 3, 127, NONE
RecordCorner_MapCoordEvents: @ 8539E34
- coord_event 6, 4, 3, 0, VAR_0x4000, 0, 0, gUnknown_0827741D
- coord_event 6, 6, 3, 0, VAR_0x4000, 0, 0, gUnknown_08277447
- coord_event 13, 4, 3, 0, VAR_0x4000, 0, 0, gUnknown_08277432
- coord_event 13, 6, 3, 0, VAR_0x4000, 0, 0, gUnknown_0827745C
+ coord_event 6, 4, 3, 0, VAR_TEMP_0, 0, 0, gUnknown_0827741D
+ coord_event 6, 6, 3, 0, VAR_TEMP_0, 0, 0, gUnknown_08277447
+ coord_event 13, 4, 3, 0, VAR_TEMP_0, 0, 0, gUnknown_08277432
+ coord_event 13, 6, 3, 0, VAR_TEMP_0, 0, 0, gUnknown_0827745C
RecordCorner_MapEvents:: @ 8539E74
map_events RecordCorner_MapObjects, RecordCorner_MapWarps, RecordCorner_MapCoordEvents, 0x0
diff --git a/data/maps/events/Route110_SeasideCyclingRoadEntrance1.inc b/data/maps/events/Route110_SeasideCyclingRoadEntrance1.inc
index ec107e176..37d3065c5 100644
--- a/data/maps/events/Route110_SeasideCyclingRoadEntrance1.inc
+++ b/data/maps/events/Route110_SeasideCyclingRoadEntrance1.inc
@@ -8,8 +8,8 @@ Route110_SeasideCyclingRoadEntrance1_MapWarps: @ 853E9B8
warp_def 13, 5, 0, 5, ROUTE_110
Route110_SeasideCyclingRoadEntrance1_MapCoordEvents: @ 853E9D8
- coord_event 7, 4, 3, 0, VAR_0x4001, 0, 0, Route110_SeasideCyclingRoadEntrance1_EventScript_26EA84
- coord_event 5, 4, 3, 0, VAR_0x4001, 1, 0, Route110_SeasideCyclingRoadEntrance1_EventScript_26EAB6
+ coord_event 7, 4, 3, 0, VAR_TEMP_1, 0, 0, Route110_SeasideCyclingRoadEntrance1_EventScript_26EA84
+ coord_event 5, 4, 3, 0, VAR_TEMP_1, 1, 0, Route110_SeasideCyclingRoadEntrance1_EventScript_26EAB6
Route110_SeasideCyclingRoadEntrance1_MapEvents:: @ 853E9F8
map_events Route110_SeasideCyclingRoadEntrance1_MapObjects, Route110_SeasideCyclingRoadEntrance1_MapWarps, Route110_SeasideCyclingRoadEntrance1_MapCoordEvents, 0x0
diff --git a/data/maps/events/Route110_SeasideCyclingRoadEntrance2.inc b/data/maps/events/Route110_SeasideCyclingRoadEntrance2.inc
index 23b8f7253..38e02b9ce 100644
--- a/data/maps/events/Route110_SeasideCyclingRoadEntrance2.inc
+++ b/data/maps/events/Route110_SeasideCyclingRoadEntrance2.inc
@@ -8,8 +8,8 @@ Route110_SeasideCyclingRoadEntrance2_MapWarps: @ 853EA24
warp_def 13, 5, 0, 3, ROUTE_110
Route110_SeasideCyclingRoadEntrance2_MapCoordEvents: @ 853EA44
- coord_event 7, 4, 3, 0, VAR_0x4001, 0, 0, Route110_SeasideCyclingRoadEntrance2_EventScript_26EBD0
- coord_event 5, 4, 3, 0, VAR_0x4001, 1, 0, Route110_SeasideCyclingRoadEntrance2_EventScript_26EC13
+ coord_event 7, 4, 3, 0, VAR_TEMP_1, 0, 0, Route110_SeasideCyclingRoadEntrance2_EventScript_26EBD0
+ coord_event 5, 4, 3, 0, VAR_TEMP_1, 1, 0, Route110_SeasideCyclingRoadEntrance2_EventScript_26EC13
Route110_SeasideCyclingRoadEntrance2_MapEvents:: @ 853EA64
map_events Route110_SeasideCyclingRoadEntrance2_MapObjects, Route110_SeasideCyclingRoadEntrance2_MapWarps, Route110_SeasideCyclingRoadEntrance2_MapCoordEvents, 0x0
diff --git a/data/maps/events/Route110_TrickHouseEnd.inc b/data/maps/events/Route110_TrickHouseEnd.inc
index 42ff2196c..34ebbc229 100644
--- a/data/maps/events/Route110_TrickHouseEnd.inc
+++ b/data/maps/events/Route110_TrickHouseEnd.inc
@@ -6,7 +6,7 @@ Route110_TrickHouseEnd_MapWarps: @ 853DF14
warp_def 2, 1, 3, 0, ROUTE_110_TRICK_HOUSE_CORRIDOR
Route110_TrickHouseEnd_MapCoordEvents: @ 853DF24
- coord_event 2, 2, 3, 0, VAR_0x4002, 0, 0, Route110_TrickHouseEnd_EventScript_26B041
+ coord_event 2, 2, 3, 0, VAR_TEMP_2, 0, 0, Route110_TrickHouseEnd_EventScript_26B041
Route110_TrickHouseEnd_MapBGEvents: @ 853DF34
bg_event 4, 5, 3, 7, 0, ITEM_NUGGET, 1, 0
diff --git a/data/maps/events/Route110_TrickHousePuzzle2.inc b/data/maps/events/Route110_TrickHousePuzzle2.inc
index 007be3861..92f2bad01 100644
--- a/data/maps/events/Route110_TrickHousePuzzle2.inc
+++ b/data/maps/events/Route110_TrickHousePuzzle2.inc
@@ -11,10 +11,10 @@ Route110_TrickHousePuzzle2_MapWarps: @ 853E1A0
warp_def 13, 1, 3, 0, ROUTE_110_TRICK_HOUSE_END
Route110_TrickHousePuzzle2_MapCoordEvents: @ 853E1B8
- coord_event 11, 12, 3, 0, VAR_0x4001, 0, 0, Route110_TrickHousePuzzle2_EventScript_26BBDD
- coord_event 0, 4, 0, 0, VAR_0x4002, 0, 0, Route110_TrickHousePuzzle2_EventScript_26BBF0
- coord_event 14, 5, 3, 0, VAR_0x4003, 0, 0, Route110_TrickHousePuzzle2_EventScript_26BC03
- coord_event 7, 11, 3, 0, VAR_0x4004, 0, 0, Route110_TrickHousePuzzle2_EventScript_26BC16
+ coord_event 11, 12, 3, 0, VAR_TEMP_1, 0, 0, Route110_TrickHousePuzzle2_EventScript_26BBDD
+ coord_event 0, 4, 0, 0, VAR_TEMP_2, 0, 0, Route110_TrickHousePuzzle2_EventScript_26BBF0
+ coord_event 14, 5, 3, 0, VAR_TEMP_3, 0, 0, Route110_TrickHousePuzzle2_EventScript_26BC03
+ coord_event 7, 11, 3, 0, VAR_TEMP_4, 0, 0, Route110_TrickHousePuzzle2_EventScript_26BC16
Route110_TrickHousePuzzle2_MapBGEvents: @ 853E1F8
bg_event 14, 14, 0, 0, 0, Route110_TrickHousePuzzle2_EventScript_26BBC0
diff --git a/data/maps/events/Route110_TrickHousePuzzle3.inc b/data/maps/events/Route110_TrickHousePuzzle3.inc
index 88aedca9f..c3070fafe 100644
--- a/data/maps/events/Route110_TrickHousePuzzle3.inc
+++ b/data/maps/events/Route110_TrickHousePuzzle3.inc
@@ -13,10 +13,10 @@ Route110_TrickHousePuzzle3_MapWarps: @ 853E2C0
warp_def 13, 1, 3, 0, ROUTE_110_TRICK_HOUSE_END
Route110_TrickHousePuzzle3_MapCoordEvents: @ 853E2D8
- coord_event 4, 14, 3, 0, VAR_0x4001, 0, 0, Route110_TrickHousePuzzle3_EventScript_26C4CD
- coord_event 3, 11, 3, 0, VAR_0x4002, 0, 0, Route110_TrickHousePuzzle3_EventScript_26C4D9
- coord_event 12, 5, 3, 0, VAR_0x4003, 0, 0, Route110_TrickHousePuzzle3_EventScript_26C4E5
- coord_event 8, 2, 3, 0, VAR_0x4004, 0, 0, Route110_TrickHousePuzzle3_EventScript_26C4F1
+ coord_event 4, 14, 3, 0, VAR_TEMP_1, 0, 0, Route110_TrickHousePuzzle3_EventScript_26C4CD
+ coord_event 3, 11, 3, 0, VAR_TEMP_2, 0, 0, Route110_TrickHousePuzzle3_EventScript_26C4D9
+ coord_event 12, 5, 3, 0, VAR_TEMP_3, 0, 0, Route110_TrickHousePuzzle3_EventScript_26C4E5
+ coord_event 8, 2, 3, 0, VAR_TEMP_4, 0, 0, Route110_TrickHousePuzzle3_EventScript_26C4F1
Route110_TrickHousePuzzle3_MapBGEvents: @ 853E318
bg_event 0, 14, 0, 0, 0, Route110_TrickHousePuzzle3_EventScript_26C5A7
diff --git a/data/maps/events/Route110_TrickHousePuzzle5.inc b/data/maps/events/Route110_TrickHousePuzzle5.inc
index 7d15de921..801448b12 100644
--- a/data/maps/events/Route110_TrickHousePuzzle5.inc
+++ b/data/maps/events/Route110_TrickHousePuzzle5.inc
@@ -11,28 +11,28 @@ Route110_TrickHousePuzzle5_MapWarps: @ 853E538
warp_def 13, 1, 3, 0, ROUTE_110_TRICK_HOUSE_END
Route110_TrickHousePuzzle5_MapCoordEvents: @ 853E550
- coord_event 5, 17, 3, 0, VAR_0x4001, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CBD7
- coord_event 4, 17, 3, 0, VAR_0x4001, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CBE3
- coord_event 3, 17, 3, 0, VAR_0x4001, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CBEF
- coord_event 2, 17, 3, 0, VAR_0x4001, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CBFB
- coord_event 1, 7, 3, 0, VAR_0x4002, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC13
- coord_event 2, 7, 3, 0, VAR_0x4002, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC1F
- coord_event 13, 10, 3, 0, VAR_0x4003, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC5B
- coord_event 12, 10, 3, 0, VAR_0x4003, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC67
- coord_event 11, 10, 3, 0, VAR_0x4003, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC73
- coord_event 13, 19, 3, 0, VAR_0x4004, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC97
- coord_event 12, 19, 3, 0, VAR_0x4004, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CCA3
- coord_event 11, 4, 3, 0, VAR_0x4005, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CCDF
- coord_event 1, 17, 3, 0, VAR_0x4001, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC07
- coord_event 3, 7, 3, 0, VAR_0x4002, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC2B
- coord_event 4, 7, 3, 0, VAR_0x4002, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC37
- coord_event 5, 7, 3, 0, VAR_0x4002, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC43
- coord_event 6, 7, 3, 0, VAR_0x4002, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC4F
- coord_event 10, 10, 3, 0, VAR_0x4003, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC7F
- coord_event 9, 10, 3, 0, VAR_0x4003, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC8B
- coord_event 11, 19, 3, 0, VAR_0x4004, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CCAF
- coord_event 10, 19, 3, 0, VAR_0x4004, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CCBB
- coord_event 9, 19, 3, 0, VAR_0x4004, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CCC7
+ coord_event 5, 17, 3, 0, VAR_TEMP_1, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CBD7
+ coord_event 4, 17, 3, 0, VAR_TEMP_1, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CBE3
+ coord_event 3, 17, 3, 0, VAR_TEMP_1, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CBEF
+ coord_event 2, 17, 3, 0, VAR_TEMP_1, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CBFB
+ coord_event 1, 7, 3, 0, VAR_TEMP_2, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC13
+ coord_event 2, 7, 3, 0, VAR_TEMP_2, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC1F
+ coord_event 13, 10, 3, 0, VAR_TEMP_3, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC5B
+ coord_event 12, 10, 3, 0, VAR_TEMP_3, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC67
+ coord_event 11, 10, 3, 0, VAR_TEMP_3, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC73
+ coord_event 13, 19, 3, 0, VAR_TEMP_4, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC97
+ coord_event 12, 19, 3, 0, VAR_TEMP_4, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CCA3
+ coord_event 11, 4, 3, 0, VAR_TEMP_5, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CCDF
+ coord_event 1, 17, 3, 0, VAR_TEMP_1, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC07
+ coord_event 3, 7, 3, 0, VAR_TEMP_2, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC2B
+ coord_event 4, 7, 3, 0, VAR_TEMP_2, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC37
+ coord_event 5, 7, 3, 0, VAR_TEMP_2, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC43
+ coord_event 6, 7, 3, 0, VAR_TEMP_2, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC4F
+ coord_event 10, 10, 3, 0, VAR_TEMP_3, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC7F
+ coord_event 9, 10, 3, 0, VAR_TEMP_3, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CC8B
+ coord_event 11, 19, 3, 0, VAR_TEMP_4, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CCAF
+ coord_event 10, 19, 3, 0, VAR_TEMP_4, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CCBB
+ coord_event 9, 19, 3, 0, VAR_TEMP_4, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CCC7
Route110_TrickHousePuzzle5_MapBGEvents: @ 853E6B0
bg_event 11, 21, 0, 0, 0, Route110_TrickHousePuzzle5_EventScript_26CB15
diff --git a/data/maps/events/Route110_TrickHousePuzzle7.inc b/data/maps/events/Route110_TrickHousePuzzle7.inc
index 49003a63e..8da2bab85 100644
--- a/data/maps/events/Route110_TrickHousePuzzle7.inc
+++ b/data/maps/events/Route110_TrickHousePuzzle7.inc
@@ -25,10 +25,10 @@ Route110_TrickHousePuzzle7_MapWarps: @ 853E840
warp_def 8, 12, 0, 11, ROUTE_110_TRICK_HOUSE_PUZZLE_7
Route110_TrickHousePuzzle7_MapCoordEvents: @ 853E8A8
- coord_event 8, 19, 0, 0, VAR_0x4001, 0, 0, Route110_TrickHousePuzzle7_EventScript_26E31B
- coord_event 0, 14, 0, 0, VAR_0x4001, 0, 0, Route110_TrickHousePuzzle7_EventScript_26E331
- coord_event 6, 6, 0, 0, VAR_0x4001, 0, 0, Route110_TrickHousePuzzle7_EventScript_26E347
- coord_event 9, 7, 0, 0, VAR_0x4001, 0, 0, Route110_TrickHousePuzzle7_EventScript_26E35D
+ coord_event 8, 19, 0, 0, VAR_TEMP_1, 0, 0, Route110_TrickHousePuzzle7_EventScript_26E31B
+ coord_event 0, 14, 0, 0, VAR_TEMP_1, 0, 0, Route110_TrickHousePuzzle7_EventScript_26E331
+ coord_event 6, 6, 0, 0, VAR_TEMP_1, 0, 0, Route110_TrickHousePuzzle7_EventScript_26E347
+ coord_event 9, 7, 0, 0, VAR_TEMP_1, 0, 0, Route110_TrickHousePuzzle7_EventScript_26E35D
Route110_TrickHousePuzzle7_MapBGEvents: @ 853E8E8
bg_event 6, 17, 0, 0, 0, Route110_TrickHousePuzzle7_EventScript_26E1D0
diff --git a/data/maps/events/Route111.inc b/data/maps/events/Route111.inc
index 564b94797..9c79e2c52 100644
--- a/data/maps/events/Route111.inc
+++ b/data/maps/events/Route111.inc
@@ -55,21 +55,21 @@ Route111_MapWarps: @ 8529640
Route111_MapCoordEvents: @ 8529668
coord_event 12, 62, 3, 0, 0, 0, 0, Route111_EventScript_1F0FBD
- coord_event 11, 61, 3, 0, VAR_0x4003, 0, 0, Route111_EventScript_1F0F0A
- coord_event 12, 61, 3, 0, VAR_0x4003, 0, 0, Route111_EventScript_1F0F0A
- coord_event 13, 61, 3, 0, VAR_0x4003, 0, 0, Route111_EventScript_1F0F0A
+ coord_event 11, 61, 3, 0, VAR_TEMP_3, 0, 0, Route111_EventScript_1F0F0A
+ coord_event 12, 61, 3, 0, VAR_TEMP_3, 0, 0, Route111_EventScript_1F0F0A
+ coord_event 13, 61, 3, 0, VAR_TEMP_3, 0, 0, Route111_EventScript_1F0F0A
coord_event 7, 63, 3, 0, 0, 0, 0, Route111_EventScript_1F0FB0
- coord_event 12, 44, 3, 0, VAR_0x4003, 0, 0, Route111_EventScript_1F0F16
- coord_event 13, 43, 3, 0, VAR_0x4003, 0, 0, Route111_EventScript_1F0F16
- coord_event 14, 42, 3, 0, VAR_0x4003, 0, 0, Route111_EventScript_1F0F16
- coord_event 16, 40, 3, 0, VAR_0x4003, 0, 0, Route111_EventScript_1F0F16
- coord_event 14, 61, 3, 0, VAR_0x4003, 0, 0, Route111_EventScript_1F0F0A
+ coord_event 12, 44, 3, 0, VAR_TEMP_3, 0, 0, Route111_EventScript_1F0F16
+ coord_event 13, 43, 3, 0, VAR_TEMP_3, 0, 0, Route111_EventScript_1F0F16
+ coord_event 14, 42, 3, 0, VAR_TEMP_3, 0, 0, Route111_EventScript_1F0F16
+ coord_event 16, 40, 3, 0, VAR_TEMP_3, 0, 0, Route111_EventScript_1F0F16
+ coord_event 14, 61, 3, 0, VAR_TEMP_3, 0, 0, Route111_EventScript_1F0F0A
coord_event 18, 32, 3, 0, 0, 0, 0, Route111_EventScript_1F0FB0
coord_event 17, 31, 3, 0, 0, 0, 0, Route111_EventScript_1F0FB0
coord_event 9, 37, 3, 0, 0, 0, 0, Route111_EventScript_1F0FB0
coord_event 10, 36, 3, 0, 0, 0, 0, Route111_EventScript_1F0FB0
- coord_event 17, 39, 3, 0, VAR_0x4003, 0, 0, Route111_EventScript_1F0F16
- coord_event 18, 38, 3, 0, VAR_0x4003, 0, 0, Route111_EventScript_1F0F16
+ coord_event 17, 39, 3, 0, VAR_TEMP_3, 0, 0, Route111_EventScript_1F0F16
+ coord_event 18, 38, 3, 0, VAR_TEMP_3, 0, 0, Route111_EventScript_1F0F16
coord_event 8, 64, 3, 0, 0, 0, 0, Route111_EventScript_1F0FB0
coord_event 9, 65, 3, 0, 0, 0, 0, Route111_EventScript_1F0FB0
coord_event 10, 65, 3, 0, 0, 0, 0, Route111_EventScript_1F0FB0
diff --git a/data/maps/events/Route121_SafariZoneEntrance.inc b/data/maps/events/Route121_SafariZoneEntrance.inc
index cad82a51a..258571e17 100644
--- a/data/maps/events/Route121_SafariZoneEntrance.inc
+++ b/data/maps/events/Route121_SafariZoneEntrance.inc
@@ -10,7 +10,7 @@ Route121_SafariZoneEntrance_MapWarps: @ 8533F24
warp_def 15, 13, 0, 0, ROUTE_121
Route121_SafariZoneEntrance_MapCoordEvents: @ 8533F44
- coord_event 8, 4, 3, 0, VAR_0x4001, 0, 0, Route121_SafariZoneEntrance_EventScript_22BC18
+ coord_event 8, 4, 3, 0, VAR_TEMP_1, 0, 0, Route121_SafariZoneEntrance_EventScript_22BC18
Route121_SafariZoneEntrance_MapBGEvents: @ 8533F54
bg_event 15, 1, 0, 0, 0, Route121_SafariZoneEntrance_EventScript_22BD21
diff --git a/data/maps/events/SingleBattleColosseum.inc b/data/maps/events/SingleBattleColosseum.inc
index 6672b1221..ad8a393d6 100644
--- a/data/maps/events/SingleBattleColosseum.inc
+++ b/data/maps/events/SingleBattleColosseum.inc
@@ -6,8 +6,8 @@ SingleBattleColosseum_MapWarps: @ 8539D5C
warp_def 7, 8, 3, 127, NONE
SingleBattleColosseum_MapCoordEvents: @ 8539D6C
- coord_event 3, 5, 3, 0, VAR_0x4000, 0, 0, gUnknown_08277374
- coord_event 10, 5, 3, 0, VAR_0x4000, 0, 0, gUnknown_0827737E
+ coord_event 3, 5, 3, 0, VAR_TEMP_0, 0, 0, gUnknown_08277374
+ coord_event 10, 5, 3, 0, VAR_TEMP_0, 0, 0, gUnknown_0827737E
SingleBattleColosseum_MapEvents:: @ 8539D8C
map_events SingleBattleColosseum_MapObjects, SingleBattleColosseum_MapWarps, SingleBattleColosseum_MapCoordEvents, 0x0
diff --git a/data/maps/events/TerraCave_End.inc b/data/maps/events/TerraCave_End.inc
index 2421cba40..0e3c0f0bb 100644
--- a/data/maps/events/TerraCave_End.inc
+++ b/data/maps/events/TerraCave_End.inc
@@ -5,7 +5,7 @@ TerraCave_End_MapWarps: @ 8537868
warp_def 5, 4, 3, 1, TERRA_CAVE_ENTRANCE
TerraCave_End_MapCoordEvents: @ 8537870
- coord_event 17, 26, 3, 0, VAR_0x4001, 1, 0, TerraCave_End_EventScript_23B0EC
+ coord_event 17, 26, 3, 0, VAR_TEMP_1, 1, 0, TerraCave_End_EventScript_23B0EC
TerraCave_End_MapEvents:: @ 8537880
map_events TerraCave_End_MapObjects, TerraCave_End_MapWarps, TerraCave_End_MapCoordEvents, 0x0
diff --git a/data/maps/events/TradeCenter.inc b/data/maps/events/TradeCenter.inc
index ffb999b22..dea4f52c3 100644
--- a/data/maps/events/TradeCenter.inc
+++ b/data/maps/events/TradeCenter.inc
@@ -6,8 +6,8 @@ TradeCenter_MapWarps: @ 8539DB8
warp_def 6, 8, 3, 127, NONE
TradeCenter_MapCoordEvents: @ 8539DC8
- coord_event 4, 5, 3, 0, VAR_0x4000, 0, 0, gUnknown_082773F5
- coord_event 7, 5, 3, 0, VAR_0x4000, 0, 0, gUnknown_082773FF
+ coord_event 4, 5, 3, 0, VAR_TEMP_0, 0, 0, gUnknown_082773F5
+ coord_event 7, 5, 3, 0, VAR_TEMP_0, 0, 0, gUnknown_082773FF
TradeCenter_MapEvents:: @ 8539DE8
map_events TradeCenter_MapObjects, TradeCenter_MapWarps, TradeCenter_MapCoordEvents, 0x0
diff --git a/data/menu_helpers.s b/data/menu_helpers.s
deleted file mode 100644
index 25ca66485..000000000
--- a/data/menu_helpers.s
+++ /dev/null
@@ -1,37 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
-gUnknown_0859F4E8:: @ 859F4E8
- .2byte 0x00
- .2byte 0x4000
- .2byte 0x00
- .2byte 0x00
-
-gUnknown_0859F4F0:: @ 859F4F0
- obj_image_anim_frame 0x00, 0x00
- obj_image_anim_end
-
-gUnknown_0859F4F8:: @ 859F4F8
- obj_image_anim_frame 0x04, 0x00
- obj_image_anim_end
-
-gUnknown_0859F500:: @ 859F500
- obj_image_anim_frame 0x00, 0x40
- obj_image_anim_end
-
-gUnknown_0859F508:: @ 859F508
- .4byte gUnknown_0859F4F0
- .4byte gUnknown_0859F4F8
- .4byte gUnknown_0859F500
-
-gUnknown_0859F514:: @ 859F514
- .4byte gBagSwapLineGfx, 0x6D0100
-
-gUnknown_0859F51C:: @ 859F51C
- .4byte gBagSwapLinePal, 0x6D
-
-gUnknown_0859F524:: @ 859F524
- spr_template 0x6D, 0x6D, gUnknown_0859F4E8, gUnknown_0859F508, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/data/menu_indicators.s b/data/menu_indicators.s
deleted file mode 100644
index 24353b157..000000000
--- a/data/menu_indicators.s
+++ /dev/null
@@ -1,93 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gUnknown_086141FC:: @ 86141FC
- .byte 0, 2, 8, 0
- .byte 1, 2, -8, -1
- .byte 18, 2, 8, 0
- .byte 19, 2, -8, -1
-
-gUnknown_0861420C:: @ 861420C
- .2byte 0
- .2byte 0x4000
- .2byte 0
- .2byte 0
-
-gUnknown_08614214:: @ 8614214
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
-gUnknown_0861421C:: @ 861421C
- obj_image_anim_frame 0, 0x5e
- obj_image_anim_end
-
-gUnknown_08614224:: @ 8614224
- obj_image_anim_frame 4, 30
- obj_image_anim_end
-
-gUnknown_0861422C:: @ 861422C
- obj_image_anim_frame 4, 0x9e
- obj_image_anim_end
-
-gUnknown_08614234:: @ 8614234
- .4byte gUnknown_08614214
- .4byte gUnknown_0861421C
- .4byte gUnknown_08614224
- .4byte gUnknown_0861422C
-
-gUnknown_08614244:: @ 8614244
- spr_template 0, 0, gUnknown_0861420C, gUnknown_08614234, NULL, gDummySpriteAffineAnimTable, sub_81AF264
-
-gUnknown_0861425C:: @ 861425C
- .4byte 0x00000000
-
-gUnknown_08614260:: @ 8614260
- .4byte 0x00100000
-
-gUnknown_08614264:: @ 8614264
- .4byte 0x00200000
-
-gUnknown_08614268:: @ 8614268
- .4byte 0x00300000
-
-gUnknown_0861426C:: @ 861426C
- .4byte 0x00400000
-
-gUnknown_08614270:: @ 8614270
- .4byte 0x00500000
-
-gUnknown_08614274:: @ 8614274
- .4byte 0x00600000
-
-gUnknown_08614278:: @ 8614278
- .4byte 0x00700000
-
-gUnknown_0861427C:: @ 861427C
- .2byte 0
- .2byte 0x4000
- .2byte 0
- .2byte 0
-
-gUnknown_08614284:: @ 8614284
- obj_image_anim_frame 0, 30
- obj_image_anim_end
-
-gUnknown_0861428C:: @ 861428C
- .4byte gUnknown_08614284
-
-gUnknown_08614290:: @ 8614290
- spr_template 0, 0, gUnknown_0861427C, gUnknown_0861428C, NULL, gDummySpriteAffineAnimTable, ObjectCB_RedArrowCursor
-
-gUnknown_086142A8:: @ 86142A8
- .incbin "graphics/interface/red_arrow.gbapal"
-
-gUnknown_086142C8:: @ 86142C8
- .incbin "graphics/interface/red_arrow_other.4bpp.lz"
-
-gUnknown_08614338:: @ 8614338
- .incbin "graphics/interface/selector_outline.4bpp.lz"
-
-gUnknown_08614378:: @ 8614378
- .incbin "graphics/interface/red_arrow.4bpp.lz"
diff --git a/data/record_mixing.s b/data/record_mixing.s
deleted file mode 100644
index 20a37145c..000000000
--- a/data/record_mixing.s
+++ /dev/null
@@ -1,37 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
-gUnknown_0858CF8C:: @ 858CF8C
- .byte 1, 0
-
-gUnknown_0858CF8E:: @ 858CF8E
- .byte 1, 2, 0
- .byte 2, 0, 1
-
-gUnknown_0858CF94:: @ 858CF94
- .byte 1, 0, 3
- .byte 2, 3, 0
- .byte 1, 2, 2
- .byte 0, 3, 1
- .byte 1, 3, 0
- .byte 2, 2, 3
- .byte 0, 1, 3
- .byte 2, 0, 1
- .byte 1, 2, 3
- .byte 0, 2, 3
- .byte 1, 0, 3
- .byte 2, 1, 0
-
-gUnknown_0858CFB8:: @ 858CFB8
- .byte 0, 1
- .byte 1, 2
- .byte 2, 0
-
-gUnknown_0858CFBE:: @ 858CFBE
- .byte 0, 1, 2, 3
- .byte 0, 2, 1, 3
- .byte 0, 3, 2, 1
- .byte 0, 0
diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc
index bd633a115..9a34d2e61 100644
--- a/data/scripts/cable_club.inc
+++ b/data/scripts/cable_club.inc
@@ -880,7 +880,7 @@ gUnknown_0827741D:: @ 827741D
setvar VAR_0x8005, 0
special sub_80E6BE8
waitstate
- compare VAR_0x4001, 0
+ compare VAR_TEMP_1, 0
goto_if 5, RecordCorner_EventScript_277471
end
@@ -888,7 +888,7 @@ gUnknown_08277432:: @ 8277432
setvar VAR_0x8005, 1
special sub_80E6BE8
waitstate
- compare VAR_0x4001, 0
+ compare VAR_TEMP_1, 0
goto_if 5, RecordCorner_EventScript_277471
end
@@ -896,7 +896,7 @@ gUnknown_08277447:: @ 8277447
setvar VAR_0x8005, 2
special sub_80E6BE8
waitstate
- compare VAR_0x4001, 0
+ compare VAR_TEMP_1, 0
goto_if 5, RecordCorner_EventScript_277471
end
@@ -904,12 +904,12 @@ gUnknown_0827745C:: @ 827745C
setvar VAR_0x8005, 3
special sub_80E6BE8
waitstate
- compare VAR_0x4001, 0
+ compare VAR_TEMP_1, 0
goto_if 5, RecordCorner_EventScript_277471
end
RecordCorner_EventScript_277471:: @ 8277471
- bufferitemname 1, VAR_0x4001
+ bufferitemname 1, VAR_TEMP_1
message RecordCorner_Text_27863C
waitmessage
waitbuttonpress
@@ -950,7 +950,7 @@ TradeCenter_EventScript_2774B6:: @ 82774B6
end
RecordCorner_EventScript_2774C6:: @ 82774C6
- compare VAR_0x4000, 0
+ compare VAR_TEMP_0, 0
goto_if 5, RecordCorner_EventScript_2774E0
special sub_8098574
message RecordCorner_Text_27861C
diff --git a/data/scripts/contest_hall.inc b/data/scripts/contest_hall.inc
index 7eb12ac1f..a6a0ebcc2 100644
--- a/data/scripts/contest_hall.inc
+++ b/data/scripts/contest_hall.inc
@@ -309,7 +309,7 @@ LinkContestRoom1_EventScript_27A0F5:: @ 827A0F5
compare VAR_0x8006, 4
goto_if 5, LinkContestRoom1_EventScript_27A0F5
call LinkContestRoom1_EventScript_27A230
- setvar VAR_0x4001, 6
+ setvar VAR_TEMP_1, 6
return
LinkContestRoom1_EventScript_27A133:: @ 827A133
@@ -495,24 +495,24 @@ LinkContestRoom1_EventScript_27A34F:: @ 827A34F
call_if 1, LinkContestRoom1_EventScript_27A56E
compare VAR_0x4088, 5
call_if 1, LinkContestRoom1_EventScript_27A5CC
- setvar VAR_0x4001, 9
- setvar VAR_0x4002, 9
- setvar VAR_0x4003, 9
- setvar VAR_0x4004, 9
- setvar VAR_0x4005, 9
- setvar VAR_0x4006, 9
- setvar VAR_0x4007, 9
- setvar VAR_0x4008, 9
- compare VAR_0x4000, 0
+ setvar VAR_TEMP_1, 9
+ setvar VAR_TEMP_2, 9
+ setvar VAR_TEMP_3, 9
+ setvar VAR_TEMP_4, 9
+ setvar VAR_TEMP_5, 9
+ setvar VAR_TEMP_6, 9
+ setvar VAR_TEMP_7, 9
+ setvar VAR_TEMP_8, 9
+ compare VAR_TEMP_0, 0
call_if 2, LinkContestRoom1_EventScript_27A3E5
- setvar VAR_0x4001, 0
- setvar VAR_0x4002, 0
- setvar VAR_0x4003, 0
- setvar VAR_0x4004, 0
- setvar VAR_0x4005, 0
- setvar VAR_0x4006, 0
- setvar VAR_0x4007, 0
- setvar VAR_0x4008, 0
+ setvar VAR_TEMP_1, 0
+ setvar VAR_TEMP_2, 0
+ setvar VAR_TEMP_3, 0
+ setvar VAR_TEMP_4, 0
+ setvar VAR_TEMP_5, 0
+ setvar VAR_TEMP_6, 0
+ setvar VAR_TEMP_7, 0
+ setvar VAR_TEMP_8, 0
return
LinkContestRoom1_EventScript_27A3E5:: @ 827A3E5
@@ -534,7 +534,7 @@ LinkContestRoom1_EventScript_27A3E5:: @ 827A3E5
call_if 1, LinkContestRoom1_EventScript_27A732
compare VAR_RESULT, 7
call_if 1, LinkContestRoom1_EventScript_27A756
- compare VAR_0x4000, 0
+ compare VAR_TEMP_0, 0
goto_if 2, LinkContestRoom1_EventScript_27A3E5
waitmovement 0
return
@@ -556,7 +556,7 @@ LinkContestRoom1_EventScript_27A454:: @ 827A454
goto_if 2, LinkContestRoom1_EventScript_27A630
compare VAR_0x8004, 10
goto_if 2, LinkContestRoom1_EventScript_27A62A
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
return
LinkContestRoom1_EventScript_27A4B2:: @ 827A4B2
@@ -576,7 +576,7 @@ LinkContestRoom1_EventScript_27A4B2:: @ 827A4B2
goto_if 2, LinkContestRoom1_EventScript_27A630
compare VAR_0x8004, 90
goto_if 2, LinkContestRoom1_EventScript_27A62A
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
return
LinkContestRoom1_EventScript_27A510:: @ 827A510
@@ -596,7 +596,7 @@ LinkContestRoom1_EventScript_27A510:: @ 827A510
goto_if 2, LinkContestRoom1_EventScript_27A630
compare VAR_0x8004, 170
goto_if 2, LinkContestRoom1_EventScript_27A62A
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
return
LinkContestRoom1_EventScript_27A56E:: @ 827A56E
@@ -616,7 +616,7 @@ LinkContestRoom1_EventScript_27A56E:: @ 827A56E
goto_if 2, LinkContestRoom1_EventScript_27A630
compare VAR_0x8004, 320
goto_if 2, LinkContestRoom1_EventScript_27A62A
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
return
LinkContestRoom1_EventScript_27A5CC:: @ 827A5CC
@@ -636,140 +636,140 @@ LinkContestRoom1_EventScript_27A5CC:: @ 827A5CC
goto_if 2, LinkContestRoom1_EventScript_27A630
compare VAR_0x8004, 100
goto_if 2, LinkContestRoom1_EventScript_27A62A
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
return
LinkContestRoom1_EventScript_27A62A:: @ 827A62A
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
return
LinkContestRoom1_EventScript_27A630:: @ 827A630
- setvar VAR_0x4000, 2
+ setvar VAR_TEMP_0, 2
return
LinkContestRoom1_EventScript_27A636:: @ 827A636
- setvar VAR_0x4000, 3
+ setvar VAR_TEMP_0, 3
return
LinkContestRoom1_EventScript_27A63C:: @ 827A63C
- setvar VAR_0x4000, 4
+ setvar VAR_TEMP_0, 4
return
LinkContestRoom1_EventScript_27A642:: @ 827A642
- setvar VAR_0x4000, 5
+ setvar VAR_TEMP_0, 5
return
LinkContestRoom1_EventScript_27A648:: @ 827A648
- setvar VAR_0x4000, 6
+ setvar VAR_TEMP_0, 6
return
LinkContestRoom1_EventScript_27A64E:: @ 827A64E
- setvar VAR_0x4000, 7
+ setvar VAR_TEMP_0, 7
return
LinkContestRoom1_EventScript_27A654:: @ 827A654
- setvar VAR_0x4000, 8
+ setvar VAR_TEMP_0, 8
return
LinkContestRoom1_EventScript_27A65A:: @ 827A65A
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
goto_eq LinkContestRoom1_EventScript_27A67D
applymovement 6, LinkContestRoom1_Movement_27AD11
playse SE_PIN
delay 14
- setvar VAR_0x4001, 1
- addvar VAR_0x4000, 65535
+ setvar VAR_TEMP_1, 1
+ addvar VAR_TEMP_0, 65535
return
LinkContestRoom1_EventScript_27A67D:: @ 827A67D
return
LinkContestRoom1_EventScript_27A67E:: @ 827A67E
- compare VAR_0x4002, 1
+ compare VAR_TEMP_2, 1
goto_eq LinkContestRoom1_EventScript_27A6A1
applymovement 12, LinkContestRoom1_Movement_27AD11
playse SE_PIN
delay 14
- setvar VAR_0x4002, 1
- addvar VAR_0x4000, 65535
+ setvar VAR_TEMP_2, 1
+ addvar VAR_TEMP_0, 65535
return
LinkContestRoom1_EventScript_27A6A1:: @ 827A6A1
return
LinkContestRoom1_EventScript_27A6A2:: @ 827A6A2
- compare VAR_0x4003, 1
+ compare VAR_TEMP_3, 1
goto_eq LinkContestRoom1_EventScript_27A6C5
applymovement 7, LinkContestRoom1_Movement_27AD11
playse SE_PIN
delay 14
- setvar VAR_0x4003, 1
- addvar VAR_0x4000, 65535
+ setvar VAR_TEMP_3, 1
+ addvar VAR_TEMP_0, 65535
return
LinkContestRoom1_EventScript_27A6C5:: @ 827A6C5
return
LinkContestRoom1_EventScript_27A6C6:: @ 827A6C6
- compare VAR_0x4004, 1
+ compare VAR_TEMP_4, 1
goto_eq LinkContestRoom1_EventScript_27A6E9
applymovement 8, LinkContestRoom1_Movement_27AD11
playse SE_PIN
delay 14
- setvar VAR_0x4004, 1
- addvar VAR_0x4000, 65535
+ setvar VAR_TEMP_4, 1
+ addvar VAR_TEMP_0, 65535
return
LinkContestRoom1_EventScript_27A6E9:: @ 827A6E9
return
LinkContestRoom1_EventScript_27A6EA:: @ 827A6EA
- compare VAR_0x4005, 1
+ compare VAR_TEMP_5, 1
goto_eq LinkContestRoom1_EventScript_27A70D
applymovement 9, LinkContestRoom1_Movement_27AD11
playse SE_PIN
delay 14
- setvar VAR_0x4005, 1
- addvar VAR_0x4000, 65535
+ setvar VAR_TEMP_5, 1
+ addvar VAR_TEMP_0, 65535
return
LinkContestRoom1_EventScript_27A70D:: @ 827A70D
return
LinkContestRoom1_EventScript_27A70E:: @ 827A70E
- compare VAR_0x4006, 1
+ compare VAR_TEMP_6, 1
goto_eq LinkContestRoom1_EventScript_27A731
applymovement 10, LinkContestRoom1_Movement_27AD11
playse SE_PIN
delay 14
- setvar VAR_0x4006, 1
- addvar VAR_0x4000, 65535
+ setvar VAR_TEMP_6, 1
+ addvar VAR_TEMP_0, 65535
return
LinkContestRoom1_EventScript_27A731:: @ 827A731
return
LinkContestRoom1_EventScript_27A732:: @ 827A732
- compare VAR_0x4007, 1
+ compare VAR_TEMP_7, 1
goto_eq LinkContestRoom1_EventScript_27A755
applymovement 11, LinkContestRoom1_Movement_27AD11
playse SE_PIN
delay 14
- setvar VAR_0x4007, 1
- addvar VAR_0x4000, 65535
+ setvar VAR_TEMP_7, 1
+ addvar VAR_TEMP_0, 65535
return
LinkContestRoom1_EventScript_27A755:: @ 827A755
return
LinkContestRoom1_EventScript_27A756:: @ 827A756
- compare VAR_0x4008, 1
+ compare VAR_TEMP_8, 1
goto_eq LinkContestRoom1_EventScript_27A779
applymovement 15, LinkContestRoom1_Movement_27AD11
playse SE_PIN
delay 14
- setvar VAR_0x4008, 1
- addvar VAR_0x4000, 65535
+ setvar VAR_TEMP_8, 1
+ addvar VAR_TEMP_0, 65535
return
LinkContestRoom1_EventScript_27A779:: @ 827A779
@@ -832,11 +832,11 @@ LinkContestRoom1_EventScript_27A801:: @ 827A801
waitmovement 0
releaseall
call LinkContestRoom1_EventScript_27A133
- setvar VAR_0x4009, 1
+ setvar VAR_TEMP_9, 1
special sub_80F910C
startcontest
special sub_80F90DC
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
lockall
applymovement 1, LinkContestRoom1_Movement_27AD19
applymovement 2, LinkContestRoom1_Movement_27AD15
@@ -888,9 +888,9 @@ LinkContestRoom1_EventScript_27A8A5:: @ 827A8A5
closemessage
releaseall
special sub_80F910C
- setvar VAR_0x4009, 1
+ setvar VAR_TEMP_9, 1
showcontestresults
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
playbgm MUS_CON_FAN, 0
return
@@ -956,19 +956,19 @@ LinkContestRoom1_EventScript_27A987:: @ 827A987
return
LinkContestRoom1_EventScript_27A9BC:: @ 827A9BC
- setvar VAR_0x4003, 3
+ setvar VAR_TEMP_3, 3
return
LinkContestRoom1_EventScript_27A9C2:: @ 827A9C2
- setvar VAR_0x4003, 4
+ setvar VAR_TEMP_3, 4
return
LinkContestRoom1_EventScript_27A9C8:: @ 827A9C8
- setvar VAR_0x4003, 5
+ setvar VAR_TEMP_3, 5
return
LinkContestRoom1_EventScript_27A9CE:: @ 827A9CE
- setvar VAR_0x4003, 14
+ setvar VAR_TEMP_3, 14
return
LinkContestRoom1_EventScript_27A9D4:: @ 827A9D4
@@ -978,10 +978,10 @@ LinkContestRoom1_EventScript_27A9D4:: @ 827A9D4
buffernumberstring 1, VAR_0x8005
addvar VAR_0x8005, 65535
call LinkContestRoom1_EventScript_27AA00
- applymovement VAR_0x4003, LinkContestRoom1_Movement_27AD1D
+ applymovement VAR_TEMP_3, LinkContestRoom1_Movement_27AD1D
waitmovement 0
playse SE_W227B
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
return
LinkContestRoom1_EventScript_27AA00:: @ 827AA00
@@ -996,7 +996,7 @@ LinkContestRoom1_EventScript_27AA14:: @ 827AA14
return
LinkContestRoom1_EventScript_27AA1B:: @ 827AA1B
- addvar VAR_0x4001, 1
+ addvar VAR_TEMP_1, 1
lockall
compare VAR_0x4088, 1
call_if 2, LinkContestRoom1_EventScript_27AA6F
@@ -1008,7 +1008,7 @@ LinkContestRoom1_EventScript_27AA1B:: @ 827AA1B
applymovement 11, LinkContestRoom1_Movement_27AD3F
applymovement 6, LinkContestRoom1_Movement_27AD37
applymovement 8, LinkContestRoom1_Movement_27AD33
- compare VAR_0x4001, 4
+ compare VAR_TEMP_1, 4
goto_if 5, LinkContestRoom1_EventScript_27AA1B
delay 30
return
@@ -1094,7 +1094,7 @@ LinkContestRoom1_EventScript_27AB36:: @ 827AB36
call LinkContestRoom1_EventScript_27ABF8
call LinkContestRoom1_EventScript_27AC5E
playse SE_W227B
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
call LinkContestRoom1_EventScript_27AA1B
delay 30
special sub_80F88E8
@@ -1168,28 +1168,28 @@ LinkContestRoom1_EventScript_27ABF8:: @ 827ABF8
LinkContestRoom1_EventScript_27AC2A:: @ 827AC2A
lockall
- applymovement VAR_0x4003, LinkContestRoom1_Movement_27AD7A
+ applymovement VAR_TEMP_3, LinkContestRoom1_Movement_27AD7A
waitmovement 0
releaseall
return
LinkContestRoom1_EventScript_27AC37:: @ 827AC37
lockall
- applymovement VAR_0x4003, LinkContestRoom1_Movement_27AD7E
+ applymovement VAR_TEMP_3, LinkContestRoom1_Movement_27AD7E
waitmovement 0
releaseall
return
LinkContestRoom1_EventScript_27AC44:: @ 827AC44
lockall
- applymovement VAR_0x4003, LinkContestRoom1_Movement_27AD29
+ applymovement VAR_TEMP_3, LinkContestRoom1_Movement_27AD29
waitmovement 0
releaseall
return
LinkContestRoom1_EventScript_27AC51:: @ 827AC51
lockall
- applymovement VAR_0x4003, LinkContestRoom1_Movement_27AD2D
+ applymovement VAR_TEMP_3, LinkContestRoom1_Movement_27AD2D
waitmovement 0
releaseall
return
diff --git a/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc b/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc
index 23532b275..701b79fbf 100644
--- a/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc
+++ b/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc
@@ -3,20 +3,20 @@ AbandonedShip_HiddenFloorRooms_MapScripts:: @ 8238C49
.byte 0
AbandonedShip_HiddenFloorRooms_MapScript2_238C4F: @ 8238C4F
- map_script_2 VAR_0x4001, 0, AbandonedShip_HiddenFloorRooms_EventScript_238C59
+ map_script_2 VAR_TEMP_1, 0, AbandonedShip_HiddenFloorRooms_EventScript_238C59
.2byte 0
AbandonedShip_HiddenFloorRooms_EventScript_238C59:: @ 8238C59
- setvar VAR_0x4001, 1
- getplayerxy VAR_0x4002, VAR_0x4003
- setvar VAR_0x4004, 1
- compare VAR_0x4002, 21
+ setvar VAR_TEMP_1, 1
+ getplayerxy VAR_TEMP_2, VAR_TEMP_3
+ setvar VAR_TEMP_4, 1
+ compare VAR_TEMP_2, 21
call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_238CD1
- compare VAR_0x4002, 36
+ compare VAR_TEMP_2, 36
call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_238CD7
- compare VAR_0x4003, 2
+ compare VAR_TEMP_3, 2
call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_238CDD
- switch VAR_0x4004
+ switch VAR_TEMP_4
case 1, AbandonedShip_HiddenFloorRooms_EventScript_238CE3
case 2, AbandonedShip_HiddenFloorRooms_EventScript_238D0C
case 3, AbandonedShip_HiddenFloorRooms_EventScript_238D0D
@@ -26,15 +26,15 @@ AbandonedShip_HiddenFloorRooms_EventScript_238C59:: @ 8238C59
end
AbandonedShip_HiddenFloorRooms_EventScript_238CD1:: @ 8238CD1
- addvar VAR_0x4004, 1
+ addvar VAR_TEMP_4, 1
return
AbandonedShip_HiddenFloorRooms_EventScript_238CD7:: @ 8238CD7
- addvar VAR_0x4004, 2
+ addvar VAR_TEMP_4, 2
return
AbandonedShip_HiddenFloorRooms_EventScript_238CDD:: @ 8238CDD
- addvar VAR_0x4004, 3
+ addvar VAR_TEMP_4, 3
return
AbandonedShip_HiddenFloorRooms_EventScript_238CE3:: @ 8238CE3
diff --git a/data/scripts/maps/AquaHideout_B2F.inc b/data/scripts/maps/AquaHideout_B2F.inc
index 85a94cc21..ccf8997d7 100644
--- a/data/scripts/maps/AquaHideout_B2F.inc
+++ b/data/scripts/maps/AquaHideout_B2F.inc
@@ -8,7 +8,7 @@ AquaHideout_B2F_MapScript1_233DD5: @ 8233DD5
end
AquaHideout_B2F_EventScript_233DDF:: @ 8233DDF
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
return
AquaHideout_B2F_EventScript_233DE5:: @ 8233DE5
@@ -19,7 +19,7 @@ AquaHideout_B2F_EventScript_233DE5:: @ 8233DE5
waitmovement 0
applymovement VAR_0x8008, AquaHideout_B2F_Movement_27259E
waitmovement 0
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
releaseall
end
diff --git a/data/scripts/maps/BattleFrontier_BattleArenaBattleRoom.inc b/data/scripts/maps/BattleFrontier_BattleArenaBattleRoom.inc
index 88a0f9989..2f952936f 100644
--- a/data/scripts/maps/BattleFrontier_BattleArenaBattleRoom.inc
+++ b/data/scripts/maps/BattleFrontier_BattleArenaBattleRoom.inc
@@ -24,15 +24,15 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_2574AE:: @ 82574AE
return
BattleFrontier_BattleArenaBattleRoom_EventScript_2574C6:: @ 82574C6
- setvar VAR_0x4011, 100
+ setvar VAR_OBJ_GFX_ID_1, 100
return
BattleFrontier_BattleArenaBattleRoom_EventScript_2574CC:: @ 82574CC
- setvar VAR_0x4011, 105
+ setvar VAR_OBJ_GFX_ID_1, 105
return
BattleFrontier_BattleArenaBattleRoom_MapScript2_2574D2: @ 82574D2
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleArenaBattleRoom_EventScript_2574DC
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleArenaBattleRoom_EventScript_2574DC
.2byte 0
BattleFrontier_BattleArenaBattleRoom_EventScript_2574DC:: @ 82574DC
@@ -47,7 +47,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_2574DC:: @ 82574DC
goto_eq BattleFrontier_BattleArenaBattleRoom_EventScript_25752E
applymovement 5, BattleFrontier_BattleArenaBattleRoom_Movement_257C08
applymovement 8, BattleFrontier_BattleArenaBattleRoom_Movement_257BEB
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
@@ -148,7 +148,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257630:: @ 8257630
BattleFrontier_BattleArenaBattleRoom_EventScript_2576B0:: @ 82576B0
setvar VAR_0x8004, 9
special sub_81A1780
- copyvar VAR_0x400F, VAR_RESULT
+ copyvar VAR_TEMP_F, VAR_RESULT
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleArenaBattleRoom_EventScript_2578BC
setvar VAR_0x8004, 1
@@ -275,10 +275,10 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_25789A:: @ 825789A
end
BattleFrontier_BattleArenaBattleRoom_EventScript_2578BC:: @ 82578BC
- compare VAR_0x4002, 1
+ compare VAR_TEMP_2, 1
goto_eq BattleFrontier_BattleArenaBattleRoom_EventScript_2578D4
msgbox BattleFrontier_BattleArenaBattleRoom_Text_257F45, 4
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
BattleFrontier_BattleArenaBattleRoom_EventScript_2578D4:: @ 82578D4
message BattleFrontier_BattleArenaBattleRoom_Text_257FBB
@@ -326,7 +326,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257961:: @ 8257961
waitmovement 0
applymovement 7, BattleFrontier_BattleArenaBattleRoom_Movement_257BF2
waitmovement 0
- switch VAR_0x400F
+ switch VAR_TEMP_F
case 2, BattleFrontier_BattleArenaBattleRoom_EventScript_257AA5
case 3, BattleFrontier_BattleArenaBattleRoom_EventScript_257A3F
case 4, BattleFrontier_BattleArenaBattleRoom_EventScript_257AF8
@@ -425,7 +425,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257B5E:: @ 8257B5E
BattleFrontier_BattleArenaBattleRoom_EventScript_257B6C:: @ 8257B6C
FallarborTown_BattleTentBattleRoom_EventScript_257B6C:: @ 8257B6C
closemessage
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_2, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 0
@@ -529,7 +529,7 @@ BattleFrontier_BattleArenaBattleRoom_Movement_257C0A: @ 8257C0A
step_end
BattleFrontier_BattleArenaBattleRoom_MapScript2_257C0C: @ 8257C0C
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleArenaBattleRoom_EventScript_257C16
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleArenaBattleRoom_EventScript_257C16
.2byte 0
BattleFrontier_BattleArenaBattleRoom_EventScript_257C16:: @ 8257C16
@@ -537,7 +537,7 @@ BattleFrontier_BattleArenaBattleRoom_EventScript_257C16:: @ 8257C16
removeobject 7
call BattleFrontier_BattleArenaBattleRoom_EventScript_24BCDC
applymovement 255, BattleFrontier_BattleArenaBattleRoom_Movement_24C773
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
end
BattleFrontier_BattleArenaBattleRoom_Movement_257C30: @ 8257C30
diff --git a/data/scripts/maps/BattleFrontier_BattleArenaCorridor.inc b/data/scripts/maps/BattleFrontier_BattleArenaCorridor.inc
index ed7371dab..cecd5b44c 100644
--- a/data/scripts/maps/BattleFrontier_BattleArenaCorridor.inc
+++ b/data/scripts/maps/BattleFrontier_BattleArenaCorridor.inc
@@ -3,12 +3,12 @@ BattleFrontier_BattleArenaCorridor_MapScripts:: @ 82573B9
.byte 0
BattleFrontier_BattleArenaCorridor_MapScript2_2573BF: @ 82573BF
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleArenaCorridor_EventScript_2573C9
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleArenaCorridor_EventScript_2573C9
.2byte 0
BattleFrontier_BattleArenaCorridor_EventScript_2573C9:: @ 82573C9
delay 16
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
applymovement 1, BattleFrontier_BattleArenaCorridor_Movement_25742F
applymovement 255, BattleFrontier_BattleArenaCorridor_Movement_257417
waitmovement 0
diff --git a/data/scripts/maps/BattleFrontier_BattleArenaLobby.inc b/data/scripts/maps/BattleFrontier_BattleArenaLobby.inc
index 176b153f7..68ac57fcd 100644
--- a/data/scripts/maps/BattleFrontier_BattleArenaLobby.inc
+++ b/data/scripts/maps/BattleFrontier_BattleArenaLobby.inc
@@ -4,20 +4,20 @@ BattleFrontier_BattleArenaLobby_MapScripts:: @ 8255C36
.byte 0
BattleFrontier_BattleArenaLobby_MapScript2_255C41: @ 8255C41
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleArenaLobby_EventScript_255C4B
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleArenaLobby_EventScript_255C4B
.2byte 0
BattleFrontier_BattleArenaLobby_EventScript_255C4B:: @ 8255C4B
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
BattleFrontier_BattleArenaLobby_MapScript2_255C55: @ 8255C55
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleArenaLobby_EventScript_255C7F
- map_script_2 VAR_0x4000, 1, BattleFrontier_BattleArenaLobby_EventScript_255C88
- map_script_2 VAR_0x4000, 2, BattleFrontier_BattleArenaLobby_EventScript_255DC0
- map_script_2 VAR_0x4000, 3, BattleFrontier_BattleArenaLobby_EventScript_255CCF
- map_script_2 VAR_0x4000, 4, BattleFrontier_BattleArenaLobby_EventScript_255D2B
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleArenaLobby_EventScript_255C7F
+ map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleArenaLobby_EventScript_255C88
+ map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleArenaLobby_EventScript_255DC0
+ map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattleArenaLobby_EventScript_255CCF
+ map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattleArenaLobby_EventScript_255D2B
.2byte 0
BattleFrontier_BattleArenaLobby_EventScript_255C7F:: @ 8255C7F
@@ -41,7 +41,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255C88:: @ 8255C88
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -67,7 +67,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255CF8:: @ 8255CF8
call BattleFrontier_BattleArenaLobby_EventScript_255D59
msgbox BattleFrontier_BattleArenaLobby_Text_256A74, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -82,7 +82,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255D2B:: @ 8255D2B
call BattleFrontier_BattleArenaLobby_EventScript_255D59
msgbox BattleFrontier_BattleArenaLobby_Text_256A74, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -126,7 +126,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255DC0:: @ 8255DC0
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
goto BattleFrontier_BattleArenaLobby_EventScript_255F54
BattleFrontier_BattleArenaLobby_EventScript_255DF4:: @ 8255DF4
@@ -178,7 +178,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255E47:: @ 8255E47
case 127, BattleFrontier_BattleArenaLobby_EventScript_255FF8
BattleFrontier_BattleArenaLobby_EventScript_255EE8:: @ 8255EE8
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
@@ -200,7 +200,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255EE8:: @ 8255EE8
closemessage
delay 2
call BattleFrontier_BattleArenaLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleArenaLobby_EventScript_255FE1
@@ -219,7 +219,7 @@ BattleFrontier_BattleArenaLobby_EventScript_255F54:: @ 8255F54
compare VAR_RESULT, 1
call_if 1, BattleFrontier_BattleArenaLobby_EventScript_256050
warp BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR, 255, 9, 13
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
waitstate
end
diff --git a/data/scripts/maps/BattleFrontier_BattleDomeBattleRoom.inc b/data/scripts/maps/BattleFrontier_BattleDomeBattleRoom.inc
index fce85e7d3..52981a07d 100644
--- a/data/scripts/maps/BattleFrontier_BattleDomeBattleRoom.inc
+++ b/data/scripts/maps/BattleFrontier_BattleDomeBattleRoom.inc
@@ -11,7 +11,7 @@ BattleFrontier_BattleDomeBattleRoom_MapScript1_24BCB1: @ 824BCB1
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
special sub_81A1780
- copyvar VAR_0x400F, VAR_RESULT
+ copyvar VAR_TEMP_F, VAR_RESULT
compare VAR_RESULT, 0
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C919
call BattleFrontier_BattleDomeBattleRoom_EventScript_24BCDC
@@ -27,15 +27,15 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BCDC:: @ 824BCDC
return
BattleFrontier_BattleDomeBattleRoom_EventScript_24BCF4:: @ 824BCF4
- setvar VAR_0x4011, 100
+ setvar VAR_OBJ_GFX_ID_1, 100
return
BattleFrontier_BattleDomeBattleRoom_EventScript_24BCFA:: @ 824BCFA
- setvar VAR_0x4011, 105
+ setvar VAR_OBJ_GFX_ID_1, 105
return
BattleFrontier_BattleDomeBattleRoom_MapScript2_24BD00: @ 824BD00
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24BD0A
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24BD0A
.2byte 0
BattleFrontier_BattleDomeBattleRoom_EventScript_24BD0A:: @ 824BD0A
@@ -49,9 +49,9 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD0A:: @ 824BD0A
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24C970, 4
closemessage
showobjectat 13, BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM
- compare VAR_0x400F, 3
+ compare VAR_TEMP_F, 3
goto_if 5, BattleFrontier_BattleDomeBattleRoom_EventScript_24BD4E
- compare VAR_0x400E, 0
+ compare VAR_TEMP_E, 0
goto_if 5, BattleFrontier_BattleDomeBattleRoom_EventScript_24BD5A
BattleFrontier_BattleDomeBattleRoom_EventScript_24BD4E:: @ 824BD4E
@@ -65,9 +65,9 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD61:: @ 824BD61
playse SE_W227B
call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E
waitmovement 0
- compare VAR_0x400F, 3
+ compare VAR_TEMP_F, 3
goto_if 5, BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82
- compare VAR_0x400E, 0
+ compare VAR_TEMP_E, 0
goto_if 5, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1CB
BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82:: @ 824BD82
@@ -86,12 +86,12 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82:: @ 824BD82
setvar VAR_0x8004, 5
special sub_818E9AC
call BattleFrontier_BattleDomeBattleRoom_EventScript_24C440
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_2, 0
switch VAR_RESULT
case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0
case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F
case 9, BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7:: @ 824BDF7
msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CA86, 4
@@ -106,7 +106,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7:: @ 824BDF7
delay 180
applymovement 9, BattleFrontier_BattleDomeBattleRoom_Movement_24C96B
waitmovement 0
- compare VAR_0x4002, 2
+ compare VAR_TEMP_2, 2
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F
setvar VAR_0x8004, 19
special sub_818E9AC
@@ -118,11 +118,11 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F:: @ 824BE4F
waitmovement 0
setvar VAR_0x8004, 4
special sub_818E9AC
- compare VAR_0x4002, 0
+ compare VAR_TEMP_2, 0
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEB1
- compare VAR_0x4002, 1
+ compare VAR_TEMP_2, 1
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEC5
- compare VAR_0x4002, 2
+ compare VAR_TEMP_2, 2
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BED9
playse SE_W227B
call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E
@@ -165,9 +165,9 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24BED9:: @ 824BED9
BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0
applymovement 1, BattleFrontier_BattleDomeBattleRoom_Movement_2725B4
waitmovement 0
- compare VAR_0x4002, 0
+ compare VAR_TEMP_2, 0
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BFC3
- compare VAR_0x4002, 1
+ compare VAR_TEMP_2, 1
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BFCC
playse SE_W227B
call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E
@@ -302,9 +302,9 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C2:: @ 824C0C2
return
BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C9:: @ 824C0C9
- compare VAR_0x400F, 3
+ compare VAR_TEMP_F, 3
goto_if 5, BattleFrontier_BattleDomeBattleRoom_EventScript_24C105
- switch VAR_0x400E
+ switch VAR_TEMP_E
case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158
case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161
case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158
@@ -383,7 +383,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD:: @ 824C1BD
return
BattleFrontier_BattleDomeBattleRoom_EventScript_24C1CB:: @ 824C1CB
- switch VAR_0x400E
+ switch VAR_TEMP_E
case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC
case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209
case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC
@@ -422,7 +422,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C211:: @ 824C211
playse SE_W227B
call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E
waitse
- switch VAR_0x400E
+ switch VAR_TEMP_E
case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C346
case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9
case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24C373
@@ -520,7 +520,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C420:: @ 824C420
goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D
BattleFrontier_BattleDomeBattleRoom_EventScript_24C436:: @ 824C436
- setvar VAR_0x4002, 2
+ setvar VAR_TEMP_2, 2
goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7
BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440
@@ -531,10 +531,10 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440
special HealPlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 0
- setvar VAR_0x4009, 1
+ setvar VAR_TEMP_9, 1
special sub_8163AC4
waitstate
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
setvar VAR_0x8004, 17
special sub_818E9AC
special HealPlayerParty
@@ -543,14 +543,14 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440
return
BattleFrontier_BattleDomeBattleRoom_MapScript2_24C481: @ 824C481
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B
.2byte 0
BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B:: @ 824C48B
hideobjectat 13, BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM
call BattleFrontier_BattleDomeBattleRoom_EventScript_24C502
call BattleFrontier_BattleDomeBattleRoom_EventScript_24BCDC
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
applymovement 255, BattleFrontier_BattleDomeBattleRoom_Movement_24C773
setvar VAR_0x8004, 1
setvar VAR_0x8005, 2
@@ -559,7 +559,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B:: @ 824C48B
goto_if 5, BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF
setvar VAR_0x8004, 9
special sub_81A1780
- copyvar VAR_0x400E, VAR_RESULT
+ copyvar VAR_TEMP_E, VAR_RESULT
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF
call BattleFrontier_BattleDomeBattleRoom_EventScript_242170
@@ -572,7 +572,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF:: @ 824C4EF
end
BattleFrontier_BattleDomeBattleRoom_MapScript1_24C4F0: @ 824C4F0
- compare VAR_0x4009, 1
+ compare VAR_TEMP_9, 1
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C4FC
end
@@ -581,13 +581,13 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C4FC:: @ 824C4FC
return
BattleFrontier_BattleDomeBattleRoom_EventScript_24C502:: @ 824C502
- compare VAR_0x400F, 0
+ compare VAR_TEMP_F, 0
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C52F
- compare VAR_0x400F, 1
+ compare VAR_TEMP_F, 1
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C530
- compare VAR_0x400F, 2
+ compare VAR_TEMP_F, 2
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C594
- compare VAR_0x400F, 3
+ compare VAR_TEMP_F, 3
call_if 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C652
return
@@ -964,15 +964,15 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24C90F:: @ 824C90F
BattleFrontier_BattleDomeBattleRoom_EventScript_24C919:: @ 824C919
random 2
- copyvar VAR_0x400D, VAR_RESULT
- compare VAR_0x400D, 0
+ copyvar VAR_TEMP_D, VAR_RESULT
+ compare VAR_TEMP_D, 0
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_27374E
setobjectxyperm 6, 2, 0
setobjectmovementtype 6, 10
return
BattleFrontier_BattleDomeBattleRoom_EventScript_24C938:: @ 824C938
- compare VAR_0x400D, 0
+ compare VAR_TEMP_D, 0
goto_eq BattleFrontier_BattleDomeBattleRoom_EventScript_27374E
applymovement 6, BattleFrontier_BattleDomeBattleRoom_Movement_24C95E
return
diff --git a/data/scripts/maps/BattleFrontier_BattleDomeCorridor.inc b/data/scripts/maps/BattleFrontier_BattleDomeCorridor.inc
index 9cb4f3187..ad6204fd5 100644
--- a/data/scripts/maps/BattleFrontier_BattleDomeCorridor.inc
+++ b/data/scripts/maps/BattleFrontier_BattleDomeCorridor.inc
@@ -3,12 +3,12 @@ BattleFrontier_BattleDomeCorridor_MapScripts:: @ 824B0FE
.byte 0
BattleFrontier_BattleDomeCorridor_MapScript2_24B104: @ 824B104
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleDomeCorridor_EventScript_24B10E
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeCorridor_EventScript_24B10E
.2byte 0
BattleFrontier_BattleDomeCorridor_EventScript_24B10E:: @ 824B10E
delay 16
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
setvar VAR_0x8004, 1
setvar VAR_0x8005, 1
special sub_81A1780
diff --git a/data/scripts/maps/BattleFrontier_BattleDomeLobby.inc b/data/scripts/maps/BattleFrontier_BattleDomeLobby.inc
index f985606de..35bf3f5a6 100644
--- a/data/scripts/maps/BattleFrontier_BattleDomeLobby.inc
+++ b/data/scripts/maps/BattleFrontier_BattleDomeLobby.inc
@@ -11,20 +11,20 @@ BattleFrontier_BattleDomeLobby_MapScript1_2497F2: @ 82497F2
BattleFrontier_BattleDomeLobby_MapScript2_2497FB: @ 82497FB
BattleFrontier_BattlePyramidLobby_MapScript2_2497FB: @ 82497FB
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleDomeLobby_EventScript_249805
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeLobby_EventScript_249805
.2byte 0
BattleFrontier_BattleDomeLobby_EventScript_249805:: @ 8249805
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
BattleFrontier_BattleDomeLobby_MapScript2_24980F: @ 824980F
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleDomeLobby_EventScript_249839
- map_script_2 VAR_0x4000, 1, BattleFrontier_BattleDomeLobby_EventScript_249842
- map_script_2 VAR_0x4000, 2, BattleFrontier_BattleDomeLobby_EventScript_2499F9
- map_script_2 VAR_0x4000, 3, BattleFrontier_BattleDomeLobby_EventScript_24989B
- map_script_2 VAR_0x4000, 4, BattleFrontier_BattleDomeLobby_EventScript_249940
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeLobby_EventScript_249839
+ map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleDomeLobby_EventScript_249842
+ map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleDomeLobby_EventScript_2499F9
+ map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattleDomeLobby_EventScript_24989B
+ map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattleDomeLobby_EventScript_249940
.2byte 0
BattleFrontier_BattleDomeLobby_EventScript_249839:: @ 8249839
@@ -52,7 +52,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -143,7 +143,7 @@ BattleFrontier_BattleDomeLobby_EventScript_2499E4:: @ 82499E4
BattleFrontier_BattleDomeLobby_EventScript_2499E9:: @ 82499E9
msgbox BattleFrontier_BattleDomeLobby_Text_249F74, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -161,7 +161,7 @@ BattleFrontier_BattleDomeLobby_EventScript_2499F9:: @ 82499F9
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
goto BattleFrontier_BattleDomeLobby_EventScript_249BC2
BattleFrontier_BattleDomeLobby_EventScript_249A35:: @ 8249A35
@@ -231,7 +231,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF
case 127, BattleFrontier_BattleDomeLobby_EventScript_249C61
BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
@@ -249,7 +249,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60
closemessage
delay 2
call BattleFrontier_BattleDomeLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleDomeLobby_EventScript_249C4A
setvar VAR_0x8004, 22
@@ -267,7 +267,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2
call BattleFrontier_BattleDomeLobby_EventScript_249C6E
special HealPlayerParty
warp BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR, 255, 23, 6
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
waitstate
end
diff --git a/data/scripts/maps/BattleFrontier_BattleDomePreBattleRoom.inc b/data/scripts/maps/BattleFrontier_BattleDomePreBattleRoom.inc
index a9b6af7f7..f3693e179 100644
--- a/data/scripts/maps/BattleFrontier_BattleDomePreBattleRoom.inc
+++ b/data/scripts/maps/BattleFrontier_BattleDomePreBattleRoom.inc
@@ -4,16 +4,16 @@ BattleFrontier_BattleDomePreBattleRoom_MapScripts:: @ 824B1F9
.byte 0
BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B204: @ 824B204
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B20E
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B20E
.2byte 0
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B20E:: @ 824B20E
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B218: @ 824B218
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222
.2byte 0
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222:: @ 824B222
@@ -23,7 +23,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222:: @ 824B222
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
special sub_81A1780
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
applymovement 255, BattleFrontier_BattleDomePreBattleRoom_Movement_24B652
waitmovement 0
lockall
@@ -180,7 +180,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D
closedoor 5, 1
waitdooranim
warp BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM, 255, 9, 5
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
waitstate
end
@@ -241,7 +241,7 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5BE:: @ 824B5BE
return
BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B760, 4
special LoadPlayerParty
setvar VAR_0x8004, 3
diff --git a/data/scripts/maps/BattleFrontier_BattleFactoryBattleRoom.inc b/data/scripts/maps/BattleFrontier_BattleFactoryBattleRoom.inc
index 7d1c57f66..bd76e111d 100644
--- a/data/scripts/maps/BattleFrontier_BattleFactoryBattleRoom.inc
+++ b/data/scripts/maps/BattleFrontier_BattleFactoryBattleRoom.inc
@@ -14,7 +14,7 @@ BattleFrontier_BattleFactoryBattleRoom_MapScript1_25ADBB: @ 825ADBB
call_if 1, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE2B
setvar VAR_0x8004, 9
special sub_81A1780
- copyvar VAR_0x400F, VAR_RESULT
+ copyvar VAR_TEMP_F, VAR_RESULT
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleFactoryBattleRoom_EventScript_25ADF3
end
@@ -25,13 +25,13 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25ADF3:: @ 825ADF3
end
BattleFrontier_BattleFactoryBattleRoom_MapScript2_25AE00: @ 825AE00
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE0A
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE0A
.2byte 0
BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE0A:: @ 825AE0A
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
hideobjectat 255, BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM
- compare VAR_0x400F, 0
+ compare VAR_TEMP_F, 0
goto_if 5, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE24
hideobjectat 2, BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM
@@ -39,15 +39,15 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE24:: @ 825AE24
end
BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE25:: @ 825AE25
- setvar VAR_0x401F, 100
+ setvar VAR_OBJ_GFX_ID_F, 100
return
BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE2B:: @ 825AE2B
- setvar VAR_0x401F, 105
+ setvar VAR_OBJ_GFX_ID_F, 105
return
BattleFrontier_BattleFactoryBattleRoom_MapScript2_25AE31: @ 825AE31
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE67
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE67
.2byte 0
BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE3B:: @ 825AE3B
@@ -62,7 +62,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE3B:: @ 825AE3B
end
BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE67:: @ 825AE67
- compare VAR_0x400F, 0
+ compare VAR_TEMP_F, 0
goto_if 5, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE3B
applymovement 8, BattleFrontier_BattleFactoryBattleRoom_Movement_25B17B
applymovement 255, BattleFrontier_BattleFactoryBattleRoom_Movement_25B17B
@@ -77,7 +77,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AE67:: @ 825AE67
waitmovement 0
BattleFrontier_BattleFactoryBattleRoom_EventScript_25AEA7:: @ 825AEA7
- compare VAR_0x400F, 0
+ compare VAR_TEMP_F, 0
goto_if 5, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF9C
setvar VAR_0x8004, 5
special sub_8195960
@@ -144,7 +144,7 @@ BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF85:: @ 825AF85
goto BattleFrontier_BattleFactoryBattleRoom_EventScript_25B190
BattleFrontier_BattleFactoryBattleRoom_EventScript_25AF9C:: @ 825AF9C
- switch VAR_0x400F
+ switch VAR_TEMP_F
case 2, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B051
case 3, BattleFrontier_BattleFactoryBattleRoom_EventScript_25AFEF
case 4, BattleFrontier_BattleFactoryBattleRoom_EventScript_25B07E
diff --git a/data/scripts/maps/BattleFrontier_BattleFactoryLobby.inc b/data/scripts/maps/BattleFrontier_BattleFactoryLobby.inc
index 4a52743a5..640e96b4d 100644
--- a/data/scripts/maps/BattleFrontier_BattleFactoryLobby.inc
+++ b/data/scripts/maps/BattleFrontier_BattleFactoryLobby.inc
@@ -4,20 +4,20 @@ BattleFrontier_BattleFactoryLobby_MapScripts:: @ 82583E8
.byte 0
BattleFrontier_BattleFactoryLobby_MapScript2_2583F3: @ 82583F3
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleFactoryLobby_EventScript_2583FD
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleFactoryLobby_EventScript_2583FD
.2byte 0
BattleFrontier_BattleFactoryLobby_EventScript_2583FD:: @ 82583FD
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
BattleFrontier_BattleFactoryLobby_MapScript2_258407: @ 8258407
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleFactoryLobby_EventScript_258431
- map_script_2 VAR_0x4000, 1, BattleFrontier_BattleFactoryLobby_EventScript_25843A
- map_script_2 VAR_0x4000, 2, BattleFrontier_BattleFactoryLobby_EventScript_258592
- map_script_2 VAR_0x4000, 3, BattleFrontier_BattleFactoryLobby_EventScript_25849B
- map_script_2 VAR_0x4000, 4, BattleFrontier_BattleFactoryLobby_EventScript_258506
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleFactoryLobby_EventScript_258431
+ map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleFactoryLobby_EventScript_25843A
+ map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleFactoryLobby_EventScript_258592
+ map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattleFactoryLobby_EventScript_25849B
+ map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattleFactoryLobby_EventScript_258506
.2byte 0
BattleFrontier_BattleFactoryLobby_EventScript_258431:: @ 8258431
@@ -47,7 +47,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_25843A:: @ 825843A
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -118,7 +118,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_25857D:: @ 825857D
BattleFrontier_BattleFactoryLobby_EventScript_258582:: @ 8258582
msgbox BattleFrontier_BattleFactoryLobby_Text_258BC5, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -135,7 +135,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258592:: @ 8258592
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
setvar VAR_0x8006, 2
goto BattleFrontier_BattleFactoryLobby_EventScript_25871A
@@ -191,7 +191,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_258653:: @ 8258653
case 127, BattleFrontier_BattleFactoryLobby_EventScript_25879A
BattleFrontier_BattleFactoryLobby_EventScript_2586B9:: @ 82586B9
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 0
special sub_81A5E74
setvar VAR_0x8004, 2
@@ -209,7 +209,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_2586B9:: @ 82586B9
closemessage
delay 2
call BattleFrontier_BattleFactoryLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleFactoryLobby_EventScript_258783
setvar VAR_0x8006, 0
@@ -226,7 +226,7 @@ BattleFrontier_BattleFactoryLobby_EventScript_25871A:: @ 825871A
applymovement 255, BattleFrontier_BattleFactoryLobby_Movement_2587AC
waitmovement 0
warp BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM, 255, 8, 13
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
waitstate
end
diff --git a/data/scripts/maps/BattleFrontier_BattleFactoryPreBattleRoom.inc b/data/scripts/maps/BattleFrontier_BattleFactoryPreBattleRoom.inc
index 2f5cdeef2..93a5f2caf 100644
--- a/data/scripts/maps/BattleFrontier_BattleFactoryPreBattleRoom.inc
+++ b/data/scripts/maps/BattleFrontier_BattleFactoryPreBattleRoom.inc
@@ -4,11 +4,11 @@ BattleFrontier_BattleFactoryPreBattleRoom_MapScripts:: @ 8259ABA
.byte 0
BattleFrontier_BattleFactoryPreBattleRoom_MapScript2_259AC5: @ 8259AC5
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259ACF
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259ACF
.2byte 0
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259ACF:: @ 8259ACF
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
compare VAR_0x8006, 1
goto_if 5, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259AEA
setobjectxy 1, 8, 7
@@ -19,13 +19,13 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259AEA:: @ 8259AEA
end
BattleFrontier_BattleFactoryPreBattleRoom_MapScript2_259AEF: @ 8259AEF
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259AF9
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259AF9
.2byte 0
BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259AF9:: @ 8259AF9
compare VAR_0x8006, 1
goto_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_259BA5
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
applymovement 1, BattleFrontier_BattleFactoryPreBattleRoom_Movement_25A1AC
applymovement 255, BattleFrontier_BattleFactoryPreBattleRoom_Movement_25A19A
waitmovement 0
diff --git a/data/scripts/maps/BattleFrontier_BattlePalaceBattleRoom.inc b/data/scripts/maps/BattleFrontier_BattlePalaceBattleRoom.inc
index 8393d7501..5aff5ad81 100644
--- a/data/scripts/maps/BattleFrontier_BattlePalaceBattleRoom.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePalaceBattleRoom.inc
@@ -19,17 +19,17 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F833:: @ 824F833
return
BattleFrontier_BattlePalaceBattleRoom_EventScript_24F84B:: @ 824F84B
- setvar VAR_0x4011, 100
- setvar VAR_0x4010, 100
+ setvar VAR_OBJ_GFX_ID_1, 100
+ setvar VAR_OBJ_GFX_ID_0, 100
return
BattleFrontier_BattlePalaceBattleRoom_EventScript_24F856:: @ 824F856
- setvar VAR_0x4011, 105
- setvar VAR_0x4010, 105
+ setvar VAR_OBJ_GFX_ID_1, 105
+ setvar VAR_OBJ_GFX_ID_0, 105
return
BattleFrontier_BattlePalaceBattleRoom_MapScript2_24F861: @ 824F861
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_24F86B
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_24F86B
.2byte 0
BattleFrontier_BattlePalaceBattleRoom_EventScript_24F86B:: @ 824F86B
@@ -42,7 +42,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F86B:: @ 824F86B
applymovement 1, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE9B
waitmovement 0
applymovement 3, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEAC
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
@@ -105,7 +105,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24F911:: @ 824F911
BattleFrontier_BattlePalaceBattleRoom_EventScript_24F98A:: @ 824F98A
setvar VAR_0x8004, 9
special sub_81A1780
- copyvar VAR_0x400F, VAR_RESULT
+ copyvar VAR_TEMP_F, VAR_RESULT
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB61
setvar VAR_0x8004, 1
@@ -198,10 +198,10 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB3F:: @ 824FB3F
end
BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB61:: @ 824FB61
- compare VAR_0x4002, 1
+ compare VAR_TEMP_2, 1
goto_eq BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB79
msgbox BattleFrontier_BattlePalaceBattleRoom_Text_2500DD, 4
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
BattleFrontier_BattlePalaceBattleRoom_EventScript_24FB79:: @ 824FB79
message BattleFrontier_BattlePalaceBattleRoom_Text_25014A
@@ -240,7 +240,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FC06:: @ 824FC06
applymovement 5, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEE7
applymovement 2, BattleFrontier_BattlePalaceBattleRoom_Movement_24FEF2
waitmovement 0
- switch VAR_0x400F
+ switch VAR_TEMP_F
case 2, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD3A
case 3, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FCAA
case 4, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD67
@@ -332,7 +332,7 @@ BattleFrontier_BattlePalaceBattleRoom_EventScript_24FD84:: @ 824FD84
BattleFrontier_BattlePalaceBattleRoom_EventScript_24FDF7:: @ 824FDF7
VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7:: @ 824FDF7
closemessage
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_2, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 0
@@ -350,13 +350,13 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7:: @ 824FDF7
return
BattleFrontier_BattlePalaceBattleRoom_MapScript2_24FE34: @ 824FE34
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FE3E
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattlePalaceBattleRoom_EventScript_24FE3E
.2byte 0
BattleFrontier_BattlePalaceBattleRoom_EventScript_24FE3E:: @ 824FE3E
hideobjectat 1, BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM
call BattleFrontier_BattlePalaceBattleRoom_EventScript_24F833
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
applymovement 255, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE90
removeobject 2
applymovement 4, BattleFrontier_BattlePalaceBattleRoom_Movement_24FE90
diff --git a/data/scripts/maps/BattleFrontier_BattlePalaceCorridor.inc b/data/scripts/maps/BattleFrontier_BattlePalaceCorridor.inc
index 5c71cf4d6..91fb31ad3 100644
--- a/data/scripts/maps/BattleFrontier_BattlePalaceCorridor.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePalaceCorridor.inc
@@ -3,7 +3,7 @@ BattleFrontier_BattlePalaceCorridor_MapScripts:: @ 824F4A3
.byte 0
BattleFrontier_BattlePalaceCorridor_MapScript2_24F4A9: @ 824F4A9
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattlePalaceCorridor_EventScript_24F4B3
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePalaceCorridor_EventScript_24F4B3
.2byte 0
BattleFrontier_BattlePalaceCorridor_EventScript_24F4B3:: @ 824F4B3
diff --git a/data/scripts/maps/BattleFrontier_BattlePalaceLobby.inc b/data/scripts/maps/BattleFrontier_BattlePalaceLobby.inc
index 11fc42ced..067e18fa2 100644
--- a/data/scripts/maps/BattleFrontier_BattlePalaceLobby.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePalaceLobby.inc
@@ -4,20 +4,20 @@ BattleFrontier_BattlePalaceLobby_MapScripts:: @ 824D77E
.byte 0
BattleFrontier_BattlePalaceLobby_MapScript2_24D789: @ 824D789
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattlePalaceLobby_EventScript_24D793
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattlePalaceLobby_EventScript_24D793
.2byte 0
BattleFrontier_BattlePalaceLobby_EventScript_24D793:: @ 824D793
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
BattleFrontier_BattlePalaceLobby_MapScript2_24D79D: @ 824D79D
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattlePalaceLobby_EventScript_24D7C7
- map_script_2 VAR_0x4000, 1, BattleFrontier_BattlePalaceLobby_EventScript_24D7D0
- map_script_2 VAR_0x4000, 2, BattleFrontier_BattlePalaceLobby_EventScript_24D908
- map_script_2 VAR_0x4000, 3, BattleFrontier_BattlePalaceLobby_EventScript_24D817
- map_script_2 VAR_0x4000, 4, BattleFrontier_BattlePalaceLobby_EventScript_24D873
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePalaceLobby_EventScript_24D7C7
+ map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePalaceLobby_EventScript_24D7D0
+ map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattlePalaceLobby_EventScript_24D908
+ map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattlePalaceLobby_EventScript_24D817
+ map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattlePalaceLobby_EventScript_24D873
.2byte 0
BattleFrontier_BattlePalaceLobby_EventScript_24D7C7:: @ 824D7C7
@@ -41,7 +41,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D7D0:: @ 824D7D0
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -67,7 +67,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D840:: @ 824D840
call BattleFrontier_BattlePalaceLobby_EventScript_24D8A1
msgbox BattleFrontier_BattlePalaceLobby_Text_24E0D8, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -82,7 +82,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D873:: @ 824D873
call BattleFrontier_BattlePalaceLobby_EventScript_24D8A1
msgbox BattleFrontier_BattlePalaceLobby_Text_24E0D8, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -127,7 +127,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D908:: @ 824D908
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
goto BattleFrontier_BattlePalaceLobby_EventScript_24DAF3
BattleFrontier_BattlePalaceLobby_EventScript_24D944:: @ 824D944
@@ -202,7 +202,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24D9E6:: @ 824D9E6
case 127, BattleFrontier_BattlePalaceLobby_EventScript_24DB91
BattleFrontier_BattlePalaceLobby_EventScript_24DA87:: @ 824DA87
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
@@ -224,7 +224,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DA87:: @ 824DA87
closemessage
delay 2
call BattleFrontier_BattlePalaceLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattlePalaceLobby_EventScript_24DB7A
@@ -237,7 +237,7 @@ BattleFrontier_BattlePalaceLobby_EventScript_24DAF3:: @ 824DAF3
closemessage
call BattleFrontier_BattlePalaceLobby_EventScript_24DBBC
warp BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR, 255, 8, 13
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
waitstate
end
diff --git a/data/scripts/maps/BattleFrontier_BattlePikeCorridor.inc b/data/scripts/maps/BattleFrontier_BattlePikeCorridor.inc
index 06335dddf..5293b6cfa 100644
--- a/data/scripts/maps/BattleFrontier_BattlePikeCorridor.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePikeCorridor.inc
@@ -4,7 +4,7 @@ BattleFrontier_BattlePikeCorridor_MapScripts:: @ 825C771
.byte 0
BattleFrontier_BattlePikeCorridor_MapScript2_25C77C: @ 825C77C
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattlePikeCorridor_EventScript_25C786
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeCorridor_EventScript_25C786
.2byte 0
BattleFrontier_BattlePikeCorridor_EventScript_25C786:: @ 825C786
@@ -37,11 +37,11 @@ BattleFrontier_BattlePikeCorridor_EventScript_25C786:: @ 825C786
end
BattleFrontier_BattlePikeCorridor_MapScript2_25C7F7: @ 825C7F7
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattlePikeCorridor_EventScript_25C801
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattlePikeCorridor_EventScript_25C801
.2byte 0
BattleFrontier_BattlePikeCorridor_EventScript_25C801:: @ 825C801
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
diff --git a/data/scripts/maps/BattleFrontier_BattlePikeLobby.inc b/data/scripts/maps/BattleFrontier_BattlePikeLobby.inc
index f78cec646..0cee28347 100644
--- a/data/scripts/maps/BattleFrontier_BattlePikeLobby.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePikeLobby.inc
@@ -4,18 +4,18 @@ BattleFrontier_BattlePikeLobby_MapScripts:: @ 825B6C6
.byte 0
BattleFrontier_BattlePikeLobby_MapScript2_25B6D1: @ 825B6D1
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattlePikeLobby_EventScript_25B707
- map_script_2 VAR_0x4000, 1, BattleFrontier_BattlePikeLobby_EventScript_25B710
- map_script_2 VAR_0x4000, 3, BattleFrontier_BattlePikeLobby_EventScript_25B762
- map_script_2 VAR_0x4000, 4, BattleFrontier_BattlePikeLobby_EventScript_25B806
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeLobby_EventScript_25B707
+ map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePikeLobby_EventScript_25B710
+ map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattlePikeLobby_EventScript_25B762
+ map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattlePikeLobby_EventScript_25B806
.2byte 0
BattleFrontier_BattlePikeLobby_MapScript2_25B6F3: @ 825B6F3
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattlePikeLobby_EventScript_25B6FD
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattlePikeLobby_EventScript_25B6FD
.2byte 0
BattleFrontier_BattlePikeLobby_EventScript_25B6FD:: @ 825B6FD
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
@@ -43,7 +43,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B710:: @ 825B710
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -89,7 +89,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B78D:: @ 825B78D
waitse
msgbox BattleFrontier_BattlePikeLobby_Text_25BE02, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -118,7 +118,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B806:: @ 825B806
waitse
msgbox BattleFrontier_BattlePikeLobby_Text_25BE02, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -171,8 +171,8 @@ BattleFrontier_BattlePikeLobby_EventScript_25B8BB:: @ 825B8BB
case 127, BattleFrontier_BattlePikeLobby_EventScript_25BA73
BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C
- setvar VAR_0x4000, 0
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_0, 0
+ setvar VAR_TEMP_1, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
@@ -196,7 +196,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C
closemessage
delay 2
call BattleFrontier_BattlePikeLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
setvar VAR_0x8004, 26
special sub_81A703C
compare VAR_RESULT, 0
@@ -213,7 +213,7 @@ BattleFrontier_BattlePikeLobby_EventScript_25B95C:: @ 825B95C
special HealPlayerParty
call BattleFrontier_BattlePikeLobby_EventScript_25BB49
warpsilent BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR, 255, 6, 7
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
waitstate
end
diff --git a/data/scripts/maps/BattleFrontier_BattlePikeRandomRoom1.inc b/data/scripts/maps/BattleFrontier_BattlePikeRandomRoom1.inc
index 30245d984..3461f8275 100644
--- a/data/scripts/maps/BattleFrontier_BattlePikeRandomRoom1.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePikeRandomRoom1.inc
@@ -6,11 +6,11 @@ BattleFrontier_BattlePikeRandomRoom1_MapScripts:: @ 825D152
.byte 0
BattleFrontier_BattlePikeRandomRoom1_MapScript2_25D167: @ 825D167
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D171
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRandomRoom1_EventScript_25D171
.2byte 0
BattleFrontier_BattlePikeRandomRoom1_EventScript_25D171:: @ 825D171
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
setvar VAR_0x8004, 5
special sub_81A703C
switch VAR_RESULT
diff --git a/data/scripts/maps/BattleFrontier_BattlePikeRandomRoom2.inc b/data/scripts/maps/BattleFrontier_BattlePikeRandomRoom2.inc
index 22f4614d3..14f543284 100644
--- a/data/scripts/maps/BattleFrontier_BattlePikeRandomRoom2.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePikeRandomRoom2.inc
@@ -4,7 +4,7 @@ BattleFrontier_BattlePikeRandomRoom2_MapScripts:: @ 825E392
.byte 0
BattleFrontier_BattlePikeRandomRoom2_MapScript2_25E39D: @ 825E39D
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3A7
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3A7
.2byte 0
BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3A7:: @ 825E3A7
@@ -29,11 +29,11 @@ BattleFrontier_BattlePikeRandomRoom2_Movement_25E3DB: @ 825E3DB
step_end
BattleFrontier_BattlePikeRandomRoom2_MapScript2_25E3DE: @ 825E3DE
- map_script_2 VAR_0x4004, 0, BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3E8
+ map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3E8
.2byte 0
BattleFrontier_BattlePikeRandomRoom2_EventScript_25E3E8:: @ 825E3E8
- setvar VAR_0x4004, 1
+ setvar VAR_TEMP_4, 1
turnobject 255, 2
end
diff --git a/data/scripts/maps/BattleFrontier_BattlePikeRandomRoom3.inc b/data/scripts/maps/BattleFrontier_BattlePikeRandomRoom3.inc
index c651a9e68..d93913df2 100644
--- a/data/scripts/maps/BattleFrontier_BattlePikeRandomRoom3.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePikeRandomRoom3.inc
@@ -5,12 +5,12 @@ BattleFrontier_BattlePikeRandomRoom3_MapScripts:: @ 825E41A
.byte 0
BattleFrontier_BattlePikeRandomRoom3_MapScript2_25E42A: @ 825E42A
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_25E43C
- map_script_2 VAR_0x4001, 1, BattleFrontier_BattlePikeRandomRoom3_EventScript_25E44A
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_25E43C
+ map_script_2 VAR_TEMP_1, 1, BattleFrontier_BattlePikeRandomRoom3_EventScript_25E44A
.2byte 0
BattleFrontier_BattlePikeRandomRoom3_EventScript_25E43C:: @ 825E43C
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
setvar VAR_0x8004, 6
special sub_81A703C
end
@@ -25,11 +25,11 @@ BattleFrontier_BattlePikeRandomRoom3_EventScript_25E44A:: @ 825E44A
end
BattleFrontier_BattlePikeRandomRoom3_MapScript2_25E466: @ 825E466
- map_script_2 VAR_0x4004, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_25E470
+ map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeRandomRoom3_EventScript_25E470
.2byte 0
BattleFrontier_BattlePikeRandomRoom3_EventScript_25E470:: @ 825E470
- setvar VAR_0x4004, 1
+ setvar VAR_TEMP_4, 1
turnobject 255, 2
end
@@ -45,6 +45,6 @@ BattleFrontier_BattlePikeRandomRoom3_MapScript1_25E47A: @ 825E47A
end
BattleFrontier_BattlePikeRandomRoom3_EventScript_25E4A3:: @ 825E4A3
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
end
diff --git a/data/scripts/maps/BattleFrontier_BattlePikeThreePathRoom.inc b/data/scripts/maps/BattleFrontier_BattlePikeThreePathRoom.inc
index d4723acc7..6952412f2 100644
--- a/data/scripts/maps/BattleFrontier_BattlePikeThreePathRoom.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePikeThreePathRoom.inc
@@ -5,19 +5,19 @@ BattleFrontier_BattlePikeThreePathRoom_MapScripts:: @ 825C843
.byte 0
BattleFrontier_BattlePikeThreePathRoom_MapScript2_25C853: @ 825C853
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C891
- map_script_2 VAR_0x4000, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C89A
- map_script_2 VAR_0x4000, 2, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C8A4
- map_script_2 VAR_0x4005, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA78
- map_script_2 VAR_0x4005, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA97
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C891
+ map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C89A
+ map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C8A4
+ map_script_2 VAR_TEMP_5, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA78
+ map_script_2 VAR_TEMP_5, 1, BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA97
.2byte 0
BattleFrontier_BattlePikeThreePathRoom_MapScript2_25C87D: @ 825C87D
- map_script_2 VAR_0x4004, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C887
+ map_script_2 VAR_TEMP_4, 0, BattleFrontier_BattlePikeThreePathRoom_EventScript_25C887
.2byte 0
BattleFrontier_BattlePikeThreePathRoom_EventScript_25C887:: @ 825C887
- setvar VAR_0x4004, 1
+ setvar VAR_TEMP_4, 1
turnobject 255, 2
end
@@ -44,7 +44,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25C8A4:: @ 825C8A4
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
special SavePlayerParty
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
@@ -170,11 +170,11 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA78:: @ 825CA78
special sub_81A703C
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA91
- setvar VAR_0x4005, 255
+ setvar VAR_TEMP_5, 255
end
BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA91:: @ 825CA91
- setvar VAR_0x4005, 1
+ setvar VAR_TEMP_5, 1
end
BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA97:: @ 825CA97
@@ -185,7 +185,7 @@ BattleFrontier_BattlePikeThreePathRoom_EventScript_25CA97:: @ 825CA97
releaseall
applymovement 2, BattleFrontier_BattlePikeThreePathRoom_Movement_25CBD5
waitmovement 0
- setvar VAR_0x4005, 255
+ setvar VAR_TEMP_5, 255
end
BattleFrontier_BattlePikeThreePathRoom_EventScript_25CABB:: @ 825CABB
diff --git a/data/scripts/maps/BattleFrontier_BattlePointExchangeServiceCorner.inc b/data/scripts/maps/BattleFrontier_BattlePointExchangeServiceCorner.inc
index 2a39d844b..5bb6a87e0 100644
--- a/data/scripts/maps/BattleFrontier_BattlePointExchangeServiceCorner.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePointExchangeServiceCorner.inc
@@ -13,23 +13,23 @@ BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F07D:: @ 825F07D
end
BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F08A:: @ 825F08A
- specialvar VAR_0x4001, sub_813AA04
- compare VAR_0x4001, VAR_0x8008
+ specialvar VAR_TEMP_1, sub_813AA04
+ compare VAR_TEMP_1, VAR_0x8008
goto_if 4, BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F0C9
msgbox BattleFrontier_BattlePointExchangeServiceCorner_Text_25FE86, 4
- compare VAR_0x4002, 0
+ compare VAR_TEMP_2, 0
goto_eq BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F185
- compare VAR_0x4002, 1
+ compare VAR_TEMP_2, 1
goto_eq BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F38E
- compare VAR_0x4002, 2
+ compare VAR_TEMP_2, 2
goto_eq BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F4B1
goto BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F602
end
BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F0C9:: @ 825F0C9
- compare VAR_0x4002, 0
+ compare VAR_TEMP_2, 0
goto_eq BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F0E5
- compare VAR_0x4002, 1
+ compare VAR_TEMP_2, 1
goto_eq BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F0E5
goto BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F12A
end
@@ -44,7 +44,7 @@ BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F0E5:: @ 825F0E5
special sub_813A8FC
playse SE_REGI
msgbox BattleFrontier_BattlePointExchangeServiceCorner_Text_25FE45, 4
- compare VAR_0x4002, 0
+ compare VAR_TEMP_2, 0
goto_eq BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F185
goto BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F38E
end
@@ -65,7 +65,7 @@ BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F12A:: @ 825F12A
special sub_813A8FC
playse SE_REGI
msgbox BattleFrontier_BattlePointExchangeServiceCorner_Text_25FE72, 4
- compare VAR_0x4002, 2
+ compare VAR_TEMP_2, 2
goto_eq BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F4B1
goto BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F602
end
@@ -79,7 +79,7 @@ BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F166:: @ 825F166
BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F173:: @ 825F173
lock
faceplayer
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_2, 0
call BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F071
goto BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F185
end
@@ -198,7 +198,7 @@ BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F359:: @ 825F359
BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F37C:: @ 825F37C
lock
faceplayer
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
call BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F071
goto BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F38E
end
@@ -267,7 +267,7 @@ BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F47C:: @ 825F47C
BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F49F:: @ 825F49F
lock
faceplayer
- setvar VAR_0x4002, 2
+ setvar VAR_TEMP_2, 2
call BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F071
goto BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F4B1
end
@@ -346,7 +346,7 @@ BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F5CD:: @ 825F5CD
BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F5F0:: @ 825F5F0
lock
faceplayer
- setvar VAR_0x4002, 3
+ setvar VAR_TEMP_2, 3
call BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F071
goto BattleFrontier_BattlePointExchangeServiceCorner_EventScript_25F602
end
diff --git a/data/scripts/maps/BattleFrontier_BattlePyramidEmptySquare.inc b/data/scripts/maps/BattleFrontier_BattlePyramidEmptySquare.inc
index 29485ef12..148ea97c1 100644
--- a/data/scripts/maps/BattleFrontier_BattlePyramidEmptySquare.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePyramidEmptySquare.inc
@@ -5,9 +5,9 @@ BattleFrontier_BattlePyramidEmptySquare_MapScripts:: @ 8252A33
.byte 0
BattleFrontier_BattlePyramidEmptySquare_MapScript2_252A43: @ 8252A43
- map_script_2 VAR_0x400D, 1, BattleFrontier_BattlePyramidEmptySquare_EventScript_252A5D
- map_script_2 VAR_0x400E, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252A98
- map_script_2 VAR_0x400F, 1, BattleFrontier_BattlePyramidEmptySquare_EventScript_252A8F
+ map_script_2 VAR_TEMP_D, 1, BattleFrontier_BattlePyramidEmptySquare_EventScript_252A5D
+ map_script_2 VAR_TEMP_E, 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252A98
+ map_script_2 VAR_TEMP_F, 1, BattleFrontier_BattlePyramidEmptySquare_EventScript_252A8F
.2byte 0
BattleFrontier_BattlePyramidEmptySquare_EventScript_252A5D:: @ 8252A5D
@@ -23,18 +23,18 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252A77:: @ 8252A77
delay 2
compare VAR_RESULT, 2
goto_if 5, BattleFrontier_BattlePyramidEmptySquare_EventScript_252A77
- setvar VAR_0x400D, 0
+ setvar VAR_TEMP_D, 0
releaseall
end
BattleFrontier_BattlePyramidEmptySquare_EventScript_252A8F:: @ 8252A8F
special ShowMapNamePopup
- setvar VAR_0x400F, 0
+ setvar VAR_TEMP_F, 0
end
BattleFrontier_BattlePyramidEmptySquare_EventScript_252A98:: @ 8252A98
playbgm MUS_PYRAMID, 0
- setvar VAR_0x400E, 1
+ setvar VAR_TEMP_E, 1
end
BattleFrontier_BattlePyramidEmptySquare_MapScript1_252AA2: @ 8252AA2
@@ -42,7 +42,7 @@ BattleFrontier_BattlePyramidEmptySquare_MapScript1_252AA2: @ 8252AA2
special sub_81A8E7C
setvar VAR_0x8004, 0
special sub_81A1780
- switch VAR_0x4000
+ switch VAR_TEMP_0
case 0, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D
case 1, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B66
case 2, BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D
@@ -64,7 +64,7 @@ BattleFrontier_BattlePyramidEmptySquare_MapScript1_252AA2: @ 8252AA2
setvar VAR_0x8004, 14
setvar VAR_0x8005, 8
special sub_81A1780
- setvar VAR_0x400D, 1
+ setvar VAR_TEMP_D, 1
BattleFrontier_BattlePyramidEmptySquare_EventScript_252B39:: @ 8252B39
setvar VAR_0x8004, 17
@@ -109,12 +109,12 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252B8D:: @ 8252B8D
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
special sub_81A1780
- setvar VAR_0x400F, 1
+ setvar VAR_TEMP_F, 1
end
BattleFrontier_BattlePyramidEmptySquare_MapScript1_252BCA: @ 8252BCA
call BattleFrontier_BattlePyramidEmptySquare_EventScript_252BD5
- setvar VAR_0x400F, 1
+ setvar VAR_TEMP_F, 1
end
BattleFrontier_BattlePyramidEmptySquare_EventScript_252BD5:: @ 8252BD5
diff --git a/data/scripts/maps/BattleFrontier_BattlePyramidLobby.inc b/data/scripts/maps/BattleFrontier_BattlePyramidLobby.inc
index eab2bb18c..2862722ce 100644
--- a/data/scripts/maps/BattleFrontier_BattlePyramidLobby.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePyramidLobby.inc
@@ -4,20 +4,20 @@ BattleFrontier_BattlePyramidLobby_MapScripts:: @ 8250716
.byte 0
BattleFrontier_BattlePyramidLobby_MapScript2_250721: @ 8250721
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattlePyramidLobby_EventScript_25072B
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattlePyramidLobby_EventScript_25072B
.2byte 0
BattleFrontier_BattlePyramidLobby_EventScript_25072B: @ 825072B
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
BattleFrontier_BattlePyramidLobby_MapScript2_250735: @ 8250735
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattlePyramidLobby_EventScript_25075F
- map_script_2 VAR_0x4000, 1, BattleFrontier_BattlePyramidLobby_EventScript_250768
- map_script_2 VAR_0x4000, 2, BattleFrontier_BattlePyramidLobby_EventScript_2508AC
- map_script_2 VAR_0x4000, 3, BattleFrontier_BattlePyramidLobby_EventScript_2507B1
- map_script_2 VAR_0x4000, 4, BattleFrontier_BattlePyramidLobby_EventScript_250852
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattlePyramidLobby_EventScript_25075F
+ map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattlePyramidLobby_EventScript_250768
+ map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattlePyramidLobby_EventScript_2508AC
+ map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattlePyramidLobby_EventScript_2507B1
+ map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattlePyramidLobby_EventScript_250852
.2byte 0
BattleFrontier_BattlePyramidLobby_EventScript_25075F:: @ 825075F
@@ -44,7 +44,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250768:: @ 8250768
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -90,7 +90,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2507DA:: @ 82507DA
waitse
msgbox BattleFrontier_BattlePyramidLobby_Text_251BB6, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -119,7 +119,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250852:: @ 8250852
waitse
msgbox BattleFrontier_BattlePyramidLobby_Text_251BB6, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -175,7 +175,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250904:: @ 8250904
case 127, BattleFrontier_BattlePyramidLobby_EventScript_250AC1
BattleFrontier_BattlePyramidLobby_EventScript_2509A5:: @ 82509A5
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
@@ -201,7 +201,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_2509A5:: @ 82509A5
closemessage
delay 2
call BattleFrontier_BattlePyramidLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattlePyramidLobby_EventScript_250AAA
@@ -220,7 +220,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250A21:: @ 8250A21
setvar VAR_RESULT, 0
special HealPlayerParty
warp BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE, 255, 1, 1
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
waitstate
end
diff --git a/data/scripts/maps/BattleFrontier_BattlePyramidTop.inc b/data/scripts/maps/BattleFrontier_BattlePyramidTop.inc
index 07e66efa8..d071639f8 100644
--- a/data/scripts/maps/BattleFrontier_BattlePyramidTop.inc
+++ b/data/scripts/maps/BattleFrontier_BattlePyramidTop.inc
@@ -10,17 +10,17 @@ BattleFrontier_BattlePyramidTop_MapScript1_2550B6: @ 82550B6
setvar VAR_0x8005, 200
setvar VAR_0x8006, 0
special sub_81A8E7C
- setvar VAR_0x400F, 1
+ setvar VAR_TEMP_F, 1
end
BattleFrontier_BattlePyramidTop_MapScript2_2550CE: @ 82550CE
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattlePyramidTop_EventScript_2550D8
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattlePyramidTop_EventScript_2550D8
.2byte 0
BattleFrontier_BattlePyramidTop_EventScript_2550D8:: @ 82550D8
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
- compare VAR_0x400C, 0
+ compare VAR_TEMP_C, 0
goto_if 5, BattleFrontier_BattlePyramidTop_EventScript_2550F3
setobjectxyperm 2, 0, 0
@@ -35,10 +35,10 @@ BattleFrontier_BattlePyramidTop_MapScript1_2550F4: @ 82550F4
call BattleFrontier_BattlePyramidTop_EventScript_242170
BattleFrontier_BattlePyramidTop_EventScript_25510C:: @ 825510C
- copyvar VAR_0x400C, VAR_RESULT
+ copyvar VAR_TEMP_C, VAR_RESULT
setvar VAR_0x8004, 0
special sub_81A1780
- switch VAR_0x4000
+ switch VAR_TEMP_0
case 0, BattleFrontier_BattlePyramidTop_EventScript_255193
case 1, BattleFrontier_BattlePyramidTop_EventScript_252B66
case 2, BattleFrontier_BattlePyramidTop_EventScript_255193
@@ -54,18 +54,18 @@ BattleFrontier_BattlePyramidTop_EventScript_25510C:: @ 825510C
end
BattleFrontier_BattlePyramidTop_MapScript2_25516E: @ 825516E
- map_script_2 VAR_0x400E, 0, BattleFrontier_BattlePyramidTop_EventScript_255180
- map_script_2 VAR_0x400F, 1, BattleFrontier_BattlePyramidTop_EventScript_25518A
+ map_script_2 VAR_TEMP_E, 0, BattleFrontier_BattlePyramidTop_EventScript_255180
+ map_script_2 VAR_TEMP_F, 1, BattleFrontier_BattlePyramidTop_EventScript_25518A
.2byte 0
BattleFrontier_BattlePyramidTop_EventScript_255180:: @ 8255180
playbgm MUS_PYRAMID_TOP, 0
- setvar VAR_0x400E, 1
+ setvar VAR_TEMP_E, 1
end
BattleFrontier_BattlePyramidTop_EventScript_25518A:: @ 825518A
special ShowMapNamePopup
- setvar VAR_0x400F, 0
+ setvar VAR_TEMP_F, 0
end
BattleFrontier_BattlePyramidTop_EventScript_255193:: @ 8255193
@@ -82,15 +82,15 @@ BattleFrontier_BattlePyramidTop_EventScript_255193:: @ 8255193
setvar VAR_0x8004, 3
setvar VAR_0x8005, 3
special sub_81A1780
- setvar VAR_0x400F, 1
+ setvar VAR_TEMP_F, 1
end
BattleFrontier_BattlePyramidTop_EventScript_2551D0:: @ 82551D0
lock
faceplayer
- compare VAR_0x400D, 0
+ compare VAR_TEMP_D, 0
goto_if 5, BattleFrontier_BattlePyramidTop_EventScript_255236
- compare VAR_0x400C, 0
+ compare VAR_TEMP_C, 0
goto_if 5, BattleFrontier_BattlePyramidTop_EventScript_255240
msgbox BattleFrontier_BattlePyramidTop_Text_255410, 4
closemessage
@@ -123,13 +123,13 @@ BattleFrontier_BattlePyramidTop_EventScript_255236:: @ 8255236
BattleFrontier_BattlePyramidTop_EventScript_255240:: @ 8255240
msgbox BattleFrontier_BattlePyramidTop_Text_25551F, 4
applymovement 1, BattleFrontier_BattlePyramidTop_Movement_2553FD
- setvar VAR_0x400D, 1
+ setvar VAR_TEMP_D, 1
closemessage
end
BattleFrontier_BattlePyramidTop_EventScript_255256:: @ 8255256
lockall
- switch VAR_0x400C
+ switch VAR_TEMP_C
case 2, BattleFrontier_BattlePyramidTop_EventScript_255335
case 3, BattleFrontier_BattlePyramidTop_EventScript_2552D0
case 4, BattleFrontier_BattlePyramidTop_EventScript_255388
diff --git a/data/scripts/maps/BattleFrontier_BattleTowerBattleRoom.inc b/data/scripts/maps/BattleFrontier_BattleTowerBattleRoom.inc
index 7ed448c9a..63306af2a 100644
--- a/data/scripts/maps/BattleFrontier_BattleTowerBattleRoom.inc
+++ b/data/scripts/maps/BattleFrontier_BattleTowerBattleRoom.inc
@@ -4,20 +4,20 @@ BattleFrontier_BattleTowerBattleRoom_MapScripts:: @ 8241B40
.byte 0
BattleFrontier_BattleTowerBattleRoom_MapScript2_241B4B: @ 8241B4B
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleTowerBattleRoom_EventScript_241B55
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerBattleRoom_EventScript_241B55
.2byte 0
BattleFrontier_BattleTowerBattleRoom_EventScript_241B55:: @ 8241B55
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
applymovement 3, BattleFrontier_BattleTowerBattleRoom_Movement_242198
end
BattleFrontier_BattleTowerBattleRoom_MapScript2_241B62: @ 8241B62
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C
.2byte 0
BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
applymovement 255, BattleFrontier_BattleTowerBattleRoom_Movement_242179
waitmovement 0
setvar VAR_0x8004, 1
@@ -29,7 +29,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241B6C:: @ 8241B6C
waitmovement 0
applymovement 255, BattleFrontier_BattleTowerBattleRoom_Movement_24217E
waitmovement 0
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 1
@@ -89,7 +89,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241C2F:: @ 8241C2F
BattleFrontier_BattleTowerBattleRoom_EventScript_241C8F:: @ 8241C8F
setvar VAR_0x8004, 9
special sub_81A1780
- copyvar VAR_0x400F, VAR_RESULT
+ copyvar VAR_TEMP_F, VAR_RESULT
compare VAR_RESULT, 0
goto_if 5, BattleFrontier_BattleTowerBattleRoom_EventScript_241F0A
setvar VAR_0x8004, 1
@@ -178,8 +178,8 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241E22:: @ 8241E22
end
BattleFrontier_BattleTowerBattleRoom_EventScript_241E44:: @ 8241E44
- copyvar VAR_0x400F, VAR_RESULT
- switch VAR_0x400F
+ copyvar VAR_TEMP_F, VAR_RESULT
+ switch VAR_TEMP_F
case 1, BattleFrontier_BattleTowerBattleRoom_EventScript_241E90
case 2, BattleFrontier_BattleTowerBattleRoom_EventScript_241E97
case 3, BattleFrontier_BattleTowerBattleRoom_EventScript_241E9E
@@ -245,10 +245,10 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241EC3:: @ 8241EC3
return
BattleFrontier_BattleTowerBattleRoom_EventScript_241F0A:: @ 8241F0A
- compare VAR_0x4002, 1
+ compare VAR_TEMP_2, 1
goto_eq BattleFrontier_BattleTowerBattleRoom_EventScript_241F22
msgbox BattleFrontier_BattleTowerBattleRoom_Text_2424C2, 4
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
BattleFrontier_BattleTowerBattleRoom_EventScript_241F22:: @ 8241F22
message BattleFrontier_BattleTowerBattleRoom_Text_242542
@@ -282,7 +282,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_241FAF:: @ 8241FAF
addobject 1
applymovement 1, BattleFrontier_BattleTowerBattleRoom_Movement_2421B2
waitmovement 0
- switch VAR_0x400F
+ switch VAR_TEMP_F
case 2, BattleFrontier_BattleTowerBattleRoom_EventScript_242085
case 3, BattleFrontier_BattleTowerBattleRoom_EventScript_242029
case 4, BattleFrontier_BattleTowerBattleRoom_EventScript_2420B2
@@ -356,7 +356,7 @@ BattleFrontier_BattleTowerBattleRoom_EventScript_2420CF:: @ 82420CF
BattleFrontier_BattleTowerBattleRoom2_EventScript_24210E:: @ 824210E
BattleFrontier_BattleTowerBattleRoom_EventScript_24210E:: @ 824210E
closemessage
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_2, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 6
setvar VAR_0x8006, 0
diff --git a/data/scripts/maps/BattleFrontier_BattleTowerBattleRoom2.inc b/data/scripts/maps/BattleFrontier_BattleTowerBattleRoom2.inc
index ec2994591..f22b0de26 100644
--- a/data/scripts/maps/BattleFrontier_BattleTowerBattleRoom2.inc
+++ b/data/scripts/maps/BattleFrontier_BattleTowerBattleRoom2.inc
@@ -17,11 +17,11 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248F0F:: @ 8248F0F
checkplayergender
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248F29
- setvar VAR_0x401F, 0
+ setvar VAR_OBJ_GFX_ID_F, 0
return
BattleFrontier_BattleTowerBattleRoom2_EventScript_248F29:: @ 8248F29
- setvar VAR_0x401F, 89
+ setvar VAR_OBJ_GFX_ID_F, 89
return
BattleFrontier_BattleTowerBattleRoom2_EventScript_248F2F:: @ 8248F2F
@@ -29,7 +29,7 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248F2F:: @ 8248F2F
return
BattleFrontier_BattleTowerBattleRoom2_MapScript2_248F33: @ 8248F33
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F3D
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F3D
.2byte 0
BattleFrontier_BattleTowerBattleRoom2_EventScript_248F3D:: @ 8248F3D
@@ -37,11 +37,11 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_248F3D:: @ 8248F3D
end
BattleFrontier_BattleTowerBattleRoom2_MapScript2_248F43: @ 8248F43
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D
.2byte 0
BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D:: @ 8248F4D
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249518
applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_24951E
waitmovement 0
@@ -258,8 +258,8 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_2492DB:: @ 82492DB
BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD:: @ 82492FD
compare VAR_0x40CE, 3
goto_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_24937E
- copyvar VAR_0x400F, VAR_RESULT
- switch VAR_0x400F
+ copyvar VAR_TEMP_F, VAR_RESULT
+ switch VAR_TEMP_F
case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249354
case 2, BattleFrontier_BattleTowerBattleRoom2_EventScript_24935B
case 3, BattleFrontier_BattleTowerBattleRoom2_EventScript_249362
@@ -298,8 +298,8 @@ BattleFrontier_BattleTowerBattleRoom2_EventScript_249377:: @ 8249377
return
BattleFrontier_BattleTowerBattleRoom2_EventScript_24937E:: @ 824937E
- copyvar VAR_0x400F, VAR_RESULT
- switch VAR_0x400F
+ copyvar VAR_TEMP_F, VAR_RESULT
+ switch VAR_TEMP_F
case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493CA
case 2, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493D6
case 3, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493E2
diff --git a/data/scripts/maps/BattleFrontier_BattleTowerCorridor.inc b/data/scripts/maps/BattleFrontier_BattleTowerCorridor.inc
index fc1327f41..a1dfa2abc 100644
--- a/data/scripts/maps/BattleFrontier_BattleTowerCorridor.inc
+++ b/data/scripts/maps/BattleFrontier_BattleTowerCorridor.inc
@@ -16,11 +16,11 @@ BattleFrontier_BattleTowerCorridor_EventScript_241AD3:: @ 8241AD3
end
BattleFrontier_BattleTowerCorridor_MapScript2_241AE6: @ 8241AE6
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleTowerCorridor_EventScript_241AF0
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerCorridor_EventScript_241AF0
.2byte 0
BattleFrontier_BattleTowerCorridor_EventScript_241AF0:: @ 8241AF0
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
compare VAR_0x8006, 1
goto_eq BattleFrontier_BattleTowerCorridor_EventScript_241B16
applymovement 1, BattleFrontier_BattleTowerCorridor_Movement_241B3A
@@ -34,7 +34,7 @@ BattleFrontier_BattleTowerCorridor_EventScript_241B16:: @ 8241B16
waitmovement 0
BattleFrontier_BattleTowerCorridor_EventScript_241B27:: @ 8241B27
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
warp BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM, 255, 4, 8
waitstate
end
diff --git a/data/scripts/maps/BattleFrontier_BattleTowerCorridor2.inc b/data/scripts/maps/BattleFrontier_BattleTowerCorridor2.inc
index cd81b47fd..af2c67eac 100644
--- a/data/scripts/maps/BattleFrontier_BattleTowerCorridor2.inc
+++ b/data/scripts/maps/BattleFrontier_BattleTowerCorridor2.inc
@@ -17,11 +17,11 @@ BattleFrontier_BattleTowerCorridor2_EventScript_248D71:: @ 8248D71
checkplayergender
compare VAR_RESULT, 1
goto_eq BattleFrontier_BattleTowerCorridor2_EventScript_248D8B
- setvar VAR_0x401F, 0
+ setvar VAR_OBJ_GFX_ID_F, 0
return
BattleFrontier_BattleTowerCorridor2_EventScript_248D8B:: @ 8248D8B
- setvar VAR_0x401F, 89
+ setvar VAR_OBJ_GFX_ID_F, 89
return
BattleFrontier_BattleTowerCorridor2_EventScript_248D91:: @ 8248D91
@@ -29,7 +29,7 @@ BattleFrontier_BattleTowerCorridor2_EventScript_248D91:: @ 8248D91
return
BattleFrontier_BattleTowerCorridor2_MapScript2_248D95: @ 8248D95
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleTowerCorridor2_EventScript_248D9F
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerCorridor2_EventScript_248D9F
.2byte 0
BattleFrontier_BattleTowerCorridor2_EventScript_248D9F:: @ 8248D9F
@@ -40,7 +40,7 @@ BattleFrontier_BattleTowerCorridor2_EventScript_248D9F:: @ 8248D9F
end
BattleFrontier_BattleTowerCorridor2_MapScript2_248DB2: @ 8248DB2
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleTowerCorridor2_EventScript_248DBC
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerCorridor2_EventScript_248DBC
.2byte 0
BattleFrontier_BattleTowerCorridor2_EventScript_248DBC:: @ 8248DBC
@@ -81,7 +81,7 @@ BattleFrontier_BattleTowerCorridor2_EventScript_248DBC:: @ 8248DBC
closedoor 7, 1
waitdooranim
delay 30
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
call BattleFrontier_BattleTowerCorridor2_EventScript_248E71
releaseall
end
diff --git a/data/scripts/maps/BattleFrontier_BattleTowerElevator.inc b/data/scripts/maps/BattleFrontier_BattleTowerElevator.inc
index fe824b1ea..095e75394 100644
--- a/data/scripts/maps/BattleFrontier_BattleTowerElevator.inc
+++ b/data/scripts/maps/BattleFrontier_BattleTowerElevator.inc
@@ -4,11 +4,11 @@ BattleFrontier_BattleTowerElevator_MapScripts:: @ 82419DB
.byte 0
BattleFrontier_BattleTowerElevator_MapScript2_2419E6: @ 82419E6
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleTowerElevator_EventScript_2419F0
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerElevator_EventScript_2419F0
.2byte 0
BattleFrontier_BattleTowerElevator_EventScript_2419F0:: @ 82419F0
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
applymovement 1, BattleFrontier_BattleTowerElevator_Movement_241A86
applymovement 255, BattleFrontier_BattleTowerElevator_Movement_241A8A
waitmovement 0
@@ -81,11 +81,11 @@ BattleFrontier_BattleTowerElevator_Movement_241A92: @ 8241A92
step_end
BattleFrontier_BattleTowerElevator_MapScript2_241A96: @ 8241A96
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleTowerElevator_EventScript_241AA0
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerElevator_EventScript_241AA0
.2byte 0
BattleFrontier_BattleTowerElevator_EventScript_241AA0:: @ 8241AA0
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
diff --git a/data/scripts/maps/BattleFrontier_BattleTowerLobby.inc b/data/scripts/maps/BattleFrontier_BattleTowerLobby.inc
index 774507df9..9f2099b32 100644
--- a/data/scripts/maps/BattleFrontier_BattleTowerLobby.inc
+++ b/data/scripts/maps/BattleFrontier_BattleTowerLobby.inc
@@ -31,20 +31,20 @@ BattleFrontier_BattleTowerLobby_EventScript_23E6C1:: @ 823E6C1
goto BattleFrontier_BattleTowerLobby_EventScript_23E6C0
BattleFrontier_BattleTowerLobby_MapScript2_23E6C9: @ 823E6C9
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleTowerLobby_EventScript_23E6D3
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerLobby_EventScript_23E6D3
.2byte 0
BattleFrontier_BattleTowerLobby_EventScript_23E6D3:: @ 823E6D3
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
BattleFrontier_BattleTowerLobby_MapScript2_23E6DD: @ 823E6DD
- map_script_2 VAR_0x4000, 0, BattleFrontier_BattleTowerLobby_EventScript_23E707
- map_script_2 VAR_0x4000, 1, BattleFrontier_BattleTowerLobby_EventScript_23E710
- map_script_2 VAR_0x4000, 2, BattleFrontier_BattleTowerLobby_EventScript_23E8EE
- map_script_2 VAR_0x4000, 3, BattleFrontier_BattleTowerLobby_EventScript_23E758
- map_script_2 VAR_0x4000, 4, BattleFrontier_BattleTowerLobby_EventScript_23E7F2
+ map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerLobby_EventScript_23E707
+ map_script_2 VAR_TEMP_0, 1, BattleFrontier_BattleTowerLobby_EventScript_23E710
+ map_script_2 VAR_TEMP_0, 2, BattleFrontier_BattleTowerLobby_EventScript_23E8EE
+ map_script_2 VAR_TEMP_0, 3, BattleFrontier_BattleTowerLobby_EventScript_23E758
+ map_script_2 VAR_TEMP_0, 4, BattleFrontier_BattleTowerLobby_EventScript_23E7F2
.2byte 0
BattleFrontier_BattleTowerLobby_EventScript_23E707:: @ 823E707
@@ -69,7 +69,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E710:: @ 823E710
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
release
end
@@ -114,7 +114,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E7A5:: @ 823E7A5
BattleFrontier_BattleTowerLobby_EventScript_23E7E2:: @ 823E7E2
msgbox BattleFrontier_BattleTowerLobby_Text_23FD07, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
release
end
@@ -143,7 +143,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23E830:: @ 823E830
call BattleFrontier_BattleTowerLobby_EventScript_23E84D
msgbox BattleFrontier_BattleTowerLobby_Text_23FD07, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
release
end
@@ -288,7 +288,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EA2A:: @ 823EA2A
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 0
special sub_8161F74
setvar VAR_0x8004, 2
@@ -303,7 +303,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EA2A:: @ 823EA2A
closemessage
delay 2
call BattleFrontier_BattleTowerLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F0D0
incrementgamestat 30
@@ -368,7 +368,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EB93:: @ 823EB93
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 0
special sub_8161F74
setvar VAR_0x8004, 2
@@ -383,7 +383,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EB93:: @ 823EB93
closemessage
delay 2
call BattleFrontier_BattleTowerLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F0D0
incrementgamestat 30
@@ -449,7 +449,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23ECFF:: @ 823ECFF
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 0
special sub_8161F74
setvar VAR_0x8004, 2
@@ -464,7 +464,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23ECFF:: @ 823ECFF
closemessage
delay 2
call BattleFrontier_BattleTowerLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F0D0
incrementgamestat 30
@@ -529,7 +529,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EE68:: @ 823EE68
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 0
special sub_8161F74
setvar VAR_0x8004, 2
@@ -547,7 +547,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23EE68:: @ 823EE68
setvar VAR_0x8005, 0
special sub_8161F74
call BattleFrontier_BattleTowerLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F0D0
incrementgamestat 30
@@ -748,7 +748,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F108:: @ 823F108
call BattleFrontier_BattleTowerLobby_EventScript_23F135
clearflag FLAG_0x077
warp BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR, 255, 1, 6
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
waitstate
end
diff --git a/data/scripts/maps/BattleFrontier_BattleTowerMultiBattleRoom.inc b/data/scripts/maps/BattleFrontier_BattleTowerMultiBattleRoom.inc
index e334e2413..e6c99541d 100644
--- a/data/scripts/maps/BattleFrontier_BattleTowerMultiBattleRoom.inc
+++ b/data/scripts/maps/BattleFrontier_BattleTowerMultiBattleRoom.inc
@@ -26,21 +26,21 @@ BattleFrontier_BattleTowerMultiBattleRoom_MapScript1_243DB0: @ 8243DB0
end
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243DDA:: @ 8243DDA
- setvar VAR_0x4010, 7
- setvar VAR_0x4011, 7
- setvar VAR_0x4012, 7
- setvar VAR_0x4013, 7
- setvar VAR_0x4014, 7
- setvar VAR_0x4015, 7
- setvar VAR_0x4016, 7
- setvar VAR_0x4017, 7
- setvar VAR_0x4001, 1
- setvar VAR_0x4003, 1
+ setvar VAR_OBJ_GFX_ID_0, 7
+ setvar VAR_OBJ_GFX_ID_1, 7
+ setvar VAR_OBJ_GFX_ID_2, 7
+ setvar VAR_OBJ_GFX_ID_3, 7
+ setvar VAR_OBJ_GFX_ID_4, 7
+ setvar VAR_OBJ_GFX_ID_5, 7
+ setvar VAR_OBJ_GFX_ID_6, 7
+ setvar VAR_OBJ_GFX_ID_7, 7
+ setvar VAR_TEMP_1, 1
+ setvar VAR_TEMP_3, 1
setobjectxyperm 1, 10, 2
end
BattleFrontier_BattleTowerMultiBattleRoom_MapScript2_243E14: @ 8243E14
- map_script_2 VAR_0x4003, 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E1E
+ map_script_2 VAR_TEMP_3, 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E1E
.2byte 0
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E1E:: @ 8243E1E
@@ -48,13 +48,13 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E1E:: @ 8243E1E
end
BattleFrontier_BattleTowerMultiBattleRoom_MapScript2_243E23: @ 8243E23
- map_script_2 VAR_0x4001, 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E41
- map_script_2 VAR_0x4003, 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E35
+ map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E41
+ map_script_2 VAR_TEMP_3, 1, BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E35
.2byte 0
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E35:: @ 8243E35
lockall
- setvar VAR_0x4003, 0
+ setvar VAR_TEMP_3, 0
goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243EB5
end
@@ -69,7 +69,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E41:: @ 8243E41
waitmovement 0
msgbox BattleFrontier_BattleTowerMultiBattleRoom_Text_244056, 4
special HealPlayerParty
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
releaseall
end
@@ -161,7 +161,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_Movement_243F26: @ 8243F26
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243F29:: @ 8243F29
lock
faceplayer
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_2, 0
goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243F36
end
@@ -246,49 +246,49 @@ BattleFrontier_BattleTowerMultiBattleRoom_Movement_243FF2: @ 8243FF2
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243FFB:: @ 8243FFB
lock
faceplayer
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243F36
end
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_244008:: @ 8244008
lock
faceplayer
- setvar VAR_0x4002, 2
+ setvar VAR_TEMP_2, 2
goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243F36
end
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_244015:: @ 8244015
lock
faceplayer
- setvar VAR_0x4002, 3
+ setvar VAR_TEMP_2, 3
goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243F36
end
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_244022:: @ 8244022
lock
faceplayer
- setvar VAR_0x4002, 4
+ setvar VAR_TEMP_2, 4
goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243F36
end
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_24402F:: @ 824402F
lock
faceplayer
- setvar VAR_0x4002, 5
+ setvar VAR_TEMP_2, 5
goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243F36
end
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_24403C:: @ 824403C
lock
faceplayer
- setvar VAR_0x4002, 6
+ setvar VAR_TEMP_2, 6
goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243F36
end
BattleFrontier_BattleTowerMultiBattleRoom_EventScript_244049:: @ 8244049
lock
faceplayer
- setvar VAR_0x4002, 7
+ setvar VAR_TEMP_2, 7
goto BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243F36
end
diff --git a/data/scripts/maps/BattleFrontier_Lounge3.inc b/data/scripts/maps/BattleFrontier_Lounge3.inc
index 4568dd2c8..2638541b2 100644
--- a/data/scripts/maps/BattleFrontier_Lounge3.inc
+++ b/data/scripts/maps/BattleFrontier_Lounge3.inc
@@ -57,8 +57,8 @@ BattleFrontier_Lounge3_EventScript_261E46:: @ 8261E46
end
BattleFrontier_Lounge3_EventScript_261E51:: @ 8261E51
- specialvar VAR_0x4001, sub_813AA04
- compare VAR_0x4001, VAR_0x8008
+ specialvar VAR_TEMP_1, sub_813AA04
+ compare VAR_TEMP_1, VAR_0x8008
goto_if 4, BattleFrontier_Lounge3_EventScript_261E75
msgbox BattleFrontier_Lounge3_Text_262B6E, 4
message BattleFrontier_Lounge3_Text_262B42
diff --git a/data/scripts/maps/BattleFrontier_Lounge7.inc b/data/scripts/maps/BattleFrontier_Lounge7.inc
index f6f957cae..0b810d4f7 100644
--- a/data/scripts/maps/BattleFrontier_Lounge7.inc
+++ b/data/scripts/maps/BattleFrontier_Lounge7.inc
@@ -4,7 +4,7 @@ BattleFrontier_Lounge7_MapScripts:: @ 8265254
BattleFrontier_Lounge7_EventScript_265255:: @ 8265255
lock
faceplayer
- setvar VAR_0x400C, 9
+ setvar VAR_TEMP_C, 9
checkflag FLAG_0x15A
goto_eq BattleFrontier_Lounge7_EventScript_265276
msgbox BattleFrontier_Lounge7_Text_2656ED, 4
@@ -21,12 +21,12 @@ BattleFrontier_Lounge7_EventScript_265284:: @ 8265284
message BattleFrontier_Lounge7_Text_2658EF
waitmessage
special sub_813A958
- setvar VAR_0x400E, 0
+ setvar VAR_TEMP_E, 0
setvar VAR_0x8004, 9
setvar VAR_0x8006, 0
special sub_813A128
waitstate
- copyvar VAR_0x400D, VAR_RESULT
+ copyvar VAR_TEMP_D, VAR_RESULT
switch VAR_RESULT
case 0, BattleFrontier_Lounge7_EventScript_2653D7
case 1, BattleFrontier_Lounge7_EventScript_2653E2
@@ -45,12 +45,12 @@ BattleFrontier_Lounge7_EventScript_265284:: @ 8265284
BattleFrontier_Lounge7_EventScript_26532F:: @ 826532F
message BattleFrontier_Lounge7_Text_2658EF
waitmessage
- setvar VAR_0x400E, 0
+ setvar VAR_TEMP_E, 0
setvar VAR_0x8004, 9
setvar VAR_0x8006, 1
special sub_813A128
waitstate
- copyvar VAR_0x400D, VAR_RESULT
+ copyvar VAR_TEMP_D, VAR_RESULT
switch VAR_RESULT
case 0, BattleFrontier_Lounge7_EventScript_2653D7
case 1, BattleFrontier_Lounge7_EventScript_2653E2
@@ -119,7 +119,7 @@ BattleFrontier_Lounge7_EventScript_26543A:: @ 826543A
BattleFrontier_Lounge7_EventScript_265445:: @ 8265445
lock
faceplayer
- setvar VAR_0x400C, 10
+ setvar VAR_TEMP_C, 10
checkflag FLAG_0x15B
goto_eq BattleFrontier_Lounge7_EventScript_265466
msgbox BattleFrontier_Lounge7_Text_265A6C, 4
@@ -136,12 +136,12 @@ BattleFrontier_Lounge7_EventScript_265474:: @ 8265474
message BattleFrontier_Lounge7_Text_2658EF
waitmessage
special sub_813A958
- setvar VAR_0x400E, 1
+ setvar VAR_TEMP_E, 1
setvar VAR_0x8004, 10
setvar VAR_0x8006, 0
special sub_813A128
waitstate
- copyvar VAR_0x400D, VAR_RESULT
+ copyvar VAR_TEMP_D, VAR_RESULT
switch VAR_RESULT
case 0, BattleFrontier_Lounge7_EventScript_2655C7
case 1, BattleFrontier_Lounge7_EventScript_2655D2
@@ -160,12 +160,12 @@ BattleFrontier_Lounge7_EventScript_265474:: @ 8265474
BattleFrontier_Lounge7_EventScript_26551F:: @ 826551F
message BattleFrontier_Lounge7_Text_2658EF
waitmessage
- setvar VAR_0x400E, 1
+ setvar VAR_TEMP_E, 1
setvar VAR_0x8004, 10
setvar VAR_0x8006, 1
special sub_813A128
waitstate
- copyvar VAR_0x400D, VAR_RESULT
+ copyvar VAR_TEMP_D, VAR_RESULT
switch VAR_RESULT
case 0, BattleFrontier_Lounge7_EventScript_2655C7
case 1, BattleFrontier_Lounge7_EventScript_2655D2
@@ -244,16 +244,16 @@ BattleFrontier_Lounge7_EventScript_265645:: @ 8265645
end
BattleFrontier_Lounge7_EventScript_26564F:: @ 826564F
- copyvar VAR_0x8004, VAR_0x400D
- copyvar VAR_0x8005, VAR_0x400E
+ copyvar VAR_0x8004, VAR_TEMP_D
+ copyvar VAR_0x8005, VAR_TEMP_E
special sub_813AC7C
buffernumberstring 1, VAR_0x8008
- copyvar VAR_0x8004, VAR_0x400C
+ copyvar VAR_0x8004, VAR_TEMP_C
msgbox BattleFrontier_Lounge7_Text_265921, 5
compare VAR_RESULT, 0
goto_eq BattleFrontier_Lounge7_EventScript_2656CA
- specialvar VAR_0x4001, sub_813AA04
- compare VAR_0x4001, VAR_0x8008
+ specialvar VAR_TEMP_1, sub_813AA04
+ compare VAR_TEMP_1, VAR_0x8008
goto_if 4, BattleFrontier_Lounge7_EventScript_265696
msgbox BattleFrontier_Lounge7_Text_265997, 4
goto BattleFrontier_Lounge7_EventScript_2656CA
@@ -276,7 +276,7 @@ BattleFrontier_Lounge7_EventScript_265696:: @ 8265696
end
BattleFrontier_Lounge7_EventScript_2656CA:: @ 82656CA
- compare VAR_0x400E, 0
+ compare VAR_TEMP_E, 0
goto_eq BattleFrontier_Lounge7_EventScript_26532F
goto BattleFrontier_Lounge7_EventScript_26551F
end
diff --git a/data/scripts/maps/BirthIsland_Exterior.inc b/data/scripts/maps/BirthIsland_Exterior.inc
index 0435692f4..6fd637461 100644
--- a/data/scripts/maps/BirthIsland_Exterior.inc
+++ b/data/scripts/maps/BirthIsland_Exterior.inc
@@ -10,7 +10,7 @@ BirthIsland_Exterior_MapScript1_267F25: @ 8267F25
BirthIsland_Exterior_MapScript1_267F29: @ 8267F29
setflag FLAG_0x8D3
- setvar VAR_0x4010, 100
+ setvar VAR_OBJ_GFX_ID_0, 100
setvar VAR_0x4034, 0
setvar VAR_0x4035, 0
checkflag FLAG_0x1AD
diff --git a/data/scripts/maps/EverGrandeCity.inc b/data/scripts/maps/EverGrandeCity.inc
index 1fe66a56c..178621217 100644
--- a/data/scripts/maps/EverGrandeCity.inc
+++ b/data/scripts/maps/EverGrandeCity.inc
@@ -21,7 +21,7 @@ EverGrandeCity_EventScript_1E7D3D:: @ 81E7D3D
EverGrandeCity_EventScript_1E7D46:: @ 81E7D46
setflag FLAG_VISITED_EVER_GRANDE_CITY
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
end
EverGrandeCity_Text_1E7D4F: @ 81E7D4F
diff --git a/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc b/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc
index f8dab1f3b..71410a43f 100644
--- a/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc
@@ -9,7 +9,7 @@ EverGrandeCity_ChampionsRoom_MapScript1_2289FF: @ 82289FF
end
EverGrandeCity_ChampionsRoom_MapScript2_228A05: @ 8228A05
- map_script_2 VAR_0x4001, 0, EverGrandeCity_ChampionsRoom_EventScript_228A0F
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_ChampionsRoom_EventScript_228A0F
.2byte 0
EverGrandeCity_ChampionsRoom_EventScript_228A0F:: @ 8228A0F
@@ -17,7 +17,7 @@ EverGrandeCity_ChampionsRoom_EventScript_228A0F:: @ 8228A0F
end
EverGrandeCity_ChampionsRoom_MapScript2_228A14: @ 8228A14
- map_script_2 VAR_0x4001, 0, EverGrandeCity_ChampionsRoom_EventScript_228A1E
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_ChampionsRoom_EventScript_228A1E
.2byte 0
EverGrandeCity_ChampionsRoom_EventScript_228A1E:: @ 8228A1E
@@ -27,7 +27,7 @@ EverGrandeCity_ChampionsRoom_EventScript_228A1E:: @ 8228A1E
delay 40
applymovement 255, EverGrandeCity_ChampionsRoom_Movement_228A42
waitmovement 0
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
goto EverGrandeCity_ChampionsRoom_EventScript_228A45
releaseall
end
diff --git a/data/scripts/maps/EverGrandeCity_DrakesRoom.inc b/data/scripts/maps/EverGrandeCity_DrakesRoom.inc
index a5274bbe5..4c90417af 100644
--- a/data/scripts/maps/EverGrandeCity_DrakesRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_DrakesRoom.inc
@@ -5,7 +5,7 @@ EverGrandeCity_DrakesRoom_MapScripts:: @ 822869C
.byte 0
EverGrandeCity_DrakesRoom_MapScript2_2286AC: @ 82286AC
- map_script_2 VAR_0x4001, 0, EverGrandeCity_DrakesRoom_EventScript_2286B6
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_DrakesRoom_EventScript_2286B6
.2byte 0
EverGrandeCity_DrakesRoom_EventScript_2286B6:: @ 82286B6
diff --git a/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc b/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc
index e05b82e2e..f1d846f03 100644
--- a/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc
@@ -5,7 +5,7 @@ EverGrandeCity_GlaciasRoom_MapScripts:: @ 8228412
.byte 0
EverGrandeCity_GlaciasRoom_MapScript2_228422: @ 8228422
- map_script_2 VAR_0x4001, 0, EverGrandeCity_GlaciasRoom_EventScript_22842C
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_GlaciasRoom_EventScript_22842C
.2byte 0
EverGrandeCity_GlaciasRoom_EventScript_22842C:: @ 822842C
diff --git a/data/scripts/maps/EverGrandeCity_Hall1.inc b/data/scripts/maps/EverGrandeCity_Hall1.inc
index 9a570e6e0..960918662 100644
--- a/data/scripts/maps/EverGrandeCity_Hall1.inc
+++ b/data/scripts/maps/EverGrandeCity_Hall1.inc
@@ -3,7 +3,7 @@ EverGrandeCity_Hall1_MapScripts:: @ 8229569
.byte 0
EverGrandeCity_Hall1_MapScript2_22956F: @ 822956F
- map_script_2 VAR_0x4001, 0, EverGrandeCity_Hall1_EventScript_229579
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_Hall1_EventScript_229579
.2byte 0
EverGrandeCity_Hall1_EventScript_229579:: @ 8229579
diff --git a/data/scripts/maps/EverGrandeCity_Hall2.inc b/data/scripts/maps/EverGrandeCity_Hall2.inc
index e6bed41c8..1d76e3695 100644
--- a/data/scripts/maps/EverGrandeCity_Hall2.inc
+++ b/data/scripts/maps/EverGrandeCity_Hall2.inc
@@ -3,7 +3,7 @@ EverGrandeCity_Hall2_MapScripts:: @ 822957E
.byte 0
EverGrandeCity_Hall2_MapScript2_229584: @ 8229584
- map_script_2 VAR_0x4001, 0, EverGrandeCity_Hall2_EventScript_22958E
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_Hall2_EventScript_22958E
.2byte 0
EverGrandeCity_Hall2_EventScript_22958E:: @ 822958E
diff --git a/data/scripts/maps/EverGrandeCity_Hall3.inc b/data/scripts/maps/EverGrandeCity_Hall3.inc
index 505a9f6ac..a100487f5 100644
--- a/data/scripts/maps/EverGrandeCity_Hall3.inc
+++ b/data/scripts/maps/EverGrandeCity_Hall3.inc
@@ -3,7 +3,7 @@ EverGrandeCity_Hall3_MapScripts:: @ 8229593
.byte 0
EverGrandeCity_Hall3_MapScript2_229599: @ 8229599
- map_script_2 VAR_0x4001, 0, EverGrandeCity_Hall3_EventScript_2295A3
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_Hall3_EventScript_2295A3
.2byte 0
EverGrandeCity_Hall3_EventScript_2295A3:: @ 82295A3
diff --git a/data/scripts/maps/EverGrandeCity_Hall4.inc b/data/scripts/maps/EverGrandeCity_Hall4.inc
index bae904c35..a7c730594 100644
--- a/data/scripts/maps/EverGrandeCity_Hall4.inc
+++ b/data/scripts/maps/EverGrandeCity_Hall4.inc
@@ -3,7 +3,7 @@ EverGrandeCity_Hall4_MapScripts:: @ 82295A8
.byte 0
EverGrandeCity_Hall4_MapScript2_2295AE: @ 82295AE
- map_script_2 VAR_0x4001, 0, EverGrandeCity_Hall4_EventScript_2295B8
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_Hall4_EventScript_2295B8
.2byte 0
EverGrandeCity_Hall4_EventScript_2295B8:: @ 82295B8
diff --git a/data/scripts/maps/EverGrandeCity_Hall5.inc b/data/scripts/maps/EverGrandeCity_Hall5.inc
index cc987a4cf..9ca9991e4 100644
--- a/data/scripts/maps/EverGrandeCity_Hall5.inc
+++ b/data/scripts/maps/EverGrandeCity_Hall5.inc
@@ -3,7 +3,7 @@ EverGrandeCity_Hall5_MapScripts:: @ 82295BD
.byte 0
EverGrandeCity_Hall5_MapScript2_2295C3: @ 82295C3
- map_script_2 VAR_0x4001, 0, EverGrandeCity_Hall5_EventScript_2295CD
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_Hall5_EventScript_2295CD
.2byte 0
EverGrandeCity_Hall5_EventScript_2295CD:: @ 82295CD
diff --git a/data/scripts/maps/EverGrandeCity_HallOfFame.inc b/data/scripts/maps/EverGrandeCity_HallOfFame.inc
index 5cb4ee7fd..de29dca0f 100644
--- a/data/scripts/maps/EverGrandeCity_HallOfFame.inc
+++ b/data/scripts/maps/EverGrandeCity_HallOfFame.inc
@@ -4,7 +4,7 @@ EverGrandeCity_HallOfFame_MapScripts:: @ 822982C
.byte 0
EverGrandeCity_HallOfFame_MapScript2_229837: @ 8229837
- map_script_2 VAR_0x4001, 0, EverGrandeCity_HallOfFame_EventScript_229841
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_HallOfFame_EventScript_229841
.2byte 0
EverGrandeCity_HallOfFame_EventScript_229841:: @ 8229841
@@ -12,7 +12,7 @@ EverGrandeCity_HallOfFame_EventScript_229841:: @ 8229841
end
EverGrandeCity_HallOfFame_MapScript2_229846: @ 8229846
- map_script_2 VAR_0x4001, 0, EverGrandeCity_HallOfFame_EventScript_229850
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_HallOfFame_EventScript_229850
.2byte 0
EverGrandeCity_HallOfFame_EventScript_229850:: @ 8229850
@@ -41,7 +41,7 @@ EverGrandeCity_HallOfFame_EventScript_229850:: @ 8229850
dofieldeffect 62
waitfieldeffect 62
delay 40
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
call EverGrandeCity_HallOfFame_EventScript_2717C1
checkplayergender
compare VAR_RESULT, 0
diff --git a/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc b/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc
index b838cc25b..679e4f663 100644
--- a/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc
@@ -5,7 +5,7 @@ EverGrandeCity_PhoebesRoom_MapScripts:: @ 8228174
.byte 0
EverGrandeCity_PhoebesRoom_MapScript2_228184: @ 8228184
- map_script_2 VAR_0x4001, 0, EverGrandeCity_PhoebesRoom_EventScript_22818E
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_PhoebesRoom_EventScript_22818E
.2byte 0
EverGrandeCity_PhoebesRoom_EventScript_22818E:: @ 822818E
diff --git a/data/scripts/maps/EverGrandeCity_PokemonLeague_1F.inc b/data/scripts/maps/EverGrandeCity_PokemonLeague_1F.inc
index 0a174bf0c..4fd73b3bf 100644
--- a/data/scripts/maps/EverGrandeCity_PokemonLeague_1F.inc
+++ b/data/scripts/maps/EverGrandeCity_PokemonLeague_1F.inc
@@ -50,10 +50,10 @@ EverGrandeCity_PokemonLeague_1F_EventScript_229636:: @ 8229636
lockall
checkflag FLAG_0x107
goto_eq EverGrandeCity_PokemonLeague_1F_EventScript_2296BB
- getplayerxy VAR_0x4000, VAR_0x4001
- compare VAR_0x4000, 11
+ getplayerxy VAR_TEMP_0, VAR_TEMP_1
+ compare VAR_TEMP_0, 11
call_if 4, EverGrandeCity_PokemonLeague_1F_EventScript_229698
- compare VAR_0x4000, 8
+ compare VAR_TEMP_0, 8
call_if 3, EverGrandeCity_PokemonLeague_1F_EventScript_2296A3
message EverGrandeCity_PokemonLeague_1F_Text_2296E8
waitmessage
diff --git a/data/scripts/maps/EverGrandeCity_SidneysRoom.inc b/data/scripts/maps/EverGrandeCity_SidneysRoom.inc
index 46c471e4e..b2db55e36 100644
--- a/data/scripts/maps/EverGrandeCity_SidneysRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_SidneysRoom.inc
@@ -27,7 +27,7 @@ EverGrandeCity_SidneysRoom_EventScript_227F38:: @ 8227F38
EverGrandeCity_DrakesRoom_MapScript2_227F3E: @ 8227F3E
EverGrandeCity_SidneysRoom_MapScript2_227F3E: @ 8227F3E
- map_script_2 VAR_0x4001, 0, EverGrandeCity_SidneysRoom_EventScript_227F48
+ map_script_2 VAR_TEMP_1, 0, EverGrandeCity_SidneysRoom_EventScript_227F48
.2byte 0
EverGrandeCity_SidneysRoom_EventScript_227F48:: @ 8227F48
diff --git a/data/scripts/maps/FallarborTown_BattleTentBattleRoom.inc b/data/scripts/maps/FallarborTown_BattleTentBattleRoom.inc
index 16cb9fff5..f6750009d 100644
--- a/data/scripts/maps/FallarborTown_BattleTentBattleRoom.inc
+++ b/data/scripts/maps/FallarborTown_BattleTentBattleRoom.inc
@@ -17,17 +17,17 @@ FallarborTown_BattleTentBattleRoom_EventScript_2008AF:: @ 82008AF
return
FallarborTown_BattleTentBattleRoom_EventScript_2008C7:: @ 82008C7
- setvar VAR_0x4011, 100
- setvar VAR_0x4010, 100
+ setvar VAR_OBJ_GFX_ID_1, 100
+ setvar VAR_OBJ_GFX_ID_0, 100
return
FallarborTown_BattleTentBattleRoom_EventScript_2008D2:: @ 82008D2
- setvar VAR_0x4011, 105
- setvar VAR_0x4010, 105
+ setvar VAR_OBJ_GFX_ID_1, 105
+ setvar VAR_OBJ_GFX_ID_0, 105
return
FallarborTown_BattleTentBattleRoom_MapScript2_2008DD: @ 82008DD
- map_script_2 VAR_0x4000, 0, FallarborTown_BattleTentBattleRoom_EventScript_2008E7
+ map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentBattleRoom_EventScript_2008E7
.2byte 0
FallarborTown_BattleTentBattleRoom_EventScript_2008E7:: @ 82008E7
@@ -256,13 +256,13 @@ FallarborTown_BattleTentBattleRoom_Movement_200BAB: @ 8200BAB
step_end
FallarborTown_BattleTentBattleRoom_MapScript2_200BB0: @ 8200BB0
- map_script_2 VAR_0x4001, 0, FallarborTown_BattleTentBattleRoom_EventScript_200BBA
+ map_script_2 VAR_TEMP_1, 0, FallarborTown_BattleTentBattleRoom_EventScript_200BBA
.2byte 0
FallarborTown_BattleTentBattleRoom_EventScript_200BBA:: @ 8200BBA
hideobjectat 255, FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM
hideobjectat 1, FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM
removeobject 3
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
end
diff --git a/data/scripts/maps/FallarborTown_BattleTentCorridor.inc b/data/scripts/maps/FallarborTown_BattleTentCorridor.inc
index d413e4ec6..1325b0332 100644
--- a/data/scripts/maps/FallarborTown_BattleTentCorridor.inc
+++ b/data/scripts/maps/FallarborTown_BattleTentCorridor.inc
@@ -3,12 +3,12 @@ FallarborTown_BattleTentCorridor_MapScripts:: @ 82006A7
.byte 0
FallarborTown_BattleTentCorridor_MapScript2_2006AD: @ 82006AD
- map_script_2 VAR_0x4000, 0, FallarborTown_BattleTentCorridor_EventScript_2006B7
+ map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentCorridor_EventScript_2006B7
.2byte 0
FallarborTown_BattleTentCorridor_EventScript_2006B7:: @ 82006B7
lockall
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
applymovement 1, FallarborTown_BattleTentCorridor_Movement_2006FB
applymovement 255, FallarborTown_BattleTentCorridor_Movement_2006FB
waitmovement 0
diff --git a/data/scripts/maps/FallarborTown_BattleTentLobby.inc b/data/scripts/maps/FallarborTown_BattleTentLobby.inc
index 78a067a55..327221120 100644
--- a/data/scripts/maps/FallarborTown_BattleTentLobby.inc
+++ b/data/scripts/maps/FallarborTown_BattleTentLobby.inc
@@ -4,20 +4,20 @@ FallarborTown_BattleTentLobby_MapScripts:: @ 81FFE66
.byte 0
FallarborTown_BattleTentLobby_MapScript2_1FFE71: @ 81FFE71
- map_script_2 VAR_0x4001, 0, FallarborTown_BattleTentLobby_EventScript_1FFE7B
+ map_script_2 VAR_TEMP_1, 0, FallarborTown_BattleTentLobby_EventScript_1FFE7B
.2byte 0
FallarborTown_BattleTentLobby_EventScript_1FFE7B:: @ 81FFE7B
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
FallarborTown_BattleTentLobby_MapScript2_1FFE85: @ 81FFE85
- map_script_2 VAR_0x4000, 0, FallarborTown_BattleTentLobby_EventScript_1FFEAF
- map_script_2 VAR_0x4000, 1, FallarborTown_BattleTentLobby_EventScript_1FFEB8
- map_script_2 VAR_0x4000, 2, FallarborTown_BattleTentLobby_EventScript_1FFFCD
- map_script_2 VAR_0x4000, 3, FallarborTown_BattleTentLobby_EventScript_1FFEED
- map_script_2 VAR_0x4000, 4, FallarborTown_BattleTentLobby_EventScript_1FFF93
+ map_script_2 VAR_TEMP_0, 0, FallarborTown_BattleTentLobby_EventScript_1FFEAF
+ map_script_2 VAR_TEMP_0, 1, FallarborTown_BattleTentLobby_EventScript_1FFEB8
+ map_script_2 VAR_TEMP_0, 2, FallarborTown_BattleTentLobby_EventScript_1FFFCD
+ map_script_2 VAR_TEMP_0, 3, FallarborTown_BattleTentLobby_EventScript_1FFEED
+ map_script_2 VAR_TEMP_0, 4, FallarborTown_BattleTentLobby_EventScript_1FFF93
.2byte 0
FallarborTown_BattleTentLobby_EventScript_1FFEAF:: @ 81FFEAF
@@ -33,7 +33,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFEB8:: @ 81FFEB8
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
@@ -74,7 +74,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFF27:: @ 81FFF27
waitfanfare
msgbox FallarborTown_BattleTentLobby_Text_2C501F, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -82,7 +82,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFF73:: @ 81FFF73
msgbox FallarborTown_BattleTentLobby_Text_2C4F83, 4
waitmessage
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -107,7 +107,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFF93:: @ 81FFF93
waitse
msgbox FallarborTown_BattleTentLobby_Text_2C501F, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -124,7 +124,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFFCD:: @ 81FFFCD
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
goto FallarborTown_BattleTentLobby_EventScript_20013C
FallarborTown_BattleTentLobby_EventScript_200001:: @ 8200001
@@ -174,7 +174,7 @@ FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D
case 127, FallarborTown_BattleTentLobby_EventScript_2001C2
FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
@@ -192,7 +192,7 @@ FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2
closemessage
delay 2
call FallarborTown_BattleTentLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_eq FallarborTown_BattleTentLobby_EventScript_2001AB
@@ -205,7 +205,7 @@ FallarborTown_BattleTentLobby_EventScript_20013C:: @ 820013C
closemessage
call FallarborTown_BattleTentLobby_EventScript_2001CF
warp FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR, 255, 2, 7
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
waitstate
end
diff --git a/data/scripts/maps/FarawayIsland_Interior.inc b/data/scripts/maps/FarawayIsland_Interior.inc
index 23bdac560..42b18983f 100644
--- a/data/scripts/maps/FarawayIsland_Interior.inc
+++ b/data/scripts/maps/FarawayIsland_Interior.inc
@@ -41,7 +41,7 @@ FarawayIsland_Interior_EventScript_267D5E:: @ 8267D5E
FarawayIsland_Interior_MapScript1_267D72: @ 8267D72
setvar VAR_0x403A, 0
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
checkflag FLAG_0x1CA
call_if 0, FarawayIsland_Interior_EventScript_267D86
end
@@ -50,11 +50,11 @@ FarawayIsland_Interior_EventScript_267D86:: @ 8267D86
checkflag FLAG_0x1C7
goto_eq FarawayIsland_Interior_EventScript_27374E
clearflag FLAG_0x2CE
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
return
FarawayIsland_Interior_MapScript2_267D98: @ 8267D98
- map_script_2 VAR_0x4001, 0, FarawayIsland_Interior_EventScript_267DA2
+ map_script_2 VAR_TEMP_1, 0, FarawayIsland_Interior_EventScript_267DA2
.2byte 0
FarawayIsland_Interior_EventScript_267DA2:: @ 8267DA2
@@ -67,7 +67,7 @@ FarawayIsland_Interior_EventScript_267DA2:: @ 8267DA2
applymovement 1, FarawayIsland_Interior_Movement_267DCE
waitmovement 0
moveobjectoffscreen 1
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
releaseall
end
diff --git a/data/scripts/maps/FortreeCity_Gym.inc b/data/scripts/maps/FortreeCity_Gym.inc
index b8b800286..1b1100cf3 100644
--- a/data/scripts/maps/FortreeCity_Gym.inc
+++ b/data/scripts/maps/FortreeCity_Gym.inc
@@ -8,7 +8,7 @@ FortreeCity_Gym_MapScript1_2165B6: @ 82165B6
end
FortreeCity_Gym_MapScript2_2165BA: @ 82165BA
- map_script_2 VAR_0x4000, 16384, FortreeCity_Gym_EventScript_2165C4
+ map_script_2 VAR_TEMP_0, 16384, FortreeCity_Gym_EventScript_2165C4
.2byte 0
FortreeCity_Gym_EventScript_2165C4:: @ 82165C4
diff --git a/data/scripts/maps/LavaridgeTown_Gym_1F.inc b/data/scripts/maps/LavaridgeTown_Gym_1F.inc
index cd34c3d81..1d317d43b 100644
--- a/data/scripts/maps/LavaridgeTown_Gym_1F.inc
+++ b/data/scripts/maps/LavaridgeTown_Gym_1F.inc
@@ -8,29 +8,29 @@ LavaridgeTown_Gym_1F_MapScript1_1FE6FA: @ 81FE6FA
end
LavaridgeTown_Gym_1F_EventScript_1FE705:: @ 81FE705
- setvar VAR_0x400B, 0
- setvar VAR_0x400C, 0
- setvar VAR_0x400D, 0
- setvar VAR_0x400E, 0
- setvar VAR_0x400F, 0
+ setvar VAR_TEMP_B, 0
+ setvar VAR_TEMP_C, 0
+ setvar VAR_TEMP_D, 0
+ setvar VAR_TEMP_E, 0
+ setvar VAR_TEMP_F, 0
checktrainerflag TRAINER_COLE
goto_eq LavaridgeTown_Gym_1F_EventScript_1FE72C
- setvar VAR_0x400B, 1
+ setvar VAR_TEMP_B, 1
LavaridgeTown_Gym_1F_EventScript_1FE72C:: @ 81FE72C
checktrainerflag TRAINER_GERALD
goto_eq LavaridgeTown_Gym_1F_EventScript_1FE73A
- setvar VAR_0x400C, 1
+ setvar VAR_TEMP_C, 1
LavaridgeTown_Gym_1F_EventScript_1FE73A:: @ 81FE73A
checktrainerflag TRAINER_AXLE
goto_eq LavaridgeTown_Gym_1F_EventScript_1FE748
- setvar VAR_0x400D, 1
+ setvar VAR_TEMP_D, 1
LavaridgeTown_Gym_1F_EventScript_1FE748:: @ 81FE748
checktrainerflag TRAINER_DANIELLE
goto_eq LavaridgeTown_Gym_1F_EventScript_1FE756
- setvar VAR_0x400E, 1
+ setvar VAR_TEMP_E, 1
LavaridgeTown_Gym_1F_EventScript_1FE756:: @ 81FE756
return
diff --git a/data/scripts/maps/LavaridgeTown_Gym_B1F.inc b/data/scripts/maps/LavaridgeTown_Gym_B1F.inc
index 88b0e66e7..ad2be83ea 100644
--- a/data/scripts/maps/LavaridgeTown_Gym_B1F.inc
+++ b/data/scripts/maps/LavaridgeTown_Gym_B1F.inc
@@ -8,28 +8,28 @@ LavaridgeTown_Gym_B1F_MapScript1_1FF884: @ 81FF884
end
LavaridgeTown_Gym_B1F_EventScript_1FF88F:: @ 81FF88F
- setvar VAR_0x4007, 0
- setvar VAR_0x4008, 0
- setvar VAR_0x4009, 0
- setvar VAR_0x400A, 0
+ setvar VAR_TEMP_7, 0
+ setvar VAR_TEMP_8, 0
+ setvar VAR_TEMP_9, 0
+ setvar VAR_TEMP_A, 0
checktrainerflag TRAINER_KEEGAN
goto_eq LavaridgeTown_Gym_B1F_EventScript_1FF8B1
- setvar VAR_0x4007, 1
+ setvar VAR_TEMP_7, 1
LavaridgeTown_Gym_B1F_EventScript_1FF8B1:: @ 81FF8B1
checktrainerflag TRAINER_JACE
goto_eq LavaridgeTown_Gym_B1F_EventScript_1FF8BF
- setvar VAR_0x4008, 1
+ setvar VAR_TEMP_8, 1
LavaridgeTown_Gym_B1F_EventScript_1FF8BF:: @ 81FF8BF
checktrainerflag TRAINER_JEFF
goto_eq LavaridgeTown_Gym_B1F_EventScript_1FF8CD
- setvar VAR_0x4009, 1
+ setvar VAR_TEMP_9, 1
LavaridgeTown_Gym_B1F_EventScript_1FF8CD:: @ 81FF8CD
checktrainerflag TRAINER_ELI
goto_eq LavaridgeTown_Gym_B1F_EventScript_1FF8DB
- setvar VAR_0x400A, 1
+ setvar VAR_TEMP_A, 1
LavaridgeTown_Gym_B1F_EventScript_1FF8DB:: @ 81FF8DB
return
diff --git a/data/scripts/maps/LilycoveCity_ContestLobby.inc b/data/scripts/maps/LilycoveCity_ContestLobby.inc
index 4a7279fb2..1c4d21970 100644
--- a/data/scripts/maps/LilycoveCity_ContestLobby.inc
+++ b/data/scripts/maps/LilycoveCity_ContestLobby.inc
@@ -649,7 +649,7 @@ LilycoveCity_ContestLobby_EventScript_21A856:: @ 821A856
goto_eq LilycoveCity_ContestLobby_EventScript_21A97F
message LilycoveCity_ContestLobby_Text_27C8FD
waitmessage
- specialvar VAR_0x400D, sub_80093CC
+ specialvar VAR_TEMP_D, sub_80093CC
multichoice 0, 0, 85, 0
switch VAR_RESULT
case 0, LilycoveCity_ContestLobby_EventScript_21A8BB
@@ -659,13 +659,13 @@ LilycoveCity_ContestLobby_EventScript_21A856:: @ 821A856
end
LilycoveCity_ContestLobby_EventScript_21A8BB:: @ 821A8BB
- setvar VAR_0x400C, 0
+ setvar VAR_TEMP_C, 0
goto LilycoveCity_ContestLobby_EventScript_21A8DC
end
LilycoveCity_ContestLobby_EventScript_21A8C6:: @ 821A8C6
- setvar VAR_0x400C, 1
- compare VAR_0x400D, 1
+ setvar VAR_TEMP_C, 1
+ compare VAR_TEMP_D, 1
goto_eq LilycoveCity_ContestLobby_EventScript_21AAFC
goto LilycoveCity_ContestLobby_EventScript_21A8DC
end
@@ -754,18 +754,18 @@ LilycoveCity_ContestLobby_EventScript_21AA0A:: @ 821AA0A
end
LilycoveCity_ContestLobby_EventScript_21AA15:: @ 821AA15
- compare VAR_0x400D, 1
+ compare VAR_TEMP_D, 1
goto_eq LilycoveCity_ContestLobby_EventScript_21AB4B
- compare VAR_0x400D, 2
+ compare VAR_TEMP_D, 2
goto_if 4, LilycoveCity_ContestLobby_EventScript_21A97F
message LilycoveCity_ContestLobby_Text_27BF85
waitmessage
copyvar VAR_0x8004, VAR_RESULT
- compare VAR_0x400C, 0
+ compare VAR_TEMP_C, 0
call_if 1, LilycoveCity_ContestLobby_EventScript_21AABB
- compare VAR_0x400C, 1
+ compare VAR_TEMP_C, 1
call_if 1, LilycoveCity_ContestLobby_EventScript_21AAC0
- compare VAR_0x400C, 2
+ compare VAR_TEMP_C, 2
goto_if 4, LilycoveCity_ContestLobby_EventScript_21A97F
compare VAR_RESULT, 4
goto_eq LilycoveCity_ContestLobby_EventScript_21AAD3
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc b/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc
index e38f3a276..da97bbf81 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc
+++ b/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc
@@ -77,8 +77,8 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_220295:: @ 8220295
LilycoveCity_DepartmentStoreRooftop_EventScript_2202A6:: @ 82202A6
multichoice 16, 0, 42, 0
- copyvar VAR_0x4001, VAR_RESULT
- switch VAR_0x4001
+ copyvar VAR_TEMP_1, VAR_RESULT
+ switch VAR_TEMP_1
case 0, LilycoveCity_DepartmentStoreRooftop_EventScript_2202E4
case 1, LilycoveCity_DepartmentStoreRooftop_EventScript_2202EF
case 2, LilycoveCity_DepartmentStoreRooftop_EventScript_2202FA
@@ -87,17 +87,17 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_2202A6:: @ 82202A6
end
LilycoveCity_DepartmentStoreRooftop_EventScript_2202E4:: @ 82202E4
- setvar VAR_0x4000, 26
+ setvar VAR_TEMP_0, 26
goto LilycoveCity_DepartmentStoreRooftop_EventScript_22032F
end
LilycoveCity_DepartmentStoreRooftop_EventScript_2202EF:: @ 82202EF
- setvar VAR_0x4000, 27
+ setvar VAR_TEMP_0, 27
goto LilycoveCity_DepartmentStoreRooftop_EventScript_22032F
end
LilycoveCity_DepartmentStoreRooftop_EventScript_2202FA:: @ 82202FA
- setvar VAR_0x4000, 28
+ setvar VAR_TEMP_0, 28
goto LilycoveCity_DepartmentStoreRooftop_EventScript_22032F
end
@@ -126,54 +126,54 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_220328:: @ 8220328
return
LilycoveCity_DepartmentStoreRooftop_EventScript_22032F:: @ 822032F
- compare VAR_0x4001, 0
+ compare VAR_TEMP_1, 0
call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_220305
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_22030C
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_220313
compare VAR_RESULT, 0
goto_eq LilycoveCity_DepartmentStoreRooftop_EventScript_220442
- checkitemspace VAR_0x4000, 1
+ checkitemspace VAR_TEMP_0, 1
compare VAR_RESULT, 0
goto_eq LilycoveCity_DepartmentStoreRooftop_EventScript_220450
- compare VAR_0x4001, 0
+ compare VAR_TEMP_1, 0
call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_22031A
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_220321
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_220328
updatemoneybox 0, 0
nop
- bufferitemname 0, VAR_0x4000
+ bufferitemname 0, VAR_TEMP_0
playse SE_JIHANKI
msgbox LilycoveCity_DepartmentStoreRooftop_Text_2205A1, 4
- giveitem VAR_0x4000, 1
- bufferitemname 1, VAR_0x4000
+ giveitem VAR_TEMP_0, 1
+ bufferitemname 1, VAR_TEMP_0
bufferstdstring 2, 14
msgbox gUnknown_08272A9A, 4
random 64
compare VAR_RESULT, 0
goto_if 5, LilycoveCity_DepartmentStoreRooftop_EventScript_220436
- checkitemspace VAR_0x4000, 1
+ checkitemspace VAR_TEMP_0, 1
compare VAR_RESULT, 0
goto_eq LilycoveCity_DepartmentStoreRooftop_EventScript_220450
playse SE_JIHANKI
msgbox LilycoveCity_DepartmentStoreRooftop_Text_2205C2, 4
- giveitem VAR_0x4000, 1
- bufferitemname 1, VAR_0x4000
+ giveitem VAR_TEMP_0, 1
+ bufferitemname 1, VAR_TEMP_0
bufferstdstring 2, 14
msgbox gUnknown_08272A9A, 4
random 64
compare VAR_RESULT, 0
goto_if 5, LilycoveCity_DepartmentStoreRooftop_EventScript_220436
- checkitemspace VAR_0x4000, 1
+ checkitemspace VAR_TEMP_0, 1
compare VAR_RESULT, 0
goto_eq LilycoveCity_DepartmentStoreRooftop_EventScript_220450
playse SE_JIHANKI
msgbox LilycoveCity_DepartmentStoreRooftop_Text_2205C2, 4
- giveitem VAR_0x4000, 1
- bufferitemname 1, VAR_0x4000
+ giveitem VAR_TEMP_0, 1
+ bufferitemname 1, VAR_TEMP_0
bufferstdstring 2, 14
msgbox gUnknown_08272A9A, 4
goto LilycoveCity_DepartmentStoreRooftop_EventScript_220436
diff --git a/data/scripts/maps/LilycoveCity_Harbor.inc b/data/scripts/maps/LilycoveCity_Harbor.inc
index 7f0e41d03..f57ca14b5 100644
--- a/data/scripts/maps/LilycoveCity_Harbor.inc
+++ b/data/scripts/maps/LilycoveCity_Harbor.inc
@@ -17,23 +17,23 @@ LilycoveCity_Harbor_EventScript_21E00F:: @ 821E00F
call LilycoveCity_Harbor_EventScript_21E22A
call LilycoveCity_Harbor_EventScript_21E25C
call LilycoveCity_Harbor_EventScript_21E2A6
- compare VAR_0x400C, 2
+ compare VAR_TEMP_C, 2
goto_eq LilycoveCity_Harbor_EventScript_21E350
- compare VAR_0x400B, 1
+ compare VAR_TEMP_B, 1
goto_eq LilycoveCity_Harbor_EventScript_21E2F0
- compare VAR_0x400B, 2
+ compare VAR_TEMP_B, 2
goto_eq LilycoveCity_Harbor_EventScript_21E320
- compare VAR_0x400B, 4
+ compare VAR_TEMP_B, 4
goto_eq LilycoveCity_Harbor_EventScript_21E350
- compare VAR_0x400B, 8
+ compare VAR_TEMP_B, 8
goto_eq LilycoveCity_Harbor_EventScript_21E41D
- compare VAR_0x400B, 0
+ compare VAR_TEMP_B, 0
goto_if 5, LilycoveCity_Harbor_EventScript_21E44D
goto LilycoveCity_Harbor_EventScript_21E080
end
LilycoveCity_Harbor_EventScript_21E080:: @ 821E080
- compare VAR_0x400A, 0
+ compare VAR_TEMP_A, 0
goto_eq LilycoveCity_Harbor_EventScript_21E557
msgbox LilycoveCity_Harbor_Text_21E758, 4
message LilycoveCity_Harbor_Text_21E7ED
@@ -107,111 +107,111 @@ LilycoveCity_Harbor_EventScript_21E171:: @ 821E171
end
LilycoveCity_Harbor_EventScript_21E194:: @ 821E194
- setvar VAR_0x400E, 0
+ setvar VAR_TEMP_E, 0
checkflag FLAG_SYS_HAS_EON_TICKET
goto_if 0, LilycoveCity_Harbor_EventScript_27374E
checkitem ITEM_EON_TICKET, 1
compare VAR_RESULT, 0
goto_eq LilycoveCity_Harbor_EventScript_27374E
- setvar VAR_0x400E, 1
+ setvar VAR_TEMP_E, 1
checkflag FLAG_0x1AE
goto_eq LilycoveCity_Harbor_EventScript_27374E
- setvar VAR_0x400E, 2
+ setvar VAR_TEMP_E, 2
return
LilycoveCity_Harbor_EventScript_21E1C6:: @ 821E1C6
- setvar VAR_0x400D, 0
+ setvar VAR_TEMP_D, 0
checkflag FLAG_0x8D5
goto_if 0, LilycoveCity_Harbor_EventScript_27374E
checkitem ITEM_AURORA_TICKET, 1
compare VAR_RESULT, 0
goto_eq LilycoveCity_Harbor_EventScript_27374E
- setvar VAR_0x400D, 1
+ setvar VAR_TEMP_D, 1
checkflag FLAG_0x1AF
goto_eq LilycoveCity_Harbor_EventScript_27374E
- setvar VAR_0x400D, 2
+ setvar VAR_TEMP_D, 2
return
LilycoveCity_Harbor_EventScript_21E1F8:: @ 821E1F8
- setvar VAR_0x400C, 0
+ setvar VAR_TEMP_C, 0
checkflag FLAG_0x8D6
goto_if 0, LilycoveCity_Harbor_EventScript_27374E
checkitem ITEM_OLD_SEA_MAP, 1
compare VAR_RESULT, 0
goto_eq LilycoveCity_Harbor_EventScript_27374E
- setvar VAR_0x400C, 1
+ setvar VAR_TEMP_C, 1
checkflag FLAG_0x1B0
goto_eq LilycoveCity_Harbor_EventScript_27374E
- setvar VAR_0x400C, 2
+ setvar VAR_TEMP_C, 2
return
LilycoveCity_Harbor_EventScript_21E22A:: @ 821E22A
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
checkflag FLAG_0x8E0
goto_if 0, LilycoveCity_Harbor_EventScript_27374E
checkitem ITEM_MYSTIC_TICKET, 1
compare VAR_RESULT, 0
goto_eq LilycoveCity_Harbor_EventScript_27374E
- setvar VAR_0x4009, 1
+ setvar VAR_TEMP_9, 1
checkflag FLAG_0x1DB
goto_eq LilycoveCity_Harbor_EventScript_27374E
- setvar VAR_0x4009, 2
+ setvar VAR_TEMP_9, 2
return
LilycoveCity_Harbor_EventScript_21E25C:: @ 821E25C
- setvar VAR_0x400B, 0
- compare VAR_0x400E, 2
+ setvar VAR_TEMP_B, 0
+ compare VAR_TEMP_E, 2
call_if 1, LilycoveCity_Harbor_EventScript_21E28E
- compare VAR_0x400D, 2
+ compare VAR_TEMP_D, 2
call_if 1, LilycoveCity_Harbor_EventScript_21E294
- compare VAR_0x400C, 2
+ compare VAR_TEMP_C, 2
call_if 1, LilycoveCity_Harbor_EventScript_21E29A
- compare VAR_0x4009, 2
+ compare VAR_TEMP_9, 2
call_if 1, LilycoveCity_Harbor_EventScript_21E2A0
return
LilycoveCity_Harbor_EventScript_21E28E:: @ 821E28E
- addvar VAR_0x400B, 1
+ addvar VAR_TEMP_B, 1
return
LilycoveCity_Harbor_EventScript_21E294:: @ 821E294
- addvar VAR_0x400B, 2
+ addvar VAR_TEMP_B, 2
return
LilycoveCity_Harbor_EventScript_21E29A:: @ 821E29A
- addvar VAR_0x400B, 4
+ addvar VAR_TEMP_B, 4
return
LilycoveCity_Harbor_EventScript_21E2A0:: @ 821E2A0
- addvar VAR_0x400B, 8
+ addvar VAR_TEMP_B, 8
return
LilycoveCity_Harbor_EventScript_21E2A6:: @ 821E2A6
- setvar VAR_0x400A, 0
- compare VAR_0x400E, 1
+ setvar VAR_TEMP_A, 0
+ compare VAR_TEMP_E, 1
call_if 1, LilycoveCity_Harbor_EventScript_21E2D8
- compare VAR_0x400D, 1
+ compare VAR_TEMP_D, 1
call_if 1, LilycoveCity_Harbor_EventScript_21E2DE
- compare VAR_0x400C, 1
+ compare VAR_TEMP_C, 1
call_if 1, LilycoveCity_Harbor_EventScript_21E2E4
- compare VAR_0x4009, 1
+ compare VAR_TEMP_9, 1
call_if 1, LilycoveCity_Harbor_EventScript_21E2EA
return
LilycoveCity_Harbor_EventScript_21E2D8:: @ 821E2D8
- addvar VAR_0x400A, 1
+ addvar VAR_TEMP_A, 1
return
LilycoveCity_Harbor_EventScript_21E2DE:: @ 821E2DE
- addvar VAR_0x400A, 2
+ addvar VAR_TEMP_A, 2
return
LilycoveCity_Harbor_EventScript_21E2E4:: @ 821E2E4
- addvar VAR_0x400A, 4
+ addvar VAR_TEMP_A, 4
return
LilycoveCity_Harbor_EventScript_21E2EA:: @ 821E2EA
- addvar VAR_0x400A, 8
+ addvar VAR_TEMP_A, 8
return
LilycoveCity_Harbor_EventScript_21E2F0:: @ 821E2F0
diff --git a/data/scripts/maps/LilycoveCity_House3.inc b/data/scripts/maps/LilycoveCity_House3.inc
index f82befbcf..38210196e 100644
--- a/data/scripts/maps/LilycoveCity_House3.inc
+++ b/data/scripts/maps/LilycoveCity_House3.inc
@@ -4,7 +4,7 @@ LilycoveCity_House3_MapScripts:: @ 821EE3C
LilycoveCity_House3_MapScript1_21EE42: @ 821EE42
random 4
- copyvar VAR_0x4001, VAR_RESULT
+ copyvar VAR_TEMP_1, VAR_RESULT
end
LilycoveCity_House3_EventScript_21EE4B:: @ 821EE4B
@@ -41,7 +41,7 @@ LilycoveCity_House3_EventScript_21EE8A:: @ 821EE8A
LilycoveCity_House3_EventScript_21EEA1:: @ 821EEA1
lock
faceplayer
- switch VAR_0x4001
+ switch VAR_TEMP_1
case 0, LilycoveCity_House3_EventScript_21EF71
case 1, LilycoveCity_House3_EventScript_21EF7B
case 2, LilycoveCity_House3_EventScript_21EF85
@@ -51,7 +51,7 @@ LilycoveCity_House3_EventScript_21EEA1:: @ 821EEA1
LilycoveCity_House3_EventScript_21EED5:: @ 821EED5
lock
faceplayer
- switch VAR_0x4001
+ switch VAR_TEMP_1
case 0, LilycoveCity_House3_EventScript_21EF71
case 1, LilycoveCity_House3_EventScript_21EF7B
case 2, LilycoveCity_House3_EventScript_21EF85
@@ -61,7 +61,7 @@ LilycoveCity_House3_EventScript_21EED5:: @ 821EED5
LilycoveCity_House3_EventScript_21EF09:: @ 821EF09
lock
faceplayer
- switch VAR_0x4001
+ switch VAR_TEMP_1
case 0, LilycoveCity_House3_EventScript_21EF71
case 1, LilycoveCity_House3_EventScript_21EF7B
case 2, LilycoveCity_House3_EventScript_21EF85
@@ -71,7 +71,7 @@ LilycoveCity_House3_EventScript_21EF09:: @ 821EF09
LilycoveCity_House3_EventScript_21EF3D:: @ 821EF3D
lock
faceplayer
- switch VAR_0x4001
+ switch VAR_TEMP_1
case 0, LilycoveCity_House3_EventScript_21EF71
case 1, LilycoveCity_House3_EventScript_21EF7B
case 2, LilycoveCity_House3_EventScript_21EF85
diff --git a/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc b/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc
index 433db24d2..c7d968d78 100644
--- a/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc
+++ b/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc
@@ -335,7 +335,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA061:: @ 81FA061
LittlerootTown_ProfessorBirchsLab_EventScript_1FA06C:: @ 81FA06C
bufferspeciesname 0, SPECIES_CYNDAQUIL
- setvar VAR_0x4001, 155
+ setvar VAR_TEMP_1, 155
givemon SPECIES_CYNDAQUIL, 5, ITEM_NONE, 0x0, 0x0, 0
compare VAR_RESULT, 0
goto_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA0A1
@@ -380,7 +380,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA0FD:: @ 81FA0FD
LittlerootTown_ProfessorBirchsLab_EventScript_1FA10D:: @ 81FA10D
bufferspeciesname 0, SPECIES_TOTODILE
- setvar VAR_0x4001, 158
+ setvar VAR_TEMP_1, 158
givemon SPECIES_TOTODILE, 5, ITEM_NONE, 0x0, 0x0, 0
compare VAR_RESULT, 0
goto_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA142
@@ -425,7 +425,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA19E:: @ 81FA19E
LittlerootTown_ProfessorBirchsLab_EventScript_1FA1AE:: @ 81FA1AE
bufferspeciesname 0, SPECIES_CHIKORITA
- setvar VAR_0x4001, 152
+ setvar VAR_TEMP_1, 152
givemon SPECIES_CHIKORITA, 5, ITEM_NONE, 0x0, 0x0, 0
compare VAR_RESULT, 0
goto_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA1E3
diff --git a/data/scripts/maps/MarineCave_End.inc b/data/scripts/maps/MarineCave_End.inc
index 7d2588a0a..c8e7c6fad 100644
--- a/data/scripts/maps/MarineCave_End.inc
+++ b/data/scripts/maps/MarineCave_End.inc
@@ -22,7 +22,7 @@ MarineCave_End_MapScript1_23B008: @ 823B008
MarineCave_End_EventScript_23B012:: @ 823B012
clearflag FLAG_0x30E
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
return
MarineCave_End_EventScript_23B01B:: @ 823B01B
@@ -41,7 +41,7 @@ MarineCave_End_EventScript_23B01B:: @ 823B01B
special BattleSetup_StartLegendaryBattle
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
specialvar VAR_RESULT, sub_8138B80
compare VAR_RESULT, 1
goto_eq MarineCave_End_EventScript_23B084
diff --git a/data/scripts/maps/MauvilleCity_GameCorner.inc b/data/scripts/maps/MauvilleCity_GameCorner.inc
index 6d3e0c317..400a24c24 100644
--- a/data/scripts/maps/MauvilleCity_GameCorner.inc
+++ b/data/scripts/maps/MauvilleCity_GameCorner.inc
@@ -31,8 +31,8 @@ MauvilleCity_GameCorner_EventScript_20FC0C:: @ 820FC0C
end
MauvilleCity_GameCorner_EventScript_20FC33:: @ 820FC33
- checkcoins VAR_0x4001
- compare VAR_0x4001, 9950
+ checkcoins VAR_TEMP_1
+ compare VAR_TEMP_1, 9950
goto_if 4, MauvilleCity_GameCorner_EventScript_20FCE1
checkmoney 0x3e8, 0
compare VAR_RESULT, 0
@@ -52,8 +52,8 @@ MauvilleCity_GameCorner_EventScript_20FC33:: @ 820FC33
end
MauvilleCity_GameCorner_EventScript_20FC75:: @ 820FC75
- checkcoins VAR_0x4001
- compare VAR_0x4001, 9500
+ checkcoins VAR_TEMP_1
+ compare VAR_TEMP_1, 9500
goto_if 4, MauvilleCity_GameCorner_EventScript_20FCE1
checkmoney 0x2710, 0
compare VAR_RESULT, 0
@@ -117,7 +117,7 @@ MauvilleCity_GameCorner_EventScript_20FCF1:: @ 820FCF1
MauvilleCity_GameCorner_EventScript_20FD0D:: @ 820FD0D
message MauvilleCity_GameCorner_Text_21060D
waitmessage
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
showcoinsbox 1, 1
goto MauvilleCity_GameCorner_EventScript_20FD2B
@@ -137,17 +137,17 @@ MauvilleCity_GameCorner_EventScript_20FD2B:: @ 820FD2B
end
MauvilleCity_GameCorner_EventScript_20FD67:: @ 820FD67
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
bufferdecorationname 0, 88
goto MauvilleCity_GameCorner_EventScript_20FD91
MauvilleCity_GameCorner_EventScript_20FD75:: @ 820FD75
- setvar VAR_0x4001, 2
+ setvar VAR_TEMP_1, 2
bufferdecorationname 0, 89
goto MauvilleCity_GameCorner_EventScript_20FD91
MauvilleCity_GameCorner_EventScript_20FD83:: @ 820FD83
- setvar VAR_0x4001, 3
+ setvar VAR_TEMP_1, 3
bufferdecorationname 0, 90
goto MauvilleCity_GameCorner_EventScript_20FD91
@@ -155,15 +155,15 @@ MauvilleCity_GameCorner_EventScript_20FD91:: @ 820FD91
msgbox MauvilleCity_GameCorner_Text_210705, 5
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_20FE92
- switch VAR_0x4001
+ switch VAR_TEMP_1
case 1, MauvilleCity_GameCorner_EventScript_20FDCB
case 2, MauvilleCity_GameCorner_EventScript_20FE05
case 3, MauvilleCity_GameCorner_EventScript_20FE3F
end
MauvilleCity_GameCorner_EventScript_20FDCB:: @ 820FDCB
- checkcoins VAR_0x4002
- compare VAR_0x4002, 1000
+ checkcoins VAR_TEMP_2
+ compare VAR_TEMP_2, 1000
goto_if 0, MauvilleCity_GameCorner_EventScript_20FE79
bufferdecorationname 1, 88
checkdecorspace 88
@@ -178,8 +178,8 @@ MauvilleCity_GameCorner_EventScript_20FDCB:: @ 820FDCB
end
MauvilleCity_GameCorner_EventScript_20FE05:: @ 820FE05
- checkcoins VAR_0x4002
- compare VAR_0x4002, 1000
+ checkcoins VAR_TEMP_2
+ compare VAR_TEMP_2, 1000
goto_if 0, MauvilleCity_GameCorner_EventScript_20FE79
bufferdecorationname 1, 89
checkdecorspace 89
@@ -194,8 +194,8 @@ MauvilleCity_GameCorner_EventScript_20FE05:: @ 820FE05
end
MauvilleCity_GameCorner_EventScript_20FE3F:: @ 820FE3F
- checkcoins VAR_0x4002
- compare VAR_0x4002, 1000
+ checkcoins VAR_TEMP_2
+ compare VAR_TEMP_2, 1000
goto_if 0, MauvilleCity_GameCorner_EventScript_20FE79
bufferdecorationname 1, 90
checkdecorspace 90
@@ -238,7 +238,7 @@ MauvilleCity_GameCorner_EventScript_20FE9F:: @ 820FE9F
MauvilleCity_GameCorner_EventScript_20FEBB:: @ 820FEBB
message MauvilleCity_GameCorner_Text_21060D
waitmessage
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
showcoinsbox 1, 1
goto MauvilleCity_GameCorner_EventScript_20FED9
@@ -260,31 +260,31 @@ MauvilleCity_GameCorner_EventScript_20FED9:: @ 820FED9
end
MauvilleCity_GameCorner_EventScript_20FF2B:: @ 820FF2B
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
bufferitemname 0, ITEM_TM32
setvar VAR_0x8004, 320
goto MauvilleCity_GameCorner_EventScript_20FF8A
MauvilleCity_GameCorner_EventScript_20FF3E:: @ 820FF3E
- setvar VAR_0x4001, 2
+ setvar VAR_TEMP_1, 2
bufferitemname 0, ITEM_TM29
setvar VAR_0x8004, 317
goto MauvilleCity_GameCorner_EventScript_20FF8A
MauvilleCity_GameCorner_EventScript_20FF51:: @ 820FF51
- setvar VAR_0x4001, 3
+ setvar VAR_TEMP_1, 3
bufferitemname 0, ITEM_TM35
setvar VAR_0x8004, 323
goto MauvilleCity_GameCorner_EventScript_20FF8A
MauvilleCity_GameCorner_EventScript_20FF64:: @ 820FF64
- setvar VAR_0x4001, 4
+ setvar VAR_TEMP_1, 4
bufferitemname 0, ITEM_TM24
setvar VAR_0x8004, 312
goto MauvilleCity_GameCorner_EventScript_20FF8A
MauvilleCity_GameCorner_EventScript_20FF77:: @ 820FF77
- setvar VAR_0x4001, 5
+ setvar VAR_TEMP_1, 5
bufferitemname 0, ITEM_TM13
setvar VAR_0x8004, 301
goto MauvilleCity_GameCorner_EventScript_20FF8A
@@ -294,7 +294,7 @@ MauvilleCity_GameCorner_EventScript_20FF8A:: @ 820FF8A
msgbox MauvilleCity_GameCorner_Text_210629, 5
compare VAR_RESULT, 0
goto_eq MauvilleCity_GameCorner_EventScript_210118
- switch VAR_0x4001
+ switch VAR_TEMP_1
case 1, MauvilleCity_GameCorner_EventScript_20FFDD
case 2, MauvilleCity_GameCorner_EventScript_210017
case 3, MauvilleCity_GameCorner_EventScript_210051
@@ -303,8 +303,8 @@ MauvilleCity_GameCorner_EventScript_20FF8A:: @ 820FF8A
end
MauvilleCity_GameCorner_EventScript_20FFDD:: @ 820FFDD
- checkcoins VAR_0x4002
- compare VAR_0x4002, 1500
+ checkcoins VAR_TEMP_2
+ compare VAR_TEMP_2, 1500
goto_if 0, MauvilleCity_GameCorner_EventScript_2100FF
checkitemspace ITEM_TM32, 1
compare VAR_RESULT, 0
@@ -318,8 +318,8 @@ MauvilleCity_GameCorner_EventScript_20FFDD:: @ 820FFDD
end
MauvilleCity_GameCorner_EventScript_210017:: @ 8210017
- checkcoins VAR_0x4002
- compare VAR_0x4002, 3500
+ checkcoins VAR_TEMP_2
+ compare VAR_TEMP_2, 3500
goto_if 0, MauvilleCity_GameCorner_EventScript_2100FF
checkitemspace ITEM_TM29, 1
compare VAR_RESULT, 0
@@ -333,8 +333,8 @@ MauvilleCity_GameCorner_EventScript_210017:: @ 8210017
end
MauvilleCity_GameCorner_EventScript_210051:: @ 8210051
- checkcoins VAR_0x4002
- compare VAR_0x4002, 4000
+ checkcoins VAR_TEMP_2
+ compare VAR_TEMP_2, 4000
goto_if 0, MauvilleCity_GameCorner_EventScript_2100FF
checkitemspace ITEM_TM35, 1
compare VAR_RESULT, 0
@@ -348,8 +348,8 @@ MauvilleCity_GameCorner_EventScript_210051:: @ 8210051
end
MauvilleCity_GameCorner_EventScript_21008B:: @ 821008B
- checkcoins VAR_0x4002
- compare VAR_0x4002, 4000
+ checkcoins VAR_TEMP_2
+ compare VAR_TEMP_2, 4000
goto_if 0, MauvilleCity_GameCorner_EventScript_2100FF
checkitemspace ITEM_TM24, 1
compare VAR_RESULT, 0
@@ -363,8 +363,8 @@ MauvilleCity_GameCorner_EventScript_21008B:: @ 821008B
end
MauvilleCity_GameCorner_EventScript_2100C5:: @ 82100C5
- checkcoins VAR_0x4002
- compare VAR_0x4002, 4000
+ checkcoins VAR_TEMP_2
+ compare VAR_TEMP_2, 4000
goto_if 0, MauvilleCity_GameCorner_EventScript_2100FF
checkitemspace ITEM_TM13, 1
compare VAR_RESULT, 0
@@ -477,8 +477,8 @@ MauvilleCity_GameCorner_EventScript_21021D:: @ 821021D
MauvilleCity_GameCorner_EventScript_21023D:: @ 821023D
checkflag FLAG_0x0E1
goto_eq MauvilleCity_GameCorner_EventScript_21026B
- checkcoins VAR_0x4001
- compare VAR_0x4001, 1
+ checkcoins VAR_TEMP_1
+ compare VAR_TEMP_1, 1
goto_if 4, MauvilleCity_GameCorner_EventScript_21026B
setflag FLAG_0x0E1
givecoins 20
diff --git a/data/scripts/maps/MossdeepCity.inc b/data/scripts/maps/MossdeepCity.inc
index 111281931..4e8531a4e 100644
--- a/data/scripts/maps/MossdeepCity.inc
+++ b/data/scripts/maps/MossdeepCity.inc
@@ -73,7 +73,7 @@ MossdeepCity_EventScript_1E4B2F:: @ 81E4B2F
MossdeepCity_EventScript_1E4B38:: @ 81E4B38
setflag FLAG_VISITED_MOSSDEEP_CITY
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
end
MossdeepCity_EventScript_1E4B41:: @ 81E4B41
diff --git a/data/scripts/maps/MossdeepCity_StevensHouse.inc b/data/scripts/maps/MossdeepCity_StevensHouse.inc
index 91bf06c48..fb2665e8b 100644
--- a/data/scripts/maps/MossdeepCity_StevensHouse.inc
+++ b/data/scripts/maps/MossdeepCity_StevensHouse.inc
@@ -85,7 +85,7 @@ MossdeepCity_StevensHouse_EventScript_22285B:: @ 822285B
end
MossdeepCity_StevensHouse_EventScript_222865:: @ 8222865
- setvar VAR_0x4001, 398
+ setvar VAR_TEMP_1, 398
givemon SPECIES_BELDUM, 5, ITEM_NONE, 0x0, 0x0, 0
compare VAR_RESULT, 0
goto_eq MossdeepCity_StevensHouse_EventScript_222895
diff --git a/data/scripts/maps/MtPyre_Exterior.inc b/data/scripts/maps/MtPyre_Exterior.inc
index 7142f1f06..8f757ebb4 100644
--- a/data/scripts/maps/MtPyre_Exterior.inc
+++ b/data/scripts/maps/MtPyre_Exterior.inc
@@ -7,8 +7,8 @@ MtPyre_Exterior_MapScript1_231FD2: @ 8231FD2
end
MtPyre_Exterior_EventScript_231FD8:: @ 8231FD8
- getplayerxy VAR_0x4000, VAR_0x4001
- compare VAR_0x4001, 12
+ getplayerxy VAR_TEMP_0, VAR_TEMP_1
+ compare VAR_TEMP_1, 12
goto_if 0, MtPyre_Exterior_EventScript_231FE9
return
diff --git a/data/scripts/maps/NavelRock_Top.inc b/data/scripts/maps/NavelRock_Top.inc
index 07a90e7b7..6193a092e 100644
--- a/data/scripts/maps/NavelRock_Top.inc
+++ b/data/scripts/maps/NavelRock_Top.inc
@@ -11,15 +11,15 @@ NavelRock_Top_MapScript1_26911E: @ 826911E
end
NavelRock_Top_EventScript_269131:: @ 8269131
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
setflag FLAG_0x321
return
NavelRock_Top_EventScript_26913A:: @ 826913A
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
checkflag FLAG_0x1DC
goto_eq NavelRock_Top_EventScript_27374E
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
clearflag FLAG_0x321
return
@@ -37,7 +37,7 @@ NavelRock_Top_EventScript_26915B:: @ 826915B
NavelRock_Top_EventScript_26916F:: @ 826916F
lockall
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
special SpawnScriptFieldObject
setvar VAR_0x8004, 3
setvar VAR_0x8005, 35
diff --git a/data/scripts/maps/NewMauville_Inside.inc b/data/scripts/maps/NewMauville_Inside.inc
index 301df7801..81b21287d 100644
--- a/data/scripts/maps/NewMauville_Inside.inc
+++ b/data/scripts/maps/NewMauville_Inside.inc
@@ -5,9 +5,9 @@ NewMauville_Inside_MapScripts:: @ 82373D7
.byte 0
NewMauville_Inside_MapScript1_2373E7: @ 82373E7
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, NewMauville_Inside_EventScript_237489
- compare VAR_0x4002, 1
+ compare VAR_TEMP_2, 1
call_if 1, NewMauville_Inside_EventScript_2375D7
checkflag FLAG_SYS_CTRL_OBJ_DELETE
call_if 1, NewMauville_Inside_EventScript_237407
@@ -21,8 +21,8 @@ NewMauville_Inside_EventScript_237407:: @ 8237407
return
NewMauville_Inside_MapScript1_23741B: @ 823741B
- setvar VAR_0x4001, 0
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_1, 0
+ setvar VAR_TEMP_2, 0
checkflag FLAG_0x1C1
call_if 0, NewMauville_Inside_EventScript_237441
checkflag FLAG_0x1C2
@@ -50,8 +50,8 @@ NewMauville_Inside_MapScript1_23744D: @ 823744D
NewMauville_Inside_EventScript_237459:: @ 8237459
lockall
- setvar VAR_0x4001, 1
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_1, 1
+ setvar VAR_TEMP_2, 0
playse SE_PIN
call NewMauville_Inside_EventScript_237489
special DrawWholeMapView
@@ -60,8 +60,8 @@ NewMauville_Inside_EventScript_237459:: @ 8237459
NewMauville_Inside_EventScript_237471:: @ 8237471
lockall
- setvar VAR_0x4001, 0
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_1, 0
+ setvar VAR_TEMP_2, 1
playse SE_PIN
call NewMauville_Inside_EventScript_2375D7
special DrawWholeMapView
diff --git a/data/scripts/maps/Route110_SeasideCyclingRoadEntrance1.inc b/data/scripts/maps/Route110_SeasideCyclingRoadEntrance1.inc
index 053183b28..5087d304c 100644
--- a/data/scripts/maps/Route110_SeasideCyclingRoadEntrance1.inc
+++ b/data/scripts/maps/Route110_SeasideCyclingRoadEntrance1.inc
@@ -14,7 +14,7 @@ Route110_SeasideCyclingRoadEntrance1_EventScript_26EA84:: @ 826EA84
compare VAR_RESULT, 0
goto_eq Route110_SeasideCyclingRoadEntrance1_EventScript_26EA9F
setflag FLAG_SYS_CYCLING_ROAD
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
releaseall
end
@@ -33,7 +33,7 @@ Route110_SeasideCyclingRoadEntrance1_Movement_26EAB4: @ 826EAB4
Route110_SeasideCyclingRoadEntrance1_EventScript_26EAB6:: @ 826EAB6
lockall
clearflag FLAG_SYS_CYCLING_ROAD
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
releaseall
end
diff --git a/data/scripts/maps/Route110_SeasideCyclingRoadEntrance2.inc b/data/scripts/maps/Route110_SeasideCyclingRoadEntrance2.inc
index 602373825..97e7452ec 100644
--- a/data/scripts/maps/Route110_SeasideCyclingRoadEntrance2.inc
+++ b/data/scripts/maps/Route110_SeasideCyclingRoadEntrance2.inc
@@ -28,7 +28,7 @@ Route110_SeasideCyclingRoadEntrance2_EventScript_26EBD0:: @ 826EBD0
compare VAR_RESULT, 0
goto_eq Route110_SeasideCyclingRoadEntrance2_EventScript_26EBFC
setflag FLAG_SYS_CYCLING_ROAD
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
releaseall
end
@@ -52,7 +52,7 @@ Route110_SeasideCyclingRoadEntrance2_EventScript_26EC13:: @ 826EC13
lockall
setvar VAR_0x40A9, 0
clearflag FLAG_SYS_CYCLING_ROAD
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
releaseall
end
diff --git a/data/scripts/maps/Route110_TrickHouseEnd.inc b/data/scripts/maps/Route110_TrickHouseEnd.inc
index a0aa5856c..b8db4697b 100644
--- a/data/scripts/maps/Route110_TrickHouseEnd.inc
+++ b/data/scripts/maps/Route110_TrickHouseEnd.inc
@@ -6,18 +6,18 @@ Route110_TrickHouseEnd_MapScripts:: @ 826ACAF
.byte 0
Route110_TrickHouseEnd_MapScript1_26ACC4: @ 826ACC4
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, Route110_TrickHouseEnd_EventScript_26AD0D
end
Route110_TrickHouseEnd_MapScript1_26ACD0: @ 826ACD0
- setvar VAR_0x4001, 0
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_1, 0
+ setvar VAR_TEMP_2, 0
special SetTrickHouseEndRoomFlag
end
Route110_TrickHouseEnd_MapScript2_26ACDE: @ 826ACDE
- map_script_2 VAR_0x4002, 0, Route110_TrickHouseEnd_EventScript_26ACE8
+ map_script_2 VAR_TEMP_2, 0, Route110_TrickHouseEnd_EventScript_26ACE8
.2byte 0
Route110_TrickHouseEnd_EventScript_26ACE8:: @ 826ACE8
@@ -27,11 +27,11 @@ Route110_TrickHouseEnd_EventScript_26ACE8:: @ 826ACE8
end
Route110_TrickHouseEnd_MapScript2_26ACF5: @ 826ACF5
- map_script_2 VAR_0x4001, 0, Route110_TrickHouseEnd_EventScript_26ACFF
+ map_script_2 VAR_TEMP_1, 0, Route110_TrickHouseEnd_EventScript_26ACFF
.2byte 0
Route110_TrickHouseEnd_EventScript_26ACFF:: @ 826ACFF
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
call Route110_TrickHouseEnd_EventScript_26AD0D
special DrawWholeMapView
end
@@ -44,7 +44,7 @@ Route110_TrickHouseEnd_EventScript_26AD17:: @ 826AD17
lock
faceplayer
msgbox Route110_TrickHouseEnd_Text_26B08D, 4
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
switch VAR_0x4044
case 0, Route110_TrickHouseEnd_EventScript_26AD84
case 1, Route110_TrickHouseEnd_EventScript_26ADC0
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle2.inc b/data/scripts/maps/Route110_TrickHousePuzzle2.inc
index fd8c42f84..b724b986d 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle2.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle2.inc
@@ -4,21 +4,21 @@ Route110_TrickHousePuzzle2_MapScripts:: @ 826BB73
.byte 0
Route110_TrickHousePuzzle2_MapScript1_26BB7E: @ 826BB7E
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, Route110_TrickHousePuzzle2_EventScript_26BC29
- compare VAR_0x4002, 1
+ compare VAR_TEMP_2, 1
call_if 1, Route110_TrickHousePuzzle2_EventScript_26BC3C
- compare VAR_0x4003, 1
+ compare VAR_TEMP_3, 1
call_if 1, Route110_TrickHousePuzzle2_EventScript_26BC4F
- compare VAR_0x4004, 1
+ compare VAR_TEMP_4, 1
call_if 1, Route110_TrickHousePuzzle2_EventScript_26BC62
end
Route110_TrickHousePuzzle2_MapScript1_26BBAB: @ 826BBAB
- setvar VAR_0x4001, 0
- setvar VAR_0x4002, 0
- setvar VAR_0x4003, 0
- setvar VAR_0x4004, 0
+ setvar VAR_TEMP_1, 0
+ setvar VAR_TEMP_2, 0
+ setvar VAR_TEMP_3, 0
+ setvar VAR_TEMP_4, 0
end
Route110_TrickHousePuzzle2_EventScript_26BBC0:: @ 826BBC0
@@ -35,7 +35,7 @@ Route110_TrickHousePuzzle2_EventScript_26BBD2:: @ 826BBD2
Route110_TrickHousePuzzle2_EventScript_26BBDD:: @ 826BBDD
lockall
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
playse SE_PIN
call Route110_TrickHousePuzzle2_EventScript_26BC29
special DrawWholeMapView
@@ -44,7 +44,7 @@ Route110_TrickHousePuzzle2_EventScript_26BBDD:: @ 826BBDD
Route110_TrickHousePuzzle2_EventScript_26BBF0:: @ 826BBF0
lockall
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
playse SE_PIN
call Route110_TrickHousePuzzle2_EventScript_26BC3C
special DrawWholeMapView
@@ -53,7 +53,7 @@ Route110_TrickHousePuzzle2_EventScript_26BBF0:: @ 826BBF0
Route110_TrickHousePuzzle2_EventScript_26BC03:: @ 826BC03
lockall
- setvar VAR_0x4003, 1
+ setvar VAR_TEMP_3, 1
playse SE_PIN
call Route110_TrickHousePuzzle2_EventScript_26BC4F
special DrawWholeMapView
@@ -62,7 +62,7 @@ Route110_TrickHousePuzzle2_EventScript_26BC03:: @ 826BC03
Route110_TrickHousePuzzle2_EventScript_26BC16:: @ 826BC16
lockall
- setvar VAR_0x4004, 1
+ setvar VAR_TEMP_4, 1
playse SE_PIN
call Route110_TrickHousePuzzle2_EventScript_26BC62
special DrawWholeMapView
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle3.inc b/data/scripts/maps/Route110_TrickHousePuzzle3.inc
index b5302e551..9956f9889 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle3.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle3.inc
@@ -5,19 +5,19 @@ Route110_TrickHousePuzzle3_MapScripts:: @ 826BED8
Route110_TrickHousePuzzle3_MapScript1_26BEE3: @ 826BEE3
call Route110_TrickHousePuzzle3_EventScript_26BF1E
- compare VAR_0x4009, 0
+ compare VAR_TEMP_9, 0
call_if 1, Route110_TrickHousePuzzle3_EventScript_26BF97
- compare VAR_0x4009, 1
+ compare VAR_TEMP_9, 1
call_if 1, Route110_TrickHousePuzzle3_EventScript_26C232
end
Route110_TrickHousePuzzle3_MapScript1_26BEFF: @ 826BEFF
- setvar VAR_0x4001, 0
- setvar VAR_0x4002, 0
- setvar VAR_0x4003, 0
- setvar VAR_0x4004, 0
- setvar VAR_0x4008, 0
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_1, 0
+ setvar VAR_TEMP_2, 0
+ setvar VAR_TEMP_3, 0
+ setvar VAR_TEMP_4, 0
+ setvar VAR_TEMP_8, 0
+ setvar VAR_TEMP_9, 0
end
Route110_TrickHousePuzzle3_EventScript_26BF1E:: @ 826BF1E
@@ -25,13 +25,13 @@ Route110_TrickHousePuzzle3_EventScript_26BF1E:: @ 826BF1E
setmetatile 3, 11, 600, 0
setmetatile 12, 5, 600, 0
setmetatile 8, 2, 600, 0
- compare VAR_0x4008, 1
+ compare VAR_TEMP_8, 1
call_if 1, Route110_TrickHousePuzzle3_EventScript_26BF6F
- compare VAR_0x4008, 2
+ compare VAR_TEMP_8, 2
call_if 1, Route110_TrickHousePuzzle3_EventScript_26BF79
- compare VAR_0x4008, 3
+ compare VAR_TEMP_8, 3
call_if 1, Route110_TrickHousePuzzle3_EventScript_26BF83
- compare VAR_0x4008, 4
+ compare VAR_TEMP_8, 4
call_if 1, Route110_TrickHousePuzzle3_EventScript_26BF8D
return
@@ -207,25 +207,25 @@ Route110_TrickHousePuzzle3_EventScript_26C232:: @ 826C232
Route110_TrickHousePuzzle3_EventScript_26C4CD:: @ 826C4CD
lockall
- setvar VAR_0x4008, 1
+ setvar VAR_TEMP_8, 1
goto Route110_TrickHousePuzzle3_EventScript_26C4FD
end
Route110_TrickHousePuzzle3_EventScript_26C4D9:: @ 826C4D9
lockall
- setvar VAR_0x4008, 2
+ setvar VAR_TEMP_8, 2
goto Route110_TrickHousePuzzle3_EventScript_26C4FD
end
Route110_TrickHousePuzzle3_EventScript_26C4E5:: @ 826C4E5
lockall
- setvar VAR_0x4008, 3
+ setvar VAR_TEMP_8, 3
goto Route110_TrickHousePuzzle3_EventScript_26C4FD
end
Route110_TrickHousePuzzle3_EventScript_26C4F1:: @ 826C4F1
lockall
- setvar VAR_0x4008, 4
+ setvar VAR_TEMP_8, 4
goto Route110_TrickHousePuzzle3_EventScript_26C4FD
end
@@ -237,55 +237,55 @@ Route110_TrickHousePuzzle3_EventScript_26C4FD:: @ 826C4FD
end
Route110_TrickHousePuzzle3_EventScript_26C510:: @ 826C510
- setvar VAR_0x4001, 0
- setvar VAR_0x4002, 0
- setvar VAR_0x4003, 0
- setvar VAR_0x4004, 0
- compare VAR_0x4008, 1
+ setvar VAR_TEMP_1, 0
+ setvar VAR_TEMP_2, 0
+ setvar VAR_TEMP_3, 0
+ setvar VAR_TEMP_4, 0
+ compare VAR_TEMP_8, 1
call_if 1, Route110_TrickHousePuzzle3_EventScript_26C551
- compare VAR_0x4008, 2
+ compare VAR_TEMP_8, 2
call_if 1, Route110_TrickHousePuzzle3_EventScript_26C557
- compare VAR_0x4008, 3
+ compare VAR_TEMP_8, 3
call_if 1, Route110_TrickHousePuzzle3_EventScript_26C55D
- compare VAR_0x4008, 4
+ compare VAR_TEMP_8, 4
call_if 1, Route110_TrickHousePuzzle3_EventScript_26C563
return
Route110_TrickHousePuzzle3_EventScript_26C551:: @ 826C551
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
return
Route110_TrickHousePuzzle3_EventScript_26C557:: @ 826C557
- setvar VAR_0x4002, 1
+ setvar VAR_TEMP_2, 1
return
Route110_TrickHousePuzzle3_EventScript_26C55D:: @ 826C55D
- setvar VAR_0x4003, 1
+ setvar VAR_TEMP_3, 1
return
Route110_TrickHousePuzzle3_EventScript_26C563:: @ 826C563
- setvar VAR_0x4004, 1
+ setvar VAR_TEMP_4, 1
return
Route110_TrickHousePuzzle3_EventScript_26C569:: @ 826C569
- compare VAR_0x4009, 1
+ compare VAR_TEMP_9, 1
call_if 1, Route110_TrickHousePuzzle3_EventScript_26BF97
- compare VAR_0x4009, 0
+ compare VAR_TEMP_9, 0
call_if 1, Route110_TrickHousePuzzle3_EventScript_26C232
special DrawWholeMapView
- compare VAR_0x4009, 1
+ compare VAR_TEMP_9, 1
goto_eq Route110_TrickHousePuzzle3_EventScript_26C599
- compare VAR_0x4009, 0
+ compare VAR_TEMP_9, 0
goto_eq Route110_TrickHousePuzzle3_EventScript_26C5A0
end
Route110_TrickHousePuzzle3_EventScript_26C599:: @ 826C599
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
releaseall
end
Route110_TrickHousePuzzle3_EventScript_26C5A0:: @ 826C5A0
- setvar VAR_0x4009, 1
+ setvar VAR_TEMP_9, 1
releaseall
end
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle5.inc b/data/scripts/maps/Route110_TrickHousePuzzle5.inc
index 5e14d3add..cd14f0060 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle5.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle5.inc
@@ -3,12 +3,12 @@ Route110_TrickHousePuzzle5_MapScripts:: @ 826CAF0
.byte 0
Route110_TrickHousePuzzle5_MapScript1_26CAF6: @ 826CAF6
- setvar VAR_0x4001, 0
- setvar VAR_0x4002, 0
- setvar VAR_0x4003, 0
- setvar VAR_0x4004, 0
- setvar VAR_0x4005, 0
- setvar VAR_0x4008, 0
+ setvar VAR_TEMP_1, 0
+ setvar VAR_TEMP_2, 0
+ setvar VAR_TEMP_3, 0
+ setvar VAR_TEMP_4, 0
+ setvar VAR_TEMP_5, 0
+ setvar VAR_TEMP_8, 0
end
Route110_TrickHousePuzzle5_EventScript_26CB15:: @ 826CB15
@@ -27,9 +27,9 @@ Route110_TrickHousePuzzle5_EventScript_26CB32:: @ 826CB32
lockall
applymovement 1, Route110_TrickHousePuzzle5_Movement_27259E
waitmovement 0
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
goto_eq Route110_TrickHousePuzzle5_EventScript_26D1AA
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
goto Route110_TrickHousePuzzle5_EventScript_26CCEB
end
@@ -37,9 +37,9 @@ Route110_TrickHousePuzzle5_EventScript_26CB53:: @ 826CB53
lockall
applymovement 2, Route110_TrickHousePuzzle5_Movement_27259E
waitmovement 0
- compare VAR_0x4002, 1
+ compare VAR_TEMP_2, 1
goto_eq Route110_TrickHousePuzzle5_EventScript_26D1AA
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
goto Route110_TrickHousePuzzle5_EventScript_26CD6A
end
@@ -47,9 +47,9 @@ Route110_TrickHousePuzzle5_EventScript_26CB74:: @ 826CB74
lockall
applymovement 3, Route110_TrickHousePuzzle5_Movement_27259E
waitmovement 0
- compare VAR_0x4003, 1
+ compare VAR_TEMP_3, 1
goto_eq Route110_TrickHousePuzzle5_EventScript_26D1AA
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
goto Route110_TrickHousePuzzle5_EventScript_26CDF4
end
@@ -57,9 +57,9 @@ Route110_TrickHousePuzzle5_EventScript_26CB95:: @ 826CB95
lockall
applymovement 4, Route110_TrickHousePuzzle5_Movement_27259E
waitmovement 0
- compare VAR_0x4004, 1
+ compare VAR_TEMP_4, 1
goto_eq Route110_TrickHousePuzzle5_EventScript_26D1AA
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
goto Route110_TrickHousePuzzle5_EventScript_26CE73
end
@@ -67,165 +67,165 @@ Route110_TrickHousePuzzle5_EventScript_26CBB6:: @ 826CBB6
lockall
applymovement 5, Route110_TrickHousePuzzle5_Movement_27259E
waitmovement 0
- compare VAR_0x4005, 1
+ compare VAR_TEMP_5, 1
goto_eq Route110_TrickHousePuzzle5_EventScript_26D1AA
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
goto Route110_TrickHousePuzzle5_EventScript_26CEF2
end
Route110_TrickHousePuzzle5_EventScript_26CBD7:: @ 826CBD7
lockall
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
goto Route110_TrickHousePuzzle5_EventScript_26CCEB
end
Route110_TrickHousePuzzle5_EventScript_26CBE3:: @ 826CBE3
lockall
- setvar VAR_0x4009, 1
+ setvar VAR_TEMP_9, 1
goto Route110_TrickHousePuzzle5_EventScript_26CCEB
end
Route110_TrickHousePuzzle5_EventScript_26CBEF:: @ 826CBEF
lockall
- setvar VAR_0x4009, 2
+ setvar VAR_TEMP_9, 2
goto Route110_TrickHousePuzzle5_EventScript_26CCEB
end
Route110_TrickHousePuzzle5_EventScript_26CBFB:: @ 826CBFB
lockall
- setvar VAR_0x4009, 3
+ setvar VAR_TEMP_9, 3
goto Route110_TrickHousePuzzle5_EventScript_26CCEB
end
Route110_TrickHousePuzzle5_EventScript_26CC07:: @ 826CC07
lockall
- setvar VAR_0x4009, 4
+ setvar VAR_TEMP_9, 4
goto Route110_TrickHousePuzzle5_EventScript_26CCEB
end
Route110_TrickHousePuzzle5_EventScript_26CC13:: @ 826CC13
lockall
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
goto Route110_TrickHousePuzzle5_EventScript_26CD6A
end
Route110_TrickHousePuzzle5_EventScript_26CC1F:: @ 826CC1F
lockall
- setvar VAR_0x4009, 1
+ setvar VAR_TEMP_9, 1
goto Route110_TrickHousePuzzle5_EventScript_26CD6A
end
Route110_TrickHousePuzzle5_EventScript_26CC2B:: @ 826CC2B
lockall
- setvar VAR_0x4009, 2
+ setvar VAR_TEMP_9, 2
goto Route110_TrickHousePuzzle5_EventScript_26CD6A
end
Route110_TrickHousePuzzle5_EventScript_26CC37:: @ 826CC37
lockall
- setvar VAR_0x4009, 3
+ setvar VAR_TEMP_9, 3
goto Route110_TrickHousePuzzle5_EventScript_26CD6A
end
Route110_TrickHousePuzzle5_EventScript_26CC43:: @ 826CC43
lockall
- setvar VAR_0x4009, 4
+ setvar VAR_TEMP_9, 4
goto Route110_TrickHousePuzzle5_EventScript_26CD6A
end
Route110_TrickHousePuzzle5_EventScript_26CC4F:: @ 826CC4F
lockall
- setvar VAR_0x4009, 5
+ setvar VAR_TEMP_9, 5
goto Route110_TrickHousePuzzle5_EventScript_26CD6A
end
Route110_TrickHousePuzzle5_EventScript_26CC5B:: @ 826CC5B
lockall
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
goto Route110_TrickHousePuzzle5_EventScript_26CDF4
end
Route110_TrickHousePuzzle5_EventScript_26CC67:: @ 826CC67
lockall
- setvar VAR_0x4009, 1
+ setvar VAR_TEMP_9, 1
goto Route110_TrickHousePuzzle5_EventScript_26CDF4
end
Route110_TrickHousePuzzle5_EventScript_26CC73:: @ 826CC73
lockall
- setvar VAR_0x4009, 2
+ setvar VAR_TEMP_9, 2
goto Route110_TrickHousePuzzle5_EventScript_26CDF4
end
Route110_TrickHousePuzzle5_EventScript_26CC7F:: @ 826CC7F
lockall
- setvar VAR_0x4009, 3
+ setvar VAR_TEMP_9, 3
goto Route110_TrickHousePuzzle5_EventScript_26CDF4
end
Route110_TrickHousePuzzle5_EventScript_26CC8B:: @ 826CC8B
lockall
- setvar VAR_0x4009, 4
+ setvar VAR_TEMP_9, 4
goto Route110_TrickHousePuzzle5_EventScript_26CDF4
end
Route110_TrickHousePuzzle5_EventScript_26CC97:: @ 826CC97
lockall
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
goto Route110_TrickHousePuzzle5_EventScript_26CE73
end
Route110_TrickHousePuzzle5_EventScript_26CCA3:: @ 826CCA3
lockall
- setvar VAR_0x4009, 1
+ setvar VAR_TEMP_9, 1
goto Route110_TrickHousePuzzle5_EventScript_26CE73
end
Route110_TrickHousePuzzle5_EventScript_26CCAF:: @ 826CCAF
lockall
- setvar VAR_0x4009, 2
+ setvar VAR_TEMP_9, 2
goto Route110_TrickHousePuzzle5_EventScript_26CE73
end
Route110_TrickHousePuzzle5_EventScript_26CCBB:: @ 826CCBB
lockall
- setvar VAR_0x4009, 3
+ setvar VAR_TEMP_9, 3
goto Route110_TrickHousePuzzle5_EventScript_26CE73
end
Route110_TrickHousePuzzle5_EventScript_26CCC7:: @ 826CCC7
lockall
- setvar VAR_0x4009, 4
+ setvar VAR_TEMP_9, 4
goto Route110_TrickHousePuzzle5_EventScript_26CE73
end
Route110_TrickHousePuzzle5_EventScript_26CCD3:: @ 826CCD3
lockall
- setvar VAR_0x4009, 5
+ setvar VAR_TEMP_9, 5
goto Route110_TrickHousePuzzle5_EventScript_26CE73
end
Route110_TrickHousePuzzle5_EventScript_26CCDF:: @ 826CCDF
lockall
- setvar VAR_0x4009, 0
+ setvar VAR_TEMP_9, 0
goto Route110_TrickHousePuzzle5_EventScript_26CEF2
end
Route110_TrickHousePuzzle5_EventScript_26CCEB:: @ 826CCEB
- setvar VAR_0x4001, 1
- setvar VAR_0x4008, 1
+ setvar VAR_TEMP_1, 1
+ setvar VAR_TEMP_8, 1
playse SE_PIN
applymovement 1, Route110_TrickHousePuzzle5_Movement_272598
waitmovement 0
applymovement 1, Route110_TrickHousePuzzle5_Movement_27259A
waitmovement 0
- compare VAR_0x4009, 1
+ compare VAR_TEMP_9, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D1B4
- compare VAR_0x4009, 2
+ compare VAR_TEMP_9, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D1EC
- compare VAR_0x4009, 3
+ compare VAR_TEMP_9, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D224
- compare VAR_0x4009, 4
+ compare VAR_TEMP_9, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D25C
msgbox Route110_TrickHousePuzzle5_Text_26D6CE, 4
random 3
@@ -236,22 +236,22 @@ Route110_TrickHousePuzzle5_EventScript_26CCEB:: @ 826CCEB
end
Route110_TrickHousePuzzle5_EventScript_26CD6A:: @ 826CD6A
- setvar VAR_0x4002, 1
- setvar VAR_0x4008, 2
+ setvar VAR_TEMP_2, 1
+ setvar VAR_TEMP_8, 2
playse SE_PIN
applymovement 2, Route110_TrickHousePuzzle5_Movement_272598
waitmovement 0
applymovement 2, Route110_TrickHousePuzzle5_Movement_27259A
waitmovement 0
- compare VAR_0x4009, 1
+ compare VAR_TEMP_9, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D2CC
- compare VAR_0x4009, 2
+ compare VAR_TEMP_9, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D304
- compare VAR_0x4009, 3
+ compare VAR_TEMP_9, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D33C
- compare VAR_0x4009, 4
+ compare VAR_TEMP_9, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D374
- compare VAR_0x4009, 5
+ compare VAR_TEMP_9, 5
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D3AC
msgbox Route110_TrickHousePuzzle5_Text_26D8EA, 4
random 3
@@ -262,20 +262,20 @@ Route110_TrickHousePuzzle5_EventScript_26CD6A:: @ 826CD6A
end
Route110_TrickHousePuzzle5_EventScript_26CDF4:: @ 826CDF4
- setvar VAR_0x4003, 1
- setvar VAR_0x4008, 3
+ setvar VAR_TEMP_3, 1
+ setvar VAR_TEMP_8, 3
playse SE_PIN
applymovement 3, Route110_TrickHousePuzzle5_Movement_272598
waitmovement 0
applymovement 3, Route110_TrickHousePuzzle5_Movement_27259A
waitmovement 0
- compare VAR_0x4009, 1
+ compare VAR_TEMP_9, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D1B4
- compare VAR_0x4009, 2
+ compare VAR_TEMP_9, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D1EC
- compare VAR_0x4009, 3
+ compare VAR_TEMP_9, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D224
- compare VAR_0x4009, 4
+ compare VAR_TEMP_9, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D25C
msgbox Route110_TrickHousePuzzle5_Text_26DA1E, 4
random 3
@@ -286,20 +286,20 @@ Route110_TrickHousePuzzle5_EventScript_26CDF4:: @ 826CDF4
end
Route110_TrickHousePuzzle5_EventScript_26CE73:: @ 826CE73
- setvar VAR_0x4004, 1
- setvar VAR_0x4008, 4
+ setvar VAR_TEMP_4, 1
+ setvar VAR_TEMP_8, 4
playse SE_PIN
applymovement 4, Route110_TrickHousePuzzle5_Movement_272598
waitmovement 0
applymovement 4, Route110_TrickHousePuzzle5_Movement_27259A
waitmovement 0
- compare VAR_0x4009, 1
+ compare VAR_TEMP_9, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D1B4
- compare VAR_0x4009, 2
+ compare VAR_TEMP_9, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D1EC
- compare VAR_0x4009, 3
+ compare VAR_TEMP_9, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D224
- compare VAR_0x4009, 4
+ compare VAR_TEMP_9, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D25C
msgbox Route110_TrickHousePuzzle5_Text_26DB4C, 4
random 3
@@ -310,8 +310,8 @@ Route110_TrickHousePuzzle5_EventScript_26CE73:: @ 826CE73
end
Route110_TrickHousePuzzle5_EventScript_26CEF2:: @ 826CEF2
- setvar VAR_0x4005, 1
- setvar VAR_0x4008, 5
+ setvar VAR_TEMP_5, 1
+ setvar VAR_TEMP_8, 5
playse SE_PIN
applymovement 5, Route110_TrickHousePuzzle5_Movement_272598
waitmovement 0
@@ -475,132 +475,132 @@ Route110_TrickHousePuzzle5_EventScript_26D1AA:: @ 826D1AA
end
Route110_TrickHousePuzzle5_EventScript_26D1B4:: @ 826D1B4
- compare VAR_0x4008, 1
+ compare VAR_TEMP_8, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D3E4
- compare VAR_0x4008, 2
+ compare VAR_TEMP_8, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D3EF
- compare VAR_0x4008, 3
+ compare VAR_TEMP_8, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D3FA
- compare VAR_0x4008, 4
+ compare VAR_TEMP_8, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D405
- compare VAR_0x4008, 5
+ compare VAR_TEMP_8, 5
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D410
return
Route110_TrickHousePuzzle5_EventScript_26D1EC:: @ 826D1EC
- compare VAR_0x4008, 1
+ compare VAR_TEMP_8, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D41B
- compare VAR_0x4008, 2
+ compare VAR_TEMP_8, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D426
- compare VAR_0x4008, 3
+ compare VAR_TEMP_8, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D431
- compare VAR_0x4008, 4
+ compare VAR_TEMP_8, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D43C
- compare VAR_0x4008, 5
+ compare VAR_TEMP_8, 5
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D447
return
Route110_TrickHousePuzzle5_EventScript_26D224:: @ 826D224
- compare VAR_0x4008, 1
+ compare VAR_TEMP_8, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D452
- compare VAR_0x4008, 2
+ compare VAR_TEMP_8, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D45D
- compare VAR_0x4008, 3
+ compare VAR_TEMP_8, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D468
- compare VAR_0x4008, 4
+ compare VAR_TEMP_8, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D473
- compare VAR_0x4008, 5
+ compare VAR_TEMP_8, 5
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D47E
return
Route110_TrickHousePuzzle5_EventScript_26D25C:: @ 826D25C
- compare VAR_0x4008, 1
+ compare VAR_TEMP_8, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D489
- compare VAR_0x4008, 2
+ compare VAR_TEMP_8, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D494
- compare VAR_0x4008, 3
+ compare VAR_TEMP_8, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D49F
- compare VAR_0x4008, 4
+ compare VAR_TEMP_8, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D4AA
- compare VAR_0x4008, 5
+ compare VAR_TEMP_8, 5
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D4B5
return
Route110_TrickHousePuzzle5_EventScript_26D294:: @ 826D294
- compare VAR_0x4008, 1
+ compare VAR_TEMP_8, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D4C0
- compare VAR_0x4008, 2
+ compare VAR_TEMP_8, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D4CB
- compare VAR_0x4008, 3
+ compare VAR_TEMP_8, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D4D6
- compare VAR_0x4008, 4
+ compare VAR_TEMP_8, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D4E1
- compare VAR_0x4008, 5
+ compare VAR_TEMP_8, 5
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D4EC
return
Route110_TrickHousePuzzle5_EventScript_26D2CC:: @ 826D2CC
- compare VAR_0x4008, 1
+ compare VAR_TEMP_8, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D4F7
- compare VAR_0x4008, 2
+ compare VAR_TEMP_8, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D502
- compare VAR_0x4008, 3
+ compare VAR_TEMP_8, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D50D
- compare VAR_0x4008, 4
+ compare VAR_TEMP_8, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D518
- compare VAR_0x4008, 5
+ compare VAR_TEMP_8, 5
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D523
return
Route110_TrickHousePuzzle5_EventScript_26D304:: @ 826D304
- compare VAR_0x4008, 1
+ compare VAR_TEMP_8, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D52E
- compare VAR_0x4008, 2
+ compare VAR_TEMP_8, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D539
- compare VAR_0x4008, 3
+ compare VAR_TEMP_8, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D544
- compare VAR_0x4008, 4
+ compare VAR_TEMP_8, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D54F
- compare VAR_0x4008, 5
+ compare VAR_TEMP_8, 5
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D55A
return
Route110_TrickHousePuzzle5_EventScript_26D33C:: @ 826D33C
- compare VAR_0x4008, 1
+ compare VAR_TEMP_8, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D565
- compare VAR_0x4008, 2
+ compare VAR_TEMP_8, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D570
- compare VAR_0x4008, 3
+ compare VAR_TEMP_8, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D57B
- compare VAR_0x4008, 4
+ compare VAR_TEMP_8, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D586
- compare VAR_0x4008, 5
+ compare VAR_TEMP_8, 5
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D591
return
Route110_TrickHousePuzzle5_EventScript_26D374:: @ 826D374
- compare VAR_0x4008, 1
+ compare VAR_TEMP_8, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D59C
- compare VAR_0x4008, 2
+ compare VAR_TEMP_8, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D5A7
- compare VAR_0x4008, 3
+ compare VAR_TEMP_8, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D5B2
- compare VAR_0x4008, 4
+ compare VAR_TEMP_8, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D5BD
- compare VAR_0x4008, 5
+ compare VAR_TEMP_8, 5
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D5C8
return
Route110_TrickHousePuzzle5_EventScript_26D3AC:: @ 826D3AC
- compare VAR_0x4008, 1
+ compare VAR_TEMP_8, 1
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D5D3
- compare VAR_0x4008, 2
+ compare VAR_TEMP_8, 2
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D5DE
- compare VAR_0x4008, 3
+ compare VAR_TEMP_8, 3
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D5E9
- compare VAR_0x4008, 4
+ compare VAR_TEMP_8, 4
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D5F4
- compare VAR_0x4008, 5
+ compare VAR_TEMP_8, 5
call_if 1, Route110_TrickHousePuzzle5_EventScript_26D5FF
return
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle6.inc b/data/scripts/maps/Route110_TrickHousePuzzle6.inc
index 0a0e025af..0f20aac1f 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle6.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle6.inc
@@ -8,7 +8,7 @@ Route110_TrickHousePuzzle6_MapScript1_26DDB2: @ 826DDB2
end
Route110_TrickHousePuzzle6_MapScript2_26DDB6: @ 826DDB6
- map_script_2 VAR_0x4000, 16384, Route110_TrickHousePuzzle6_EventScript_26DDC0
+ map_script_2 VAR_TEMP_0, 16384, Route110_TrickHousePuzzle6_EventScript_26DDC0
.2byte 0
Route110_TrickHousePuzzle6_EventScript_26DDC0:: @ 826DDC0
diff --git a/data/scripts/maps/Route111.inc b/data/scripts/maps/Route111.inc
index a23565c14..37d77d095 100644
--- a/data/scripts/maps/Route111.inc
+++ b/data/scripts/maps/Route111.inc
@@ -62,24 +62,24 @@ Route111_EventScript_1F0DC2:: @ 81F0DC2
return
Route111_EventScript_1F0DDA:: @ 81F0DDA
- setvar VAR_0x4010, 100
+ setvar VAR_OBJ_GFX_ID_0, 100
return
Route111_EventScript_1F0DE0:: @ 81F0DE0
- setvar VAR_0x4010, 105
+ setvar VAR_OBJ_GFX_ID_0, 105
return
Route111_EventScript_1F0DE6:: @ 81F0DE6
- getplayerxy VAR_0x4000, VAR_0x4001
- compare VAR_0x4001, 34
+ getplayerxy VAR_TEMP_0, VAR_TEMP_1
+ compare VAR_TEMP_1, 34
goto_if 0, Route111_EventScript_1F0E25
- compare VAR_0x4001, 107
+ compare VAR_TEMP_1, 107
goto_if 2, Route111_EventScript_1F0E25
- compare VAR_0x4001, 72
+ compare VAR_TEMP_1, 72
goto_if 2, Route111_EventScript_1F0E22
- compare VAR_0x4000, 2000
+ compare VAR_TEMP_0, 2000
goto_if 2, Route111_EventScript_1F0E25
- compare VAR_0x4000, 8
+ compare VAR_TEMP_0, 8
goto_if 0, Route111_EventScript_1F0E25
Route111_EventScript_1F0E22:: @ 81F0E22
@@ -208,7 +208,7 @@ Route111_EventScript_1F0F2E:: @ 81F0F2E
checkitem ITEM_GO_GOGGLES, 1
compare VAR_RESULT, 0
goto_eq Route111_EventScript_1F0F45
- setvar VAR_0x4003, 1
+ setvar VAR_TEMP_3, 1
releaseall
end
@@ -266,7 +266,7 @@ Route111_EventScript_1F0FB0:: @ 81F0FB0
setweather 2
fadenewbgm MUS_DOORO_X1
doweather
- setvar VAR_0x4003, 0
+ setvar VAR_TEMP_3, 0
end
Route111_EventScript_1F0FBD:: @ 81F0FBD
diff --git a/data/scripts/maps/Route113.inc b/data/scripts/maps/Route113.inc
index d990527a6..63dc6c47f 100644
--- a/data/scripts/maps/Route113.inc
+++ b/data/scripts/maps/Route113.inc
@@ -13,10 +13,10 @@ Route113_MapScript1_1F2161: @ 81F2161
end
Route113_EventScript_1F216A:: @ 81F216A
- getplayerxy VAR_0x4000, VAR_0x4001
- compare VAR_0x4000, 19
+ getplayerxy VAR_TEMP_0, VAR_TEMP_1
+ compare VAR_TEMP_0, 19
goto_if 0, Route113_EventScript_1F2189
- compare VAR_0x4000, 84
+ compare VAR_TEMP_0, 84
goto_if 2, Route113_EventScript_1F2189
setweather 7
return
diff --git a/data/scripts/maps/Route119.inc b/data/scripts/maps/Route119.inc
index 5f60851b4..41e0fbbfe 100644
--- a/data/scripts/maps/Route119.inc
+++ b/data/scripts/maps/Route119.inc
@@ -30,12 +30,12 @@ Route119_EventScript_1F4466:: @ 81F4466
return
Route119_EventScript_1F4472:: @ 81F4472
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
goto Route119_EventScript_1F4488
end
Route119_EventScript_1F447D:: @ 81F447D
- setvar VAR_0x4001, 2
+ setvar VAR_TEMP_1, 2
goto Route119_EventScript_1F4488
end
@@ -48,16 +48,16 @@ Route119_EventScript_1F4488:: @ 81F4488
compare VAR_RESULT, 1
call_if 1, Route119_EventScript_1F4506
delay 65
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, Route119_EventScript_1F46C6
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, Route119_EventScript_1F46D1
applymovement 255, Route119_Movement_2725AA
waitmovement 0
delay 30
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, Route119_EventScript_1F4700
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, Route119_EventScript_1F470F
removeobject 25
addobject 16
@@ -145,25 +145,25 @@ Route119_EventScript_1F45FF:: @ 81F45FF
Route119_EventScript_1F460F:: @ 81F460F
closemessage
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, Route119_EventScript_1F4700
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, Route119_EventScript_1F470F
removeobject 16
addobject 25
delay 30
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, Route119_EventScript_1F46DC
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, Route119_EventScript_1F46EE
removeobject 25
setvar VAR_0x4072, 1
savebgm MUS_DUMMY
fadedefaultbgm
delay 60
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, Route119_EventScript_1F46A0
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, Route119_EventScript_1F46A8
addobject 43
applymovement 43, Route119_Movement_1F4752
@@ -171,9 +171,9 @@ Route119_EventScript_1F460F:: @ 81F460F
addvar VAR_0x40D1, 1
msgbox Route119_Text_1F4E60, 4
closemessage
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, Route119_EventScript_1F46B0
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, Route119_EventScript_1F46BB
removeobject 43
releaseall
diff --git a/data/scripts/maps/Route119_WeatherInstitute_2F.inc b/data/scripts/maps/Route119_WeatherInstitute_2F.inc
index c8f24f33d..0bd6c12f2 100644
--- a/data/scripts/maps/Route119_WeatherInstitute_2F.inc
+++ b/data/scripts/maps/Route119_WeatherInstitute_2F.inc
@@ -84,7 +84,7 @@ Route119_WeatherInstitute_2F_EventScript_26FFC8:: @ 826FFC8
Route119_WeatherInstitute_2F_EventScript_27004D:: @ 827004D
msgbox Route119_WeatherInstitute_2F_Text_270650, 4
- setvar VAR_0x4001, 385
+ setvar VAR_TEMP_1, 385
givemon SPECIES_CASTFORM, 25, ITEM_MYSTIC_WATER, 0x0, 0x0, 0
compare VAR_RESULT, 0
goto_eq Route119_WeatherInstitute_2F_EventScript_270085
diff --git a/data/scripts/maps/Route120.inc b/data/scripts/maps/Route120.inc
index b3475a3ed..461823e47 100644
--- a/data/scripts/maps/Route120.inc
+++ b/data/scripts/maps/Route120.inc
@@ -70,12 +70,12 @@ Route120_MapScript1_1F54CD: @ 81F54CD
end
Route120_EventScript_1F54D8:: @ 81F54D8
- getplayerxy VAR_0x4000, VAR_0x4001
- compare VAR_0x4001, 14
+ getplayerxy VAR_TEMP_0, VAR_TEMP_1
+ compare VAR_TEMP_1, 14
goto_if 3, Route120_EventScript_1F5503
- compare VAR_0x4001, 60
+ compare VAR_TEMP_1, 60
goto_if 3, Route120_EventScript_1F5507
- compare VAR_0x4001, 61
+ compare VAR_TEMP_1, 61
goto_if 4, Route120_EventScript_1F54FF
return
@@ -88,9 +88,9 @@ Route120_EventScript_1F5503:: @ 81F5503
return
Route120_EventScript_1F5507:: @ 81F5507
- compare VAR_0x4000, 7
+ compare VAR_TEMP_0, 7
goto_if 3, Route120_EventScript_1F5523
- compare VAR_0x4000, 19
+ compare VAR_TEMP_0, 19
goto_if 3, Route120_EventScript_1F5503
goto Route120_EventScript_1F5523
end
diff --git a/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc b/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc
index dd5218e1d..0892b216a 100644
--- a/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc
+++ b/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc
@@ -23,13 +23,13 @@ Route124_DivingTreasureHuntersHouse_EventScript_270A4E:: @ 8270A4E
Route124_DivingTreasureHuntersHouse_EventScript_270A5C:: @ 8270A5C
call Route124_DivingTreasureHuntersHouse_EventScript_270A72
- compare VAR_0x4001, 0
+ compare VAR_TEMP_1, 0
goto_eq Route124_DivingTreasureHuntersHouse_EventScript_270F57
goto Route124_DivingTreasureHuntersHouse_EventScript_270AD0
end
Route124_DivingTreasureHuntersHouse_EventScript_270A72:: @ 8270A72
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
checkitem ITEM_RED_SHARD, 1
compare VAR_RESULT, 1
call_if 1, Route124_DivingTreasureHuntersHouse_EventScript_270AB8
@@ -45,19 +45,19 @@ Route124_DivingTreasureHuntersHouse_EventScript_270A72:: @ 8270A72
return
Route124_DivingTreasureHuntersHouse_EventScript_270AB8:: @ 8270AB8
- addvar VAR_0x4001, 1
+ addvar VAR_TEMP_1, 1
return
Route124_DivingTreasureHuntersHouse_EventScript_270ABE:: @ 8270ABE
- addvar VAR_0x4001, 2
+ addvar VAR_TEMP_1, 2
return
Route124_DivingTreasureHuntersHouse_EventScript_270AC4:: @ 8270AC4
- addvar VAR_0x4001, 4
+ addvar VAR_TEMP_1, 4
return
Route124_DivingTreasureHuntersHouse_EventScript_270ACA:: @ 8270ACA
- addvar VAR_0x4001, 8
+ addvar VAR_TEMP_1, 8
return
Route124_DivingTreasureHuntersHouse_EventScript_270AD0:: @ 8270AD0
@@ -68,7 +68,7 @@ Route124_DivingTreasureHuntersHouse_EventScript_270AD0:: @ 8270AD0
Route124_DivingTreasureHuntersHouse_EventScript_270ADE:: @ 8270ADE
message Route124_DivingTreasureHuntersHouse_Text_271117
waitmessage
- switch VAR_0x4001
+ switch VAR_TEMP_1
case 1, Route124_DivingTreasureHuntersHouse_EventScript_270B8F
case 2, Route124_DivingTreasureHuntersHouse_EventScript_270BB5
case 3, Route124_DivingTreasureHuntersHouse_EventScript_270BDB
@@ -263,7 +263,7 @@ Route124_DivingTreasureHuntersHouse_EventScript_270F01:: @ 8270F01
giveitem_std VAR_0x8009
msgbox Route124_DivingTreasureHuntersHouse_Text_271158, 4
call Route124_DivingTreasureHuntersHouse_EventScript_270A72
- compare VAR_0x4001, 0
+ compare VAR_TEMP_1, 0
goto_eq Route124_DivingTreasureHuntersHouse_EventScript_270F61
msgbox Route124_DivingTreasureHuntersHouse_Text_27117B, 5
compare VAR_RESULT, 1
diff --git a/data/scripts/maps/RustboroCity.inc b/data/scripts/maps/RustboroCity.inc
index 8798a586a..f8426a7eb 100644
--- a/data/scripts/maps/RustboroCity.inc
+++ b/data/scripts/maps/RustboroCity.inc
@@ -8,13 +8,13 @@ RustboroCity_MapScript1_1E06C8: @ 81E06C8
call RustboroCity_EventScript_271ED7
compare VAR_0x405A, 6
call_if 1, RustboroCity_EventScript_1E0707
- getplayerxy VAR_0x4000, VAR_0x4001
+ getplayerxy VAR_TEMP_0, VAR_TEMP_1
compare VAR_0x405A, 6
goto_eq RustboroCity_EventScript_1E06EC
end
RustboroCity_EventScript_1E06EC:: @ 81E06EC
- compare VAR_0x4000, 11
+ compare VAR_TEMP_0, 11
goto_eq RustboroCity_EventScript_1E06FF
setobjectxyperm 15, 12, 15
end
@@ -459,42 +459,42 @@ RustboroCity_EventScript_1E0ADD:: @ 81E0ADD
RustboroCity_EventScript_1E0AF2:: @ 81E0AF2
waitse
- setvar VAR_0x4001, 4
+ setvar VAR_TEMP_1, 4
goto RustboroCity_EventScript_1E0C5B
end
RustboroCity_EventScript_1E0AFE:: @ 81E0AFE
lockall
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
goto RustboroCity_EventScript_1E0B2E
end
RustboroCity_EventScript_1E0B0A:: @ 81E0B0A
lockall
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
goto RustboroCity_EventScript_1E0B2E
end
RustboroCity_EventScript_1E0B16:: @ 81E0B16
lockall
- setvar VAR_0x4001, 2
+ setvar VAR_TEMP_1, 2
goto RustboroCity_EventScript_1E0B2E
end
RustboroCity_EventScript_1E0B22:: @ 81E0B22
lockall
- setvar VAR_0x4001, 3
+ setvar VAR_TEMP_1, 3
goto RustboroCity_EventScript_1E0B2E
end
RustboroCity_EventScript_1E0B2E:: @ 81E0B2E
- compare VAR_0x4001, 0
+ compare VAR_TEMP_1, 0
call_if 1, RustboroCity_EventScript_1E0B6F
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, RustboroCity_EventScript_1E0B9B
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, RustboroCity_EventScript_1E0BC7
- compare VAR_0x4001, 3
+ compare VAR_TEMP_1, 3
call_if 1, RustboroCity_EventScript_1E0BF3
setflag FLAG_0x09F
setvar VAR_0x405A, 3
@@ -559,38 +559,38 @@ RustboroCity_Movement_1E0C29: @ 81E0C29
RustboroCity_EventScript_1E0C2B:: @ 81E0C2B
lockall
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
goto RustboroCity_EventScript_1E0C5B
end
RustboroCity_EventScript_1E0C37:: @ 81E0C37
lockall
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
goto RustboroCity_EventScript_1E0C5B
end
RustboroCity_EventScript_1E0C43:: @ 81E0C43
lockall
- setvar VAR_0x4001, 2
+ setvar VAR_TEMP_1, 2
goto RustboroCity_EventScript_1E0C5B
end
RustboroCity_EventScript_1E0C4F:: @ 81E0C4F
lockall
- setvar VAR_0x4001, 3
+ setvar VAR_TEMP_1, 3
goto RustboroCity_EventScript_1E0C5B
end
RustboroCity_EventScript_1E0C5B:: @ 81E0C5B
- compare VAR_0x4001, 0
+ compare VAR_TEMP_1, 0
call_if 1, RustboroCity_EventScript_1E0CDC
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, RustboroCity_EventScript_1E0D08
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, RustboroCity_EventScript_1E0D34
- compare VAR_0x4001, 3
+ compare VAR_TEMP_1, 3
call_if 1, RustboroCity_EventScript_1E0D60
- compare VAR_0x4001, 4
+ compare VAR_TEMP_1, 4
call_if 1, RustboroCity_EventScript_1E0D96
msgbox RustboroCity_Text_1E194D, 4
giveitem_std ITEM_GREAT_BALL
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_2F.inc b/data/scripts/maps/RustboroCity_DevonCorp_2F.inc
index 5543b297a..88f0c2e73 100644
--- a/data/scripts/maps/RustboroCity_DevonCorp_2F.inc
+++ b/data/scripts/maps/RustboroCity_DevonCorp_2F.inc
@@ -158,7 +158,7 @@ RustboroCity_DevonCorp_2F_EventScript_211A2C:: @ 8211A2C
end
RustboroCity_DevonCorp_2F_EventScript_211A3E:: @ 8211A3E
- setvar VAR_0x4001, 388
+ setvar VAR_TEMP_1, 388
givemon SPECIES_LILEEP, 20, ITEM_NONE, 0x0, 0x0, 0
compare VAR_RESULT, 0
goto_eq RustboroCity_DevonCorp_2F_EventScript_211A6E
@@ -207,7 +207,7 @@ RustboroCity_DevonCorp_2F_EventScript_211AD7:: @ 8211AD7
end
RustboroCity_DevonCorp_2F_EventScript_211AE1:: @ 8211AE1
- setvar VAR_0x4001, 390
+ setvar VAR_TEMP_1, 390
givemon SPECIES_ANORITH, 20, ITEM_NONE, 0x0, 0x0, 0
compare VAR_RESULT, 0
goto_eq RustboroCity_DevonCorp_2F_EventScript_211B11
diff --git a/data/scripts/maps/RusturfTunnel.inc b/data/scripts/maps/RusturfTunnel.inc
index e4e362234..52dca4c95 100644
--- a/data/scripts/maps/RusturfTunnel.inc
+++ b/data/scripts/maps/RusturfTunnel.inc
@@ -51,35 +51,35 @@ RusturfTunnel_EventScript_22CE99:: @ 822CE99
RusturfTunnel_EventScript_22CEAE:: @ 822CEAE
lockall
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, RusturfTunnel_EventScript_22CFA7
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, RusturfTunnel_EventScript_22CFBC
- compare VAR_0x4001, 3
+ compare VAR_TEMP_1, 3
call_if 1, RusturfTunnel_EventScript_22CFC7
call RusturfTunnel_EventScript_22CFFF
msgbox RusturfTunnel_Text_22D65C, 4
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, RusturfTunnel_EventScript_22CFC8
- compare VAR_0x4001, 3
+ compare VAR_TEMP_1, 3
call_if 1, RusturfTunnel_EventScript_22CFC8
giveitem_std ITEM_HM04
setflag FLAG_0x06A
msgbox RusturfTunnel_Text_22D6D2, 4
closemessage
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, RusturfTunnel_EventScript_22CF5D
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, RusturfTunnel_EventScript_22CF6F
- compare VAR_0x4001, 3
+ compare VAR_TEMP_1, 3
call_if 1, RusturfTunnel_EventScript_22CF8B
msgbox RusturfTunnel_Text_22D745, 4
closemessage
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
call_if 1, RusturfTunnel_EventScript_22CFD4
- compare VAR_0x4001, 2
+ compare VAR_TEMP_1, 2
call_if 1, RusturfTunnel_EventScript_22CFE6
- compare VAR_0x4001, 3
+ compare VAR_TEMP_1, 3
call_if 1, RusturfTunnel_EventScript_22CFE6
call RusturfTunnel_EventScript_272216
releaseall
@@ -268,15 +268,15 @@ RusturfTunnel_Movement_22D06C: @ 822D06C
step_end
RusturfTunnel_EventScript_22D071:: @ 822D071
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
end
RusturfTunnel_EventScript_22D077:: @ 822D077
- setvar VAR_0x4001, 2
+ setvar VAR_TEMP_1, 2
end
RusturfTunnel_EventScript_22D07D:: @ 822D07D
- setvar VAR_0x4001, 3
+ setvar VAR_TEMP_1, 3
end
RusturfTunnel_EventScript_22D083:: @ 822D083
diff --git a/data/scripts/maps/SlateportCity_BattleTentBattleRoom.inc b/data/scripts/maps/SlateportCity_BattleTentBattleRoom.inc
index e52828a19..4c5aa0371 100644
--- a/data/scripts/maps/SlateportCity_BattleTentBattleRoom.inc
+++ b/data/scripts/maps/SlateportCity_BattleTentBattleRoom.inc
@@ -17,25 +17,25 @@ SlateportCity_BattleTentBattleRoom_EventScript_209976:: @ 8209976
return
SlateportCity_BattleTentBattleRoom_EventScript_20998E:: @ 820998E
- setvar VAR_0x4011, 100
+ setvar VAR_OBJ_GFX_ID_1, 100
return
SlateportCity_BattleTentBattleRoom_EventScript_209994:: @ 8209994
- setvar VAR_0x4011, 105
+ setvar VAR_OBJ_GFX_ID_1, 105
return
SlateportCity_BattleTentBattleRoom_MapScript2_20999A: @ 820999A
- map_script_2 VAR_0x4001, 0, SlateportCity_BattleTentBattleRoom_EventScript_2099A4
+ map_script_2 VAR_TEMP_1, 0, SlateportCity_BattleTentBattleRoom_EventScript_2099A4
.2byte 0
SlateportCity_BattleTentBattleRoom_EventScript_2099A4:: @ 82099A4
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
hideobjectat 255, FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM
hideobjectat 2, SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM
end
SlateportCity_BattleTentBattleRoom_MapScript2_2099B4: @ 82099B4
- map_script_2 VAR_0x4000, 0, SlateportCity_BattleTentBattleRoom_EventScript_2099BE
+ map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentBattleRoom_EventScript_2099BE
.2byte 0
SlateportCity_BattleTentBattleRoom_EventScript_2099BE:: @ 82099BE
diff --git a/data/scripts/maps/SlateportCity_BattleTentCorridor.inc b/data/scripts/maps/SlateportCity_BattleTentCorridor.inc
index b293dc140..47ca641ce 100644
--- a/data/scripts/maps/SlateportCity_BattleTentCorridor.inc
+++ b/data/scripts/maps/SlateportCity_BattleTentCorridor.inc
@@ -4,11 +4,11 @@ SlateportCity_BattleTentCorridor_MapScripts:: @ 8208E26
.byte 0
SlateportCity_BattleTentCorridor_MapScript2_208E31: @ 8208E31
- map_script_2 VAR_0x4001, 0, SlateportCity_BattleTentCorridor_EventScript_208E3B
+ map_script_2 VAR_TEMP_1, 0, SlateportCity_BattleTentCorridor_EventScript_208E3B
.2byte 0
SlateportCity_BattleTentCorridor_EventScript_208E3B:: @ 8208E3B
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
compare VAR_0x8006, 1
goto_if 5, SlateportCity_BattleTentCorridor_EventScript_208E56
setobjectxy 1, 2, 2
@@ -19,13 +19,13 @@ SlateportCity_BattleTentCorridor_EventScript_208E56:: @ 8208E56
end
SlateportCity_BattleTentCorridor_MapScript2_208E5B: @ 8208E5B
- map_script_2 VAR_0x4000, 0, SlateportCity_BattleTentCorridor_EventScript_208E65
+ map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentCorridor_EventScript_208E65
.2byte 0
SlateportCity_BattleTentCorridor_EventScript_208E65:: @ 8208E65
compare VAR_0x8006, 1
goto_eq SlateportCity_BattleTentCorridor_EventScript_208EEE
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
applymovement 1, SlateportCity_BattleTentCorridor_Movement_209062
applymovement 255, SlateportCity_BattleTentCorridor_Movement_209059
waitmovement 0
diff --git a/data/scripts/maps/SlateportCity_BattleTentLobby.inc b/data/scripts/maps/SlateportCity_BattleTentLobby.inc
index e5f510179..6353856e3 100644
--- a/data/scripts/maps/SlateportCity_BattleTentLobby.inc
+++ b/data/scripts/maps/SlateportCity_BattleTentLobby.inc
@@ -4,20 +4,20 @@ SlateportCity_BattleTentLobby_MapScripts:: @ 8208730
.byte 0
SlateportCity_BattleTentLobby_MapScript2_20873B: @ 820873B
- map_script_2 VAR_0x4001, 0, SlateportCity_BattleTentLobby_EventScript_208745
+ map_script_2 VAR_TEMP_1, 0, SlateportCity_BattleTentLobby_EventScript_208745
.2byte 0
SlateportCity_BattleTentLobby_EventScript_208745:: @ 8208745
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
SlateportCity_BattleTentLobby_MapScript2_20874F: @ 820874F
- map_script_2 VAR_0x4000, 0, SlateportCity_BattleTentLobby_EventScript_208779
- map_script_2 VAR_0x4000, 1, SlateportCity_BattleTentLobby_EventScript_208782
- map_script_2 VAR_0x4000, 2, SlateportCity_BattleTentLobby_EventScript_208871
- map_script_2 VAR_0x4000, 3, SlateportCity_BattleTentLobby_EventScript_2087B7
- map_script_2 VAR_0x4000, 4, SlateportCity_BattleTentLobby_EventScript_208837
+ map_script_2 VAR_TEMP_0, 0, SlateportCity_BattleTentLobby_EventScript_208779
+ map_script_2 VAR_TEMP_0, 1, SlateportCity_BattleTentLobby_EventScript_208782
+ map_script_2 VAR_TEMP_0, 2, SlateportCity_BattleTentLobby_EventScript_208871
+ map_script_2 VAR_TEMP_0, 3, SlateportCity_BattleTentLobby_EventScript_2087B7
+ map_script_2 VAR_TEMP_0, 4, SlateportCity_BattleTentLobby_EventScript_208837
.2byte 0
SlateportCity_BattleTentLobby_EventScript_208779:: @ 8208779
@@ -33,7 +33,7 @@ SlateportCity_BattleTentLobby_EventScript_208782:: @ 8208782
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
@@ -94,7 +94,7 @@ SlateportCity_BattleTentLobby_EventScript_208837:: @ 8208837
SlateportCity_BattleTentLobby_EventScript_208861:: @ 8208861
msgbox SlateportCity_BattleTentLobby_Text_2C5AA5, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -111,7 +111,7 @@ SlateportCity_BattleTentLobby_EventScript_208871:: @ 8208871
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
setvar VAR_0x8006, 2
goto SlateportCity_BattleTentLobby_EventScript_2089AC
@@ -149,7 +149,7 @@ SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906
case 127, SlateportCity_BattleTentLobby_EventScript_208A2B
SlateportCity_BattleTentLobby_EventScript_208950:: @ 8208950
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
@@ -166,7 +166,7 @@ SlateportCity_BattleTentLobby_EventScript_208950:: @ 8208950
closemessage
delay 2
call SlateportCity_BattleTentLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_eq SlateportCity_BattleTentLobby_EventScript_208A14
setvar VAR_0x8006, 0
@@ -176,7 +176,7 @@ SlateportCity_BattleTentLobby_EventScript_2089AC:: @ 82089AC
closemessage
call SlateportCity_BattleTentLobby_EventScript_2089C9
warp SLATEPORT_CITY_BATTLE_TENT_CORRIDOR, 255, 2, 7
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
waitstate
end
diff --git a/data/scripts/maps/SlateportCity_Harbor.inc b/data/scripts/maps/SlateportCity_Harbor.inc
index 5fb080363..a66e0e6d9 100644
--- a/data/scripts/maps/SlateportCity_Harbor.inc
+++ b/data/scripts/maps/SlateportCity_Harbor.inc
@@ -4,7 +4,7 @@ SlateportCity_Harbor_MapScripts:: @ 820C97D
SlateportCity_Harbor_MapScript1_20C983: @ 820C983
setescapewarp SLATEPORT_CITY, 255, 28, 13
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
compare VAR_0x40A0, 1
call_if 1, SlateportCity_Harbor_EventScript_20C9A9
checkflag FLAG_SYS_GAME_CLEAR
@@ -331,7 +331,7 @@ SlateportCity_Harbor_EventScript_20CCF6:: @ 820CCF6
end
SlateportCity_Harbor_EventScript_20CD00:: @ 820CD00
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
goto_eq SlateportCity_Harbor_EventScript_20CE11
checkitem ITEM_SCANNER, 1
compare VAR_RESULT, 1
@@ -400,7 +400,7 @@ SlateportCity_Harbor_EventScript_20CE05:: @ 820CE05
end
SlateportCity_Harbor_EventScript_20CE11:: @ 820CE11
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
msgbox SlateportCity_Harbor_Text_20D970, 4
release
end
diff --git a/data/scripts/maps/SlateportCity_PokemonFanClub.inc b/data/scripts/maps/SlateportCity_PokemonFanClub.inc
index 192870003..307f42af5 100644
--- a/data/scripts/maps/SlateportCity_PokemonFanClub.inc
+++ b/data/scripts/maps/SlateportCity_PokemonFanClub.inc
@@ -22,7 +22,7 @@ SlateportCity_PokemonFanClub_EventScript_209ED2:: @ 8209ED2
end
SlateportCity_PokemonFanClub_EventScript_209EE5:: @ 8209EE5
- setvar VAR_0x4002, 0
+ setvar VAR_TEMP_2, 0
checkflag FLAG_0x0CC
call_if 1, SlateportCity_PokemonFanClub_EventScript_209FD0
checkflag FLAG_0x0CB
@@ -33,7 +33,7 @@ SlateportCity_PokemonFanClub_EventScript_209EE5:: @ 8209EE5
call_if 1, SlateportCity_PokemonFanClub_EventScript_209FD0
checkflag FLAG_0x0C8
call_if 1, SlateportCity_PokemonFanClub_EventScript_209FD0
- compare VAR_0x4002, 5
+ compare VAR_TEMP_2, 5
call_if 1, SlateportCity_PokemonFanClub_EventScript_209FCA
compare VAR_0x40B7, 2
goto_eq SlateportCity_PokemonFanClub_EventScript_209F3B
@@ -48,7 +48,7 @@ SlateportCity_PokemonFanClub_EventScript_209F3B:: @ 8209F3B
SlateportCity_PokemonFanClub_EventScript_209F45:: @ 8209F45
msgbox SlateportCity_PokemonFanClub_Text_20A65F, 4
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
checkflag FLAG_0x0CC
call_if 0, SlateportCity_PokemonFanClub_EventScript_20A13B
checkflag FLAG_0x0CB
@@ -60,7 +60,7 @@ SlateportCity_PokemonFanClub_EventScript_209F45:: @ 8209F45
checkflag FLAG_0x0C8
call_if 0, SlateportCity_PokemonFanClub_EventScript_20A0DF
bufferleadmonspeciesname 0
- switch VAR_0x4001
+ switch VAR_TEMP_1
case 0, SlateportCity_PokemonFanClub_EventScript_209FD6
case 1, SlateportCity_PokemonFanClub_EventScript_209FE0
case 2, SlateportCity_PokemonFanClub_EventScript_20A011
@@ -75,7 +75,7 @@ SlateportCity_PokemonFanClub_EventScript_209FCA:: @ 8209FCA
return
SlateportCity_PokemonFanClub_EventScript_209FD0:: @ 8209FD0
- addvar VAR_0x4002, 1
+ addvar VAR_TEMP_2, 1
return
SlateportCity_PokemonFanClub_EventScript_209FD6:: @ 8209FD6
@@ -150,7 +150,7 @@ SlateportCity_PokemonFanClub_EventScript_20A0DF:: @ 820A0DF
return
SlateportCity_PokemonFanClub_EventScript_20A0F0:: @ 820A0F0
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
return
SlateportCity_PokemonFanClub_EventScript_20A0F6:: @ 820A0F6
@@ -160,7 +160,7 @@ SlateportCity_PokemonFanClub_EventScript_20A0F6:: @ 820A0F6
return
SlateportCity_PokemonFanClub_EventScript_20A107:: @ 820A107
- setvar VAR_0x4001, 2
+ setvar VAR_TEMP_1, 2
return
SlateportCity_PokemonFanClub_EventScript_20A10D:: @ 820A10D
@@ -170,7 +170,7 @@ SlateportCity_PokemonFanClub_EventScript_20A10D:: @ 820A10D
return
SlateportCity_PokemonFanClub_EventScript_20A11E:: @ 820A11E
- setvar VAR_0x4001, 3
+ setvar VAR_TEMP_1, 3
return
SlateportCity_PokemonFanClub_EventScript_20A124:: @ 820A124
@@ -180,7 +180,7 @@ SlateportCity_PokemonFanClub_EventScript_20A124:: @ 820A124
return
SlateportCity_PokemonFanClub_EventScript_20A135:: @ 820A135
- setvar VAR_0x4001, 4
+ setvar VAR_TEMP_1, 4
return
SlateportCity_PokemonFanClub_EventScript_20A13B:: @ 820A13B
@@ -190,7 +190,7 @@ SlateportCity_PokemonFanClub_EventScript_20A13B:: @ 820A13B
return
SlateportCity_PokemonFanClub_EventScript_20A14C:: @ 820A14C
- setvar VAR_0x4001, 5
+ setvar VAR_TEMP_1, 5
return
SlateportCity_PokemonFanClub_EventScript_20A152:: @ 820A152
diff --git a/data/scripts/maps/SootopolisCity_Gym_1F.inc b/data/scripts/maps/SootopolisCity_Gym_1F.inc
index 362ae269c..6a53dc57c 100644
--- a/data/scripts/maps/SootopolisCity_Gym_1F.inc
+++ b/data/scripts/maps/SootopolisCity_Gym_1F.inc
@@ -15,7 +15,7 @@ SootopolisCity_Gym_1F_MapScript1_224E67: @ 8224E67
SootopolisCity_Gym_1F_MapScript1_224E6A: @ 8224E6A
call SootopolisCity_Gym_1F_EventScript_224E73
- special sub_809E1C8
+ special SetSootopolisGymCrackedIceMetatiles
end
SootopolisCity_Gym_1F_EventScript_224E73:: @ 8224E73
diff --git a/data/scripts/maps/SootopolisCity_MysteryEventsHouse_1F.inc b/data/scripts/maps/SootopolisCity_MysteryEventsHouse_1F.inc
index eaca36e59..54ade5181 100644
--- a/data/scripts/maps/SootopolisCity_MysteryEventsHouse_1F.inc
+++ b/data/scripts/maps/SootopolisCity_MysteryEventsHouse_1F.inc
@@ -13,7 +13,7 @@ SootopolisCity_MysteryEventsHouse_1F_MapScript1_22795E: @ 822795E
end
SootopolisCity_MysteryEventsHouse_1F_EventScript_22797D:: @ 822797D
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
setobjectxyperm 1, 3, 2
setobjectmovementtype 1, 8
setmaplayoutindex 441
@@ -78,7 +78,7 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_227A24:: @ 8227A24
special sub_81A1780
compare VAR_RESULT, 1
goto_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_227A4E
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
goto_eq SootopolisCity_MysteryEventsHouse_1F_EventScript_227A58
msgbox SootopolisCity_MysteryEventsHouse_1F_Text_227B46, 4
release
diff --git a/data/scripts/maps/SootopolisCity_MysteryEventsHouse_B1F.inc b/data/scripts/maps/SootopolisCity_MysteryEventsHouse_B1F.inc
index 0dec00967..5a4a09735 100644
--- a/data/scripts/maps/SootopolisCity_MysteryEventsHouse_B1F.inc
+++ b/data/scripts/maps/SootopolisCity_MysteryEventsHouse_B1F.inc
@@ -8,7 +8,7 @@ SootopolisCity_MysteryEventsHouse_B1F_MapScript1_227E5A: @ 8227E5A
end
SootopolisCity_MysteryEventsHouse_B1F_MapScript2_227E5E: @ 8227E5E
- map_script_2 VAR_0x4001, 0, SootopolisCity_MysteryEventsHouse_B1F_EventScript_227E68
+ map_script_2 VAR_TEMP_1, 0, SootopolisCity_MysteryEventsHouse_B1F_EventScript_227E68
.2byte 0
SootopolisCity_MysteryEventsHouse_B1F_EventScript_227E68:: @ 8227E68
@@ -33,7 +33,7 @@ SootopolisCity_MysteryEventsHouse_B1F_EventScript_227E68:: @ 8227E68
applymovement 255, SootopolisCity_MysteryEventsHouse_B1F_Movement_227EF9
waitmovement 0
special LoadPlayerParty
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
warp SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F, 255, 3, 1
waitstate
releaseall
diff --git a/data/scripts/maps/SouthernIsland_Interior.inc b/data/scripts/maps/SouthernIsland_Interior.inc
index cbaaa905a..b7d4e101c 100644
--- a/data/scripts/maps/SouthernIsland_Interior.inc
+++ b/data/scripts/maps/SouthernIsland_Interior.inc
@@ -24,13 +24,13 @@ SouthernIsland_Interior_MapScript1_242A6E: @ 8242A6E
end
SouthernIsland_Interior_EventScript_242A8A:: @ 8242A8A
- setvar VAR_0x4011, 188
- setvar VAR_0x4004, 408
+ setvar VAR_OBJ_GFX_ID_1, 188
+ setvar VAR_TEMP_4, 408
return
SouthernIsland_Interior_EventScript_242A95:: @ 8242A95
- setvar VAR_0x4011, 187
- setvar VAR_0x4004, 407
+ setvar VAR_OBJ_GFX_ID_1, 187
+ setvar VAR_TEMP_4, 407
return
SouthernIsland_Interior_EventScript_242AA0:: @ 8242AA0
@@ -42,11 +42,11 @@ SouthernIsland_Interior_EventScript_242AA0:: @ 8242AA0
end
SouthernIsland_Interior_EventScript_242AB8:: @ 8242AB8
- setvar VAR_0x4010, 100
+ setvar VAR_OBJ_GFX_ID_0, 100
return
SouthernIsland_Interior_EventScript_242ABE:: @ 8242ABE
- setvar VAR_0x4010, 105
+ setvar VAR_OBJ_GFX_ID_0, 105
return
SouthernIsland_Interior_EventScript_242AC4:: @ 8242AC4
@@ -71,7 +71,7 @@ SouthernIsland_Interior_EventScript_242AD0:: @ 8242AD0
waitmovement 0
delay 50
waitse
- playmoncry VAR_0x4004, 0
+ playmoncry VAR_TEMP_4, 0
delay 30
waitmoncry
addobject 2
@@ -103,12 +103,12 @@ SouthernIsland_Interior_EventScript_242AD0:: @ 8242AD0
SouthernIsland_Interior_EventScript_242B81:: @ 8242B81
setflag FLAG_0x1C8
- copyvar VAR_0x8004, VAR_0x4004
+ copyvar VAR_0x8004, VAR_TEMP_4
goto SouthernIsland_Interior_EventScript_273776
end
SouthernIsland_Interior_EventScript_242B8F:: @ 8242B8F
- copyvar VAR_0x8004, VAR_0x4004
+ copyvar VAR_0x8004, VAR_TEMP_4
goto SouthernIsland_Interior_EventScript_273776
end
diff --git a/data/scripts/maps/TerraCave_End.inc b/data/scripts/maps/TerraCave_End.inc
index 63fc07f5b..be532733d 100644
--- a/data/scripts/maps/TerraCave_End.inc
+++ b/data/scripts/maps/TerraCave_End.inc
@@ -22,7 +22,7 @@ TerraCave_End_MapScript1_23B0D9: @ 823B0D9
TerraCave_End_EventScript_23B0E3:: @ 823B0E3
clearflag FLAG_0x30F
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
return
TerraCave_End_EventScript_23B0EC:: @ 823B0EC
@@ -41,7 +41,7 @@ TerraCave_End_EventScript_23B0EC:: @ 823B0EC
special BattleSetup_StartLegendaryBattle
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
- setvar VAR_0x4001, 0
+ setvar VAR_TEMP_1, 0
specialvar VAR_RESULT, sub_8138B80
compare VAR_RESULT, 1
goto_eq TerraCave_End_EventScript_23B155
diff --git a/data/scripts/maps/TrainerHill_Elevator.inc b/data/scripts/maps/TrainerHill_Elevator.inc
index c3644e0de..7886f91b8 100644
--- a/data/scripts/maps/TrainerHill_Elevator.inc
+++ b/data/scripts/maps/TrainerHill_Elevator.inc
@@ -3,7 +3,7 @@ TrainerHill_Elevator_MapScripts:: @ 826934F
.byte 0
TrainerHill_Elevator_MapScript2_269355: @ 8269355
- map_script_2 VAR_0x4004, 0, TrainerHill_Elevator_EventScript_269375
+ map_script_2 VAR_TEMP_4, 0, TrainerHill_Elevator_EventScript_269375
.2byte 0
TrainerHill_Elevator_EventScript_26935F:: @ 826935F
diff --git a/data/scripts/maps/TrainerHill_Entrance.inc b/data/scripts/maps/TrainerHill_Entrance.inc
index eb12efb4b..6dc934f3c 100644
--- a/data/scripts/maps/TrainerHill_Entrance.inc
+++ b/data/scripts/maps/TrainerHill_Entrance.inc
@@ -8,7 +8,7 @@ TrainerHill_Entrance_MapScripts:: @ 82680AC
TrainerHill_Entrance_MapScript1_2680C6: @ 82680C6
setflag FLAG_LANDMARK_TRAINER_HILL
- getplayerxy VAR_0x400D, VAR_RESULT
+ getplayerxy VAR_TEMP_D, VAR_RESULT
end
TrainerHill_Entrance_MapScript1_2680CF: @ 82680CF
@@ -17,7 +17,7 @@ TrainerHill_Entrance_MapScript1_2680CF: @ 82680CF
TrainerHill_Entrance_MapScript1_2680D0: @ 82680D0
setvar VAR_0x8004, 4
special sp194_trainer_tower
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 9
special sp194_trainer_tower
compare VAR_RESULT, 0
@@ -45,7 +45,7 @@ TrainerHill_Entrance_MapScript1_26811B: @ 826811B
end
TrainerHill_Entrance_MapScript1_268128: @ 8268128
- compare VAR_0x400D, 17
+ compare VAR_TEMP_D, 17
call_if 1, TrainerHill_Entrance_EventScript_268134
end
@@ -54,10 +54,10 @@ TrainerHill_Entrance_EventScript_268134:: @ 8268134
return
TrainerHill_Entrance_MapScript2_26813E: @ 826813E
- map_script_2 VAR_0x4000, 0, TrainerHill_Entrance_EventScript_268182
- map_script_2 VAR_0x400D, 17, TrainerHill_Entrance_EventScript_268160
- map_script_2 VAR_0x4005, 1, TrainerHill_Entrance_EventScript_268229
- map_script_2 VAR_0x4001, 1, TrainerHill_Entrance_EventScript_2C83DF
+ map_script_2 VAR_TEMP_0, 0, TrainerHill_Entrance_EventScript_268182
+ map_script_2 VAR_TEMP_D, 17, TrainerHill_Entrance_EventScript_268160
+ map_script_2 VAR_TEMP_5, 1, TrainerHill_Entrance_EventScript_268229
+ map_script_2 VAR_TEMP_1, 1, TrainerHill_Entrance_EventScript_2C83DF
.2byte 0
TrainerHill_Entrance_EventScript_268160:: @ 8268160
@@ -68,12 +68,12 @@ TrainerHill_Entrance_EventScript_268160:: @ 8268160
special DrawWholeMapView
playse SE_TK_KASYA
waitse
- setvar VAR_0x400D, 0
+ setvar VAR_TEMP_D, 0
releaseall
end
TrainerHill_Entrance_EventScript_268182:: @ 8268182
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
setvar VAR_0x8004, 6
special sp194_trainer_tower
switch VAR_RESULT
@@ -173,7 +173,7 @@ TrainerHill_Entrance_EventScript_2682C8:: @ 82682C8
copyvar VAR_0x8005, VAR_RESULT
special sp194_trainer_tower
setvar VAR_0x40D6, 1
- setvar VAR_0x4005, 0
+ setvar VAR_TEMP_5, 0
special HealPlayerParty
msgbox TrainerHill_Entrance_Text_26862A, 4
setvar VAR_0x8004, 0
@@ -182,7 +182,7 @@ TrainerHill_Entrance_EventScript_2682C8:: @ 82682C8
end
TrainerHill_Entrance_EventScript_268314:: @ 8268314
- setvar VAR_0x4005, 0
+ setvar VAR_TEMP_5, 0
msgbox TrainerHill_Entrance_Text_26866F, 4
closemessage
applymovement 255, TrainerHill_Entrance_Movement_268381
@@ -194,7 +194,7 @@ TrainerHill_Entrance_EventScript_26832E:: @ 826832E
msgbox TrainerHill_Entrance_Text_26851C, 4
setvar VAR_0x8004, 14
special sp194_trainer_tower
- setvar VAR_0x4005, 1
+ setvar VAR_TEMP_5, 1
call TrainerHill_Entrance_EventScript_27134F
compare VAR_RESULT, 0
goto_eq TrainerHill_Entrance_EventScript_26835C
diff --git a/data/scripts/maps/UnknownMap_25_34.inc b/data/scripts/maps/UnknownMap_25_34.inc
index 65f62498e..e92087ebd 100644
--- a/data/scripts/maps/UnknownMap_25_34.inc
+++ b/data/scripts/maps/UnknownMap_25_34.inc
@@ -12,7 +12,7 @@ LinkContestRoom1_MapScript1_23B79B: @ 823B79B
LinkContestRoom1_MapScript1_23B79F: @ 823B79F
call LinkContestRoom1_EventScript_23B7AF
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
call LinkContestRoom1_EventScript_23B842
end
@@ -52,7 +52,7 @@ LinkContestRoom1_EventScript_23B7FF:: @ 823B7FF
return
LinkContestRoom1_MapScript1_23B803: @ 823B803
- compare VAR_0x4009, 1
+ compare VAR_TEMP_9, 1
call_if 1, LinkContestRoom1_EventScript_23B80F
end
@@ -82,12 +82,12 @@ LinkContestRoom1_EventScript_23B834:: @ 823B834
LinkContestRoom1_EventScript_23B842:: @ 823B842
call LinkContestRoom1_EventScript_23B8F8
call LinkContestRoom1_EventScript_23B858
- compare VAR_0x4000, 8
+ compare VAR_TEMP_0, 8
goto_if 0, LinkContestRoom1_EventScript_23B842
return
LinkContestRoom1_EventScript_23B858:: @ 823B858
- switch VAR_0x4000
+ switch VAR_TEMP_0
case 1, LinkContestRoom1_EventScript_23B8AB
case 2, LinkContestRoom1_EventScript_23B8B6
case 3, LinkContestRoom1_EventScript_23B8C1
@@ -98,38 +98,38 @@ LinkContestRoom1_EventScript_23B858:: @ 823B858
end
LinkContestRoom1_EventScript_23B8AB:: @ 823B8AB
- copyvar VAR_0x4014, VAR_0x4001
- addvar VAR_0x4000, 1
+ copyvar VAR_OBJ_GFX_ID_4, VAR_TEMP_1
+ addvar VAR_TEMP_0, 1
return
LinkContestRoom1_EventScript_23B8B6:: @ 823B8B6
- copyvar VAR_0x4015, VAR_0x4001
- addvar VAR_0x4000, 1
+ copyvar VAR_OBJ_GFX_ID_5, VAR_TEMP_1
+ addvar VAR_TEMP_0, 1
return
LinkContestRoom1_EventScript_23B8C1:: @ 823B8C1
- copyvar VAR_0x4016, VAR_0x4001
- addvar VAR_0x4000, 1
+ copyvar VAR_OBJ_GFX_ID_6, VAR_TEMP_1
+ addvar VAR_TEMP_0, 1
return
LinkContestRoom1_EventScript_23B8CC:: @ 823B8CC
- copyvar VAR_0x4017, VAR_0x4001
- addvar VAR_0x4000, 1
+ copyvar VAR_OBJ_GFX_ID_7, VAR_TEMP_1
+ addvar VAR_TEMP_0, 1
return
LinkContestRoom1_EventScript_23B8D7:: @ 823B8D7
- copyvar VAR_0x4018, VAR_0x4001
- addvar VAR_0x4000, 1
+ copyvar VAR_OBJ_GFX_ID_8, VAR_TEMP_1
+ addvar VAR_TEMP_0, 1
return
LinkContestRoom1_EventScript_23B8E2:: @ 823B8E2
- copyvar VAR_0x4019, VAR_0x4001
- addvar VAR_0x4000, 1
+ copyvar VAR_OBJ_GFX_ID_9, VAR_TEMP_1
+ addvar VAR_TEMP_0, 1
return
LinkContestRoom1_EventScript_23B8ED:: @ 823B8ED
- copyvar VAR_0x401A, VAR_0x4001
- addvar VAR_0x4000, 1
+ copyvar VAR_OBJ_GFX_ID_A, VAR_TEMP_1
+ addvar VAR_TEMP_0, 1
return
LinkContestRoom1_EventScript_23B8F8:: @ 823B8F8
@@ -172,131 +172,131 @@ LinkContestRoom1_EventScript_23B8F8:: @ 823B8F8
end
LinkContestRoom1_EventScript_23BA6B:: @ 823BA6B
- setvar VAR_0x4001, 5
+ setvar VAR_TEMP_1, 5
return
LinkContestRoom1_EventScript_23BA71:: @ 823BA71
- setvar VAR_0x4001, 6
+ setvar VAR_TEMP_1, 6
return
LinkContestRoom1_EventScript_23BA77:: @ 823BA77
- setvar VAR_0x4001, 7
+ setvar VAR_TEMP_1, 7
return
LinkContestRoom1_EventScript_23BA7D:: @ 823BA7D
- setvar VAR_0x4001, 8
+ setvar VAR_TEMP_1, 8
return
LinkContestRoom1_EventScript_23BA83:: @ 823BA83
- setvar VAR_0x4001, 10
+ setvar VAR_TEMP_1, 10
return
LinkContestRoom1_EventScript_23BA89:: @ 823BA89
- setvar VAR_0x4001, 11
+ setvar VAR_TEMP_1, 11
return
LinkContestRoom1_EventScript_23BA8F:: @ 823BA8F
- setvar VAR_0x4001, 12
+ setvar VAR_TEMP_1, 12
return
LinkContestRoom1_EventScript_23BA95:: @ 823BA95
- setvar VAR_0x4001, 13
+ setvar VAR_TEMP_1, 13
return
LinkContestRoom1_EventScript_23BA9B:: @ 823BA9B
- setvar VAR_0x4001, 14
+ setvar VAR_TEMP_1, 14
return
LinkContestRoom1_EventScript_23BAA1:: @ 823BAA1
- setvar VAR_0x4001, 15
+ setvar VAR_TEMP_1, 15
return
LinkContestRoom1_EventScript_23BAA7:: @ 823BAA7
- setvar VAR_0x4001, 17
+ setvar VAR_TEMP_1, 17
return
LinkContestRoom1_EventScript_23BAAD:: @ 823BAAD
- setvar VAR_0x4001, 18
+ setvar VAR_TEMP_1, 18
return
LinkContestRoom1_EventScript_23BAB3:: @ 823BAB3
- setvar VAR_0x4001, 19
+ setvar VAR_TEMP_1, 19
return
LinkContestRoom1_EventScript_23BAB9:: @ 823BAB9
- setvar VAR_0x4001, 20
+ setvar VAR_TEMP_1, 20
return
LinkContestRoom1_EventScript_23BABF:: @ 823BABF
- setvar VAR_0x4001, 21
+ setvar VAR_TEMP_1, 21
return
LinkContestRoom1_EventScript_23BAC5:: @ 823BAC5
- setvar VAR_0x4001, 22
+ setvar VAR_TEMP_1, 22
return
LinkContestRoom1_EventScript_23BACB:: @ 823BACB
- setvar VAR_0x4001, 25
+ setvar VAR_TEMP_1, 25
return
LinkContestRoom1_EventScript_23BAD1:: @ 823BAD1
- setvar VAR_0x4001, 26
+ setvar VAR_TEMP_1, 26
return
LinkContestRoom1_EventScript_23BAD7:: @ 823BAD7
- setvar VAR_0x4001, 27
+ setvar VAR_TEMP_1, 27
return
LinkContestRoom1_EventScript_23BADD:: @ 823BADD
- setvar VAR_0x4001, 47
+ setvar VAR_TEMP_1, 47
return
LinkContestRoom1_EventScript_23BAE3:: @ 823BAE3
- setvar VAR_0x4001, 30
+ setvar VAR_TEMP_1, 30
return
LinkContestRoom1_EventScript_23BAE9:: @ 823BAE9
- setvar VAR_0x4001, 31
+ setvar VAR_TEMP_1, 31
return
LinkContestRoom1_EventScript_23BAEF:: @ 823BAEF
- setvar VAR_0x4001, 32
+ setvar VAR_TEMP_1, 32
return
LinkContestRoom1_EventScript_23BAF5:: @ 823BAF5
- setvar VAR_0x4001, 33
+ setvar VAR_TEMP_1, 33
return
LinkContestRoom1_EventScript_23BAFB:: @ 823BAFB
- setvar VAR_0x4001, 34
+ setvar VAR_TEMP_1, 34
return
LinkContestRoom1_EventScript_23BB01:: @ 823BB01
- setvar VAR_0x4001, 35
+ setvar VAR_TEMP_1, 35
return
LinkContestRoom1_EventScript_23BB07:: @ 823BB07
- setvar VAR_0x4001, 36
+ setvar VAR_TEMP_1, 36
return
LinkContestRoom1_EventScript_23BB0D:: @ 823BB0D
- setvar VAR_0x4001, 37
+ setvar VAR_TEMP_1, 37
return
LinkContestRoom1_EventScript_23BB13:: @ 823BB13
- setvar VAR_0x4001, 38
+ setvar VAR_TEMP_1, 38
return
LinkContestRoom1_EventScript_23BB19:: @ 823BB19
- setvar VAR_0x4001, 44
+ setvar VAR_TEMP_1, 44
return
LinkContestRoom1_EventScript_23BB1F:: @ 823BB1F
- setvar VAR_0x4001, 45
+ setvar VAR_TEMP_1, 45
return
LinkContestRoom1_EventScript_23BB25:: @ 823BB25
- setvar VAR_0x4001, 46
+ setvar VAR_TEMP_1, 46
return
LinkContestRoom1_EventScript_23BB2B:: @ 823BB2B
@@ -449,10 +449,10 @@ LilycoveCity_ContestLobby_EventScript_23BEB6:: @ 823BEB6
return
LilycoveCity_ContestLobby_EventScript_23BECE:: @ 823BECE
- setvar VAR_0x4013, 100
+ setvar VAR_OBJ_GFX_ID_3, 100
return
LilycoveCity_ContestLobby_EventScript_23BED4:: @ 823BED4
- setvar VAR_0x4013, 105
+ setvar VAR_OBJ_GFX_ID_3, 105
return
diff --git a/data/scripts/maps/VerdanturfTown_BattleTentBattleRoom.inc b/data/scripts/maps/VerdanturfTown_BattleTentBattleRoom.inc
index ad2749ba8..24c319337 100644
--- a/data/scripts/maps/VerdanturfTown_BattleTentBattleRoom.inc
+++ b/data/scripts/maps/VerdanturfTown_BattleTentBattleRoom.inc
@@ -17,17 +17,17 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_202310:: @ 8202310
return
VerdanturfTown_BattleTentBattleRoom_EventScript_202328:: @ 8202328
- setvar VAR_0x4011, 100
- setvar VAR_0x4010, 100
+ setvar VAR_OBJ_GFX_ID_1, 100
+ setvar VAR_OBJ_GFX_ID_0, 100
return
VerdanturfTown_BattleTentBattleRoom_EventScript_202333:: @ 8202333
- setvar VAR_0x4011, 105
- setvar VAR_0x4010, 105
+ setvar VAR_OBJ_GFX_ID_1, 105
+ setvar VAR_OBJ_GFX_ID_0, 105
return
VerdanturfTown_BattleTentBattleRoom_MapScript2_20233E: @ 820233E
- map_script_2 VAR_0x4000, 0, VerdanturfTown_BattleTentBattleRoom_EventScript_202348
+ map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentBattleRoom_EventScript_202348
.2byte 0
VerdanturfTown_BattleTentBattleRoom_EventScript_202348:: @ 8202348
@@ -150,13 +150,13 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20251F:: @ 820251F
end
VerdanturfTown_BattleTentBattleRoom_MapScript2_202541: @ 8202541
- map_script_2 VAR_0x4001, 0, VerdanturfTown_BattleTentBattleRoom_EventScript_20254B
+ map_script_2 VAR_TEMP_1, 0, VerdanturfTown_BattleTentBattleRoom_EventScript_20254B
.2byte 0
VerdanturfTown_BattleTentBattleRoom_EventScript_20254B:: @ 820254B
hideobjectat 1, VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM
call VerdanturfTown_BattleTentBattleRoom_EventScript_202310
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
applymovement 255, VerdanturfTown_BattleTentBattleRoom_Movement_202573
removeobject 2
end
diff --git a/data/scripts/maps/VerdanturfTown_BattleTentCorridor.inc b/data/scripts/maps/VerdanturfTown_BattleTentCorridor.inc
index a44e98ed8..0d0470fc1 100644
--- a/data/scripts/maps/VerdanturfTown_BattleTentCorridor.inc
+++ b/data/scripts/maps/VerdanturfTown_BattleTentCorridor.inc
@@ -3,12 +3,12 @@ VerdanturfTown_BattleTentCorridor_MapScripts:: @ 820208A
.byte 0
VerdanturfTown_BattleTentCorridor_MapScript2_202090: @ 8202090
- map_script_2 VAR_0x4000, 0, VerdanturfTown_BattleTentCorridor_EventScript_20209A
+ map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentCorridor_EventScript_20209A
.2byte 0
VerdanturfTown_BattleTentCorridor_EventScript_20209A:: @ 820209A
lockall
- setvar VAR_0x4000, 1
+ setvar VAR_TEMP_0, 1
applymovement 1, VerdanturfTown_BattleTentCorridor_Movement_2020DE
applymovement 255, VerdanturfTown_BattleTentCorridor_Movement_2020DE
waitmovement 0
diff --git a/data/scripts/maps/VerdanturfTown_BattleTentLobby.inc b/data/scripts/maps/VerdanturfTown_BattleTentLobby.inc
index 6f1624a2d..85c5f33c7 100644
--- a/data/scripts/maps/VerdanturfTown_BattleTentLobby.inc
+++ b/data/scripts/maps/VerdanturfTown_BattleTentLobby.inc
@@ -4,20 +4,20 @@ VerdanturfTown_BattleTentLobby_MapScripts:: @ 82016D0
.byte 0
VerdanturfTown_BattleTentLobby_MapScript2_2016DB: @ 82016DB
- map_script_2 VAR_0x4001, 0, VerdanturfTown_BattleTentLobby_EventScript_2016E5
+ map_script_2 VAR_TEMP_1, 0, VerdanturfTown_BattleTentLobby_EventScript_2016E5
.2byte 0
VerdanturfTown_BattleTentLobby_EventScript_2016E5:: @ 82016E5
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
turnobject 255, 2
end
VerdanturfTown_BattleTentLobby_MapScript2_2016EF: @ 82016EF
- map_script_2 VAR_0x4000, 0, VerdanturfTown_BattleTentLobby_EventScript_201719
- map_script_2 VAR_0x4000, 1, VerdanturfTown_BattleTentLobby_EventScript_201722
- map_script_2 VAR_0x4000, 2, VerdanturfTown_BattleTentLobby_EventScript_201837
- map_script_2 VAR_0x4000, 3, VerdanturfTown_BattleTentLobby_EventScript_201757
- map_script_2 VAR_0x4000, 4, VerdanturfTown_BattleTentLobby_EventScript_2017FD
+ map_script_2 VAR_TEMP_0, 0, VerdanturfTown_BattleTentLobby_EventScript_201719
+ map_script_2 VAR_TEMP_0, 1, VerdanturfTown_BattleTentLobby_EventScript_201722
+ map_script_2 VAR_TEMP_0, 2, VerdanturfTown_BattleTentLobby_EventScript_201837
+ map_script_2 VAR_TEMP_0, 3, VerdanturfTown_BattleTentLobby_EventScript_201757
+ map_script_2 VAR_TEMP_0, 4, VerdanturfTown_BattleTentLobby_EventScript_2017FD
.2byte 0
VerdanturfTown_BattleTentLobby_EventScript_201719:: @ 8201719
@@ -33,7 +33,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201722:: @ 8201722
setvar VAR_0x8005, 0
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
setvar VAR_0x8004, 2
setvar VAR_0x8005, 1
setvar VAR_0x8006, 0
@@ -74,7 +74,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201791:: @ 8201791
waitfanfare
msgbox VerdanturfTown_BattleTentLobby_Text_2C539A, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -82,7 +82,7 @@ VerdanturfTown_BattleTentLobby_EventScript_2017DD:: @ 82017DD
msgbox VerdanturfTown_BattleTentLobby_Text_24E57B, 4
waitmessage
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -107,7 +107,7 @@ VerdanturfTown_BattleTentLobby_EventScript_2017FD:: @ 82017FD
waitse
msgbox VerdanturfTown_BattleTentLobby_Text_2C539A, 4
closemessage
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
releaseall
end
@@ -125,7 +125,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201837:: @ 8201837
setvar VAR_0x8005, 3
setvar VAR_0x8006, 0
special sub_81A1780
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
goto VerdanturfTown_BattleTentLobby_EventScript_2019AE
VerdanturfTown_BattleTentLobby_EventScript_201873:: @ 8201873
@@ -175,7 +175,7 @@ VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF
case 127, VerdanturfTown_BattleTentLobby_EventScript_201A34
VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
setvar VAR_0x8004, 2
setvar VAR_0x8005, 4
special sub_81A1780
@@ -193,7 +193,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954
closemessage
delay 2
call VerdanturfTown_BattleTentLobby_EventScript_27134F
- setvar VAR_0x4000, 255
+ setvar VAR_TEMP_0, 255
compare VAR_RESULT, 0
goto_eq VerdanturfTown_BattleTentLobby_EventScript_201A1D
@@ -206,7 +206,7 @@ VerdanturfTown_BattleTentLobby_EventScript_2019AE:: @ 82019AE
closemessage
call VerdanturfTown_BattleTentLobby_EventScript_201A41
warp VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR, 255, 2, 7
- setvar VAR_0x4000, 0
+ setvar VAR_TEMP_0, 0
waitstate
end
diff --git a/data/scripts/players_house.inc b/data/scripts/players_house.inc
index 6bae599fc..8f8d493f8 100644
--- a/data/scripts/players_house.inc
+++ b/data/scripts/players_house.inc
@@ -173,7 +173,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_29286D:: @ 829286D
msgbox LittlerootTown_BrendansHouse_1F_Text_1F7BF1, 4
msgbox LittlerootTown_BrendansHouse_1F_Text_1F7C35, 4
closemessage
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
applymovement VAR_0x8005, LittlerootTown_BrendansHouse_1F_Movement_2929BD
waitmovement 0
goto LittlerootTown_BrendansHouse_1F_EventScript_292866
@@ -198,7 +198,7 @@ LittlerootTown_MaysHouse_1F_EventScript_2928DC:: @ 82928DC
msgbox LittlerootTown_MaysHouse_1F_Text_1F7BF1, 4
msgbox LittlerootTown_MaysHouse_1F_Text_1F7C35, 4
closemessage
- setvar VAR_0x4001, 1
+ setvar VAR_TEMP_1, 1
applymovement VAR_0x8005, LittlerootTown_MaysHouse_1F_Movement_2929C1
waitmovement 0
goto LittlerootTown_MaysHouse_1F_EventScript_292866
@@ -322,7 +322,7 @@ LittlerootTown_MaysHouse_1F_EventScript_2929C5:: @ 82929C5
goto_eq LittlerootTown_BrendansHouse_1F_EventScript_292A19
checkflag FLAG_0x052
goto_eq LittlerootTown_BrendansHouse_1F_EventScript_292A86
- compare VAR_0x4001, 1
+ compare VAR_TEMP_1, 1
goto_eq LittlerootTown_BrendansHouse_1F_EventScript_292A94
compare VAR_0x4092, 7
goto_eq LittlerootTown_BrendansHouse_1F_EventScript_292AB0
diff --git a/data/specials.inc b/data/specials.inc
index a056de629..1fa17b908 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -319,7 +319,7 @@ gSpecials:: @ 81DBA64
def_special sub_8139B60
def_special sub_80FAC78
def_special IsPokerusInParty
- def_special sub_809E1C8
+ def_special SetSootopolisGymCrackedIceMetatiles
def_special sub_8139560
def_special StartGroudonKyogreBattle
def_special BattleSetup_StartLegendaryBattle
diff --git a/graphics/unknown/unknown_55C170.png b/graphics/unknown/unknown_55C170.png
index 95a2e2427..d601cb6e5 100644
--- a/graphics/unknown/unknown_55C170.png
+++ b/graphics/unknown/unknown_55C170.png
Binary files differ
diff --git a/graphics/unknown/unknown_55C190.png b/graphics/unknown/unknown_55C190.png
new file mode 100644
index 000000000..01f10cd07
--- /dev/null
+++ b/graphics/unknown/unknown_55C190.png
Binary files differ
diff --git a/graphics/unknown/unknown_55C1B0.png b/graphics/unknown/unknown_55C1B0.png
new file mode 100644
index 000000000..3f5b8d5c3
--- /dev/null
+++ b/graphics/unknown/unknown_55C1B0.png
Binary files differ
diff --git a/graphics/unknown/unknown_55C1D0.png b/graphics/unknown/unknown_55C1D0.png
new file mode 100644
index 000000000..7684451e4
--- /dev/null
+++ b/graphics/unknown/unknown_55C1D0.png
Binary files differ
diff --git a/graphics/unused/intro_birch_beauty.png b/graphics/unused/intro_birch_beauty.png
index 85951c902..f13221cf5 100644
--- a/graphics/unused/intro_birch_beauty.png
+++ b/graphics/unused/intro_birch_beauty.png
Binary files differ
diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk
index 092ab5644..dad4ea026 100644
--- a/graphics_file_rules.mk
+++ b/graphics_file_rules.mk
@@ -470,7 +470,7 @@ $(SLOTMACHINEGFXDIR)/reel_time_gfx.4bpp: $(SLOTMACHINEGFXDIR)/reel_time_pikachu.
@cat $^ >$@
$(UNUSEDGFXDIR)/intro_birch_beauty.4bpp: %.4bpp: %.png
- $(GFX) $< $@ -num_tiles 374
+ $(GFX) $< $@ -num_tiles 822
$(PSSGFXDIR)/forest_frame.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 55
diff --git a/include/battle_tower.h b/include/battle_tower.h
index 25b439c1b..9d4553132 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -1,6 +1,31 @@
#ifndef GUARD_BATTLE_TOWER_H
#define GUARD_BATTLE_TOWER_H
+struct RSBattleTowerRecord
+{
+ /*0x00*/ u8 battleTowerLevelType; // 0 = level 50, 1 = level 100
+ /*0x01*/ u8 trainerClass;
+ /*0x02*/ u16 winStreak;
+ /*0x04*/ u8 name[8];
+ /*0x0C*/ u8 trainerId[4];
+ /*0x10*/ struct {
+ u16 easyChat[6];
+ } greeting;
+ /*0x1C*/ struct UnknownPokemonStruct party[3];
+ /*0xA0*/ u32 checksum;
+ /*0xA4*/ u16 unk_11c8;
+};
+
+union BattleTowerRecord
+{
+ struct RSBattleTowerRecord ruby_sapphire;
+ struct EmeraldBattleTowerRecord emerald;
+};
+
u16 sub_8164FCC(u8, u8);
+void sub_81659DC(struct RSBattleTowerRecord *a0, struct RSBattleTowerRecord *a1);
+bool32 sub_816587C(union BattleTowerRecord *, union BattleTowerRecord *);
+void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *);
+void sub_81628A0(union BattleTowerRecord *);
#endif //GUARD_BATTLE_TOWER_H
diff --git a/include/cable_club.h b/include/cable_club.h
new file mode 100644
index 000000000..44831235c
--- /dev/null
+++ b/include/cable_club.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_CABLE_CLUB_H
+#define GUARD_CABLE_CLUB_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void sub_80B37D4(TaskFunc taskFunc);
+u8 sub_80B3050(void);
+
+#endif //GUARD_CABLE_CLUB_H
diff --git a/include/constants/vars.h b/include/constants/vars.h
index be21f1730..976c6a739 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -3,42 +3,53 @@
#define VAR_0x3F20 0x3F20
-#define VAR_0x4000 0x4000
-#define VAR_0x4001 0x4001
-#define VAR_0x4002 0x4002
-#define VAR_0x4003 0x4003
-#define VAR_0x4004 0x4004
-#define VAR_0x4005 0x4005
-#define VAR_0x4006 0x4006
-#define VAR_0x4007 0x4007
-#define VAR_0x4008 0x4008
-#define VAR_0x4009 0x4009
-#define VAR_0x400A 0x400A
-#define VAR_0x400B 0x400B
-#define VAR_0x400C 0x400C
-#define VAR_0x400D 0x400D
-#define VAR_0x400E 0x400E
-#define VAR_0x400F 0x400F
-#define VAR_0x4010 0x4010
-#define VAR_0x4011 0x4011
-#define VAR_0x4012 0x4012
-#define VAR_0x4013 0x4013
-#define VAR_0x4014 0x4014
-#define VAR_0x4015 0x4015
-#define VAR_0x4016 0x4016
-#define VAR_0x4017 0x4017
-#define VAR_0x4018 0x4018
-#define VAR_0x4019 0x4019
-#define VAR_0x401A 0x401A
-#define VAR_0x401B 0x401B
-#define VAR_0x401C 0x401C
-#define VAR_0x401D 0x401D
-#define VAR_0x401E 0x401E
-#define VAR_0x401F 0x401F
+#define VARS_START 0x4000
+
+// temporary vars
+// The first 0x10 vars are are temporary--they are cleared every time a map is loaded.
+#define VAR_TEMP_0 0x4000
+#define VAR_TEMP_1 0x4001
+#define VAR_TEMP_2 0x4002
+#define VAR_TEMP_3 0x4003
+#define VAR_TEMP_4 0x4004
+#define VAR_TEMP_5 0x4005
+#define VAR_TEMP_6 0x4006
+#define VAR_TEMP_7 0x4007
+#define VAR_TEMP_8 0x4008
+#define VAR_TEMP_9 0x4009
+#define VAR_TEMP_A 0x400A
+#define VAR_TEMP_B 0x400B
+#define VAR_TEMP_C 0x400C
+#define VAR_TEMP_D 0x400D
+#define VAR_TEMP_E 0x400E
+#define VAR_TEMP_F 0x400F
+
+// object gfx id vars
+// These 0x10 vars are used to dynamically control a map object's sprite.
+// For example, the rival's sprite id is dynamically set based on the player's gender.
+// See VarGetFieldObjectGraphicsId().
+#define VAR_OBJ_GFX_ID_0 0x4010
+#define VAR_OBJ_GFX_ID_1 0x4011
+#define VAR_OBJ_GFX_ID_2 0x4012
+#define VAR_OBJ_GFX_ID_3 0x4013
+#define VAR_OBJ_GFX_ID_4 0x4014
+#define VAR_OBJ_GFX_ID_5 0x4015
+#define VAR_OBJ_GFX_ID_6 0x4016
+#define VAR_OBJ_GFX_ID_7 0x4017
+#define VAR_OBJ_GFX_ID_8 0x4018
+#define VAR_OBJ_GFX_ID_9 0x4019
+#define VAR_OBJ_GFX_ID_A 0x401A
+#define VAR_OBJ_GFX_ID_B 0x401B
+#define VAR_OBJ_GFX_ID_C 0x401C
+#define VAR_OBJ_GFX_ID_D 0x401D
+#define VAR_OBJ_GFX_ID_E 0x401E
+#define VAR_OBJ_GFX_ID_F 0x401F
+
+// general purpose vars
#define VAR_RECYCLE_GOODS 0x4020
#define VAR_REPEL_STEP_COUNT 0x4021
#define VAR_ICE_STEP_COUNT 0x4022
-#define VAR_FIRST_POKE 0x4023
+#define VAR_FIRST_POKE 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
@@ -262,6 +273,8 @@
#define VAR_0x40FE 0x40FE
#define VAR_0x40FF 0x40FF
+// special vars
+// They are commonly used as parameters to commands, or return values from commands.
#define VAR_0x8000 0x8000
#define VAR_0x8001 0x8001
#define VAR_0x8002 0x8002
diff --git a/include/decompress.h b/include/decompress.h
index 34a678cda..e98181c82 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -28,6 +28,6 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32
void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
-u32 sub_8034974(const u8 *ptr);
+u32 GetDecompressedDataSize(const u8 *ptr);
#endif // GUARD_DECOMPRESS_H
diff --git a/include/field_effect.h b/include/field_effect.h
index 700256f30..9cd26f6b8 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -1,6 +1,14 @@
#ifndef GUARD_FIELD_EFFECTS_H
#define GUARD_FIELD_EFFECTS_H
+#include "task.h"
+
+extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[2];
+extern const struct SpritePalette gNewGameBirchObjectPaletteInfo;
+extern const struct CompressedSpriteSheet gTrainerFrontPicTable[2];
+extern const struct SpriteTemplate gNewGameBirchObjectTemplate;
+extern const struct OamData gNewGameBirchOamAttributes;
+
enum FieldEffectScriptIdx
{
FLDEFF_EXCLAMATION_MARK_ICON_1,
@@ -69,7 +77,9 @@ enum FieldEffectScriptIdx
FLDEFF_USE_TELEPORT
};
-extern u32 gFieldEffectArguments[8];
+extern s32 gFieldEffectArguments[8];
+extern void (*gUnknown_0203CEEC)(void);
+extern bool8 (*gUnknown_03005DB0)(void);
u32 FieldEffectStart(u8);
bool8 FieldEffectActiveListContains(u8 id);
@@ -77,10 +87,147 @@ void sub_80B69DC(void);
u8 AddNewGameBirchObject(s16, s16, u8);
void FieldEffectStop(struct Sprite *sprite, u8 id);
u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer);
-void sub_80B7FC8(void);
+void CreateTeleportFieldEffectTask(void);
void FieldEffectActiveListRemove(u8 id);
void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8);
-extern void (*gUnknown_0203CEEC)(void);
-extern bool8 (*gUnknown_03005DB0)(void);
+void FieldEffectActiveListAdd(u8 id);
+void FieldEffectScript_LoadTiles(u8 **script);
+void FieldEffectScript_LoadFadedPalette(u8 **script);
+void FieldEffectScript_LoadPalette(u8 **script);
+void FieldEffectScript_CallNative(u8 **script, u32 *val);
+void FieldEffectFreeTilesIfUnused(u16 tileStart);
+void FieldEffectFreePaletteIfUnused(u8 paletteNum);
+bool8 FieldEffectCmd_loadtiles(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadfadedpal(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadpal(u8 **script, u32 *val);
+bool8 FieldEffectCmd_callnative(u8 **script, u32 *val);
+bool8 FieldEffectCmd_end(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadgfx_callnative(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadtiles_callnative(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadfadedpal_callnative(u8 **script, u32 *val);
+
+void PokecenterHealEffect_0(struct Task *);
+void PokecenterHealEffect_1(struct Task *);
+void PokecenterHealEffect_2(struct Task *);
+void PokecenterHealEffect_3(struct Task *);
+
+void HallOfFameRecordEffect_0(struct Task *);
+void HallOfFameRecordEffect_1(struct Task *);
+void HallOfFameRecordEffect_2(struct Task *);
+void HallOfFameRecordEffect_3(struct Task *);
+
+void PokeballGlowEffect_0(struct Sprite *);
+void PokeballGlowEffect_1(struct Sprite *);
+void PokeballGlowEffect_2(struct Sprite *);
+void PokeballGlowEffect_3(struct Sprite *);
+void PokeballGlowEffect_4(struct Sprite *);
+void PokeballGlowEffect_5(struct Sprite *);
+void PokeballGlowEffect_6(struct Sprite *);
+void PokeballGlowEffect_7(struct Sprite *);
+
+bool8 sub_80B6BCC(struct Task *);
+bool8 sub_80B6C74(struct Task *);
+bool8 sub_80B6C90(struct Task *);
+bool8 sub_80B6D04(struct Task *);
+bool8 sub_80B6DBC(struct Task *);
+bool8 sub_80B6DD8(struct Task *);
+bool8 sub_80B6E18(struct Task *);
+
+bool8 sub_80B6EC0(struct Task *);
+bool8 sub_80B6EE0(struct Task *);
+bool8 sub_80B6F50(struct Task *);
+bool8 sub_80B6F74(struct Task *);
+bool8 sub_80B6F84(struct Task *);
+bool8 sub_80B6FA8(struct Task *);
+
+bool8 sub_80B7114(struct Task *);
+bool8 sub_80B7190(struct Task *);
+bool8 sub_80B71D0(struct Task *);
+bool8 sub_80B7230(struct Task *);
+bool8 sub_80B7270(struct Task *);
+bool8 sub_80B72D0(struct Task *);
+bool8 sub_80B72F4(struct Task *);
+
+bool8 sub_80B73D0(struct Task *, struct MapObject *);
+bool8 waterfall_1_do_anim_probably(struct Task *, struct MapObject *);
+bool8 waterfall_2_wait_anim_finish_probably(struct Task *, struct MapObject *);
+bool8 sub_80B7450(struct Task *, struct MapObject *);
+bool8 sub_80B7478(struct Task *, struct MapObject *);
+
+bool8 dive_1_lock(struct Task *);
+bool8 dive_2_unknown(struct Task *);
+bool8 dive_3_unknown(struct Task *);
+
+bool8 sub_80B764C(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80B7684(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80B76B8(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80B7704(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80B77F8(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80B7814(struct Task *, struct MapObject *, struct Sprite *);
+
+bool8 sub_80B78EC(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80B791C(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80B7968(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80B79BC(struct Task *, struct MapObject *, struct Sprite *);
+
+bool8 sub_80B7AE8(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80B7B18(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80B7B94(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80B7BCC(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80B7BF4(struct Task *, struct MapObject *, struct Sprite *);
+
+void sub_80B7D14(struct Task *);
+void sub_80B7D34(struct Task *);
+
+void sub_80B7EC4(struct Task *);
+void sub_80B7EE8(struct Task *);
+
+void sub_80B8280(struct Task *);
+void sub_80B830C(struct Task *);
+void sub_80B8410(struct Task *);
+
+void sub_80B8584(struct Task *);
+void sub_80B85F8(struct Task *);
+void sub_80B8660(struct Task *);
+void sub_80B86EC(struct Task *);
+void sub_80B871C(struct Task *);
+void sub_80B8770(struct Task *);
+void overworld_bg_setup_2(struct Task *);
+
+void sub_80B88E4(struct Task *);
+void sub_80B8920(struct Task *);
+void sub_80B898C(struct Task *);
+void sub_80B89DC(struct Task *);
+void sub_80B8A0C(struct Task *);
+void sub_80B8A44(struct Task *);
+void sub_80B8A64(struct Task *);
+
+void sub_80B8DB4(struct Task *);
+void sub_80B8E14(struct Task *);
+void sub_80B8E60(struct Task *);
+void sub_80B8EA8(struct Task *);
+void sub_80B8F24(struct Task *);
+
+void sub_80B9204(struct Task *);
+void sub_80B925C(struct Task *);
+void sub_80B92A0(struct Task *);
+void sub_80B92F8(struct Task *);
+void sub_80B933C(struct Task *);
+void sub_80B9390(struct Task *);
+void sub_80B9418(struct Task *);
+void sub_80B9474(struct Task *);
+void sub_80B9494(struct Task *);
+
+void sub_80B9804(struct Task *);
+void sub_80B98B8(struct Task *);
+void sub_80B9924(struct Task *);
+void sub_80B9978(struct Task *);
+void sub_80B99F0(struct Task *);
+void sub_80B9A28(struct Task *);
+void sub_80B9A60(struct Task *);
+
+void sub_80B9C28(s16*, u8);
+void sub_80B9C54(s16*, u8);
+void sub_80B9CDC(s16*, u8);
#endif //GUARD_FIELD_EFFECTS_H
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index 15928eba3..3c9e00b62 100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -13,5 +13,7 @@
u8 sub_8154228(void);
bool8 sub_8155DA0(struct MapObject *);
void sub_8155D78(struct MapObject *);
+void sub_81555AC(u8, u8);
+void ash(s16, s16, u16, s16);
#endif //GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 8f34d4b93..1bf3915e1 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -93,6 +93,8 @@ void npc_coords_shift_still(struct MapObject *pObject);
void FieldObjectMoveDestCoords(struct MapObject *pObject, u32 unk_19, s16 *pInt, s16 *pInt1);
u8 AddCameraObject(u8 linkedSpriteId);
void UpdateFieldObjectsForCameraUpdate(s16 x, s16 y);
+u8 GetSimpleGoAnimId(u32);
+u8 sub_8093514(u32);
// Exported data declarations
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index f616717f2..0b9ea385c 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -40,6 +40,9 @@ void sub_808D074(u8);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8);
void sub_808C114(void);
-u8 GetPlayerAvatarGraphicsIdByCurrentState();
+u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
+void SetPlayerAvatarStateMask(u8 a);
+u8 GetPlayerAvatarGraphicsIdByStateId(u8 a);
+u8 sub_8093540(u32);
#endif // GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/field_screen.h b/include/field_screen.h
index 02e0a0a91..d9a2bb5fa 100644
--- a/include/field_screen.h
+++ b/include/field_screen.h
@@ -7,10 +7,12 @@
// Exported ROM declarations
void pal_fill_black(void);
-bool8 sub_80ABDFC(void);
+bool8 IsWeatherNotFadingIn(void);
void sub_80AF168(void);
+void sub_80AF2B4(u8 taskId);
void UpdateWeatherPerDay(u16 days);
void sub_80AC3D0(void);
void sub_80AC3E4(void);
+void PreservePaletteInWeather(u8);
#endif //GUARD_FIELD_SCREEN_H
diff --git a/include/field_special_scene.h b/include/field_special_scene.h
new file mode 100644
index 000000000..240e9ecb6
--- /dev/null
+++ b/include/field_special_scene.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_FIELD_SPECIAL_SCENE_H
+#define GUARD_FIELD_SPECIAL_SCENE_H
+
+s16 GetTruckCameraBobbingY(int a1);
+s16 GetTruckBoxMovement(int a1);
+void Task_Truck1(u8 taskId);
+void Task_Truck2(u8 taskId);
+void Task_Truck3(u8 taskId);
+void Task_HandleTruckSequence(u8 taskId);
+void ExecuteTruckSequence(void);
+void EndTruckSequence(u8);
+void sub_80C791C(void);
+
+#endif // GUARD_FIELD_SPECIAL_SCENE_H
diff --git a/include/field_tasks.h b/include/field_tasks.h
index 2a2a772d8..400ad054d 100644
--- a/include/field_tasks.h
+++ b/include/field_tasks.h
@@ -1,6 +1,9 @@
#ifndef GUARD_FIELD_TASKS_H
#define GUARD_FIELD_TASKS_H
-void ActivatePerStepCallback(u8);
+void SetUpFieldTasks(void);
+void ActivatePerStepCallback(u8 callbackId);
+void ResetFieldTasksArgs(void);
+void SetSootopolisGymCrackedIceMetatiles(void);
#endif // GUARD_FIELD_TASKS_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 6e127ce5d..699595580 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -28,4 +28,8 @@ struct MapConnection *sub_8088950(u8 direction, int x, int y);
bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection);
bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset);
+void SpriteCB_PokeballGlow(struct Sprite *);
+void SpriteCB_PokecenterMonitor(struct Sprite *);
+void SpriteCB_HallOfFameMonitor(struct Sprite *);
+
#endif //GUARD_FIELDMAP_H
diff --git a/include/fldeff_80F9BCC.h b/include/fldeff_80F9BCC.h
index 84015065e..ba775cd6d 100644
--- a/include/fldeff_80F9BCC.h
+++ b/include/fldeff_80F9BCC.h
@@ -9,6 +9,8 @@
void sub_80FA5E4(s16 id, s16 x, s16 y);
void sub_80FA794(s16 x, s16 y);
+void CreateRecordMixingSprite(void);
+void DestroyRecordMixingSprite(void);
void overworld_poison_effect(void);
bool8 sub_80FADE4(u16, u8);
diff --git a/include/global.h b/include/global.h
index 863bfcee6..4a0fdb70a 100644
--- a/include/global.h
+++ b/include/global.h
@@ -11,10 +11,10 @@
// to help in decompiling
#define asm_comment(x) asm volatile("@ -- " x " -- ")
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
-#define ASM_DIRECT __attribute__((naked))
+#define NAKED __attribute__((naked))
// IDE support
-#if defined (__APPLE__) || defined (__CYGWIN__)
+#if defined (__APPLE__) || defined (__CYGWIN__) || defined (_MSC_VER)
#define _(x) x
#define __(x) x
#define INCBIN_U8 {0}
@@ -23,7 +23,7 @@
#define INCBIN_S8 {0}
#define INCBIN_S16 {0}
#define INCBIN_S32 {0}
-#endif // __APPLE__
+#endif // IDE support
#define ARRAY_COUNT(array) (size_t)(sizeof(array) / sizeof((array)[0]))
@@ -107,6 +107,8 @@ enum LanguageId
#define VARS_COUNT 256
#define MAIL_COUNT 16
#define SECRET_BASES_COUNT 20
+#define TV_SHOWS_COUNT 25
+#define POKE_NEWS_COUNT 16
#define PC_ITEMS_COUNT 50
#define BAG_ITEMS_COUNT 30
#define BAG_KEYITEMS_COUNT 30
@@ -262,6 +264,56 @@ struct UnknownSaveBlock2Struct
u8 field_EB;
}; // sizeof = 0xEC
+struct UnkRecordMixingStruct
+{
+ u8 field_0[0x34];
+ u8 playerId[4];
+ u8 field_38[10];
+};
+
+struct UnknownPokemonStruct
+{
+ u16 species;
+ u16 heldItem;
+ u16 moves[4];
+ u8 level;
+ u8 ppBonuses;
+ u8 hpEV;
+ u8 attackEV;
+ u8 defenseEV;
+ u8 speedEV;
+ u8 spAttackEV;
+ u8 spDefenseEV;
+ u32 otId;
+ u32 hpIV:5;
+ u32 attackIV:5;
+ u32 defenseIV:5;
+ u32 speedIV:5;
+ u32 spAttackIV:5;
+ u32 spDefenseIV:5;
+ u32 gap:1;
+ u32 altAbility:1;
+ u32 personality;
+ u8 nickname[POKEMON_NAME_LENGTH + 1];
+ u8 friendship;
+};
+
+struct EmeraldBattleTowerRecord
+{
+ /*0x00*/ u8 battleTowerLevelType; // 0 = level 50, 1 = level 100
+ /*0x01*/ u8 trainerClass;
+ /*0x02*/ u16 winStreak;
+ /*0x04*/ u8 name[8];
+ /*0x0C*/ u8 trainerId[4];
+ /*0x10*/ struct {
+ u16 easyChat[6];
+ } greeting;
+ /*0x1C*/ u8 filler_1c[0x18];
+ /*0x34*/ struct UnknownPokemonStruct party[4];
+ /*0xE4*/ u8 language;
+ /*0xE8*/ u32 checksum;
+};
+
struct SaveBlock2
{
/*0x00*/ u8 playerName[PLAYER_NAME_LENGTH];
@@ -287,7 +339,12 @@ struct SaveBlock2
/*0xAC*/ u32 encryptionKey;
// TODO: fix and verify labels
- /*0xB0*/ u8 field_B0[316];
+ /*0xB0*/ u8 field_B0;
+ /*0xB1*/ u8 field_B1;
+ /*0xB2*/ u8 field_B2_0:3;
+ /*0xB2*/ u8 field_B2_1:2;
+ /*0xB3*/ u8 field_B3[0x29];
+ /*0xDC*/ struct UnkRecordMixingStruct field_DC[4];
/*0x1EC*/ struct BerryCrush berryCrush;
/*0x1FC*/ struct PokemonJumpResults pokeJump;
/*0x20C*/ struct BerryPickingResults berryPick;
@@ -296,7 +353,7 @@ struct SaveBlock2
// All below could be a one giant struct
- /*0x64C*/ u8 field_64C[236];
+ /*0x64C*/ struct EmeraldBattleTowerRecord battleTower;
/*0x738*/ struct UnknownSaveBlock2Struct field_738[5]; // No idea here, it's probably wrong, no clue.
/*0xBD4*/ u16 field_BD4;
/*0xBD6*/ u16 field_BD6;
@@ -313,22 +370,64 @@ struct SaveBlock2
/*0xCA9*/ u8 field_CA9_f : 1; // 0x80
/*0xCAA*/ u16 field_CAA[4];
/*0xCB2*/ u16 battlePyramidWildHeaderId;
- /*0xCB4*/ u16 field_CB4[41];
+ /*0xCB4*/ u16 field_CB4[30];
+ /*0xCF0*/ u16 field_CF0[2];
+ /*0xCF4*/ u16 field_CF4[2];
+ /*0xCF8*/ u16 field_CF8[2];
+ /*0xCFC*/ u16 field_CFC[5];
/*0xD06*/ u8 field_D06;
/*0xD07*/ u8 field_D07;
- /*0xD08*/ u8 filler_D08[0x112];
+ /*0xD08*/ u8 filler_D08;
+ /*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;
+ /*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];
+ /*0xDD0*/ u16 field_DD0[2];
+ /*0xDD4*/ u16 field_DD4[2];
+ /*0xDD8*/ u16 field_DD8;
+ /*0xDDA*/ u16 field_DDA;
+ /*0xDDC*/ u16 field_DDC;
+ /*0xDDE*/ u16 field_DDE[2];
+ /*0xDE2*/ u16 field_DE2;
+ /*0xDE4*/ u16 field_DE4;
+ /*0xDE6*/ u16 field_DE6;
+ /*0xDE8*/ u16 field_DE8;
+ /*0xDEA*/ u16 field_DEA[2];
+ /*0xDEE*/ u16 field_DEE;
+ /*0xDF0*/ u16 field_DF0;
+ /*0xDF2*/ u16 field_DF2;
+ /*0xDF4*/ u16 field_DF4;
+ /*0xDF6*/ u16 field_DF6;
+ /*0xDF8*/ u16 field_DF8;
+ /*0xDFA*/ u16 field_DFA;
+ /*0xDFC*/ u16 field_DFC;
+ /*0xDFE*/ u16 field_DFE;
+ /*0xE00*/ u16 field_E00;
+ /*0xE02*/ u16 field_E02;
+ /*0xE04*/ u16 field_E04;
+ /*0xE06*/ u16 field_E06;
+ /*0xE08*/ u16 field_E08[9];
/*0xE1A*/ u16 battlePyramidFloor; // possibly?
- /*0xE1C*/ u8 field_E1C[16];
+ /*0xE1C*/ u16 field_E1C;
+ /*0xE1E*/ u16 field_E1E[7];
/*0xE2C*/ struct PyramidBag pyramidBag;
/*0x???*/ u8 field_unkown[6];
/*0xE6E*/ u16 battleTentWinStreak;
/*0xE70*/ u8 field_E70[72];
/*0xEB8*/ u16 frontierBattlePoints;
/*0xEBA*/ u8 field_EBA[39];
- /*0xEE1*/ u8 field_EE1;
- /*0xEE2*/ u8 field_EE2[7];
- /*0xEE9*/ u8 field_EE9;
- /*0xEEA*/ u8 field_EEA[66];
+ /*0xEE1*/ u8 field_EE1[2][PLAYER_NAME_LENGTH];
+ /*0xEF1*/ u8 field_EF1[2][4];
+ /*0xEF9*/ u8 field_EF9[51];
// sizeof=0xF2C
};
@@ -564,9 +663,9 @@ struct ContestWinner
u8 contestRank;
};
-struct DaycareMiscMon
+struct DayCareMail
{
- struct MailStruct mail;
+ struct MailStruct message;
u8 OT_name[OT_NAME_LENGTH + 1];
u8 monName[POKEMON_NAME_LENGTH + 1];
u8 gameLanguage:4;
@@ -576,7 +675,7 @@ struct DaycareMiscMon
struct DaycareMon
{
struct BoxPokemon mon;
- struct DaycareMiscMon misc;
+ struct DayCareMail mail;
u32 steps;
};
@@ -587,12 +686,6 @@ struct DayCare
u8 stepCounter;
};
-struct DayCareMail
-{
- /*0x00*/ struct MailStruct message;
- /*0x24*/ u8 names[19];
-};
-
struct RecordMixingDayCareMail
{
struct DayCareMail mail[DAYCARE_MON_COUNT];
@@ -648,12 +741,13 @@ struct LilycoveLadyContest
/*0x00e*/ u8 language;
};
-typedef union // TODO
+typedef union
{
struct LilycoveLadyQuiz quiz;
struct LilycoveLadyFavour favour;
struct LilycoveLadyContest contest;
u8 id;
+ u8 pad[0x40];
} LilycoveLady;
struct WaldaPhrase
@@ -720,8 +814,8 @@ struct SaveBlock1
/*0x????*/ u8 decorDoll[40];
/*0x????*/ u8 decorCushion[10];
/*0x27CA*/ u8 padding_27CA[2];
- /*0x27CC*/ TVShow tvShows[25];
- /*0x2B50*/ PokeNews pokeNews[16];
+ /*0x27CC*/ TVShow tvShows[TV_SHOWS_COUNT];
+ /*0x2B50*/ PokeNews pokeNews[POKE_NEWS_COUNT];
/*0x2B90*/ u16 outbreakPokemonSpecies;
/*0x2B92*/ u8 outbreakLocationMapNum;
/*0x2B93*/ u8 outbreakLocationMapGroup;
@@ -753,7 +847,6 @@ struct SaveBlock1
/*0x3B14*/ struct RecordMixingGift recordMixingGift;
/*0x3B24*/ u8 seen2[DEX_FLAGS_NO];
/*0x3B58*/ LilycoveLady lilycoveLady;
- /*0x3B88*/ u8 filler_3B88[0x10];
/*0x3B98*/ struct UnkSaveSubstruct_3b98 unk_3B98[20];
/*0x3C88*/ u8 filler_3C88[0xE8];
/*0x3D70*/ struct WaldaPhrase waldaPhrase;
diff --git a/include/item_menu.h b/include/item_menu.h
index 40c015a8e..8a474bc0f 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -7,7 +7,7 @@ struct BagStruct
void (*bagCallback)(void);
u8 location;
u8 pocket;
- u8 unk6[2];
+ u16 unk6;
u16 cursorPosition[5];
u16 scrollPosition[5];
};
diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h
index 084e5722e..f26285d68 100644
--- a/include/lilycove_lady.h
+++ b/include/lilycove_lady.h
@@ -6,7 +6,7 @@ void SetLilycoveLady(void);
void sub_818DA78(void);
void sub_818DEF4(void);
void sub_818E564(void);
-void sub_818E570(const struct LilycoveLadyQuiz *quiz);
+void sub_818E570(const LilycoveLady *lilycoveLady);
bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock);
void sub_818E7E0(u8 *dest1, u8 *dest2);
void sub_818E81C(u8 *dest);
diff --git a/include/link.h b/include/link.h
index 051370897..5b3cd26ca 100644
--- a/include/link.h
+++ b/include/link.h
@@ -293,4 +293,13 @@ extern u32 gFiller_03004138;
extern u32 gFiller_0300413C;
extern u32 gFiller_03003080;
+bool32 Link_AnyPartnersPlayingRubyOrSapphire(void);
+bool32 sub_800A03C(void);
+void sub_8009628(u8);
+u8 sub_800AA48(void);
+void sub_8009FAC(void);
+bool8 sub_800A4D8(u8 a0);
+u8 sub_800A9D8(void);
+u8 sub_800A0C8(s32, s32);
+
#endif // GUARD_LINK_H
diff --git a/include/link_rfu.h b/include/link_rfu.h
index a6084b138..ca39c2fb2 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -231,5 +231,6 @@ struct UnkLinkRfuStruct_02022B14 *sub_800F7DC(void);
void sub_8011068(u8 a0);
void sub_8011170(u32 a0);
void sub_8011A64(u8 a0, u16 a1);
+u8 sub_801048C(bool32 a0);
#endif //GUARD_LINK_RFU_H
diff --git a/include/list_menu.h b/include/list_menu.h
index 0aa66a524..d8b526b61 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -58,6 +58,33 @@ struct UnknownListMenuWindowStruct
u8 palNum;
};
+struct ArrowStruct
+{
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+ u8 unk5;
+ u16 unk6;
+ u16 unk8;
+ u16 tileTag;
+ u16 palTag;
+ u8 palNum;
+};
+
+struct CursorStruct
+{
+ u8 unk0;
+ u8 unk1;
+ u16 unk2;
+ u16 unk4;
+ u16 tileTag;
+ u16 palTag;
+ u8 palNum;
+};
+
+extern struct ArrowStruct gUnknown_0203CE8C;
extern struct ListMenuTemplate gMultiuseListMenuTemplate;
s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum);
@@ -74,5 +101,11 @@ void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow)
u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId);
void sub_81AF028(u8 cursorPal, u8 fillValue, u8 cursorShadowPal);
void sub_81AF078(s32 arg0, u8 arg1, struct ListMenu *list);
+s32 sub_81AF08C(u8 taskId, u8 field);
+void sub_81AF15C(u8 taskId, u8 field, s32 value);
+u8 AddScrollIndicatorArrowPair(const struct ArrowStruct *arrowInfo, u16 *arg1);
+u8 AddScrollIndicatorArrowPairParametrized(u32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 tileTag, s32 palTag, void *arg7);
+void RemoveScrollIndicatorArrowPair(u8 taskId);
+void Task_ScrollIndicatorArrowPairOnMainMenu(u8 taskId);
#endif //GUARD_LIST_MENU_H
diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h
index 696f12cc7..e318ac8bb 100644
--- a/include/mauville_old_man.h
+++ b/include/mauville_old_man.h
@@ -11,9 +11,16 @@ enum MauvilleOldManType
MAUVILLE_MAN_GIDDY
};
+extern struct BardSong gBardSong;
+
void SetMauvilleOldMan(void);
u8 GetCurrentMauvilleOldMan(void);
-extern struct BardSong gBardSong;
void ScrSpecial_SetMauvilleOldManMapObjGfx(void);
+u8 sub_81201C8(void);
+void sub_8120B70(OldMan *dest);
+void sub_8120670(void);
+void SanitizeReceivedRubyOldMan(union OldMan * oldMan, u32 r1, u32 r6);
+void SanitizeReceivedEmeraldOldMan(union OldMan * oldMan, u32 unused, u32 a2);
+void ResetMauvilleOldManFlag(void);
#endif // GUARD_MAUVILLE_OLD_MAN_H
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index 4de6603a3..387a89fdd 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -14,29 +14,27 @@ struct YesNoFuncTable
// Exported RAM declarations
// Exported ROM declarations
-void sub_812220C(struct ItemSlot *, u8, u8 *, u8 *, u8);
-void sub_812225C(u16 *, u16 *, u8, u8);
-void sub_8122298(u16 *, u16 *, u8, u8, u8);
-void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
-bool8 sub_81221AC(void);
-bool8 sub_81221EC(void);
void ResetVramOamAndBgCntRegs(void);
-void SetVBlankHBlankCallbacksToNull(void);
void ResetAllBgsCoordinates(void);
+void SetVBlankHBlankCallbacksToNull(void);
+void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
bool16 RunTextPrintersRetIsActive(u8 textPrinterId);
-void sub_8122344(u8 *arg0, u8 arg1);
-void sub_81223B0(u8 *arg0, u8 arg1);
-void LoadListMenuArrowsGfx(void);
-void sub_81223FC(u8 *a0, u8 count, u8 a2);
-void sub_8122448(u8 *a0, u8 count, u16 x, u16 y);
-void DisplayMessageAndContinueTask(u8 taskId, u8 arg1, u16 arg2, u8 arg3, u8 arg4, u8 textSpeed, const u8 *string, void *taskFunc);
+void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
+bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1);
u8 GetLRKeysState(void);
u8 sub_812210C(void);
-bool8 sub_81221EC(void);
+bool8 sub_8122148(u16 itemId);
+bool8 itemid_80BF6D8_mail_related(u16 itemId);
bool8 sub_81221AC(void);
-bool8 sub_8122148(u16);
-bool8 AdjustQuantityAccordingToDPadInput(s16*, u16);
-bool8 itemid_80BF6D8_mail_related(u16);
+bool8 sub_81221EC(void);
+void sub_812220C(struct ItemSlot *slots, u8 count, u8 *arg2, u8 *usedSlotsCount, u8 maxUsedSlotsCount);
+void sub_812225C(u16 *arg0, u16 *arg1, u8 arg2, u8 arg3);
+void sub_8122298(u16 *arg0, u16 *arg1, u8 arg2, u8 arg3, u8 arg4);
+void LoadListMenuArrowsGfx(void);
+void sub_8122344(u8 *spriteIds, u8 count);
+void sub_81223B0(u8 *spriteIds, u8 count);
+void sub_81223FC(u8 *spriteIds, u8 count, bool8 invisible);
+void sub_8122448(u8 *spriteIds, u8 count, s16 x, u16 y);
#endif //GUARD_MENU_HELPERS_H
diff --git a/include/menu_indicators.h b/include/menu_indicators.h
deleted file mode 100644
index a099cffab..000000000
--- a/include/menu_indicators.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef GUARD_MENU_INDICATORS_H
-#define GUARD_MENU_INDICATORS_H
-
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-struct ArrowStruct
-{
- u8 unk0[6];
- u16 unk6[4];
- u8 unkE;
-};
-
-struct CursorStruct
-{
- u8 unk0;
- u8 unk1;
- u16 unk2;
- u16 unk4;
- u16 unk6;
- u16 unk8;
- u8 unkA;
-};
-
-void Task_ScrollIndicatorArrowPairOnMainMenu(u8);
-u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *);
-void RemoveScrollIndicatorArrowPair(u8);
-u8 AddScrollIndicatorArrowPair(const struct ArrowStruct*, void*);
-void sub_81AF15C(u8, u8, u8);
-void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind);
-void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 cursorKind);
-u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind);
-
-#endif //GUARD_MENU_INDICATORS_H
diff --git a/include/overworld.h b/include/overworld.h
index 59d4d6a30..15d7bb362 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -23,6 +23,8 @@ extern u16 *gBGTilemapBuffers1;
extern u16 *gBGTilemapBuffers2;
extern u16 *gBGTilemapBuffers3;
+extern void (*gFieldCallback)(void);
+
// Exported ROM declarations
extern const struct UCoords32 gUnknown_08339D64[];
@@ -101,7 +103,7 @@ u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum);
u8 GetMapTypeByWarpData(struct WarpData *warp);
u8 Overworld_GetMapTypeOfSaveblockLocation(void);
u8 get_map_light_from_warp0(void);
-bool8 is_light_level_1_2_3_5_or_6(u8 mapType);
+bool8 is_map_type_1_2_3_5_or_6(u8 mapType);
bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType);
bool8 Overworld_MapTypeIsIndoors(u8 mapType);
u8 sav1_saved_warp2_map_get_name(void);
diff --git a/include/pokemon.h b/include/pokemon.h
index cd79a217d..37028821a 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -240,33 +240,6 @@ struct PokemonStorage
/*0x83C2*/ u8 boxWallpapers[14];
};
-struct UnknownPokemonStruct
-{
- u16 species;
- u16 heldItem;
- u16 moves[4];
- u8 level;
- u8 ppBonuses;
- u8 hpEV;
- u8 attackEV;
- u8 defenseEV;
- u8 speedEV;
- u8 spAttackEV;
- u8 spDefenseEV;
- u32 otId;
- u32 hpIV:5;
- u32 attackIV:5;
- u32 defenseIV:5;
- u32 speedIV:5;
- u32 spAttackIV:5;
- u32 spDefenseIV:5;
- u32 gap:1;
- u32 altAbility:1;
- u32 personality;
- u8 nickname[POKEMON_NAME_LENGTH + 1];
- u8 friendship;
-};
-
struct UnknownPokemonSubStruct2
{
u16 species;
@@ -482,6 +455,7 @@ extern const u8 gUnknown_08329D2A[];
extern const u8 gStatStageRatios[][2];
extern const u16 gUnknown_08329D54[];
extern const struct SpriteTemplate gUnknown_08329D98[];
+extern const struct CompressedSpritePalette gMonPaletteTable[];
void ZeroBoxMonData(struct BoxPokemon *boxMon);
void ZeroMonData(struct Pokemon *mon);
diff --git a/include/record_mixing.h b/include/record_mixing.h
new file mode 100644
index 000000000..3cd4d649e
--- /dev/null
+++ b/include/record_mixing.h
@@ -0,0 +1,35 @@
+#ifndef GUARD_RECORD_MIXING_H
+#define GUARD_RECORD_MIXING_H
+
+// Exported type declarations
+struct UnkRecordMixingStruct2a
+{
+ u8 playerId[4];
+ u16 field_4;
+ u8 playerName[PLAYER_NAME_LENGTH];
+ u8 language;
+};
+
+struct UnkRecordMixingStruct2b
+{
+ u8 playerId1[4];
+ u8 playerId2[4];
+ u16 field_8;
+ u8 playerName1[PLAYER_NAME_LENGTH];
+ u8 playerName2[PLAYER_NAME_LENGTH];
+ u8 language;
+};
+
+struct UnkRecordMixingStruct2
+{
+ struct UnkRecordMixingStruct2a field_0[9][2];
+ struct UnkRecordMixingStruct2b field_120[2];
+};
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+void sub_80E6BE8(void);
+void sub_80E8260(struct UnkRecordMixingStruct2 *arg0);
+
+#endif //GUARD_RECORD_MIXING_H
diff --git a/include/rom_8034C54.h b/include/rom_8034C54.h
new file mode 100644
index 000000000..9ad84ca13
--- /dev/null
+++ b/include/rom_8034C54.h
@@ -0,0 +1,26 @@
+#ifndef GUARD_ROM_8034C54_H
+#define GUARD_ROM_8034C54_H
+
+struct UnkStruct3
+{
+ u8 field_0_0:2;
+ u8 shape:2;
+ u8 size:2;
+ u8 priority:2;
+ u8 field_1;
+ u8 xDelta;
+ s16 x;
+ s16 y;
+ const struct SpriteSheet *spriteSheet;
+ const struct SpritePalette *spritePal;
+};
+
+bool32 sub_8034C54(u32 count);
+void sub_8034CC8(void);
+bool32 sub_8034D14(u32 id, s32 arg1, const struct UnkStruct3 *arg2);
+void sub_8035044(u32 id, s32 arg1);
+void sub_80353DC(u32 id);
+void sub_803547C(u32 id, bool32 arg1);
+u8 sub_80355F8(u32 arg0, u32 arg1);
+
+#endif // GUARD_ROM_8034C54_H
diff --git a/include/save.h b/include/save.h
index f06db2955..7b271129a 100644
--- a/include/save.h
+++ b/include/save.h
@@ -90,6 +90,9 @@ u8 sub_8153430(void);
bool8 sub_8153474(void);
u8 Save_LoadGameData(u8 a1);
u16 sub_815355C(void);
+u8 sub_81534D0(u8);
+u8 sub_8153430(void);
+bool8 sub_8153474(void);
u32 TryCopySpecialSaveSection(u8 sector, u8* dst);
u32 sub_8153634(u8 sector, u8* src);
void sub_8153688(u8 taskId);
diff --git a/include/secret_base.h b/include/secret_base.h
index eef48db31..c20533698 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -8,10 +8,13 @@
// Exported ROM declarations
void sub_80E9578(void);
void sub_80E980C(void);
+void sub_80EB18C(struct SecretBaseRecord *dest);
+void sub_80E9914(void);
u8 *GetSecretBaseMapName(u8 *dest);
const u8 *GetSecretBaseTrainerLoseText(void);
void sub_80E8EE0(struct MapEvents const *events);
void sub_80E9238(u8 flagIn);
bool8 CurrentMapIsSecretBase(void);
+void sub_80EA3E4(u8 taskId);
#endif //GUARD_SECRET_BASE_H
diff --git a/include/sprite.h b/include/sprite.h
index b5a1b6ae5..4723b66e1 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -229,6 +229,7 @@ struct OamMatrix
extern const struct OamData gDummyOamData;
extern const union AnimCmd *const gDummySpriteAnimTable[];
extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
+extern const struct SpriteTemplate gDummySpriteTemplate;
extern s16 gSpriteCoordOffsetX;
extern s16 gSpriteCoordOffsetY;
diff --git a/include/strings.h b/include/strings.h
index 501cbe510..4736fdc5d 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -110,6 +110,8 @@ extern const u8 gText_MoveCloserToLinkPartner[];
extern const u8 gText_CommErrorCheckConnections[];
extern const u8 gText_ABtnTitleScreen[];
extern const u8 gText_ABtnRegistrationCounter[];
+extern const u8 gText_MixingRecords[];
+extern const u8 gText_RecordMixingComplete[];
extern const u8 gText_EmptyString2[];
extern const u8 gText_Confirm3[];
extern const u8 gText_Cancel4[];
diff --git a/include/tv.h b/include/tv.h
index 1e05a680e..17be8c43c 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -16,7 +16,7 @@ void sub_80EED10(void);
void sub_80EED34(void);
void sub_80EED60(u16 delta);
void sub_80F01B8(void);
-void sub_80F01E8(void *src, u32 size, u8 masterIdx);
+void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx);
void sub_80EE4DC(struct Pokemon *pokemon, u8 ribbonMonDataIdx);
u32 GetPlayerIDAsU32(void);
bool8 GetPriceReduction(u8 newsKind);
@@ -30,7 +30,7 @@ void sub_80EEA70(void);
void sub_80EDB44(void);
void sub_80EDC60(const u16 *words);
void sub_80EDA80(void);
-void sub_80F0C7C(void *src, u32 size, u8 masterIdx);
+void ReceivePokeNewsData(void *src, u32 size, u8 masterIdx);
void sub_80F0BB8(void);
void sub_80ED950(bool8 flag);
void sub_80EEC80(void);
@@ -39,11 +39,13 @@ void sub_80EECC8(void);
void sub_80EECEC(void);
void sub_80F1208(TVShow *shows);
void sub_80EE44C(u8 nMonsCaught, u8 nPkblkUsed);
+void sub_80F14F8(TVShow *shows);
+size_t sub_80EF370(int value);
+bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language);
void SetPokemonAnglerSpecies(u16 species);
void UpdateTVShowsPerDay(u16 days);
void PutPokemonTodayCaughtOnAir(void);
void TV_PutSecretBaseVisitOnTheAir(void);
-bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language);
void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlayer, u16 speciesOpponent);
void UpdateTVScreensOnMap(int, int);
diff --git a/ld_script.txt b/ld_script.txt
index e04afa881..f7e531fce 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -31,7 +31,7 @@ SECTIONS {
/* COMMON starts at 0x30022A8 */
<COMMON>
- tools/agbcc/lib/libc.a:sbrkr.o(COMMON);
+ *libc.a:sbrkr.o(COMMON);
end = .;
. = 0x8000;
}
@@ -60,7 +60,7 @@ SECTIONS {
src/main_menu.o(.text);
src/battle_controllers.o(.text);
src/decompress.o(.text);
- asm/rom_8034C54.o(.text);
+ src/rom_8034C54.o(.text);
src/battle_bg.o(.text);
src/battle_main.o(.text);
src/battle_util.o(.text);
@@ -103,7 +103,7 @@ SECTIONS {
asm/field_control_avatar.o(.text);
src/event_data.o(.text);
src/coord_event_weather.o(.text);
- asm/field_tasks.o(.text);
+ src/field_tasks.o(.text);
src/clock.o(.text);
src/reset_rtc_screen.o(.text);
src/start_menu.o(.text);
@@ -121,7 +121,7 @@ SECTIONS {
asm/cable_club.o(.text);
src/trainer_see.o(.text);
src/wild_encounter.o(.text);
- asm/field_effect.o(.text);
+ src/field_effect.o(.text);
src/scanline_effect.o(.text);
src/option_menu.o(.text);
src/pokedex.o(.text);
@@ -143,7 +143,7 @@ SECTIONS {
src/naming_screen.o(.text);
src/money.o(.text);
asm/contest_effect.o(.text);
- asm/record_mixing.o(.text);
+ src/record_mixing.o(.text);
src/secret_base.o(.text);
src/tv.o(.text);
asm/contest_link_80F57C4.o(.text);
@@ -162,7 +162,7 @@ SECTIONS {
src/mon_markings.o(.text);
src/mauville_old_man.o(.text);
src/mail.o(.text);
- asm/menu_helpers.o(.text);
+ src/menu_helpers.o(.text);
src/dewford_trend.o(.text);
src/heal_location.o(.text);
src/region_map.o(.text);
@@ -244,7 +244,6 @@ SECTIONS {
asm/battle_frontier_2.o(.text);
src/item_menu.o(.text);
src/list_menu.o(.text);
- asm/menu_indicators.o(.text);
src/unk_text_util.o(.text);
src/save_location.o(.text);
src/item_icon.o(.text);
@@ -303,56 +302,56 @@ SECTIONS {
src/librfu_rfu.o(.text);
asm/librfu.o(.text);
asm/libagbsyscall.o(.text);
- tools/agbcc/lib/libgcc.a:_call_via_rX.o(.text);
- tools/agbcc/lib/libgcc.a:_divdi3.o(.text);
- tools/agbcc/lib/libgcc.a:_divsi3.o(.text);
- tools/agbcc/lib/libgcc.a:_dvmd_tls.o(.text);
- tools/agbcc/lib/libgcc.a:_fixunsdfsi.o(.text);
- tools/agbcc/lib/libgcc.a:_fixunssfsi.o(.text);
- tools/agbcc/lib/libgcc.a:_modsi3.o(.text);
- tools/agbcc/lib/libgcc.a:_muldi3.o(.text);
- tools/agbcc/lib/libgcc.a:_udivdi3.o(.text);
- tools/agbcc/lib/libgcc.a:_udivsi3.o(.text);
- tools/agbcc/lib/libgcc.a:_umodsi3.o(.text);
- tools/agbcc/lib/libgcc.a:dp-bit.o(.text);
- tools/agbcc/lib/libgcc.a:fp-bit.o(.text);
- tools/agbcc/lib/libgcc.a:_lshrdi3.o(.text);
- tools/agbcc/lib/libgcc.a:_negdi2.o(.text);
- tools/agbcc/lib/libc.a:memcpy.o(.text);
- tools/agbcc/lib/libc.a:memset.o(.text);
- tools/agbcc/lib/libc.a:strcmp.o(.text);
- tools/agbcc/lib/libc.a:strcpy.o(.text);
- tools/agbcc/lib/libc.a:vfprintf.o(.text);
- tools/agbcc/lib/libc.a:vsprintf.o(.text);
- tools/agbcc/lib/libc.a:fvwrite.o(.text);
- tools/agbcc/lib/libc.a:locale.o(.text);
- tools/agbcc/lib/libc.a:findfp.o(.text);
- tools/agbcc/lib/libc.a:fflush.o(.text);
- tools/agbcc/lib/libc.a:wsetup.o(.text);
- tools/agbcc/lib/libc.a:mbtowc_r.o(.text);
- tools/agbcc/lib/libc.a:s_isinf.o(.text);
- tools/agbcc/lib/libc.a:s_isnan.o(.text);
- tools/agbcc/lib/libc.a:memchr.o(.text);
- tools/agbcc/lib/libc.a:strlen.o(.text);
- tools/agbcc/lib/libc.a:dtoa.o(.text);
- tools/agbcc/lib/libc.a:memmove.o(.text);
- tools/agbcc/lib/libc.a:stdio.o(.text);
- tools/agbcc/lib/libc.a:mprec.o(.text);
- tools/agbcc/lib/libc.a:mallocr.o(.text);
- tools/agbcc/lib/libc.a:fwalk.o(.text);
- tools/agbcc/lib/libc.a:freer.o(.text);
- tools/agbcc/lib/libc.a:makebuf.o(.text);
- tools/agbcc/lib/libc.a:readr.o(.text);
- tools/agbcc/lib/libc.a:writer.o(.text);
- tools/agbcc/lib/libc.a:lseekr.o(.text);
- tools/agbcc/lib/libc.a:closer.o(.text);
- tools/agbcc/lib/libc.a:callocr.o(.text);
- tools/agbcc/lib/libc.a:sbrkr.o(.text);
- tools/agbcc/lib/libc.a:mlock.o(.text);
- tools/agbcc/lib/libc.a:fstatr.o(.text);
- tools/agbcc/lib/libc.a:libcfunc.o(.text);
- tools/agbcc/lib/libc.a:syscalls.o(.text);
- tools/agbcc/lib/libc.a:errno.o(.text);
+ *libgcc.a:_call_via_rX.o(.text);
+ *libgcc.a:_divdi3.o(.text);
+ *libgcc.a:_divsi3.o(.text);
+ *libgcc.a:_dvmd_tls.o(.text);
+ *libgcc.a:_fixunsdfsi.o(.text);
+ *libgcc.a:_fixunssfsi.o(.text);
+ *libgcc.a:_modsi3.o(.text);
+ *libgcc.a:_muldi3.o(.text);
+ *libgcc.a:_udivdi3.o(.text);
+ *libgcc.a:_udivsi3.o(.text);
+ *libgcc.a:_umodsi3.o(.text);
+ *libgcc.a:dp-bit.o(.text);
+ *libgcc.a:fp-bit.o(.text);
+ *libgcc.a:_lshrdi3.o(.text);
+ *libgcc.a:_negdi2.o(.text);
+ *libc.a:memcpy.o(.text);
+ *libc.a:memset.o(.text);
+ *libc.a:strcmp.o(.text);
+ *libc.a:strcpy.o(.text);
+ *libc.a:vfprintf.o(.text);
+ *libc.a:vsprintf.o(.text);
+ *libc.a:fvwrite.o(.text);
+ *libc.a:locale.o(.text);
+ *libc.a:findfp.o(.text);
+ *libc.a:fflush.o(.text);
+ *libc.a:wsetup.o(.text);
+ *libc.a:mbtowc_r.o(.text);
+ *libc.a:s_isinf.o(.text);
+ *libc.a:s_isnan.o(.text);
+ *libc.a:memchr.o(.text);
+ *libc.a:strlen.o(.text);
+ *libc.a:dtoa.o(.text);
+ *libc.a:memmove.o(.text);
+ *libc.a:stdio.o(.text);
+ *libc.a:mprec.o(.text);
+ *libc.a:mallocr.o(.text);
+ *libc.a:fwalk.o(.text);
+ *libc.a:freer.o(.text);
+ *libc.a:makebuf.o(.text);
+ *libc.a:readr.o(.text);
+ *libc.a:writer.o(.text);
+ *libc.a:lseekr.o(.text);
+ *libc.a:closer.o(.text);
+ *libc.a:callocr.o(.text);
+ *libc.a:sbrkr.o(.text);
+ *libc.a:mlock.o(.text);
+ *libc.a:fstatr.o(.text);
+ *libc.a:libcfunc.o(.text);
+ *libc.a:syscalls.o(.text);
+ *libc.a:errno.o(.text);
src/libisagbprn.o(.text);
} =0
@@ -371,7 +370,7 @@ SECTIONS {
data/rom_8011DC0.o(.rodata);
src/rtc.o(.rodata);
src/main_menu.o(.rodata);
- data/battle_1.o(.rodata);
+ src/rom_8034C54.o(.rodata);
data/data2b.o(.rodata);
src/battle_main.o(.rodata);
src/battle_util.o(.rodata);
@@ -404,7 +403,7 @@ SECTIONS {
src/text_window.o(.rodata);
src/scrcmd.o(.rodata);
src/coord_event_weather.o(.rodata);
- data/field_tasks.o(.rodata);
+ src/field_tasks.o(.rodata);
src/reset_rtc_screen.o(.rodata);
src/start_menu.o(.rodata);
src/tileset_anims.o(.rodata);
@@ -421,7 +420,7 @@ SECTIONS {
data/cable_club.o(.rodata);
src/trainer_see.o(.rodata);
src/wild_encounter.o(.rodata);
- data/field_effect.o(.rodata);
+ src/field_effect.o(.rodata);
src/option_menu.o(.rodata);
src/pokedex.o(.rodata);
data/pokedex.o(.rodata);
@@ -439,7 +438,7 @@ SECTIONS {
src/naming_screen.o(.rodata);
src/money.o(.rodata);
data/contest_effect.o(.rodata);
- data/record_mixing.o(.rodata);
+ src/record_mixing.o(.rodata);
src/secret_base.o(.rodata);
src/tv.o(.rodata);
data/contest_link_80F57C4.o(.rodata);
@@ -455,7 +454,7 @@ SECTIONS {
src/mon_markings.o(.rodata);
src/mauville_old_man.o(.rodata);
src/mail.o(.rodata);
- data/menu_helpers.o(.rodata);
+ src/menu_helpers.o(.rodata);
src/heal_location.o(.rodata);
src/region_map.o(.rodata);
data/cute_sketch.o(.rodata);
@@ -519,7 +518,7 @@ SECTIONS {
src/menu.o(.rodata);
data/battle_frontier_2.o(.rodata);
src/item_menu.o(.rodata);
- data/menu_indicators.o(.rodata);
+ src/list_menu.o(.rodata);
src/save_location.o(.rodata);
src/item_icon.o(.rodata);
data/party_menu.o(.rodata);
@@ -1091,11 +1090,11 @@ SECTIONS {
src/agb_flash_le.o(.rodata);
src/siirtc.o(.rodata);
data/librfu_rodata.o(.rodata);
- tools/agbcc/lib/libgcc.a:_divdi3.o(.rodata);
- tools/agbcc/lib/libgcc.a:_udivdi3.o(.rodata);
- tools/agbcc/lib/libc.a(.rodata);
- tools/agbcc/lib/libc.a(.data);
- tools/agbcc/lib/libc.a:syscalls.o(.rodata);
+ *libgcc.a:_divdi3.o(.rodata);
+ *libgcc.a:_udivdi3.o(.rodata);
+ *libc.a(.rodata);
+ *libc.a(.data);
+ *libc.a:syscalls.o(.rodata);
src/libisagbprn.o(.rodata);
} =0
diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c
index e956fd44f..2316b9759 100644
--- a/src/battle_anim_sound_tasks.c
+++ b/src/battle_anim_sound_tasks.c
@@ -386,7 +386,7 @@ void sub_8159308(u8 taskId)
DestroyAnimVisualTask(taskId);
}
#else
-ASM_DIRECT
+NAKED
void sub_8159308(u8 taskId)
{
asm_unified(" push {r4,r5,lr}\n\
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 0a8bf3ed7..9ef45020d 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -648,7 +648,7 @@ static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
}
#else
-ASM_DIRECT
+NAKED
static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
{
asm(".syntax unified\n\
diff --git a/src/battle_main.c b/src/battle_main.c
index 70eebed85..8649209c0 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -1830,7 +1830,7 @@ static void FreeRestoreBattleData(void)
gScanlineEffect.state = 3;
gMain.inBattle = 0;
ZeroEnemyPartyMons();
- m4aSongNumStop(0x5A);
+ m4aSongNumStop(SE_HINSI);
FreeMonSpritesGfx();
FreeBattleSpritesData();
FreeBattleResources();
@@ -3591,7 +3591,7 @@ static void BattleIntroOpponent1SendsOutMonAnimation(void)
gBattleMainFunc = BattleIntroRecordMonsToDex;
}
#else
-ASM_DIRECT
+NAKED
static void BattleIntroOpponent1SendsOutMonAnimation(void)
{
asm(".syntax unified\n\
@@ -5224,7 +5224,7 @@ static void ReturnFromBattleToOverworld(void)
SetRoamerInactive();
}
- m4aSongNumStop(0x5A);
+ m4aSongNumStop(SE_HINSI);
SetMainCallback2(gMain.savedCallback);
}
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index d1a18e38f..811aba128 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -3357,7 +3357,7 @@ static void atk23_getexp(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gBattleMons[0].hp && !gBattleStruct->wildVictorySong)
{
BattleStopLowHpSound();
- PlayBGM(0x161);
+ PlayBGM(MUS_KACHI2);
gBattleStruct->wildVictorySong++;
}
@@ -3608,7 +3608,7 @@ static void atk24(void)
}
}
#else
-ASM_DIRECT
+NAKED
static void atk24(void)
{
asm("\n\
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 97e8f7041..48a2ef257 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -51,8 +51,6 @@ struct TrainerBattleParameter
u8 ptrType;
};
-extern void (*gFieldCallback)(void);
-
extern bool8 InBattlePyramid(void);
extern bool8 InBattlePike(void);
extern bool32 InTrainerHill(void);
@@ -396,7 +394,7 @@ static void DoStandardWildBattle(void)
gBattleTypeFlags = 0;
if (InBattlePyramid())
{
- VarSet(VAR_0x400E, 0);
+ VarSet(VAR_TEMP_E, 0);
gBattleTypeFlags |= BATTLE_TYPE_PYRAMID;
}
CreateBattleStartTask(GetWildBattleTransition(), 0);
@@ -1260,7 +1258,7 @@ void BattleSetup_StartTrainerBattle(void)
if (InBattlePyramid())
{
- VarSet(VAR_0x400E, 0);
+ VarSet(VAR_TEMP_E, 0);
gBattleTypeFlags |= BATTLE_TYPE_PYRAMID;
if (gNoOfApproachingTrainers == 2)
diff --git a/src/battle_tv.c b/src/battle_tv.c
index 777b4846f..e5d97be30 100644
--- a/src/battle_tv.c
+++ b/src/battle_tv.c
@@ -812,7 +812,7 @@ void TryPutLinkBattleTvShowOnAir(void)
}
#else
-ASM_DIRECT
+NAKED
void TryPutLinkBattleTvShowOnAir(void)
{
asm_unified(
diff --git a/src/berry_blender.c b/src/berry_blender.c
index c3b0cc80d..2edb14748 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -151,15 +151,14 @@ extern const u8 gText_Space[];
extern const u8 gText_BlenderMaxSpeedRecord[];
extern const u8 gText_234Players[];
-extern void sub_81978B0(u16);
extern void sub_800A418(void);
extern u8 sub_800A9D8(void);
-extern bool8 sub_800A4D8(u8);
extern void sub_809882C(u8, u16, u8);
extern void copy_textbox_border_tile_patterns_to_vram(u8, u16, u8);
extern void sub_81AABF0(void (*callback)(void));
extern void sub_800B4C0(void);
extern void ClearLinkCallback(void);
+extern void sub_8009F8C(void);
extern void sub_8153430(void);
extern bool8 sub_8153474(void);
extern void sub_80EECEC(void);
@@ -818,7 +817,7 @@ static bool8 LoadBerryBlenderGfx(void)
switch (sBerryBlenderData->loadGfxState)
{
case 0:
- sBerryBlenderData->tilesBuffer = AllocZeroed(sub_8034974(sBlenderCenterGfx) + 100);
+ sBerryBlenderData->tilesBuffer = AllocZeroed(GetDecompressedDataSize(sBlenderCenterGfx) + 100);
LZDecompressWram(sBlenderCenterGfx, sBerryBlenderData->tilesBuffer);
sBerryBlenderData->loadGfxState++;
break;
@@ -829,7 +828,7 @@ static bool8 LoadBerryBlenderGfx(void)
sBerryBlenderData->loadGfxState++;
break;
case 2:
- LoadBgTiles(2, sBerryBlenderData->tilesBuffer, sub_8034974(sBlenderCenterGfx), 0);
+ LoadBgTiles(2, sBerryBlenderData->tilesBuffer, GetDecompressedDataSize(sBlenderCenterGfx), 0);
sBerryBlenderData->loadGfxState++;
break;
case 3:
@@ -837,7 +836,7 @@ static bool8 LoadBerryBlenderGfx(void)
sBerryBlenderData->loadGfxState++;
break;
case 4:
- LoadBgTiles(1, sBerryBlenderData->tilesBuffer, sub_8034974(gUnknown_08D91DB8), 0);
+ LoadBgTiles(1, sBerryBlenderData->tilesBuffer, GetDecompressedDataSize(gUnknown_08D91DB8), 0);
sBerryBlenderData->loadGfxState++;
break;
case 5:
@@ -845,7 +844,7 @@ static bool8 LoadBerryBlenderGfx(void)
sBerryBlenderData->loadGfxState++;
break;
case 6:
- CopyToBgTilemapBuffer(1, sBerryBlenderData->tilesBuffer, sub_8034974(gUnknown_08D927EC), 0);
+ CopyToBgTilemapBuffer(1, sBerryBlenderData->tilesBuffer, GetDecompressedDataSize(gUnknown_08D927EC), 0);
CopyBgTilemapBufferToVram(1);
sBerryBlenderData->loadGfxState++;
break;
diff --git a/src/bg.c b/src/bg.c
index 975c72a94..2f4cdc856 100644
--- a/src/bg.c
+++ b/src/bg.c
@@ -463,7 +463,7 @@ bool8 IsDma3ManagerBusyWithBgCopy(void)
return FALSE;
}
#else
-ASM_DIRECT
+NAKED
bool8 IsDma3ManagerBusyWithBgCopy(void)
{
asm("push {r4-r7,lr}\n\
@@ -1048,7 +1048,7 @@ void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8
}
}
}*/
-ASM_DIRECT
+NAKED
void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2)
{
asm("push {r4-r7,lr}\n\
@@ -1495,7 +1495,7 @@ void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 pal
*dest = test;
}
#else
-ASM_DIRECT
+NAKED
void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2)
{
asm("push {r4-r6,lr}\n\
diff --git a/src/bike.c b/src/bike.c
index 782eceb8e..e827707cd 100644
--- a/src/bike.c
+++ b/src/bike.c
@@ -13,7 +13,6 @@
extern bool8 gBikeCyclingChallenge;
extern u8 gBikeCollisions;
-extern u8 sub_8093514(u8 direction);
extern u8 sub_808B980(u8 direction);
extern u8 sub_808B9BC(u8 direction);
extern u8 sub_808B9A4(u8 direction);
diff --git a/src/daycare.c b/src/daycare.c
index d567ff79a..5a6aa2b40 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "pokemon.h"
+#include "battle.h"
#include "daycare.h"
#include "string_util.h"
#include "constants/species.h"
@@ -22,8 +23,6 @@
#define EGG_MOVES_ARRAY_COUNT 10
#define EGG_LVL_UP_MOVES_ARRAY_COUNT 50
-extern u16 gMoveToLearn;
-
// text
extern const u8 gText_MaleSymbol4[];
extern const u8 gText_FemaleSymbol4[];
@@ -48,7 +47,7 @@ extern void sub_81B9328(void);
extern void CB2_ReturnToField(void);
// this file's functions
-static void ClearDaycareMonMisc(struct DaycareMiscMon *misc);
+static void ClearDaycareMonMail(struct DayCareMail *mail);
static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare);
static u8 GetDaycareCompatibilityScore(struct DayCare *daycare);
static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y);
@@ -180,13 +179,13 @@ static void StorePokemonInDaycare(struct Pokemon *mon, struct DaycareMon *daycar
{
u8 mailId;
- StringCopy(daycareMon->misc.OT_name, gSaveBlock2Ptr->playerName);
- GetMonNick(mon, daycareMon->misc.monName);
- StripExtCtrlCodes(daycareMon->misc.monName);
- daycareMon->misc.gameLanguage = LANGUAGE_ENGLISH;
- daycareMon->misc.monLanguage = GetMonData(mon, MON_DATA_LANGUAGE);
+ StringCopy(daycareMon->mail.OT_name, gSaveBlock2Ptr->playerName);
+ GetMonNick(mon, daycareMon->mail.monName);
+ StripExtCtrlCodes(daycareMon->mail.monName);
+ daycareMon->mail.gameLanguage = LANGUAGE_ENGLISH;
+ daycareMon->mail.monLanguage = GetMonData(mon, MON_DATA_LANGUAGE);
mailId = GetMonData(mon, MON_DATA_MAIL);
- daycareMon->misc.mail = gSaveBlock1Ptr->mail[mailId];
+ daycareMon->mail.message = gSaveBlock1Ptr->mail[mailId];
TakeMailFromMon(mon);
}
@@ -220,10 +219,10 @@ static void ShiftDaycareSlots(struct DayCare *daycare)
daycare->mons[0].mon = daycare->mons[1].mon;
ZeroBoxMonData(&daycare->mons[1].mon);
- daycare->mons[0].misc = daycare->mons[1].misc;
+ daycare->mons[0].mail = daycare->mons[1].mail;
daycare->mons[0].steps = daycare->mons[1].steps;
daycare->mons[1].steps = 0;
- ClearDaycareMonMisc(&daycare->mons[1].misc);
+ ClearDaycareMonMail(&daycare->mons[1].mail);
}
}
@@ -278,10 +277,10 @@ static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon)
}
gPlayerParty[PARTY_SIZE - 1] = pokemon;
- if (daycareMon->misc.mail.itemId)
+ if (daycareMon->mail.message.itemId)
{
- GiveMailToMon2(&gPlayerParty[PARTY_SIZE - 1], &daycareMon->misc.mail);
- ClearDaycareMonMisc(&daycareMon->misc);
+ GiveMailToMon2(&gPlayerParty[PARTY_SIZE - 1], &daycareMon->mail.message);
+ ClearDaycareMonMail(&daycareMon->mail);
}
ZeroBoxMonData(&daycareMon->mon);
@@ -365,23 +364,23 @@ u8 GetNumLevelsGainedFromDaycare(void)
return 0;
}
-static void ClearDaycareMonMisc(struct DaycareMiscMon *misc)
+static void ClearDaycareMonMail(struct DayCareMail *mail)
{
s32 i;
for (i = 0; i < OT_NAME_LENGTH + 1; i++)
- misc->OT_name[i] = 0;
+ mail->OT_name[i] = 0;
for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++)
- misc->monName[i] = 0;
+ mail->monName[i] = 0;
- ClearMailStruct(&misc->mail);
+ ClearMailStruct(&mail->message);
}
static void ClearDaycareMon(struct DaycareMon *daycareMon)
{
ZeroBoxMonData(&daycareMon->mon);
daycareMon->steps = 0;
- ClearDaycareMonMisc(&daycareMon->misc);
+ ClearDaycareMonMail(&daycareMon->mail);
}
static void ClearAllDaycareData(struct DayCare *daycare)
diff --git a/src/decompress.c b/src/decompress.c
index fb288bf4a..83a9db0b6 100644
--- a/src/decompress.c
+++ b/src/decompress.c
@@ -117,7 +117,7 @@ void Unused_LZDecompressWramIndirect(const void **src, void *dest)
}
// This one (unused) function is really challenging, won't even try to decompile it.
-ASM_DIRECT
+NAKED
void sub_803471C()
{
asm(".syntax unified\n\
@@ -459,7 +459,7 @@ _08034964:\n\
.syntax divided");
}
-u32 sub_8034974(const u8 *ptr)
+u32 GetDecompressedDataSize(const u8 *ptr)
{
return (ptr[3] << 16) | (ptr[2] << 8) | (ptr[1]);
}
diff --git a/src/decoration.c b/src/decoration.c
index f376c2115..08287a3cc 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -21,7 +21,6 @@
#include "list_menu.h"
#include "menu_helpers.h"
#include "menu.h"
-#include "menu_indicators.h"
#include "sound.h"
#include "event_scripts.h"
#include "event_data.h"
@@ -38,8 +37,6 @@
#include "decoration.h"
#include "graphics.h"
-extern void (*gFieldCallback)(void);
-
// Static type declarations
#define OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG 0xbe5
@@ -1294,7 +1291,7 @@ void sub_8128060(u8 taskId)
gTasks[taskId].data[2] = 2;
break;
case 2:
- if (sub_80ABDFC() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
{
gTasks[taskId].data[12] = 0;
sub_8128FD8(taskId);
@@ -1710,7 +1707,7 @@ void sub_8128C64(u8 taskId)
data[2] ++;
break;
case 3:
- if (sub_80ABDFC() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
{
gTasks[taskId].func = sub_812764C;
}
@@ -2220,7 +2217,7 @@ void sub_81298EC(u8 taskId)
gTasks[taskId].data[2] = 3;
break;
case 3:
- if (sub_80ABDFC() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
{
StringExpandPlaceholders(gStringVar4, gText_DecorationReturnedToPC);
DisplayItemMessageOnField(taskId, gStringVar4, sub_8129D64);
@@ -2290,7 +2287,7 @@ void sub_8129ABC(u8 taskId)
data[2] = 2;
break;
case 2:
- if (sub_80ABDFC() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
{
data[12] = 1;
sub_8129B34(taskId);
@@ -2616,7 +2613,7 @@ void sub_812A2C4(u8 taskId)
data[2] ++;
break;
case 3:
- if (sub_80ABDFC() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
{
gTasks[taskId].func = sub_8126B80;
}
diff --git a/src/dewford_trend.c b/src/dewford_trend.c
index 3ceec6563..44b42c123 100644
--- a/src/dewford_trend.c
+++ b/src/dewford_trend.c
@@ -158,7 +158,7 @@ static void sub_8122804(struct EasyChatPair *s, u16 b, u8 c)
}
}
-void sub_812287C(void *a, u32 b, u8 unused)
+void ReceiveEasyChatPairsData(void *a, u32 b, u8 unused)
{
u16 i, j, r3, players;
struct EasyChatPair *buffer1, *buffer2, *src, *dst, *foo_of_buffer2;
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index e64a98ab1..1ed38c67e 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -25,6 +25,7 @@
#include "window.h"
#include "constants/abilities.h"
#include "daycare.h"
+#include "overworld.h"
#include "battle.h" // to get rid of later
struct EggHatchData
@@ -44,8 +45,6 @@ struct EggHatchData
u8 textColor[3];
};
-extern void (*gFieldCallback)(void);
-
extern const struct CompressedSpriteSheet gMonFrontPicTable[];
extern const u8 gBattleTextboxTiles[];
extern const u8 gBattleTextboxTilemap[];
@@ -391,13 +390,13 @@ static bool8 sub_807158C(struct DayCare *daycare, u8 daycareId)
struct DaycareMon *daycareMon = &daycare->mons[daycareId];
GetBoxMonNick(&daycareMon->mon, nick);
- if (daycareMon->misc.mail.itemId != 0
- && (StringCompareWithoutExtCtrlCodes(nick, daycareMon->misc.monName) != 0
- || StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->misc.OT_name) != 0))
+ if (daycareMon->mail.message.itemId != 0
+ && (StringCompareWithoutExtCtrlCodes(nick, daycareMon->mail.monName) != 0
+ || StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->mail.OT_name) != 0))
{
StringCopy(gStringVar1, nick);
- TVShowConvertInternationalString(gStringVar2, daycareMon->misc.OT_name, daycareMon->misc.gameLanguage);
- TVShowConvertInternationalString(gStringVar3, daycareMon->misc.monName, daycareMon->misc.monLanguage);
+ TVShowConvertInternationalString(gStringVar2, daycareMon->mail.OT_name, daycareMon->mail.gameLanguage);
+ TVShowConvertInternationalString(gStringVar3, daycareMon->mail.monName, daycareMon->mail.monLanguage);
return TRUE;
}
return FALSE;
@@ -575,10 +574,10 @@ static void Task_EggHatchPlayBGM(u8 taskID)
play_some_sound();
}
if (gTasks[taskID].data[0] == 1)
- PlayBGM(376);
+ PlayBGM(MUS_ME_SHINKA);
if (gTasks[taskID].data[0] > 60)
{
- PlayBGM(377);
+ PlayBGM(MUS_SHINKA);
DestroyTask(taskID);
// UB: task is destroyed, yet the value is incremented
}
diff --git a/src/field_effect.c b/src/field_effect.c
index 628dc776a..692090779 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -1,15 +1,3897 @@
// Includes
#include "global.h"
+#include "field_effect.h"
+#include "battle_dome_cards.h"
+#include "decompress.h"
+#include "field_camera.h"
+#include "field_effect_helpers.h"
+#include "field_map_obj.h"
+#include "field_map_obj_helpers.h"
+#include "field_player_avatar.h"
+#include "field_screen.h"
+#include "field_weather.h"
+#include "fieldmap.h"
+#include "fldeff_groundshake.h"
+#include "gpu_regs.h"
+#include "main.h"
+#include "menu.h"
+#include "metatile_behavior.h"
+#include "overworld.h"
+#include "palette.h"
+#include "party_menu.h"
+#include "pokemon.h"
+#include "script.h"
+#include "sound.h"
+#include "sprite.h"
+#include "task.h"
+#include "trig.h"
+#include "util.h"
+#include "constants/rgb.h"
+#include "constants/songs.h"
+
+#define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))}
+
+EWRAM_DATA s32 gFieldEffectArguments[8] = {0};
// Static type declarations
// Static RAM declarations
-IWRAM_DATA u8 gUnknown_03000F58[32];
+static IWRAM_DATA u8 sActiveList[32];
// Static ROM declarations
+extern u8 *gFieldEffectScriptPointers[];
+
// .rodata
+const u32 gNewGameBirchPic[] = INCBIN_U32("graphics/birch_speech/birch.4bpp");
+const u32 gUnusedBirchBeauty[] = INCBIN_U32("graphics/unused/intro_birch_beauty.4bpp");
+const u16 gNewGameBirchPalette[16] = INCBIN_U16("graphics/birch_speech/birch.gbapal");
+const u32 gSpriteImage_855A970[] = INCBIN_U32("graphics/misc/pokeball_glow.4bpp");
+const u16 gFieldEffectObjectPalette4[16] = INCBIN_U16("graphics/map_objects/palettes/field_effect_object_palette_04.gbapal");
+const u32 gSpriteImage_855A9B0[] = INCBIN_U32("graphics/misc/pokecenter_monitor/0.4bpp");
+const u32 gSpriteImage_855AA70[] = INCBIN_U32("graphics/misc/pokecenter_monitor/1.4bpp");
+const u32 gSpriteImage_855AB30[] = INCBIN_U32("graphics/misc/big_hof_monitor.4bpp");
+const u8 gSpriteImage_855AD30[] = INCBIN_U8("graphics/misc/small_hof_monitor.4bpp");
+const u16 gFieldEffectObjectPalette5[16] = INCBIN_U16("graphics/map_objects/palettes/field_effect_object_palette_05.gbapal");
+
+// Graphics for the lights streaking past your Pokemon when it uses a field move.
+const u32 gFieldMoveStreaksTiles[] = INCBIN_U32("graphics/misc/field_move_streaks.4bpp");
+const u16 gFieldMoveStreaksPalette[16] = INCBIN_U16("graphics/misc/field_move_streaks.gbapal");
+const u16 gFieldMoveStreaksTilemap[] = INCBIN_U16("graphics/misc/field_move_streaks_map.bin");
+
+// The following light streaks effect is used when the map is dark (e.g. a cave).
+const u32 gDarknessFieldMoveStreaksTiles[] = INCBIN_U32("graphics/misc/darkness_field_move_streaks.4bpp");
+const u16 gDarknessFieldMoveStreaksPalette[16] = INCBIN_U16("graphics/misc/darkness_field_move_streaks.gbapal");
+const u16 gDarknessFieldMoveStreaksTilemap[] = INCBIN_U16("graphics/misc/darkness_field_move_streaks_map.bin");
+
+const u16 gUnknown_0855B610[16] = INCBIN_U16("graphics/misc/spotlight.gbapal");
+const u8 gUnknown_0855B630[] = INCBIN_U8("graphics/misc/spotlight.4bpp");
+const u8 gUnknown_0855C170[] = INCBIN_U8("graphics/unknown/unknown_55C170.4bpp");
+const u8 gUnknown_0855C190[] = INCBIN_U8("graphics/unknown/unknown_55C190.4bpp");
+const u8 gUnknown_0855C1B0[] = INCBIN_U8("graphics/unknown/unknown_55C1B0.4bpp");
+const u8 gUnknown_0855C1D0[] = INCBIN_U8("graphics/unknown/unknown_55C1D0.4bpp");
+
+bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = {
+ FieldEffectCmd_loadtiles,
+ FieldEffectCmd_loadfadedpal,
+ FieldEffectCmd_loadpal,
+ FieldEffectCmd_callnative,
+ FieldEffectCmd_end,
+ FieldEffectCmd_loadgfx_callnative,
+ FieldEffectCmd_loadtiles_callnative,
+ FieldEffectCmd_loadfadedpal_callnative,
+};
+
+const struct OamData gNewGameBirchOamAttributes = {.size = 3};
+const struct OamData gOamData_855C218 = {.size = 0};
+const struct OamData gOamData_855C220 = {.size = 1};
+
+const struct SpriteFrameImage gNewGameBirchPicTable[] = {
+ obj_frame_tiles(gNewGameBirchPic)
+};
+const struct SpritePalette gNewGameBirchObjectPaletteInfo = {.data = gNewGameBirchPalette, .tag = 0x1006};
+
+const union AnimCmd gNewGameBirchImageAnim[] = {
+ ANIMCMD_FRAME(.imageValue = 0, .duration = 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gNewGameBirchImageAnimTable[] = {
+ gNewGameBirchImageAnim
+};
+
+const struct SpriteTemplate gNewGameBirchObjectTemplate = {
+ .tileTag = 0xffff,
+ .paletteTag = 4102,
+ .oam = &gNewGameBirchOamAttributes,
+ .anims = gNewGameBirchImageAnimTable,
+ .images = gNewGameBirchPicTable,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+const struct SpritePalette gFieldEffectObjectPaletteInfo4 = {.data = gFieldEffectObjectPalette4, .tag = 0x1007};
+const struct SpritePalette gFieldEffectObjectPaletteInfo5 = {.data = gFieldEffectObjectPalette5, .tag = 0x1010};
+const struct OamData gOamData_855C26C = {
+ .shape = 1,
+ .size = 2
+};
+
+const struct SpriteFrameImage gSpriteImageTable_855C274[] = {
+ obj_frame_tiles(gSpriteImage_855A970)
+};
+
+const struct SpriteFrameImage gSpriteImageTable_855C27C[] = {
+ obj_frame_tiles(gSpriteImage_855A9B0),
+ obj_frame_tiles(gSpriteImage_855AA70)
+};
+
+const struct SpriteFrameImage gSpriteImageTable_855C28C[] = {
+ obj_frame_tiles(gSpriteImage_855AB30)
+};
+
+const struct SpriteFrameImage gSpriteImageTable_855C294[] = {
+ {.data = gSpriteImage_855AD30, .size = 0x200} // the macro breaks down here
+};
+
+const struct Subsprite gSubspriteTable_855C29C[] = {
+ {.x = -12, .y = -8, .priority = 2, .tileOffset = 0, .shape = 1, .size = 0},
+ {.x = 4, .y = -8, .priority = 2, .tileOffset = 2, .shape = 0, .size = 0},
+ {.x = -12, .y = 0, .priority = 2, .tileOffset = 3, .shape = 1, .size = 0},
+ {.x = 4, .y = 0, .priority = 2, .tileOffset = 5, .shape = 0, .size = 0}
+};
+
+const struct SubspriteTable gUnknown_0855C2AC = subsprite_table(gSubspriteTable_855C29C);
+
+const struct Subsprite gSubspriteTable_855C2B4[] = {
+ {.x = -32, .y = -8, .priority = 2, .tileOffset = 0, .shape = 1, .size = 1},
+ {.x = 0, .y = -8, .priority = 2, .tileOffset = 4, .shape = 1, .size = 1},
+ {.x = -32, .y = 0, .priority = 2, .tileOffset = 8, .shape = 1, .size = 1},
+ {.x = 0, .y = 0, .priority = 2, .tileOffset = 12, .shape = 1, .size = 1}
+};
+
+const struct SubspriteTable gUnknown_0855C2C4 = subsprite_table(gSubspriteTable_855C2B4);
+
+const union AnimCmd gSpriteAnim_855C2CC[] = {
+ ANIMCMD_FRAME(.imageValue = 0, .duration = 1),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gSpriteAnim_855C2D4[] = {
+ ANIMCMD_FRAME(.imageValue = 0, .duration = 16),
+ ANIMCMD_FRAME(.imageValue = 1, .duration = 16),
+ ANIMCMD_FRAME(.imageValue = 0, .duration = 16),
+ ANIMCMD_FRAME(.imageValue = 1, .duration = 16),
+ ANIMCMD_FRAME(.imageValue = 0, .duration = 16),
+ ANIMCMD_FRAME(.imageValue = 1, .duration = 16),
+ ANIMCMD_FRAME(.imageValue = 0, .duration = 16),
+ ANIMCMD_FRAME(.imageValue = 1, .duration = 16),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_855C2F8[] = {
+ gSpriteAnim_855C2CC,
+ gSpriteAnim_855C2D4
+};
+
+const union AnimCmd *const gSpriteAnimTable_855C300[] = {
+ gSpriteAnim_855C2CC
+};
+
+const struct SpriteTemplate gSpriteTemplate_855C304 = {
+ .tileTag = 0xffff,
+ .paletteTag = 4103,
+ .oam = &gOamData_855C218,
+ .anims = gSpriteAnimTable_855C2F8,
+ .images = gSpriteImageTable_855C274,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_PokeballGlow
+};
+
+const struct SpriteTemplate gSpriteTemplate_855C31C = {
+ .tileTag = 0xffff,
+ .paletteTag = 4100,
+ .oam = &gOamData_855C220,
+ .anims = gSpriteAnimTable_855C2F8,
+ .images = gSpriteImageTable_855C27C,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_PokecenterMonitor
+};
+
+const struct SpriteTemplate gSpriteTemplate_855C334 = {
+ .tileTag = 0xffff,
+ .paletteTag = 4112,
+ .oam = &gOamData_855C220,
+ .anims = gSpriteAnimTable_855C300,
+ .images = gSpriteImageTable_855C28C,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_HallOfFameMonitor
+};
+
+const struct SpriteTemplate gSpriteTemplate_855C34C = {
+ .tileTag = 0xffff,
+ .paletteTag = 4112,
+ .oam = &gOamData_855C26C,
+ .anims = gSpriteAnimTable_855C300,
+ .images = gSpriteImageTable_855C294,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_HallOfFameMonitor
+};
+
+void (*const gUnknown_0855C364[])(struct Task *) = {
+ PokecenterHealEffect_0,
+ PokecenterHealEffect_1,
+ PokecenterHealEffect_2,
+ PokecenterHealEffect_3
+};
+
+void (*const gUnknown_0855C374[])(struct Task *) = {
+ HallOfFameRecordEffect_0,
+ HallOfFameRecordEffect_1,
+ HallOfFameRecordEffect_2,
+ HallOfFameRecordEffect_3
+};
+
+void (*const gUnknown_0855C384[])(struct Sprite *) = {
+ PokeballGlowEffect_0,
+ PokeballGlowEffect_1,
+ PokeballGlowEffect_2,
+ PokeballGlowEffect_3,
+ PokeballGlowEffect_4,
+ PokeballGlowEffect_5,
+ PokeballGlowEffect_6,
+ PokeballGlowEffect_7
+};
+
+const struct Coords16 gUnknown_0855C3A4[] = {
+ {.x = 0, .y = 0},
+ {.x = 6, .y = 0},
+ {.x = 0, .y = 4},
+ {.x = 6, .y = 4},
+ {.x = 0, .y = 8},
+ {.x = 6, .y = 8}
+};
+
+const u8 gUnknown_0855C3BC[] = {16, 12, 8, 0};
+const u8 gUnknown_0855C3C0[] = {16, 12, 8, 0};
+const u8 gUnknown_0855C3C4[] = { 0, 0, 0, 0};
+
+bool8 (*const gUnknown_0855C3C8[])(struct Task *) = {
+ sub_80B6BCC,
+ sub_80B6C74,
+ sub_80B6C90,
+ sub_80B6D04,
+ sub_80B6DBC,
+ sub_80B6DD8,
+ sub_80B6E18,
+};
+
+bool8 (*const gUnknown_0855C3E4[])(struct Task *) = {
+ sub_80B6EC0,
+ sub_80B6EE0,
+ sub_80B6F50,
+ sub_80B6F74,
+ sub_80B6F84,
+ sub_80B6FA8,
+};
+
+bool8 (*const gUnknown_0855C3FC[])(struct Task *) = {
+ sub_80B7114,
+ sub_80B7190,
+ sub_80B71D0,
+ sub_80B7230,
+ sub_80B7270,
+ sub_80B72D0,
+ sub_80B72F4,
+};
+
+bool8 (*const gUnknown_0855C418[])(struct Task *, struct MapObject *) = {
+ sub_80B73D0,
+ waterfall_1_do_anim_probably,
+ waterfall_2_wait_anim_finish_probably,
+ sub_80B7450,
+ sub_80B7478,
+};
+
+bool8 (*const gUnknown_0855C42C[])(struct Task *) = {
+ dive_1_lock,
+ dive_2_unknown,
+ dive_3_unknown,
+};
+
+bool8 (*const gUnknown_0855C438[])(struct Task *, struct MapObject *, struct Sprite *) = {
+ sub_80B764C,
+ sub_80B7684,
+ sub_80B76B8,
+ sub_80B7704,
+ sub_80B77F8,
+ sub_80B7814,
+};
+
+bool8 (*const gUnknown_0855C450[])(struct Task *, struct MapObject *, struct Sprite *) = {
+ sub_80B78EC,
+ sub_80B791C,
+ sub_80B7968,
+ sub_80B79BC,
+};
+
+bool8 (*const gUnknown_0855C460[])(struct Task *, struct MapObject *, struct Sprite *) = {
+ sub_80B7AE8,
+ sub_80B7B18,
+ sub_80B7B94,
+ sub_80B7BCC,
+ sub_80B7BF4,
+};
+
+void (*const gUnknown_0855C474[])(struct Task *) = {
+ sub_80B7D14,
+ sub_80B7D34,
+};
// .text
+
+u32 FieldEffectStart(u8 id)
+{
+ u8 *script;
+ u32 val;
+
+ FieldEffectActiveListAdd(id);
+
+ script = gFieldEffectScriptPointers[id];
+
+ while (gFieldEffectScriptFuncs[*script](&script, &val))
+ ;
+
+ return val;
+}
+
+bool8 FieldEffectCmd_loadtiles(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_LoadTiles(script);
+ return TRUE;
+}
+
+bool8 FieldEffectCmd_loadfadedpal(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_LoadFadedPalette(script);
+ return TRUE;
+}
+
+bool8 FieldEffectCmd_loadpal(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_LoadPalette(script);
+ return TRUE;
+}
+
+bool8 FieldEffectCmd_callnative(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_CallNative(script, val);
+ return TRUE;
+}
+
+bool8 FieldEffectCmd_end(u8 **script, u32 *val)
+{
+ return FALSE;
+}
+
+bool8 FieldEffectCmd_loadgfx_callnative(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_LoadTiles(script);
+ FieldEffectScript_LoadFadedPalette(script);
+ FieldEffectScript_CallNative(script, val);
+ return TRUE;
+}
+
+bool8 FieldEffectCmd_loadtiles_callnative(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_LoadTiles(script);
+ FieldEffectScript_CallNative(script, val);
+ return TRUE;
+}
+
+bool8 FieldEffectCmd_loadfadedpal_callnative(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_LoadFadedPalette(script);
+ FieldEffectScript_CallNative(script, val);
+ return TRUE;
+}
+
+u32 FieldEffectScript_ReadWord(u8 **script)
+{
+ return (*script)[0]
+ + ((*script)[1] << 8)
+ + ((*script)[2] << 16)
+ + ((*script)[3] << 24);
+}
+
+void FieldEffectScript_LoadTiles(u8 **script)
+{
+ struct SpriteSheet *sheet = (struct SpriteSheet *)FieldEffectScript_ReadWord(script);
+ if (GetSpriteTileStartByTag(sheet->tag) == 0xFFFF)
+ LoadSpriteSheet(sheet);
+ (*script) += 4;
+}
+
+void FieldEffectScript_LoadFadedPalette(u8 **script)
+{
+ struct SpritePalette *palette = (struct SpritePalette *)FieldEffectScript_ReadWord(script);
+ LoadSpritePalette(palette);
+ UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(palette->tag));
+ (*script) += 4;
+}
+
+void FieldEffectScript_LoadPalette(u8 **script)
+{
+ struct SpritePalette *palette = (struct SpritePalette *)FieldEffectScript_ReadWord(script);
+ LoadSpritePalette(palette);
+ (*script) += 4;
+}
+
+void FieldEffectScript_CallNative(u8 **script, u32 *val)
+{
+ u32 (*func)(void) = (u32 (*)(void))FieldEffectScript_ReadWord(script);
+ *val = func();
+ (*script) += 4;
+}
+
+void FieldEffectFreeGraphicsResources(struct Sprite *sprite)
+{
+ u16 sheetTileStart = sprite->sheetTileStart;
+ u32 paletteNum = sprite->oam.paletteNum;
+ DestroySprite(sprite);
+ FieldEffectFreeTilesIfUnused(sheetTileStart);
+ FieldEffectFreePaletteIfUnused(paletteNum);
+}
+
+void FieldEffectStop(struct Sprite *sprite, u8 id)
+{
+ FieldEffectFreeGraphicsResources(sprite);
+ FieldEffectActiveListRemove(id);
+}
+
+void FieldEffectFreeTilesIfUnused(u16 tileStart)
+{
+ u8 i;
+ u16 tag = GetSpriteTileTagByTileStart(tileStart);
+
+ if (tag != 0xFFFF)
+ {
+ for (i = 0; i < MAX_SPRITES; i++)
+ if (gSprites[i].inUse && gSprites[i].usingSheet && tileStart == gSprites[i].sheetTileStart)
+ return;
+ FreeSpriteTilesByTag(tag);
+ }
+}
+
+void FieldEffectFreePaletteIfUnused(u8 paletteNum)
+{
+ u8 i;
+ u16 tag = GetSpritePaletteTagByPaletteNum(paletteNum);
+
+ if (tag != 0xFFFF)
+ {
+ for (i = 0; i < MAX_SPRITES; i++)
+ if (gSprites[i].inUse && gSprites[i].oam.paletteNum == paletteNum)
+ return;
+ FreeSpritePaletteByTag(tag);
+ }
+}
+
+void FieldEffectActiveListClear(void)
+{
+ u8 i;
+ for (i = 0; i < ARRAY_COUNT(sActiveList); i++)
+ sActiveList[i] = 0xFF;
+}
+
+void FieldEffectActiveListAdd(u8 id)
+{
+ u8 i;
+ for (i = 0; i < ARRAY_COUNT(sActiveList); i++)
+ {
+ if (sActiveList[i] == 0xFF)
+ {
+ sActiveList[i] = id;
+ return;
+ }
+ }
+}
+
+void FieldEffectActiveListRemove(u8 id)
+{
+ u8 i;
+ for (i = 0; i < ARRAY_COUNT(sActiveList); i++)
+ {
+ if (sActiveList[i] == id)
+ {
+ sActiveList[i] = 0xFF;
+ return;
+ }
+ }
+}
+
+bool8 FieldEffectActiveListContains(u8 id)
+{
+ u8 i;
+ for (i = 0; i < ARRAY_COUNT(sActiveList); i++)
+ if (sActiveList[i] == id)
+ return TRUE;
+ return FALSE;
+}
+
+u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer)
+{
+ struct SpriteTemplate spriteTemplate;
+ LoadCompressedObjectPaletteOverrideBuffer(&gTrainerFrontPicPaletteTable[trainerSpriteID], buffer);
+ LoadCompressedObjectPicOverrideBuffer(&gTrainerFrontPicTable[trainerSpriteID], buffer);
+ spriteTemplate.tileTag = gTrainerFrontPicTable[trainerSpriteID].tag;
+ spriteTemplate.paletteTag = gTrainerFrontPicPaletteTable[trainerSpriteID].tag;
+ spriteTemplate.oam = &gNewGameBirchOamAttributes;
+ spriteTemplate.anims = gDummySpriteAnimTable;
+ spriteTemplate.images = NULL;
+ spriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
+ spriteTemplate.callback = SpriteCallbackDummy;
+ return CreateSprite(&spriteTemplate, x, y, subpriority);
+}
+
+void LoadTrainerGfx_TrainerCard(u8 gender, u16 palOffset, u8 *dest)
+{
+ LZDecompressVram(gTrainerFrontPicTable[gender].data, dest);
+ LoadCompressedPalette(gTrainerFrontPicPaletteTable[gender].data, palOffset, 0x20);
+}
+
+u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority)
+{
+ LoadSpritePalette(&gNewGameBirchObjectPaletteInfo);
+ return CreateSprite(&gNewGameBirchObjectTemplate, x, y, subpriority);
+}
+
+#ifdef NONMATCHING
+u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y)
+{
+ u16 spriteId = sub_818D7D8(species, 0, 0x8000, 1, x, y, 0, gMonPaletteTable[species].tag);
+ PreservePaletteInWeather(IndexOfSpritePaletteTag(gMonPaletteTable[species].tag) + 0x10);
+ if (spriteId == 0xFFFF)
+ return 0x40;
+
+ return spriteId;
+}
+#else
+NAKED
+u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y)
+{
+ asm_unified("push {r4,r5,lr}\n\
+ sub sp, 0x10\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ movs r3, 0x80\n\
+ lsls r3, 8\n\
+ lsls r1, 16\n\
+ asrs r1, 16\n\
+ str r1, [sp]\n\
+ lsls r2, 16\n\
+ asrs r2, 16\n\
+ str r2, [sp, 0x4]\n\
+ movs r1, 0\n\
+ str r1, [sp, 0x8]\n\
+ ldr r1, =gMonPaletteTable\n\
+ lsls r4, r0, 3\n\
+ adds r4, r1\n\
+ ldrh r1, [r4, 0x4]\n\
+ str r1, [sp, 0xC]\n\
+ movs r1, 0\n\
+ adds r2, r3, 0\n\
+ movs r3, 0x1\n\
+ bl sub_818D7D8\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ ldrh r0, [r4, 0x4]\n\
+ bl IndexOfSpritePaletteTag\n\
+ adds r0, 0x10\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ bl PreservePaletteInWeather\n\
+ ldr r0, =0x0000ffff\n\
+ cmp r5, r0\n\
+ beq _080B5FDC\n\
+ lsls r0, r5, 24\n\
+ lsrs r0, 24\n\
+ b _080B5FDE\n\
+ .pool\n\
+_080B5FDC:\n\
+ movs r0, 0x40\n\
+_080B5FDE:\n\
+ add sp, 0x10\n\
+ pop {r4,r5}\n\
+ pop {r1}\n\
+ bx r1");
+}
+#endif //NONMATCHING
+
+u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subpriority)
+{
+ const struct CompressedSpritePalette *spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, d, g);
+ u16 spriteId = sub_818D7D8(species, d, g, 1, x, y, 0, spritePalette->tag);
+ PreservePaletteInWeather(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10);
+ if (spriteId == 0xFFFF)
+ return 0x40;
+
+ return spriteId;
+}
+
+void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId)
+{
+ ResetPreservedPalettesInWeather();
+ if (sprite->oam.affineMode != 0)
+ {
+ FreeOamMatrix(sprite->oam.matrixNum);
+ }
+ sub_818D820(spriteId);
+}
+
+#ifdef NONMATCHING
+void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b)
+{
+ int curRed;
+ int curGreen;
+ int curBlue;
+
+ curRed = gPlttBufferUnfaded[i] & 0x1f;
+ curGreen = (gPlttBufferUnfaded[i] & (0x1f << 5)) >> 5;
+ curBlue = (gPlttBufferUnfaded[i] & (0x1f << 10)) >> 10;
+ curRed += (((0x1f - curRed) * r) >> 4);
+ curGreen += (((0x1f - curGreen) * g) >> 4);
+ curBlue += (((0x1f - curBlue) * b) >> 4);
+ gPlttBufferFaded[i] = RGB(curRed, curGreen, curBlue);
+}
+
+void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b)
+{
+ int curRed;
+ int curGreen;
+ int curBlue;
+
+ curRed = gPlttBufferUnfaded[i] & 0x1f;
+ curGreen = (gPlttBufferUnfaded[i] & (0x1f << 5)) >> 5;
+ curBlue = (gPlttBufferUnfaded[i] & (0x1f << 10)) >> 10;
+ curRed -= ((curRed * r) >> 4);
+ curGreen -= ((curGreen * g) >> 4);
+ curBlue -= ((curBlue * b) >> 4);
+ gPlttBufferFaded[i] = RGB(curRed, curGreen, curBlue);
+}
+#else
+NAKED
+void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b)
+{
+ asm(".syntax unified\n"
+ "\tpush {r4-r7,lr}\n"
+ "\tmov r7, r9\n"
+ "\tmov r6, r8\n"
+ "\tpush {r6,r7}\n"
+ "\tlsls r0, 16\n"
+ "\tlsls r1, 24\n"
+ "\tlsrs r1, 24\n"
+ "\tlsls r2, 24\n"
+ "\tlsrs r2, 24\n"
+ "\tlsls r3, 24\n"
+ "\tlsrs r3, 24\n"
+ "\tldr r4, _08085D00 @ =gPlttBufferUnfaded\n"
+ "\tlsrs r0, 15\n"
+ "\tadds r4, r0, r4\n"
+ "\tldrh r4, [r4]\n"
+ "\tmovs r5, 0x1F\n"
+ "\tmov r9, r5\n"
+ "\tmov r8, r4\n"
+ "\tmov r6, r8\n"
+ "\tands r6, r5\n"
+ "\tmov r8, r6\n"
+ "\tmovs r6, 0xF8\n"
+ "\tlsls r6, 2\n"
+ "\tands r6, r4\n"
+ "\tlsrs r6, 5\n"
+ "\tmovs r5, 0xF8\n"
+ "\tlsls r5, 7\n"
+ "\tands r4, r5\n"
+ "\tlsrs r4, 10\n"
+ "\tmov r7, r9\n"
+ "\tmov r5, r8\n"
+ "\tsubs r7, r5\n"
+ "\tmov r12, r7\n"
+ "\tmov r7, r12\n"
+ "\tmuls r7, r1\n"
+ "\tadds r1, r7, 0\n"
+ "\tasrs r1, 4\n"
+ "\tadd r8, r1\n"
+ "\tmov r5, r9\n"
+ "\tsubs r1, r5, r6\n"
+ "\tmuls r1, r2\n"
+ "\tasrs r1, 4\n"
+ "\tadds r6, r1\n"
+ "\tsubs r5, r4\n"
+ "\tmov r9, r5\n"
+ "\tmov r1, r9\n"
+ "\tmuls r1, r3\n"
+ "\tasrs r1, 4\n"
+ "\tadds r4, r1\n"
+ "\tmov r7, r8\n"
+ "\tlsls r7, 16\n"
+ "\tlsls r6, 21\n"
+ "\torrs r6, r7\n"
+ "\tlsls r4, 26\n"
+ "\torrs r4, r6\n"
+ "\tlsrs r4, 16\n"
+ "\tldr r1, _08085D04 @ =gPlttBufferFaded\n"
+ "\tadds r0, r1\n"
+ "\tstrh r4, [r0]\n"
+ "\tpop {r3,r4}\n"
+ "\tmov r8, r3\n"
+ "\tmov r9, r4\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+ "_08085D00: .4byte gPlttBufferUnfaded\n"
+ "_08085D04: .4byte gPlttBufferFaded\n"
+ ".syntax divided");
+}
+
+NAKED
+void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b)
+{
+ asm(".syntax unified\n"
+ "\tpush {r4-r6,lr}\n"
+ "\tmov r6, r8\n"
+ "\tpush {r6}\n"
+ "\tlsls r0, 16\n"
+ "\tlsls r1, 24\n"
+ "\tlsrs r1, 24\n"
+ "\tlsls r2, 24\n"
+ "\tlsrs r2, 24\n"
+ "\tlsls r3, 24\n"
+ "\tlsrs r3, 24\n"
+ "\tldr r4, _08085D78 @ =gPlttBufferUnfaded\n"
+ "\tlsrs r0, 15\n"
+ "\tadds r4, r0, r4\n"
+ "\tldrh r4, [r4]\n"
+ "\tmovs r5, 0x1F\n"
+ "\tmov r8, r5\n"
+ "\tmov r6, r8\n"
+ "\tands r6, r4\n"
+ "\tmov r8, r6\n"
+ "\tmovs r5, 0xF8\n"
+ "\tlsls r5, 2\n"
+ "\tands r5, r4\n"
+ "\tlsrs r5, 5\n"
+ "\tmovs r6, 0xF8\n"
+ "\tlsls r6, 7\n"
+ "\tands r4, r6\n"
+ "\tlsrs r4, 10\n"
+ "\tmov r6, r8\n"
+ "\tmuls r6, r1\n"
+ "\tadds r1, r6, 0\n"
+ "\tasrs r1, 4\n"
+ "\tmov r6, r8\n"
+ "\tsubs r6, r1\n"
+ "\tadds r1, r5, 0\n"
+ "\tmuls r1, r2\n"
+ "\tasrs r1, 4\n"
+ "\tsubs r5, r1\n"
+ "\tadds r1, r4, 0\n"
+ "\tmuls r1, r3\n"
+ "\tasrs r1, 4\n"
+ "\tsubs r4, r1\n"
+ "\tlsls r6, 16\n"
+ "\tlsls r5, 21\n"
+ "\torrs r5, r6\n"
+ "\tlsls r4, 26\n"
+ "\torrs r4, r5\n"
+ "\tlsrs r4, 16\n"
+ "\tldr r1, _08085D7C @ =gPlttBufferFaded\n"
+ "\tadds r0, r1\n"
+ "\tstrh r4, [r0]\n"
+ "\tpop {r3}\n"
+ "\tmov r8, r3\n"
+ "\tpop {r4-r6}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+ "_08085D78: .4byte gPlttBufferUnfaded\n"
+ "_08085D7C: .4byte gPlttBufferFaded\n"
+ ".syntax divided");
+}
+#endif
+
+void Task_PokecenterHeal(u8 taskId);
+u8 CreatePokeballGlowSprite(s16, s16, s16, u16);
+u8 PokecenterHealEffectHelper(s16, s16);
+
+bool8 FldEff_PokecenterHeal(void)
+{
+ u8 nPokemon;
+ struct Task *task;
+
+ nPokemon = CalculatePlayerPartyCount();
+ task = &gTasks[CreateTask(Task_PokecenterHeal, 0xff)];
+ task->data[1] = nPokemon;
+ task->data[2] = 0x5d;
+ task->data[3] = 0x24;
+ task->data[4] = 0x7c;
+ task->data[5] = 0x18;
+ return FALSE;
+}
+
+void Task_PokecenterHeal(u8 taskId)
+{
+ struct Task *task;
+ task = &gTasks[taskId];
+ gUnknown_0855C364[task->data[0]](task);
+}
+
+void PokecenterHealEffect_0(struct Task *task)
+{
+ task->data[0]++;
+ task->data[6] = CreatePokeballGlowSprite(task->data[1], task->data[2], task->data[3], 1);
+ task->data[7] = PokecenterHealEffectHelper(task->data[4], task->data[5]);
+}
+
+void PokecenterHealEffect_1(struct Task *task)
+{
+ if (gSprites[task->data[6]].data[0] > 1)
+ {
+ gSprites[task->data[7]].data[0]++;
+ task->data[0]++;
+ }
+}
+
+void PokecenterHealEffect_2(struct Task *task)
+{
+ if (gSprites[task->data[6]].data[0] > 4)
+ {
+ task->data[0]++;
+ }
+}
+
+void PokecenterHealEffect_3(struct Task *task)
+{
+ if (gSprites[task->data[6]].data[0] > 6)
+ {
+ DestroySprite(&gSprites[task->data[6]]);
+ FieldEffectActiveListRemove(FLDEFF_POKECENTER_HEAL);
+ DestroyTask(FindTaskIdByFunc(Task_PokecenterHeal));
+ }
+}
+
+void Task_HallOfFameRecord(u8 taskId);
+void HallOfFameRecordEffectHelper(s16, s16, s16, u8);
+
+bool8 FldEff_HallOfFameRecord(void)
+{
+ u8 nPokemon;
+ struct Task *task;
+
+ nPokemon = CalculatePlayerPartyCount();
+ task = &gTasks[CreateTask(Task_HallOfFameRecord, 0xff)];
+ task->data[1] = nPokemon;
+ task->data[2] = 0x75;
+ task->data[3] = 0x34;
+ return FALSE;
+}
+
+void Task_HallOfFameRecord(u8 taskId)
+{
+ struct Task *task;
+ task = &gTasks[taskId];
+ gUnknown_0855C374[task->data[0]](task);
+}
+
+void HallOfFameRecordEffect_0(struct Task *task)
+{
+ u8 taskId;
+ task->data[0]++;
+ task->data[6] = CreatePokeballGlowSprite(task->data[1], task->data[2], task->data[3], 0);
+ taskId = FindTaskIdByFunc(Task_HallOfFameRecord);
+ HallOfFameRecordEffectHelper(taskId, 0x78, 0x18, 0);
+ HallOfFameRecordEffectHelper(taskId, 0x28, 0x08, 1);
+ HallOfFameRecordEffectHelper(taskId, 0x48, 0x08, 1);
+ HallOfFameRecordEffectHelper(taskId, 0xa8, 0x08, 1);
+ HallOfFameRecordEffectHelper(taskId, 0xc8, 0x08, 1);
+}
+
+void HallOfFameRecordEffect_1(struct Task *task)
+{
+ if (gSprites[task->data[6]].data[0] > 1)
+ {
+ task->data[15]++; // was this ever initialized? is this ever used?
+ task->data[0]++;
+ }
+}
+
+void HallOfFameRecordEffect_2(struct Task *task)
+{
+ if (gSprites[task->data[6]].data[0] > 4)
+ {
+ task->data[0]++;
+ }
+}
+
+void HallOfFameRecordEffect_3(struct Task *task)
+{
+ if (gSprites[task->data[6]].data[0] > 6)
+ {
+ DestroySprite(&gSprites[task->data[6]]);
+ FieldEffectActiveListRemove(FLDEFF_HALL_OF_FAME_RECORD);
+ DestroyTask(FindTaskIdByFunc(Task_HallOfFameRecord));
+ }
+}
+
+void SpriteCB_PokeballGlowEffect(struct Sprite *);
+
+u8 CreatePokeballGlowSprite(s16 data6, s16 x, s16 y, u16 data5)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+ spriteId = CreateInvisibleSprite(SpriteCB_PokeballGlowEffect);
+ sprite = &gSprites[spriteId];
+ sprite->pos2.x = x;
+ sprite->pos2.y = y;
+ sprite->data[5] = data5;
+ sprite->data[6] = data6;
+ sprite->data[7] = spriteId;
+ return spriteId;
+}
+
+void SpriteCB_PokeballGlowEffect(struct Sprite *sprite)
+{
+ gUnknown_0855C384[sprite->data[0]](sprite);
+}
+
+void PokeballGlowEffect_0(struct Sprite *sprite)
+{
+ u8 endSpriteId;
+ if (sprite->data[1] == 0 || (--sprite->data[1]) == 0)
+ {
+ sprite->data[1] = 25;
+ endSpriteId = CreateSpriteAtEnd(&gSpriteTemplate_855C304, gUnknown_0855C3A4[sprite->data[2]].x + sprite->pos2.x, gUnknown_0855C3A4[sprite->data[2]].y + sprite->pos2.y, 0);
+ gSprites[endSpriteId].oam.priority = 2;
+ gSprites[endSpriteId].data[0] = sprite->data[7];
+ sprite->data[2]++;
+ sprite->data[6]--;
+ PlaySE(SE_BOWA);
+ }
+ if (sprite->data[6] == 0)
+ {
+ sprite->data[1] = 32;
+ sprite->data[0]++;
+ }
+}
+
+void PokeballGlowEffect_1(struct Sprite *sprite)
+{
+ if ((--sprite->data[1]) == 0)
+ {
+ sprite->data[0]++;
+ sprite->data[1] = 8;
+ sprite->data[2] = 0;
+ sprite->data[3] = 0;
+ if (sprite->data[5])
+ {
+ PlayFanfare(MUS_ME_ASA);
+ }
+ }
+}
+
+void PokeballGlowEffect_2(struct Sprite *sprite)
+{
+ u8 phase;
+ if ((--sprite->data[1]) == 0)
+ {
+ sprite->data[1] = 8;
+ sprite->data[2]++;
+ sprite->data[2] &= 3;
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[3]++;
+ }
+ }
+ phase = (sprite->data[2] + 3) & 3;
+ MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]);
+ phase = (sprite->data[2] + 2) & 3;
+ MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]);
+ phase = (sprite->data[2] + 1) & 3;
+ MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]);
+ phase = sprite->data[2];
+ MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]);
+ MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]);
+ if (sprite->data[3] > 2)
+ {
+ sprite->data[0]++;
+ sprite->data[1] = 8;
+ sprite->data[2] = 0;
+ }
+}
+
+void PokeballGlowEffect_3(struct Sprite *sprite)
+{
+ u8 phase;
+ if ((--sprite->data[1]) == 0)
+ {
+ sprite->data[1] = 8;
+ sprite->data[2]++;
+ sprite->data[2] &= 3;
+ if (sprite->data[2] == 3)
+ {
+ sprite->data[0]++;
+ sprite->data[1] = 30;
+ }
+ }
+ phase = sprite->data[2];
+ MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]);
+ MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]);
+ MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]);
+ MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]);
+ MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, gUnknown_0855C3BC[phase], gUnknown_0855C3C0[phase], gUnknown_0855C3C4[phase]);
+}
+
+void PokeballGlowEffect_4(struct Sprite *sprite)
+{
+ if ((--sprite->data[1]) == 0)
+ {
+ sprite->data[0]++;
+ }
+}
+
+void PokeballGlowEffect_5(struct Sprite *sprite)
+{
+ sprite->data[0]++;
+}
+
+void PokeballGlowEffect_6(struct Sprite *sprite)
+{
+ if (sprite->data[5] == 0 || IsFanfareTaskInactive())
+ {
+ sprite->data[0]++;
+ }
+}
+
+void PokeballGlowEffect_7(struct Sprite *sprite)
+{
+}
+
+void SpriteCB_PokeballGlow(struct Sprite *sprite)
+{
+ if (gSprites[sprite->data[0]].data[0] > 4)
+ {
+ FieldEffectFreeGraphicsResources(sprite);
+ }
+}
+
+u8 PokecenterHealEffectHelper(s16 x, s16 y)
+{
+ u8 spriteIdAtEnd;
+ struct Sprite *sprite;
+ spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C31C, x, y, 0);
+ sprite = &gSprites[spriteIdAtEnd];
+ sprite->oam.priority = 2;
+ sprite->invisible = 1;
+ SetSubspriteTables(sprite, &gUnknown_0855C2AC);
+ return spriteIdAtEnd;
+}
+
+void SpriteCB_PokecenterMonitor(struct Sprite *sprite)
+{
+ if (sprite->data[0] != 0)
+ {
+ sprite->data[0] = 0;
+ sprite->invisible = 0;
+ StartSpriteAnim(sprite, 1);
+ }
+ if (sprite->animEnded)
+ {
+ FieldEffectFreeGraphicsResources(sprite);
+ }
+}
+
+void HallOfFameRecordEffectHelper(s16 a0, s16 a1, s16 a2, u8 a3)
+{
+ u8 spriteIdAtEnd;
+ if (!a3)
+ {
+ spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C334, a1, a2, 0);
+ SetSubspriteTables(&gSprites[spriteIdAtEnd], &gUnknown_0855C2C4);
+ } else
+ {
+ spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C34C, a1, a2, 0);
+ }
+ gSprites[spriteIdAtEnd].invisible = 1;
+ gSprites[spriteIdAtEnd].data[0] = a0;
+}
+
+void SpriteCB_HallOfFameMonitor(struct Sprite *sprite)
+{
+ if (gTasks[sprite->data[0]].data[15])
+ {
+ if (sprite->data[1] == 0 || (--sprite->data[1]) == 0)
+ {
+ sprite->data[1] = 16;
+ sprite->invisible ^= 1;
+ }
+ sprite->data[2]++;
+ }
+ if (sprite->data[2] > 127)
+ {
+ FieldEffectFreeGraphicsResources(sprite);
+ }
+}
+
+void mapldr_080842E8(void);
+void mapldr_08084390(void);
+void task00_8084310(u8);
+void c3_080843F8(u8);
+
+void sub_80B69DC(void)
+{
+ SetMainCallback2(CB2_ReturnToField);
+ gFieldCallback = mapldr_080842E8;
+}
+
+void mapldr_080842E8(void)
+{
+ pal_fill_black();
+ CreateTask(task00_8084310, 0);
+ ScriptContext2_Enable();
+ FreezeMapObjects();
+ gFieldCallback = NULL;
+}
+
+void task00_8084310(u8 taskId)
+{
+ struct Task *task;
+ task = &gTasks[taskId];
+ if (!task->data[0])
+ {
+ if (!IsWeatherNotFadingIn())
+ {
+ return;
+ }
+ gFieldEffectArguments[0] = GetCursorSelectionMonId();
+ if ((int)gFieldEffectArguments[0] > 5)
+ {
+ gFieldEffectArguments[0] = 0;
+ }
+ FieldEffectStart(FLDEFF_USE_FLY);
+ task->data[0]++;
+ }
+ if (!FieldEffectActiveListContains(FLDEFF_USE_FLY))
+ {
+ Overworld_ResetStateAfterFly();
+ warp_in();
+ SetMainCallback2(CB2_LoadMap);
+ gFieldCallback = mapldr_08084390;
+ DestroyTask(taskId);
+ }
+}
+
+void mapldr_08084390(void)
+{
+ Overworld_PlaySpecialMapMusic();
+ pal_fill_black();
+ CreateTask(c3_080843F8, 0);
+ gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 1;
+ if (gPlayerAvatar.flags & 0x08)
+ {
+ FieldObjectTurn(&gMapObjects[gPlayerAvatar.mapObjectId], DIR_WEST);
+ }
+ ScriptContext2_Enable();
+ FreezeMapObjects();
+ gFieldCallback = NULL;
+}
+
+void c3_080843F8(u8 taskId)
+{
+ struct Task *task;
+ task = &gTasks[taskId];
+ if (task->data[0] == 0)
+ {
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+ FieldEffectStart(FLDEFF_FLY_IN);
+ task->data[0]++;
+ }
+ if (!FieldEffectActiveListContains(FLDEFF_FLY_IN))
+ {
+ ScriptContext2_Disable();
+ UnfreezeMapObjects();
+ DestroyTask(taskId);
+ }
+}
+
+extern void pal_fill_for_maplights(void);
+void sub_80B6B94(u8);
+extern void CameraObjectReset2(void);
+extern void CameraObjectReset1(void);
+
+void sub_80B6B68(void)
+{
+ Overworld_PlaySpecialMapMusic();
+ pal_fill_for_maplights();
+ ScriptContext2_Enable();
+ FreezeMapObjects();
+ CreateTask(sub_80B6B94, 0);
+ gFieldCallback = NULL;
+}
+
+void sub_80B6B94(u8 taskId)
+{
+ struct Task *task;
+ task = &gTasks[taskId];
+ while (gUnknown_0855C3C8[task->data[0]](task)); // return code signifies whether to continue blocking here
+}
+
+bool8 sub_80B6BCC(struct Task *task) // gUnknown_0855C3C8[0]
+{
+ struct MapObject *playerObject;
+ struct Sprite *playerSprite;
+ playerObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ playerSprite = &gSprites[gPlayerAvatar.spriteId];
+ CameraObjectReset2();
+ gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 1;
+ gPlayerAvatar.preventStep = TRUE;
+ FieldObjectSetSpecialAnim(playerObject, GetFaceDirectionAnimId(player_get_direction_lower_nybble()));
+ task->data[4] = playerSprite->subspriteMode;
+ playerObject->mapobj_bit_26 = 1;
+ playerSprite->oam.priority = 1;
+ playerSprite->subspriteMode = 2;
+ task->data[0]++;
+ return TRUE;
+}
+
+bool8 sub_80B6C74(struct Task *task) // gUnknown_0855C3C8[1]
+{
+ if (IsWeatherNotFadingIn())
+ {
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+bool8 sub_80B6C90(struct Task *task) // gUnknown_0855C3C8[2]
+{
+ struct Sprite *sprite;
+ s16 centerToCornerVecY;
+ sprite = &gSprites[gPlayerAvatar.spriteId];
+ centerToCornerVecY = -(sprite->centerToCornerVecY << 1);
+ sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY);
+ task->data[1] = 1;
+ task->data[2] = 0;
+ gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 0;
+ PlaySE(SE_RU_HYUU);
+ task->data[0]++;
+ return FALSE;
+}
+
+bool8 sub_80B6D04(struct Task *task)
+{
+ struct MapObject *mapObject;
+ struct Sprite *sprite;
+
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ sprite = &gSprites[gPlayerAvatar.spriteId];
+ sprite->pos2.y += task->data[1];
+ if (task->data[1] < 8)
+ {
+ task->data[2] += task->data[1];
+ if (task->data[2] & 0xf)
+ {
+ task->data[1] <<= 1;
+ }
+ }
+ if (task->data[3] == 0 && sprite->pos2.y >= -16)
+ {
+ task->data[3]++;
+ mapObject->mapobj_bit_26 = 0;
+ sprite->subspriteMode = task->data[4];
+ mapObject->mapobj_bit_2 = 1;
+ }
+ if (sprite->pos2.y >= 0)
+ {
+ PlaySE(SE_W070);
+ mapObject->mapobj_bit_3 = 1;
+ mapObject->mapobj_bit_5 = 1;
+ sprite->pos2.y = 0;
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+bool8 sub_80B6DBC(struct Task *task)
+{
+ task->data[0]++;
+ task->data[1] = 4;
+ task->data[2] = 0;
+ SetCameraPanningCallback(NULL);
+ return TRUE;
+}
+
+bool8 sub_80B6DD8(struct Task *task)
+{
+ SetCameraPanning(0, task->data[1]);
+ task->data[1] = -task->data[1];
+ task->data[2]++;
+ if ((task->data[2] & 3) == 0)
+ {
+ task->data[1] >>= 1;
+ }
+ if (task->data[1] == 0)
+ {
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+bool8 sub_80B6E18(struct Task *task)
+{
+ gPlayerAvatar.preventStep = FALSE;
+ ScriptContext2_Disable();
+ CameraObjectReset1();
+ UnfreezeMapObjects();
+ InstallCameraPanAheadCallback();
+ DestroyTask(FindTaskIdByFunc(sub_80B6B94));
+ return FALSE;
+}
+
+void sub_80B6E88(u8);
+extern void sub_80E1558(u8);
+extern void sub_80AF0B4(void);
+
+void sub_80B6FB8(struct Task *);
+void sub_80B7004(struct Task *);
+void sub_80B7050(void);
+void sub_80B7060(void);
+bool8 sub_80859A0(void);
+void sub_80B70B4(void);
+void sub_80E1570(void);
+void sub_80B70DC(u8);
+
+void sub_80B6E4C(u8 a0, u8 priority)
+{
+ u8 taskId;
+ taskId = CreateTask(sub_80B6E88, priority);
+ gTasks[taskId].data[1] = 0;
+ if (a0 == 0x6a)
+ {
+ gTasks[taskId].data[1] = 1;
+ }
+}
+
+void sub_80B6E88(u8 taskId)
+{
+ struct Task *task;
+ task = &gTasks[taskId];
+ while (gUnknown_0855C3E4[task->data[0]](task));
+}
+
+bool8 sub_80B6EC0(struct Task *task)
+{
+ FreezeMapObjects();
+ CameraObjectReset2();
+ sub_80E1558(task->data[1]);
+ task->data[0]++;
+ return FALSE;
+}
+
+bool8 sub_80B6EE0(struct Task *task)
+{
+ struct MapObject *mapObject;
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) || FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(player_get_direction_lower_nybble()));
+ task->data[0]++;
+ task->data[2] = 0;
+ task->data[3] = 0;
+ if ((u8)task->data[1] == 0)
+ {
+ task->data[0] = 4;
+ }
+ PlaySE(SE_ESUKA);
+ }
+ return FALSE;
+}
+
+bool8 sub_80B6F50(struct Task *task)
+{
+ sub_80B6FB8(task);
+ if (task->data[2] > 3)
+ {
+ sub_80B7050();
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+bool8 sub_80B6F74(struct Task *task)
+{
+ sub_80B6FB8(task);
+ sub_80B7060();
+ return FALSE;
+}
+
+bool8 sub_80B6F84(struct Task *task)
+{
+ sub_80B7004(task);
+ if (task->data[2] > 3)
+ {
+ sub_80B7050();
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+bool8 sub_80B6FA8(struct Task *task)
+{
+ sub_80B7004(task);
+ sub_80B7060();
+ return FALSE;
+}
+
+void sub_80B6FB8(struct Task *task)
+{
+ struct Sprite *sprite;
+ sprite = &gSprites[gPlayerAvatar.spriteId];
+ sprite->pos2.x = Cos(0x84, task->data[2]);
+ sprite->pos2.y = Sin(0x94, task->data[2]);
+ task->data[3]++;
+ if (task->data[3] & 1)
+ {
+ task->data[2]++;
+ }
+}
+
+void sub_80B7004(struct Task *task)
+{
+ struct Sprite *sprite;
+ sprite = &gSprites[gPlayerAvatar.spriteId];
+ sprite->pos2.x = Cos(0x7c, task->data[2]);
+ sprite->pos2.y = Sin(0x76, task->data[2]);
+ task->data[3]++;
+ if (task->data[3] & 1)
+ {
+ task->data[2]++;
+ }
+}
+
+void sub_80B7050(void)
+{
+ music_something();
+ sub_80AF0B4();
+}
+
+void sub_80B7060(void)
+{
+ if (!gPaletteFade.active && sub_80859A0() == TRUE)
+ {
+ sub_80E1570();
+ warp_in();
+ gFieldCallback = sub_80B70B4;
+ SetMainCallback2(CB2_LoadMap);
+ DestroyTask(FindTaskIdByFunc(sub_80B6E88));
+ }
+}
+
+void sub_80B70B4(void)
+{
+ Overworld_PlaySpecialMapMusic();
+ pal_fill_for_maplights();
+ ScriptContext2_Enable();
+ CreateTask(sub_80B70DC, 0);
+ gFieldCallback = NULL;
+}
+
+void sub_80B70DC(u8 taskId)
+{
+ struct Task *task;
+ task = &gTasks[taskId];
+ while (gUnknown_0855C3FC[task->data[0]](task));
+}
+
+bool8 sub_80B7114(struct Task *task)
+{
+ struct MapObject *mapObject;
+ s16 x;
+ s16 y;
+ u8 behavior;
+ CameraObjectReset2();
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(DIR_EAST));
+ PlayerGetDestCoords(&x, &y);
+ behavior = MapGridGetMetatileBehaviorAt(x, y);
+ task->data[0]++;
+ task->data[1] = 16;
+ if (behavior == 0x6b)
+ {
+ behavior = 1;
+ task->data[0] = 3;
+ } else
+ {
+ behavior = 0;
+ }
+ sub_80E1558(behavior);
+ return TRUE;
+}
+
+bool8 sub_80B7190(struct Task *task)
+{
+ struct Sprite *sprite;
+ sprite = &gSprites[gPlayerAvatar.spriteId];
+ sprite->pos2.x = Cos(0x84, task->data[1]);
+ sprite->pos2.y = Sin(0x94, task->data[1]);
+ task->data[0]++;
+ return FALSE;
+}
+
+bool8 sub_80B71D0(struct Task *task)
+{
+ struct Sprite *sprite;
+ sprite = &gSprites[gPlayerAvatar.spriteId];
+ sprite->pos2.x = Cos(0x84, task->data[1]);
+ sprite->pos2.y = Sin(0x94, task->data[1]);
+ task->data[2]++;
+ if (task->data[2] & 1)
+ {
+ task->data[1]--;
+ }
+ if (task->data[1] == 0)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ task->data[0] = 5;
+ }
+ return FALSE;
+}
+
+bool8 sub_80B7230(struct Task *task)
+{
+ struct Sprite *sprite;
+ sprite = &gSprites[gPlayerAvatar.spriteId];
+ sprite->pos2.x = Cos(0x7c, task->data[1]);
+ sprite->pos2.y = Sin(0x76, task->data[1]);
+ task->data[0]++;
+ return FALSE;
+}
+
+bool8 sub_80B7270(struct Task *task)
+{
+ struct Sprite *sprite;
+ sprite = &gSprites[gPlayerAvatar.spriteId];
+ sprite->pos2.x = Cos(0x7c, task->data[1]);
+ sprite->pos2.y = Sin(0x76, task->data[1]);
+ task->data[2]++;
+ if (task->data[2] & 1)
+ {
+ task->data[1]--;
+ }
+ if (task->data[1] == 0)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+extern bool8 sub_80E1584(void);
+
+bool8 sub_80B72D0(struct Task *task)
+{
+ if (sub_80E1584())
+ {
+ return FALSE;
+ }
+ sub_80E1570();
+ task->data[0]++;
+ return TRUE;
+}
+
+bool8 sub_80B72F4(struct Task *task)
+{
+ struct MapObject *mapObject;
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ CameraObjectReset1();
+ ScriptContext2_Disable();
+ FieldObjectSetSpecialAnim(mapObject, GetGoSpeed0AnimId(DIR_EAST));
+ DestroyTask(FindTaskIdByFunc(sub_80B70DC));
+ }
+ return FALSE;
+}
+
+void sub_80B7384(u8);
+
+bool8 FldEff_UseWaterfall(void)
+{
+ u8 taskId;
+ taskId = CreateTask(sub_80B7384, 0xff);
+ gTasks[taskId].data[1] = gFieldEffectArguments[0];
+ sub_80B7384(taskId);
+ return FALSE;
+}
+
+void sub_80B7384(u8 taskId)
+{
+ while (gUnknown_0855C418[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId]));
+}
+
+bool8 sub_80B73D0(struct Task *task, struct MapObject *mapObject)
+{
+ ScriptContext2_Enable();
+ gPlayerAvatar.preventStep = TRUE;
+ task->data[0]++;
+ return FALSE;
+}
+
+bool8 waterfall_1_do_anim_probably(struct Task *task, struct MapObject *mapObject)
+{
+ ScriptContext2_Enable();
+ if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject))
+ {
+ FieldObjectClearAnimIfSpecialAnimFinished(mapObject);
+ gFieldEffectArguments[0] = task->data[1];
+ FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+bool8 waterfall_2_wait_anim_finish_probably(struct Task *task, struct MapObject *mapObject)
+{
+ if (FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON))
+ {
+ return FALSE;
+ }
+ task->data[0]++;
+ return TRUE;
+}
+
+bool8 sub_80B7450(struct Task *task, struct MapObject *mapObject)
+{
+ FieldObjectSetSpecialAnim(mapObject, GetSimpleGoAnimId(DIR_NORTH));
+ task->data[0]++;
+ return FALSE;
+}
+
+bool8 sub_80B7478(struct Task *task, struct MapObject *mapObject)
+{
+ if (!FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ return FALSE;
+ }
+ if (MetatileBehavior_IsWaterfall(mapObject->mapobj_unk_1E))
+ {
+ task->data[0] = 3;
+ return TRUE;
+ }
+ ScriptContext2_Disable();
+ gPlayerAvatar.preventStep = FALSE;
+ DestroyTask(FindTaskIdByFunc(sub_80B7384));
+ FieldEffectActiveListRemove(FLDEFF_USE_WATERFALL);
+ return FALSE;
+}
+
+void Task_Dive(u8);
+extern int dive_warp(struct MapPosition *, u16);
+
+bool8 FldEff_UseDive(void)
+{
+ u8 taskId;
+ taskId = CreateTask(Task_Dive, 0xff);
+ gTasks[taskId].data[15] = gFieldEffectArguments[0];
+ gTasks[taskId].data[14] = gFieldEffectArguments[1];
+ Task_Dive(taskId);
+ return FALSE;
+}
+
+void Task_Dive(u8 taskId)
+{
+ while (gUnknown_0855C42C[gTasks[taskId].data[0]](&gTasks[taskId]));
+}
+
+bool8 dive_1_lock(struct Task *task)
+{
+ gPlayerAvatar.preventStep = TRUE;
+ task->data[0]++;
+ return FALSE;
+}
+
+bool8 dive_2_unknown(struct Task *task)
+{
+ ScriptContext2_Enable();
+ gFieldEffectArguments[0] = task->data[15];
+ FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
+ task->data[0]++;
+ return FALSE;
+}
+
+bool8 dive_3_unknown(struct Task *task)
+{
+ struct MapPosition mapPosition;
+ PlayerGetDestCoords(&mapPosition.x, &mapPosition.y);
+ if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON))
+ {
+ dive_warp(&mapPosition, gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1E);
+ DestroyTask(FindTaskIdByFunc(Task_Dive));
+ FieldEffectActiveListRemove(FLDEFF_USE_DIVE);
+ }
+ return FALSE;
+}
+
+void sub_80B75F0(u8);
+void mapldr_080851BC(void);
+
+void sub_80B75D8(u8 priority)
+{
+ CreateTask(sub_80B75F0, priority);
+}
+
+void sub_80B75F0(u8 taskId)
+{
+ while (gUnknown_0855C438[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId], &gSprites[gPlayerAvatar.spriteId]));
+}
+
+bool8 sub_80B764C(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ FreezeMapObjects();
+ CameraObjectReset2();
+ SetCameraPanningCallback(NULL);
+ gPlayerAvatar.preventStep = TRUE;
+ mapObject->mapobj_bit_26 = 1;
+ task->data[1] = 1;
+ task->data[0]++;
+ return TRUE;
+}
+
+bool8 sub_80B7684(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ SetCameraPanning(0, task->data[1]);
+ task->data[1] = -task->data[1];
+ task->data[2]++;
+ if (task->data[2] > 7)
+ {
+ task->data[2] = 0;
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+bool8 sub_80B76B8(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->pos2.y = 0;
+ task->data[3] = 1;
+ gFieldEffectArguments[0] = mapObject->coords2.x;
+ gFieldEffectArguments[1] = mapObject->coords2.y;
+ gFieldEffectArguments[2] = sprite->subpriority - 1;
+ gFieldEffectArguments[3] = sprite->oam.priority;
+ FieldEffectStart(FLDEFF_LAVARIDGE_GYM_WARP);
+ PlaySE(SE_W153);
+ task->data[0]++;
+ return TRUE;
+}
+
+bool8 sub_80B7704(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ s16 centerToCornerVecY;
+ SetCameraPanning(0, task->data[1]);
+ if (task->data[1] = -task->data[1], ++task->data[2] <= 17)
+ {
+ if (!(task->data[2] & 1) && (task->data[1] <= 3))
+ {
+ task->data[1] <<= 1;
+ }
+ } else if (!(task->data[2] & 4) && (task->data[1] > 0))
+ {
+ task->data[1] >>= 1;
+ }
+ if (task->data[2] > 6)
+ {
+ centerToCornerVecY = -(sprite->centerToCornerVecY << 1);
+ if (sprite->pos2.y > -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY))
+ {
+ sprite->pos2.y -= task->data[3];
+ if (task->data[3] <= 7)
+ {
+ task->data[3]++;
+ }
+ } else
+ {
+ task->data[4] = 1;
+ }
+ }
+ if (task->data[5] == 0 && sprite->pos2.y < -0x10)
+ {
+ task->data[5]++;
+ mapObject->mapobj_bit_26 = 1;
+ sprite->oam.priority = 1;
+ sprite->subspriteMode = 2;
+ }
+ if (task->data[1] == 0 && task->data[4] != 0)
+ {
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+bool8 sub_80B77F8(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ music_something();
+ sub_80AF0B4();
+ task->data[0]++;
+ return FALSE;
+}
+
+bool8 sub_80B7814(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (!gPaletteFade.active && sub_80859A0() == TRUE)
+ {
+ warp_in();
+ gFieldCallback = mapldr_080851BC;
+ SetMainCallback2(CB2_LoadMap);
+ DestroyTask(FindTaskIdByFunc(sub_80B75F0));
+ }
+ return FALSE;
+}
+
+void sub_80B7890(u8);
+
+void mapldr_080851BC(void)
+{
+ Overworld_PlaySpecialMapMusic();
+ pal_fill_for_maplights();
+ ScriptContext2_Enable();
+ gFieldCallback = NULL;
+ CreateTask(sub_80B7890, 0);
+}
+
+void sub_80B7890(u8 taskId)
+{
+ while (gUnknown_0855C450[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId], &gSprites[gPlayerAvatar.spriteId]));
+}
+
+bool8 sub_80B78EC(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ CameraObjectReset2();
+ FreezeMapObjects();
+ gPlayerAvatar.preventStep = TRUE;
+ mapObject->mapobj_bit_13 = 1;
+ task->data[0]++;
+ return FALSE;
+}
+
+bool8 sub_80B791C(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (IsWeatherNotFadingIn())
+ {
+ gFieldEffectArguments[0] = mapObject->coords2.x;
+ gFieldEffectArguments[1] = mapObject->coords2.y;
+ gFieldEffectArguments[2] = sprite->subpriority - 1;
+ gFieldEffectArguments[3] = sprite->oam.priority;
+ task->data[1] = FieldEffectStart(FLDEFF_POP_OUT_OF_ASH);
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+bool8 sub_80B7968(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite = &gSprites[task->data[1]];
+ if (sprite->animCmdIndex > 1)
+ {
+ task->data[0]++;
+ mapObject->mapobj_bit_13 = 0;
+ CameraObjectReset1();
+ PlaySE(SE_W091);
+ FieldObjectSetSpecialAnim(mapObject, sub_8093514(DIR_EAST));
+ }
+ return FALSE;
+}
+
+bool8 sub_80B79BC(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ gPlayerAvatar.preventStep = FALSE;
+ ScriptContext2_Disable();
+ UnfreezeMapObjects();
+ DestroyTask(FindTaskIdByFunc(sub_80B7890));
+ }
+ return FALSE;
+}
+
+extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[36];
+
+u8 FldEff_LavaridgeGymWarp(void)
+{
+ u8 spriteId;
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[33], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ gSprites[spriteId].oam.priority = gFieldEffectArguments[3];
+ gSprites[spriteId].coordOffsetEnabled = 1;
+ return spriteId;
+}
+
+void sub_80B7A58(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ {
+ FieldEffectStop(sprite, FLDEFF_LAVARIDGE_GYM_WARP);
+ }
+}
+
+void sub_80B7A8C(u8);
+
+void sub_80B7A74(u8 priority)
+{
+ CreateTask(sub_80B7A8C, priority);
+}
+
+void sub_80B7A8C(u8 taskId)
+{
+ while(gUnknown_0855C460[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId], &gSprites[gPlayerAvatar.spriteId]));
+}
+
+bool8 sub_80B7AE8(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ FreezeMapObjects();
+ CameraObjectReset2();
+ gPlayerAvatar.preventStep = TRUE;
+ mapObject->mapobj_bit_26 = 1;
+ task->data[0]++;
+ return FALSE;
+}
+
+bool8 sub_80B7B18(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ if (task->data[1] > 3)
+ {
+ gFieldEffectArguments[0] = mapObject->coords2.x;
+ gFieldEffectArguments[1] = mapObject->coords2.y;
+ gFieldEffectArguments[2] = sprite->subpriority - 1;
+ gFieldEffectArguments[3] = sprite->oam.priority;
+ task->data[1] = FieldEffectStart(FLDEFF_POP_OUT_OF_ASH);
+ task->data[0]++;
+ } else
+ {
+ task->data[1]++;
+ FieldObjectSetSpecialAnim(mapObject, GetStepInPlaceDelay4AnimId(mapObject->mapobj_unk_18));
+ PlaySE(SE_FU_ZUZUZU);
+ }
+ }
+ return FALSE;
+}
+
+bool8 sub_80B7B94(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (gSprites[task->data[1]].animCmdIndex == 2)
+ {
+ mapObject->mapobj_bit_13 = 1;
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+bool8 sub_80B7BCC(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH))
+ {
+ music_something();
+ sub_80AF0B4();
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+void sub_80B7CE4(u8);
+void mapldr_080859D4(void);
+
+bool8 sub_80B7BF4(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (!gPaletteFade.active && sub_80859A0() == TRUE)
+ {
+ warp_in();
+ gFieldCallback = sub_80B6B68;
+ SetMainCallback2(CB2_LoadMap);
+ DestroyTask(FindTaskIdByFunc(sub_80B7A8C));
+ }
+ return FALSE;
+}
+
+u8 FldEff_PopOutOfAsh(void)
+{
+ u8 spriteId;
+ sub_80930E0((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[32], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ gSprites[spriteId].oam.priority = gFieldEffectArguments[3];
+ gSprites[spriteId].coordOffsetEnabled = 1;
+ return spriteId;
+}
+
+void sub_80B7CAC(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ {
+ FieldEffectStop(sprite, FLDEFF_POP_OUT_OF_ASH);
+ }
+}
+
+void sub_80B7CC8(void)
+{
+ ScriptContext2_Enable();
+ FreezeMapObjects();
+ CreateTask(sub_80B7CE4, 0x50);
+}
+
+void sub_80B7CE4(u8 taskId)
+{
+ gUnknown_0855C474[gTasks[taskId].data[0]](&gTasks[taskId]);
+}
+
+void sub_80B7D14(struct Task *task)
+{
+ task->data[0]++;
+ task->data[14] = 64;
+ task->data[15] = player_get_direction_lower_nybble();
+}
+
+void sub_80B7D34(struct Task *task)
+{
+ struct MapObject *mapObject;
+ u8 spinDirections[5] = {1, 3, 4, 2, 1};
+ if (task->data[14] != 0 && (--task->data[14]) == 0)
+ {
+ music_something();
+ sub_80AF0B4();
+ }
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) || FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ if (task->data[14] == 0 && !gPaletteFade.active && sub_80859A0() == TRUE)
+ {
+ FieldObjectSetDirection(mapObject, task->data[15]);
+ sub_8084E14();
+ warp_in();
+ gFieldCallback = mapldr_080859D4;
+ SetMainCallback2(CB2_LoadMap);
+ DestroyTask(FindTaskIdByFunc(sub_80B7CE4));
+ } else if (task->data[1] == 0 || (--task->data[1]) == 0)
+ {
+ FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(spinDirections[mapObject->mapobj_unk_18]));
+ if (task->data[2] < 12)
+ {
+ task->data[2]++;
+ }
+ task->data[1] = 8 >> (task->data[2] >> 2);
+ }
+ }
+}
+
+void (*const gUnknown_0855C484[])(struct Task *) = {
+ sub_80B7EC4,
+ sub_80B7EE8
+};
+
+void sub_80B7E94(u8);
+
+void mapldr_080859D4(void)
+{
+ Overworld_PlaySpecialMapMusic();
+ pal_fill_for_maplights();
+ ScriptContext2_Enable();
+ FreezeMapObjects();
+ gFieldCallback = NULL;
+ gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 1;
+ CreateTask(sub_80B7E94, 0);
+}
+
+void sub_80B7E94(u8 taskId)
+{
+ gUnknown_0855C484[gTasks[taskId].data[0]](&gTasks[taskId]);
+}
+
+void sub_80B7EC4(struct Task *task)
+{
+ if (IsWeatherNotFadingIn())
+ {
+ task->data[0]++;
+ task->data[15] = player_get_direction_lower_nybble();
+ }
+}
+
+void sub_80B7EE8(struct Task *task)
+{
+ u8 spinDirections[5] = {1, 3, 4, 2, 1};
+ struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (task->data[1] == 0 || (--task->data[1]) == 0)
+ {
+ if (FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) && !FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ return;
+ }
+ if (task->data[2] >= 32 && task->data[15] == player_get_direction_lower_nybble())
+ {
+ mapObject->mapobj_bit_13 = 0;
+ ScriptContext2_Disable();
+ UnfreezeMapObjects();
+ DestroyTask(FindTaskIdByFunc(sub_80B7E94));
+ return;
+ }
+ FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(spinDirections[mapObject->mapobj_unk_18]));
+ if (task->data[2] < 32)
+ {
+ task->data[2]++;
+ }
+ task->data[1] = task->data[2] >> 2;
+ }
+ mapObject->mapobj_bit_13 ^= 1;
+}
+
+static void ExecuteTeleportFieldEffectTask(u8);
+static void TeleportFieldEffectTask1(struct Task*);
+static void TeleportFieldEffectTask2(struct Task*);
+static void TeleportFieldEffectTask3(struct Task*);
+static void TeleportFieldEffectTask4(struct Task*);
+static void mapldr_08085D88(void);
+
+void CreateTeleportFieldEffectTask(void)
+{
+ CreateTask(ExecuteTeleportFieldEffectTask, 0);
+}
+
+static void (*const sTeleportFieldEffectTasks[])(struct Task *) = {
+ TeleportFieldEffectTask1,
+ TeleportFieldEffectTask2,
+ TeleportFieldEffectTask3,
+ TeleportFieldEffectTask4
+};
+
+static void ExecuteTeleportFieldEffectTask(u8 taskId)
+{
+ sTeleportFieldEffectTasks[gTasks[taskId].data[0]](&gTasks[taskId]);
+}
+
+static void TeleportFieldEffectTask1(struct Task *task)
+{
+ ScriptContext2_Enable();
+ FreezeMapObjects();
+ CameraObjectReset2();
+ task->data[15] = player_get_direction_lower_nybble();
+ task->data[0]++;
+}
+
+static void TeleportFieldEffectTask2(struct Task *task)
+{
+ u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH};
+ struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (task->data[1] == 0 || (--task->data[1]) == 0)
+ {
+ FieldObjectTurn(mapObject, spinDirections[mapObject->mapobj_unk_18]);
+ task->data[1] = 8;
+ task->data[2]++;
+ }
+ if (task->data[2] > 7 && task->data[15] == mapObject->mapobj_unk_18)
+ {
+ task->data[0]++;
+ task->data[1] = 4;
+ task->data[2] = 8;
+ task->data[3] = 1;
+ PlaySE(SE_TK_WARPIN);
+ }
+}
+
+static void TeleportFieldEffectTask3(struct Task *task)
+{
+ u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH};
+ struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId];
+ if ((--task->data[1]) <= 0)
+ {
+ task->data[1] = 4;
+ FieldObjectTurn(mapObject, spinDirections[mapObject->mapobj_unk_18]);
+ }
+ sprite->pos1.y -= task->data[3];
+ task->data[4] += task->data[3];
+ if ((--task->data[2]) <= 0 && (task->data[2] = 4, task->data[3] < 8))
+ {
+ task->data[3] <<= 1;
+ }
+ if (task->data[4] > 8 && (sprite->oam.priority = 1, sprite->subspriteMode != 0))
+ {
+ sprite->subspriteMode = 2;
+ }
+ if (task->data[4] >= 0xa8)
+ {
+ task->data[0]++;
+ music_something();
+ sub_80AF0B4();
+ }
+}
+
+static void TeleportFieldEffectTask4(struct Task *task)
+{
+ if (!gPaletteFade.active)
+ {
+ if (task->data[5] == FALSE)
+ {
+ sub_81BE72C();
+ task->data[5] = TRUE;
+ }
+
+ if (sub_80859A0() == TRUE)
+ {
+ Overworld_SetWarpDestToLastHealLoc();
+ warp_in();
+ SetMainCallback2(CB2_LoadMap);
+ gFieldCallback = mapldr_08085D88;
+ DestroyTask(FindTaskIdByFunc(ExecuteTeleportFieldEffectTask));
+ }
+ }
+}
+
+void sub_80B8250(u8);
+
+static void mapldr_08085D88(void)
+{
+ Overworld_PlaySpecialMapMusic();
+ pal_fill_for_maplights();
+ ScriptContext2_Enable();
+ FreezeMapObjects();
+ gFieldCallback = NULL;
+ gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 1;
+ CameraObjectReset2();
+ CreateTask(sub_80B8250, 0);
+}
+
+void (*const gUnknown_0855C49C[])(struct Task *) = {
+ sub_80B8280,
+ sub_80B830C,
+ sub_80B8410
+};
+
+void sub_80B8250(u8 taskId)
+{
+ gUnknown_0855C49C[gTasks[taskId].data[0]](&gTasks[taskId]);
+}
+
+void sub_80B8280(struct Task *task)
+{
+ struct Sprite *sprite;
+ s16 centerToCornerVecY;
+ if (IsWeatherNotFadingIn())
+ {
+ sprite = &gSprites[gPlayerAvatar.spriteId];
+ centerToCornerVecY = -(sprite->centerToCornerVecY << 1);
+ sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY);
+ gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 0;
+ task->data[0]++;
+ task->data[1] = 8;
+ task->data[2] = 1;
+ task->data[14] = sprite->subspriteMode;
+ task->data[15] = player_get_direction_lower_nybble();
+ PlaySE(SE_TK_WARPIN);
+ }
+}
+
+void sub_80B830C(struct Task *task)
+{
+ u8 spinDirections[5] = {1, 3, 4, 2, 1};
+ struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId];
+ if ((sprite->pos2.y += task->data[1]) >= -8)
+ {
+ if (task->data[13] == 0)
+ {
+ task->data[13]++;
+ mapObject->mapobj_bit_2 = 1;
+ sprite->subspriteMode = task->data[14];
+ }
+ } else
+ {
+ sprite->oam.priority = 1;
+ if (sprite->subspriteMode != 0)
+ {
+ sprite->subspriteMode = 2;
+ }
+ }
+ if (sprite->pos2.y >= -0x30 && task->data[1] > 1 && !(sprite->pos2.y & 1))
+ {
+ task->data[1]--;
+ }
+ if ((--task->data[2]) == 0)
+ {
+ task->data[2] = 4;
+ FieldObjectTurn(mapObject, spinDirections[mapObject->mapobj_unk_18]);
+ }
+ if (sprite->pos2.y >= 0)
+ {
+ sprite->pos2.y = 0;
+ task->data[0]++;
+ task->data[1] = 1;
+ task->data[2] = 0;
+ }
+}
+
+void sub_80B8410(struct Task *task)
+{
+ u8 spinDirections[5] = {1, 3, 4, 2, 1};
+ struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if ((--task->data[1]) == 0)
+ {
+ FieldObjectTurn(mapObject, spinDirections[mapObject->mapobj_unk_18]);
+ task->data[1] = 8;
+ if ((++task->data[2]) > 4 && task->data[14] == mapObject->mapobj_unk_18)
+ {
+ ScriptContext2_Disable();
+ CameraObjectReset1();
+ UnfreezeMapObjects();
+ DestroyTask(FindTaskIdByFunc(sub_80B8250));
+ }
+ }
+}
+
+void sub_80B8554(u8);
+void sub_80B88B4(u8);
+u8 sub_80B8C60(u32, u32, u32);
+void sub_80B880C(void);
+void sub_80B8874(u16);
+void sub_80B8CC0(struct Sprite *);
+
+bool8 FldEff_FieldMoveShowMon(void)
+{
+ u8 taskId;
+ if (is_map_type_1_2_3_5_or_6(Overworld_GetMapTypeOfSaveblockLocation()) == TRUE)
+ {
+ taskId = CreateTask(sub_80B8554, 0xff);
+ } else
+ {
+ taskId = CreateTask(sub_80B88B4, 0xff);
+ }
+ gTasks[taskId].data[15] = sub_80B8C60(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ return FALSE;
+}
+
+bool8 FldEff_FieldMoveShowMonInit(void)
+{
+ struct Pokemon *pokemon;
+ u32 flag = gFieldEffectArguments[0] & 0x80000000;
+ pokemon = &gPlayerParty[(u8)gFieldEffectArguments[0]];
+ gFieldEffectArguments[0] = GetMonData(pokemon, MON_DATA_SPECIES);
+ gFieldEffectArguments[1] = GetMonData(pokemon, MON_DATA_OT_ID);
+ gFieldEffectArguments[2] = GetMonData(pokemon, MON_DATA_PERSONALITY);
+ gFieldEffectArguments[0] |= flag;
+ FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON);
+ FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
+ return FALSE;
+}
+
+void (*const gUnknown_0855C4A8[])(struct Task *) = {
+ sub_80B8584,
+ sub_80B85F8,
+ sub_80B8660,
+ sub_80B86EC,
+ sub_80B871C,
+ sub_80B8770,
+ overworld_bg_setup_2,
+};
+
+void sub_80B8554(u8 taskId)
+{
+ gUnknown_0855C4A8[gTasks[taskId].data[0]](&gTasks[taskId]);
+}
+
+void sub_80B8584(struct Task *task)
+{
+ task->data[11] = REG_WININ;
+ task->data[12] = REG_WINOUT;
+ StoreWordInTwoHalfwords(&task->data[13], (u32)gMain.vblankCallback);
+ task->data[1] = 0xf0f1;
+ task->data[2] = 0x5051;
+ task->data[3] = 0x3f;
+ task->data[4] = 0x3e;
+ SetGpuReg(REG_OFFSET_WIN0H, task->data[1]);
+ SetGpuReg(REG_OFFSET_WIN0V, task->data[2]);
+ SetGpuReg(REG_OFFSET_WININ, task->data[3]);
+ SetGpuReg(REG_OFFSET_WINOUT, task->data[4]);
+ SetVBlankCallback(sub_80B880C);
+ task->data[0]++;
+}
+
+void sub_80B85F8(struct Task *task)
+{
+ u16 offset;
+ u16 delta;
+ offset = ((REG_BG0CNT >> 2) << 14);
+ delta = ((REG_BG0CNT >> 8) << 11);
+ CpuCopy16(gFieldMoveStreaksTiles, (void *)(VRAM + offset), 0x200);
+ CpuFill32(0, (void *)(VRAM + delta), 0x800);
+ LoadPalette(gFieldMoveStreaksPalette, 0xf0, 0x20);
+ sub_80B8874(delta);
+ task->data[0]++;
+}
+
+void sub_80B8660(struct Task *task)
+{
+ s16 v0;
+ s16 v2;
+ s16 v3;
+ task->data[5] -= 16;
+ v0 = ((u16)task->data[1] >> 8);
+ v2 = ((u16)task->data[2] >> 8);
+ v3 = ((u16)task->data[2] & 0xff);
+ v0 -= 16;
+ v2 -= 2;
+ v3 += 2;
+ if (v0 < 0)
+ {
+ v0 = 0;
+ }
+ if (v2 < 0x28)
+ {
+ v2 = 0x28;
+ }
+ if (v3 > 0x78)
+ {
+ v3 = 0x78;
+ }
+ task->data[1] = (v0 << 8) | (task->data[1] & 0xff);
+ task->data[2] = (v2 << 8) | v3;
+ if (v0 == 0 && v2 == 0x28 && v3 == 0x78)
+ {
+ gSprites[task->data[15]].callback = sub_80B8CC0;
+ task->data[0]++;
+ }
+}
+
+void sub_80B86EC(struct Task *task)
+{
+ task->data[5] -= 16;
+ if (gSprites[task->data[15]].data[7])
+ {
+ task->data[0]++;
+ }
+}
+
+void sub_80B871C(struct Task *task)
+{
+ s16 v2;
+ s16 v3;
+ task->data[5] -= 16;
+ v2 = (task->data[2] >> 8);
+ v3 = (task->data[2] & 0xff);
+ v2 += 6;
+ v3 -= 6;
+ if (v2 > 0x50)
+ {
+ v2 = 0x50;
+ }
+ if (v3 < 0x51)
+ {
+ v3 = 0x51;
+ }
+ task->data[2] = (v2 << 8) | v3;
+ if (v2 == 0x50 && v3 == 0x51)
+ {
+ task->data[0]++;
+ }
+}
+
+void sub_80B8770(struct Task *task)
+{
+ u16 bg0cnt;
+ bg0cnt = (REG_BG0CNT >> 8) << 11;
+ CpuFill32(0, (void *)VRAM + bg0cnt, 0x800);
+ task->data[1] = 0xf1;
+ task->data[2] = 0xa1;
+ task->data[3] = task->data[11];
+ task->data[4] = task->data[12];
+ task->data[0]++;
+}
+
+void overworld_bg_setup_2(struct Task *task)
+{
+ IntrCallback callback;
+ LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback);
+ SetVBlankCallback(callback);
+ sub_8197200();
+ FreeResourcesAndDestroySprite(&gSprites[task->data[15]], task->data[15]);
+ FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON);
+ DestroyTask(FindTaskIdByFunc(sub_80B8554));
+}
+
+void sub_80B880C(void)
+{
+ struct Task *task;
+ IntrCallback callback;
+ task = &gTasks[FindTaskIdByFunc(sub_80B8554)];
+ LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback);
+ callback();
+ SetGpuReg(REG_OFFSET_WIN0H, task->data[1]);
+ SetGpuReg(REG_OFFSET_WIN0V, task->data[2]);
+ SetGpuReg(REG_OFFSET_WININ, task->data[3]);
+ SetGpuReg(REG_OFFSET_WINOUT, task->data[4]);
+ SetGpuReg(REG_OFFSET_BG0HOFS, task->data[5]);
+ SetGpuReg(REG_OFFSET_BG0VOFS, task->data[6]);
+}
+
+void sub_80B8874(u16 offs)
+{
+ u16 i;
+ u16 *dest;
+ dest = (u16 *)(VRAM + 0x140 + offs);
+ for (i = 0; i < 0x140; i++, dest++)
+ {
+ *dest = gFieldMoveStreaksTilemap[i] | 0xf000;
+ }
+}
+
+void sub_80B8AE0(void);
+bool8 sub_80B8B38(struct Task *);
+void sub_80B8B28(struct Task *);
+bool8 sub_80B8BF0(struct Task *);
+
+void (*const gUnknown_0855C4C4[])(struct Task *) = {
+ sub_80B88E4,
+ sub_80B8920,
+ sub_80B898C,
+ sub_80B89DC,
+ sub_80B8A0C,
+ sub_80B8A44,
+ sub_80B8A64,
+};
+
+void sub_80B88B4(u8 taskId)
+{
+ gUnknown_0855C4C4[gTasks[taskId].data[0]](&gTasks[taskId]);
+}
+
+void sub_80B88E4(struct Task *task)
+{
+ SetGpuReg(REG_OFFSET_BG0HOFS, task->data[1]);
+ SetGpuReg(REG_OFFSET_BG0VOFS, task->data[2]);
+ StoreWordInTwoHalfwords((u16 *)&task->data[13], (u32)gMain.vblankCallback);
+ SetVBlankCallback(sub_80B8AE0);
+ task->data[0]++;
+}
+
+void sub_80B8920(struct Task *task)
+{
+ u16 offset;
+ u16 delta;
+ offset = ((REG_BG0CNT >> 2) << 14);
+ delta = ((REG_BG0CNT >> 8) << 11);
+ task->data[12] = delta;
+ CpuCopy16(gDarknessFieldMoveStreaksTiles, (void *)(VRAM + offset), 0x80);
+ CpuFill32(0, (void *)(VRAM + delta), 0x800);
+ LoadPalette(gDarknessFieldMoveStreaksPalette, 0xf0, 0x20);
+ task->data[0]++;
+}
+
+void sub_80B898C(struct Task *task)
+{
+ if (sub_80B8B38(task))
+ {
+ SetGpuReg(REG_OFFSET_WIN1H, 0x00f0);
+ SetGpuReg(REG_OFFSET_WIN1V, 0x2878);
+ gSprites[task->data[15]].callback = sub_80B8CC0;
+ task->data[0]++;
+ }
+ sub_80B8B28(task);
+}
+
+void sub_80B89DC(struct Task *task)
+{
+ sub_80B8B28(task);
+ if (gSprites[task->data[15]].data[7])
+ {
+ task->data[0]++;
+ }
+}
+
+void sub_80B8A0C(struct Task *task)
+{
+ sub_80B8B28(task);
+ task->data[3] = task->data[1] & 7;
+ task->data[4] = 0;
+ SetGpuReg(REG_OFFSET_WIN1H, 0xffff);
+ SetGpuReg(REG_OFFSET_WIN1V, 0xffff);
+ task->data[0]++;
+}
+
+void sub_80B8A44(struct Task *task)
+{
+ sub_80B8B28(task);
+ if (sub_80B8BF0(task))
+ {
+ task->data[0]++;
+ }
+}
+
+void sub_80B8A64(struct Task *task)
+{
+ IntrCallback intrCallback;
+ u16 bg0cnt;
+ bg0cnt = (REG_BG0CNT >> 8) << 11;
+ CpuFill32(0, (void *)VRAM + bg0cnt, 0x800);
+ LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&intrCallback);
+ SetVBlankCallback(intrCallback);
+ sub_8197200();
+ FreeResourcesAndDestroySprite(&gSprites[task->data[15]], task->data[15]);
+ FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON);
+ DestroyTask(FindTaskIdByFunc(sub_80B88B4));
+}
+
+void sub_80B8AE0(void)
+{
+ IntrCallback intrCallback;
+ struct Task *task;
+ task = &gTasks[FindTaskIdByFunc(sub_80B88B4)];
+ LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&intrCallback);
+ intrCallback();
+ SetGpuReg(REG_OFFSET_BG0HOFS, task->data[1]);
+ SetGpuReg(REG_OFFSET_BG0VOFS, task->data[2]);
+}
+
+void sub_80B8B28(struct Task *task)
+{
+ task->data[1] -= 16;
+ task->data[3] += 16;
+}
+
+#ifdef NONMATCHING
+bool8 sub_80B8B38(struct Task *task)
+{
+ u16 i;
+ u16 srcOffs;
+ u16 dstOffs;
+ u16 *dest;
+ if (task->data[4] >= 32)
+ {
+ return TRUE;
+ }
+ dstOffs = (task->data[3] >> 3) & 0x1f;
+ if (dstOffs >= task->data[4])
+ {
+ dstOffs = (32 - dstOffs) & 0x1f;
+ srcOffs = (32 - task->data[4]) & 0x1f;
+ dest = (u16 *)(VRAM + 0x140 + (u16)task->data[12]);
+ for (i=0; i<10; i++)
+ {
+ dest[dstOffs + i * 32] = gDarknessFieldMoveStreaksTilemap[srcOffs + i * 32] | 0xf000;
+ dest[((dstOffs + 1) & 0x1f) + i * 32] = gDarknessFieldMoveStreaksTilemap[((srcOffs + 1) & 0x1f) + i * 32] | 0xf000;
+ }
+ task->data[4] += 2;
+ }
+ return FALSE;
+}
+#else
+NAKED
+bool8 sub_80B8B38(struct Task *task)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r10\n"
+ "\tmov r6, r9\n"
+ "\tmov r5, r8\n"
+ "\tpush {r5-r7}\n"
+ "\tsub sp, 0x4\n"
+ "\tadds r5, r0, 0\n"
+ "\tldrh r2, [r5, 0x10]\n"
+ "\tmovs r1, 0x10\n"
+ "\tldrsh r0, [r5, r1]\n"
+ "\tcmp r0, 0x1F\n"
+ "\tble _08088724\n"
+ "\tmovs r0, 0x1\n"
+ "\tb _080887A8\n"
+ "_08088724:\n"
+ "\tldrh r0, [r5, 0xE]\n"
+ "\tlsls r0, 16\n"
+ "\tasrs r3, r0, 19\n"
+ "\tmovs r1, 0x1F\n"
+ "\tands r3, r1\n"
+ "\tmovs r4, 0x10\n"
+ "\tldrsh r0, [r5, r4]\n"
+ "\tcmp r3, r0\n"
+ "\tblt _080887A6\n"
+ "\tmovs r0, 0x20\n"
+ "\tsubs r3, r0, r3\n"
+ "\tands r3, r1\n"
+ "\tsubs r0, r2\n"
+ "\tmov r12, r0\n"
+ "\tmov r7, r12\n"
+ "\tands r7, r1\n"
+ "\tmov r12, r7\n"
+ "\tldrh r0, [r5, 0x20]\n"
+ "\tldr r1, _080887B8 @ =0x06000140\n"
+ "\tadds r1, r0\n"
+ "\tmov r8, r1\n"
+ "\tmovs r4, 0\n"
+ "\tldr r7, _080887BC @ =gDarknessFieldMoveStreaksTilemap\n"
+ "\tmov r10, r7\n"
+ "\tmovs r0, 0xF0\n"
+ "\tlsls r0, 8\n"
+ "\tmov r9, r0\n"
+ "\tadds r1, r3, 0x1\n"
+ "\tmovs r0, 0x1F\n"
+ "\tands r1, r0\n"
+ "\tstr r1, [sp]\n"
+ "\tmov r6, r12\n"
+ "\tadds r6, 0x1\n"
+ "\tands r6, r0\n"
+ "_08088768:\n"
+ "\tlsls r1, r4, 5\n"
+ "\tadds r2, r1, r3\n"
+ "\tlsls r2, 1\n"
+ "\tadd r2, r8\n"
+ "\tmov r7, r12\n"
+ "\tadds r0, r7, r1\n"
+ "\tlsls r0, 1\n"
+ "\tadd r0, r10\n"
+ "\tldrh r0, [r0]\n"
+ "\tmov r7, r9\n"
+ "\torrs r0, r7\n"
+ "\tstrh r0, [r2]\n"
+ "\tldr r0, [sp]\n"
+ "\tadds r2, r1, r0\n"
+ "\tlsls r2, 1\n"
+ "\tadd r2, r8\n"
+ "\tadds r1, r6, r1\n"
+ "\tlsls r1, 1\n"
+ "\tadd r1, r10\n"
+ "\tldrh r0, [r1]\n"
+ "\tmov r1, r9\n"
+ "\torrs r0, r1\n"
+ "\tstrh r0, [r2]\n"
+ "\tadds r0, r4, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r4, r0, 16\n"
+ "\tcmp r4, 0x9\n"
+ "\tbls _08088768\n"
+ "\tldrh r0, [r5, 0x10]\n"
+ "\tadds r0, 0x2\n"
+ "\tstrh r0, [r5, 0x10]\n"
+ "_080887A6:\n"
+ "\tmovs r0, 0\n"
+ "_080887A8:\n"
+ "\tadd sp, 0x4\n"
+ "\tpop {r3-r5}\n"
+ "\tmov r8, r3\n"
+ "\tmov r9, r4\n"
+ "\tmov r10, r5\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r1}\n"
+ "\tbx r1\n"
+ "\t.align 2, 0\n"
+ "_080887B8: .4byte 0x06000140\n"
+ "_080887BC: .4byte gDarknessFieldMoveStreaksTilemap");
+}
+#endif
+
+bool8 sub_80B8BF0(struct Task *task)
+{
+ u16 i;
+ u16 dstOffs;
+ u16 *dest;
+ if (task->data[4] >= 32)
+ {
+ return TRUE;
+ }
+ dstOffs = task->data[3] >> 3;
+ if (dstOffs >= task->data[4])
+ {
+ dstOffs = (task->data[1] >> 3) & 0x1f;
+ dest = (u16 *)(VRAM + 0x140 + (u16)task->data[12]);
+ for (i=0; i<10; i++)
+ {
+ dest[dstOffs + i * 32] = 0xf000;
+ dest[((dstOffs + 1) & 0x1f) + i * 32] = 0xf000;
+ }
+ task->data[4] += 2;
+ }
+ return FALSE;
+}
+
+u8 sub_80B8C60(u32 a0, u32 a1, u32 a2)
+{
+ u16 v0;
+ u8 monSprite;
+ struct Sprite *sprite;
+ v0 = (a0 & 0x80000000) >> 16;
+ a0 &= 0x7fffffff;
+ monSprite = CreateMonSprite_FieldMove(a0, a1, a2, 0x140, 0x50, 0);
+ sprite = &gSprites[monSprite];
+ sprite->callback = SpriteCallbackDummy;
+ sprite->oam.priority = 0;
+ sprite->data[0] = a0;
+ sprite->data[6] = v0;
+ return monSprite;
+}
+
+void sub_80B8D04(struct Sprite *);
+
+void sub_80B8CC0(struct Sprite *sprite)
+{
+ if ((sprite->pos1.x -= 20) <= 0x78)
+ {
+ sprite->pos1.x = 0x78;
+ sprite->data[1] = 30;
+ sprite->callback = sub_80B8D04;
+ if (sprite->data[6])
+ {
+ PlayCry2(sprite->data[0], 0, 0x7d, 0xa);
+ } else
+ {
+ PlayCry1(sprite->data[0], 0);
+ }
+ }
+}
+
+void sub_80B8D20(struct Sprite *);
+
+void sub_80B8D04(struct Sprite *sprite)
+{
+ if ((--sprite->data[1]) == 0)
+ {
+ sprite->callback = sub_80B8D20;
+ }
+}
+
+void sub_80B8D20(struct Sprite *sprite)
+{
+ if (sprite->pos1.x < -0x40)
+ {
+ sprite->data[7] = 1;
+ } else
+ {
+ sprite->pos1.x -= 20;
+ }
+}
+
+void sub_80B8D84(u8);
+
+u8 FldEff_UseSurf(void)
+{
+ u8 taskId;
+ taskId = CreateTask(sub_80B8D84, 0xff);
+ gTasks[taskId].data[15] = gFieldEffectArguments[0];
+ Overworld_ClearSavedMusic();
+ Overworld_ChangeMusicTo(MUS_NAMINORI);
+ return FALSE;
+}
+
+void (*const gUnknown_0855C4E0[])(struct Task *) = {
+ sub_80B8DB4,
+ sub_80B8E14,
+ sub_80B8E60,
+ sub_80B8EA8,
+ sub_80B8F24,
+};
+
+void sub_80B8D84(u8 taskId)
+{
+ gUnknown_0855C4E0[gTasks[taskId].data[0]](&gTasks[taskId]);
+}
+
+void sub_80B8DB4(struct Task *task)
+{
+ ScriptContext2_Enable();
+ FreezeMapObjects();
+ gPlayerAvatar.preventStep = TRUE;
+ SetPlayerAvatarStateMask(8);
+ PlayerGetDestCoords(&task->data[1], &task->data[2]);
+ MoveCoords(gMapObjects[gPlayerAvatar.mapObjectId].placeholder18, &task->data[1], &task->data[2]);
+ task->data[0]++;
+}
+
+void sub_80B8E14(struct Task *task)
+{
+ struct MapObject *mapObject;
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) || FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ sub_808C114();
+ FieldObjectSetSpecialAnim(mapObject, 0x39);
+ task->data[0]++;
+ }
+}
+
+void sub_80B8E60(struct Task *task)
+{
+ struct MapObject *mapObject;
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (FieldObjectCheckIfSpecialAnimFinishedOrInactive(mapObject))
+ {
+ gFieldEffectArguments[0] = task->data[15] | 0x80000000;
+ FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
+ task->data[0]++;
+ }
+}
+
+void sub_80B8EA8(struct Task *task)
+{
+ struct MapObject *mapObject;
+ if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON))
+ {
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ FieldObjectSetGraphicsId(mapObject, GetPlayerAvatarGraphicsIdByStateId(3));
+ FieldObjectClearAnimIfSpecialAnimFinished(mapObject);
+ FieldObjectSetSpecialAnim(mapObject, sub_8093540(mapObject->placeholder18));
+ gFieldEffectArguments[0] = task->data[1];
+ gFieldEffectArguments[1] = task->data[2];
+ gFieldEffectArguments[2] = gPlayerAvatar.mapObjectId;
+ mapObject->mapobj_unk_1A = FieldEffectStart(FLDEFF_SURF_BLOB);
+ task->data[0]++;
+ }
+}
+
+void sub_80B8F24(struct Task *task)
+{
+ struct MapObject *mapObject;
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ gPlayerAvatar.preventStep = FALSE;
+ gPlayerAvatar.flags &= 0xdf;
+ FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(mapObject->placeholder18));
+ sub_81555AC(mapObject->mapobj_unk_1A, 1);
+ UnfreezeMapObjects();
+ ScriptContext2_Disable();
+ FieldEffectActiveListRemove(FLDEFF_USE_SURF);
+ DestroyTask(FindTaskIdByFunc(sub_80B8D84));
+ }
+}
+
+#ifdef NONMATCHING
+u8 sub_80B8F98(void)
+{
+ u8 spriteId, i, j, k, l;
+ struct Sprite *sprite;
+ spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[36], 0x78, -0x18, 1);
+ sprite = &gSprites[spriteId];
+ sprite->oam.priority = 1;
+ sprite->oam.paletteNum = 4;
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
+ sprite->data[3] = -1;
+ sprite->data[4] = sprite->pos1.y;
+ sprite->data[5] = 0;
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(14, 14));
+ SetGpuReg(REG_OFFSET_WININ, 0x3F3F);
+ LoadPalette(gUnknown_0855B610, 0xC0, sizeof(gUnknown_0855B610));
+ SetGpuReg(REG_OFFSET_BG0VOFS, 120);
+ for (i = 3; i < 15; i++)
+ {
+ for (j = 12; j < 18; j++)
+ {
+ ((u16*)(VRAM + 0xF800))[i * 32 + j] = 0xBFF4 + i * 6 + j + 1;
+ }
+ }
+ for (k = 0; k < 90; k++)
+ {
+ for (l = 0; l < 8; l++)
+ {
+ *(u16*)(VRAM + 0x8000 + (k + 1) * 32 + l * 4) = (gUnknown_0855B630[k * 32 + l * 4 + 1] << 8) + gUnknown_0855B630[k * 32 + l * 4];
+ *(u16*)(VRAM + 0x8000 + (k + 1) * 32 + l * 4 + 2) = (gUnknown_0855B630[k * 32 + l * 4 + 3] << 8) + gUnknown_0855B630[k * 32 + l * 4 + 2];
+ }
+ }
+ return spriteId;
+}
+#else
+NAKED
+u8 sub_80B8F98(void)
+{
+ asm_unified("push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ ldr r0, =gFieldEffectObjectTemplatePointers\n\
+ adds r0, 0x90\n\
+ ldr r0, [r0]\n\
+ movs r2, 0x18\n\
+ negs r2, r2\n\
+ movs r1, 0x78\n\
+ movs r3, 0x1\n\
+ bl CreateSprite\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ lsls r1, r0, 4\n\
+ add r1, r8\n\
+ lsls r1, 2\n\
+ ldr r0, =gSprites\n\
+ adds r1, r0\n\
+ ldrb r2, [r1, 0x5]\n\
+ movs r0, 0xD\n\
+ negs r0, r0\n\
+ ands r0, r2\n\
+ movs r2, 0x4\n\
+ orrs r0, r2\n\
+ movs r2, 0xF\n\
+ ands r0, r2\n\
+ movs r2, 0x40\n\
+ orrs r0, r2\n\
+ strb r0, [r1, 0x5]\n\
+ movs r2, 0\n\
+ strh r2, [r1, 0x2E]\n\
+ strh r2, [r1, 0x30]\n\
+ strh r2, [r1, 0x32]\n\
+ ldr r0, =0x0000ffff\n\
+ strh r0, [r1, 0x34]\n\
+ ldrh r0, [r1, 0x22]\n\
+ strh r0, [r1, 0x36]\n\
+ strh r2, [r1, 0x38]\n\
+ ldr r1, =0x00003e41\n\
+ movs r0, 0x50\n\
+ bl SetGpuReg\n\
+ ldr r1, =0x00000e0e\n\
+ movs r0, 0x52\n\
+ bl SetGpuReg\n\
+ ldr r1, =0x00003f3f\n\
+ movs r0, 0x48\n\
+ bl SetGpuReg\n\
+ ldr r0, =gUnknown_0855B610\n\
+ movs r1, 0xC0\n\
+ movs r2, 0x20\n\
+ bl LoadPalette\n\
+ movs r0, 0x12\n\
+ movs r1, 0x78\n\
+ bl SetGpuReg\n\
+ movs r4, 0x3\n\
+ ldr r7, =0x0600f800\n\
+ ldr r0, =0x0000bff4\n\
+ adds r6, r0, 0\n\
+_080B901A:\n\
+ movs r2, 0xC\n\
+ lsls r0, r4, 1\n\
+ lsls r5, r4, 5\n\
+ adds r0, r4\n\
+ lsls r3, r0, 1\n\
+_080B9024:\n\
+ adds r0, r5, r2\n\
+ lsls r0, 1\n\
+ adds r0, r7\n\
+ adds r1, r2, r6\n\
+ adds r1, r3, r1\n\
+ adds r1, 0x1\n\
+ strh r1, [r0]\n\
+ adds r0, r2, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r2, r0, 24\n\
+ cmp r2, 0x11\n\
+ bls _080B9024\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0xE\n\
+ bls _080B901A\n\
+ movs r0, 0\n\
+ ldr r5, =gUnknown_0855B630\n\
+_080B904A:\n\
+ movs r4, 0\n\
+ adds r7, r0, 0x1\n\
+ lsls r6, r0, 5\n\
+_080B9050:\n\
+ lsls r1, r4, 2\n\
+ adds r1, r6, r1\n\
+ ldr r0, =0x06008020\n\
+ adds r3, r1, r0\n\
+ adds r0, r1, 0x1\n\
+ adds r0, r5\n\
+ ldrb r2, [r0]\n\
+ lsls r2, 8\n\
+ adds r0, r1, r5\n\
+ ldrb r0, [r0]\n\
+ adds r0, r2\n\
+ strh r0, [r3]\n\
+ ldr r0, =0x06008022\n\
+ adds r3, r1, r0\n\
+ adds r0, r1, 0x3\n\
+ adds r0, r5\n\
+ ldrb r2, [r0]\n\
+ lsls r2, 8\n\
+ adds r1, 0x2\n\
+ adds r1, r5\n\
+ ldrb r0, [r1]\n\
+ adds r0, r2\n\
+ strh r0, [r3]\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0x7\n\
+ bls _080B9050\n\
+ lsls r0, r7, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x59\n\
+ bls _080B904A\n\
+ mov r0, r8\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .pool");
+}
+#endif // NONMATCHING
+
+void sub_80B9128(struct Sprite *);
+
+u8 FldEff_NPCFlyOut(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+ spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0x78, 0, 1);
+ sprite = &gSprites[spriteId];
+ sprite->oam.paletteNum = 0;
+ sprite->oam.priority = 1;
+ sprite->callback = sub_80B9128;
+ sprite->data[1] = gFieldEffectArguments[0];
+ PlaySE(SE_W019);
+ return spriteId;
+}
+
+void sub_80B9128(struct Sprite *sprite)
+{
+ struct Sprite *npcSprite;
+ sprite->pos2.x = Cos(sprite->data[2], 0x8c);
+ sprite->pos2.y = Sin(sprite->data[2], 0x48);
+ sprite->data[2] = (sprite->data[2] + 4) & 0xff;
+ if (sprite->data[0])
+ {
+ npcSprite = &gSprites[sprite->data[1]];
+ npcSprite->coordOffsetEnabled = 0;
+ npcSprite->pos1.x = sprite->pos1.x + sprite->pos2.x;
+ npcSprite->pos1.y = sprite->pos1.y + sprite->pos2.y - 8;
+ npcSprite->pos2.x = 0;
+ npcSprite->pos2.y = 0;
+ }
+ if (sprite->data[2] >= 0x80)
+ {
+ FieldEffectStop(sprite, FLDEFF_NPCFLY_OUT);
+ }
+}
+
+void sub_80B91D4(u8);
+extern void sub_81555D8(u8, u8);
+u8 sub_80B94C4(void);
+bool8 sub_80B9508(u8);
+void sub_80B9524(u8);
+void sub_80B9560(u8, u8);
+void sub_80B957C(struct Sprite *);
+void sub_80B963C(struct Sprite *);
+
+u8 FldEff_UseFly(void)
+{
+ u8 taskId;
+ taskId = CreateTask(sub_80B91D4, 0xfe);
+ gTasks[taskId].data[1] = gFieldEffectArguments[0];
+ return 0;
+}
+
+void (*const gUnknown_0855C4F4[])(struct Task *) = {
+ sub_80B9204,
+ sub_80B925C,
+ sub_80B92A0,
+ sub_80B92F8,
+ sub_80B933C,
+ sub_80B9390,
+ sub_80B9418,
+ sub_80B9474,
+ sub_80B9494,
+};
+
+void sub_80B91D4(u8 taskId)
+{
+ gUnknown_0855C4F4[gTasks[taskId].data[0]](&gTasks[taskId]);
+}
+
+void sub_80B9204(struct Task *task)
+{
+ struct MapObject *mapObject;
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) || FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ task->data[15] = gPlayerAvatar.flags;
+ gPlayerAvatar.preventStep = TRUE;
+ SetPlayerAvatarStateMask(1);
+ sub_808C114();
+ FieldObjectSetSpecialAnim(mapObject, 0x39);
+ task->data[0]++;
+ }
+}
+
+void sub_80B925C(struct Task *task)
+{
+ struct MapObject *mapObject;
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ task->data[0]++;
+ gFieldEffectArguments[0] = task->data[1];
+ FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
+ }
+}
+
+void sub_80B92A0(struct Task *task)
+{
+ struct MapObject *mapObject;
+ if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON))
+ {
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (task->data[15] & 0x08)
+ {
+ sub_81555AC(mapObject->mapobj_unk_1A, 2);
+ sub_81555D8(mapObject->mapobj_unk_1A, 0);
+ }
+ task->data[1] = sub_80B94C4();
+ task->data[0]++;
+ }
+}
+
+void sub_80B92F8(struct Task *task)
+{
+ if (sub_80B9508(task->data[1]))
+ {
+ task->data[0]++;
+ task->data[2] = 16;
+ SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
+ FieldObjectSetSpecialAnim(&gMapObjects[gPlayerAvatar.mapObjectId], 0x02);
+ }
+}
+
+void sub_80B933C(struct Task *task)
+{
+ struct MapObject *mapObject;
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if ((task->data[2] == 0 || (--task->data[2]) == 0) && FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ task->data[0]++;
+ PlaySE(SE_W019);
+ sub_80B9524(task->data[1]);
+ }
+}
+
+void sub_80B9390(struct Task *task)
+{
+ struct MapObject *mapObject;
+ if ((++task->data[2]) >= 8)
+ {
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ FieldObjectSetGraphicsId(mapObject, GetPlayerAvatarGraphicsIdByStateId(0x03));
+ StartSpriteAnim(&gSprites[mapObject->spriteId], 0x16);
+ mapObject->mapobj_bit_12 = 1;
+ FieldObjectSetSpecialAnim(mapObject, 0x48);
+ if (task->data[15] & 0x08)
+ {
+ DestroySprite(&gSprites[mapObject->mapobj_unk_1A]);
+ }
+ task->data[0]++;
+ task->data[2] = 0;
+ }
+}
+
+void sub_80B9418(struct Task *task)
+{
+ struct MapObject *mapObject;
+ if ((++task->data[2]) >= 10)
+ {
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ FieldObjectClearAnimIfSpecialAnimActive(mapObject);
+ mapObject->mapobj_bit_12 = 0;
+ mapObject->mapobj_bit_22 = 0;
+ sub_80B9560(task->data[1], mapObject->spriteId);
+ CameraObjectReset2();
+ task->data[0]++;
+ }
+}
+
+void sub_80B9474(struct Task *task)
+{
+ if (sub_80B9508(task->data[1]))
+ {
+ sub_80AF0B4();
+ task->data[0]++;
+ }
+}
+
+void sub_80B9494(struct Task *task)
+{
+ if (!gPaletteFade.active)
+ {
+ FieldEffectActiveListRemove(FLDEFF_USE_FLY);
+ DestroyTask(FindTaskIdByFunc(sub_80B91D4));
+ }
+}
+
+u8 sub_80B94C4(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+ spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[26], 0xff, 0xb4, 0x1);
+ sprite = &gSprites[spriteId];
+ sprite->oam.paletteNum = 0;
+ sprite->oam.priority = 1;
+ sprite->callback = sub_80B957C;
+ return spriteId;
+}
+
+u8 sub_80B9508(u8 spriteId)
+{
+ return gSprites[spriteId].data[7];
+}
+
+void sub_80B9524(u8 spriteId)
+{
+ struct Sprite *sprite;
+ sprite = &gSprites[spriteId];
+ sprite->callback = sub_80B963C;
+ sprite->pos1.x = 0x78;
+ sprite->pos1.y = 0x00;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ memset(&sprite->data[0], 0, 8 * sizeof(u16) /* zero all data cells */);
+ sprite->data[6] = 0x40;
+}
+
+void sub_80B9560(u8 a0, u8 a1)
+{
+ gSprites[a0].data[6] = a1;
+}
+
+const union AffineAnimCmd SpriteAffineAnim_855C518[] = {
+ AFFINEANIMCMD_FRAME(8, 8, -30, 0),
+ AFFINEANIMCMD_FRAME(28, 28, 0, 30),
+ AFFINEANIMCMD_END
+};
+
+const union AffineAnimCmd SpriteAffineAnim_855C530[] = {
+ AFFINEANIMCMD_FRAME(256, 256, 64, 0),
+ AFFINEANIMCMD_FRAME(-10, -10, 0, 22),
+ AFFINEANIMCMD_END
+};
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_0855C548[] = {
+ SpriteAffineAnim_855C518,
+ SpriteAffineAnim_855C530
+};
+
+void sub_80B957C(struct Sprite *sprite)
+{
+ if (sprite->data[7] == 0)
+ {
+ if (sprite->data[0] == 0)
+ {
+ sprite->oam.affineMode = 3;
+ sprite->affineAnims = gSpriteAffineAnimTable_0855C548;
+ InitSpriteAffineAnim(sprite);
+ StartSpriteAffineAnim(sprite, 0);
+ sprite->pos1.x = 0x76;
+ sprite->pos1.y = -0x30;
+ sprite->data[0]++;
+ sprite->data[1] = 0x40;
+ sprite->data[2] = 0x100;
+ }
+ sprite->data[1] += (sprite->data[2] >> 8);
+ sprite->pos2.x = Cos(sprite->data[1], 0x78);
+ sprite->pos2.y = Sin(sprite->data[1], 0x78);
+ if (sprite->data[2] < 0x800)
+ {
+ sprite->data[2] += 0x60;
+ }
+ if (sprite->data[1] > 0x81)
+ {
+ sprite->data[7]++;
+ sprite->oam.affineMode = 0;
+ FreeOamMatrix(sprite->oam.matrixNum);
+ CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, 0);
+ }
+ }
+}
+
+void sub_80B963C(struct Sprite *sprite)
+{
+ struct Sprite *sprite1;
+ sprite->pos2.x = Cos(sprite->data[2], 0x8c);
+ sprite->pos2.y = Sin(sprite->data[2], 0x48);
+ sprite->data[2] = (sprite->data[2] + 4) & 0xff;
+ if (sprite->data[6] != 0x40)
+ {
+ sprite1 = &gSprites[sprite->data[6]];
+ sprite1->coordOffsetEnabled = 0;
+ sprite1->pos1.x = sprite->pos1.x + sprite->pos2.x;
+ sprite1->pos1.y = sprite->pos1.y + sprite->pos2.y - 8;
+ sprite1->pos2.x = 0;
+ sprite1->pos2.y = 0;
+ }
+ if (sprite->data[2] >= 0x80)
+ {
+ sprite->data[7] = 1;
+ }
+}
+
+void sub_80B96B0(struct Sprite *sprite)
+{
+ if (sprite->data[7] == 0)
+ {
+ if (sprite->data[0] == 0)
+ {
+ sprite->oam.affineMode = 3;
+ sprite->affineAnims = gSpriteAffineAnimTable_0855C548;
+ InitSpriteAffineAnim(sprite);
+ StartSpriteAffineAnim(sprite, 1);
+ sprite->pos1.x = 0x5e;
+ sprite->pos1.y = -0x20;
+ sprite->data[0]++;
+ sprite->data[1] = 0xf0;
+ sprite->data[2] = 0x800;
+ sprite->data[4] = 0x80;
+ }
+ sprite->data[1] += sprite->data[2] >> 8;
+ sprite->data[3] += sprite->data[2] >> 8;
+ sprite->data[1] &= 0xff;
+ sprite->pos2.x = Cos(sprite->data[1], 0x20);
+ sprite->pos2.y = Sin(sprite->data[1], 0x78);
+ if (sprite->data[2] > 0x100)
+ {
+ sprite->data[2] -= sprite->data[4];
+ }
+ if (sprite->data[4] < 0x100)
+ {
+ sprite->data[4] += 24;
+ }
+ if (sprite->data[2] < 0x100)
+ {
+ sprite->data[2] = 0x100;
+ }
+ if (sprite->data[3] >= 60)
+ {
+ sprite->data[7]++;
+ sprite->oam.affineMode = 0;
+ FreeOamMatrix(sprite->oam.matrixNum);
+ sprite->invisible = 1;
+ }
+ }
+}
+
+void sub_80B9794(u8 spriteId)
+{
+ sub_80B9524(spriteId);
+ gSprites[spriteId].callback = sub_80B96B0;
+}
+
+void sub_80B97D4(u8);
+
+u8 FldEff_FlyIn(void)
+{
+ CreateTask(sub_80B97D4, 0xfe);
+ return 0;
+}
+
+void (*const gUnknown_0855C550[])(struct Task *) = {
+ sub_80B9804,
+ sub_80B98B8,
+ sub_80B9924,
+ sub_80B9978,
+ sub_80B99F0,
+ sub_80B9A28,
+ sub_80B9A60,
+};
+
+void sub_80B97D4(u8 taskId)
+{
+ gUnknown_0855C550[gTasks[taskId].data[0]](&gTasks[taskId]);
+}
+
+void sub_80B9804(struct Task *task)
+{
+ struct MapObject *mapObject;
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) || FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ task->data[0]++;
+ task->data[2] = 17;
+ task->data[15] = gPlayerAvatar.flags;
+ gPlayerAvatar.preventStep = TRUE;
+ SetPlayerAvatarStateMask(0x01);
+ if (task->data[15] & 0x08)
+ {
+ sub_81555AC(mapObject->mapobj_unk_1A, 0);
+ }
+ FieldObjectSetGraphicsId(mapObject, GetPlayerAvatarGraphicsIdByStateId(0x3));
+ CameraObjectReset2();
+ FieldObjectTurn(mapObject, DIR_WEST);
+ StartSpriteAnim(&gSprites[mapObject->spriteId], 0x16);
+ mapObject->mapobj_bit_13 = 0;
+ task->data[1] = sub_80B94C4();
+ sub_80B9524(task->data[1]);
+ sub_80B9560(task->data[1], mapObject->spriteId);
+ }
+}
+
+void sub_80B98B8(struct Task *task)
+{
+ struct MapObject *mapObject;
+ struct Sprite *sprite;
+ if (task->data[2] == 0 || (--task->data[2]) == 0)
+ {
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ sprite = &gSprites[mapObject->spriteId];
+ sub_80B9560(task->data[1], 0x40);
+ sprite->pos1.x += sprite->pos2.x;
+ sprite->pos1.y += sprite->pos2.y;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ task->data[0]++;
+ task->data[2] = 0;
+ }
+}
+
+void sub_80B9924(struct Task *task)
+{
+ s16 unknown_0855C56C[18] = {
+ -2,
+ -4,
+ -5,
+ -6,
+ -7,
+ -8,
+ -8,
+ -8,
+ -7,
+ -7,
+ -6,
+ -5,
+ -3,
+ -2,
+ 0,
+ 2,
+ 4,
+ 8
+ };
+ struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId];
+ sprite->pos2.y = unknown_0855C56C[task->data[2]];
+ if ((++task->data[2]) >= 18)
+ {
+ task->data[0]++;
+ }
+}
+
+void sub_80B9978(struct Task *task)
+{
+ struct MapObject *mapObject;
+ struct Sprite *sprite;
+ if (sub_80B9508(task->data[1]))
+ {
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ sprite = &gSprites[mapObject->spriteId];
+ mapObject->mapobj_bit_12 = 0;
+ sub_808EB08(mapObject, mapObject->coords2.x, mapObject->coords2.y);
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->coordOffsetEnabled = 1;
+ sub_808C114();
+ FieldObjectSetSpecialAnim(mapObject, 0x39);
+ task->data[0]++;
+ }
+}
+
+void sub_80B99F0(struct Task *task)
+{
+ if (FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gPlayerAvatar.mapObjectId]))
+ {
+ task->data[0]++;
+ sub_80B9794(task->data[1]);
+ }
+}
+
+void sub_80B9A28(struct Task *task)
+{
+ if (sub_80B9508(task->data[1]))
+ {
+ DestroySprite(&gSprites[task->data[1]]);
+ task->data[0]++;
+ task->data[1] = 0x10;
+ }
+}
+
+void sub_80B9A60(struct Task *task)
+{
+ u8 state;
+ struct MapObject *mapObject;
+ if ((--task->data[1]) == 0)
+ {
+ mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
+ state = 0;
+ if (task->data[15] & 0x08)
+ {
+ state = 3;
+ sub_81555AC(mapObject->mapobj_unk_1A, 1);
+ }
+ FieldObjectSetGraphicsId(mapObject, GetPlayerAvatarGraphicsIdByStateId(state));
+ FieldObjectTurn(mapObject, DIR_SOUTH);
+ gPlayerAvatar.flags = task->data[15];
+ gPlayerAvatar.preventStep = FALSE;
+ FieldEffectActiveListRemove(FLDEFF_FLY_IN);
+ DestroyTask(FindTaskIdByFunc(sub_80B97D4));
+ }
+}
+
+void sub_80B9BE8(u8 taskId);
+
+bool8 sub_80B9ADC(void)
+{
+ u8 taskId;
+ u8 mapObjectIdBuffer;
+ if (!TryGetFieldObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &mapObjectIdBuffer))
+ {
+ taskId = CreateTask(sub_80B9BE8, 0x50);
+ gTasks[taskId].data[2] = mapObjectIdBuffer;
+ gTasks[taskId].data[6] = gFieldEffectArguments[0];
+ gTasks[taskId].data[7] = gFieldEffectArguments[1];
+ gTasks[taskId].data[8] = gFieldEffectArguments[2];
+ }
+ else
+ {
+ FieldEffectActiveListRemove(0x41);
+ }
+ return FALSE;
+}
+
+void sub_80B9B3C(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (data[7] != 0)
+ {
+ if (++data[6] > 20)
+ {
+ data[6] = 0;
+ if (data[5] != 0)
+ data[5]--;
+ }
+ }
+ else
+ {
+ data[5] = 4;
+ }
+
+ if (++data[0] > 1)
+ {
+ data[0] = 0;
+ if (++data[1] & 1)
+ {
+ SetCameraPanning(0, -data[5]);
+ }
+ else
+ {
+ SetCameraPanning(0, data[5]);
+ }
+ }
+ UpdateCameraPanning();
+ if (data[5] == 0)
+ DestroyTask(taskId);
+}
+
+void sub_80B9BD0(u8 taskId)
+{
+ gTasks[taskId].data[7] = 1;
+}
+
+void (*const gUnknown_0855C590[])(s16*, u8) = {
+ sub_80B9C28,
+ sub_80B9C54,
+ sub_80B9CDC,
+};
+
+void sub_80B9BE8(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ InstallCameraPanAheadCallback();
+ SetCameraPanningCallback(0);
+ gUnknown_0855C590[data[1]](data, taskId);
+}
+
+void sub_80B9C28(s16* data, u8 taskId)
+{
+ u8 newTaskId = CreateTask(sub_80B9B3C, 0x5A);
+ PlaySE(SE_T_KAMI2);
+ data[5] = newTaskId;
+ data[1]++;
+}
+
+void sub_80B9D24(struct Sprite*);
+
+void sub_80B9C54(s16* data, u8 taskId)
+{
+ if (++data[3] > 0x78)
+ {
+ struct Sprite *sprite = &gSprites[gMapObjects[data[2]].spriteId];
+ gMapObjects[data[2]].mapobj_bit_13 = TRUE;
+ BlendPalettes(0x0000FFFF, 0x10, RGB_WHITE);
+ BeginNormalPaletteFade(0x0000FFFF, 0, 0x10, 0, RGB_WHITE);
+ sub_80B9D24(sprite);
+ PlaySE(SE_T_KAMI);
+ sub_80B9BD0(data[5]);
+ data[3] = 0;
+ data[1]++;
+ }
+}
+
+void sub_80B9CDC(s16* a0, u8 taskId)
+{
+ if (!gPaletteFade.active && !FuncIsActiveTask(sub_80B9B3C))
+ {
+ InstallCameraPanAheadCallback();
+ RemoveFieldObjectByLocalIdAndMap(a0[6], a0[7], a0[8]);
+ FieldEffectActiveListRemove(0x41);
+ DestroyTask(taskId);
+ }
+}
+
+void sub_80B9DB8(struct Sprite* sprite);
+
+const struct SpriteFrameImage gSpriteImageTable_855C59C[] = {
+ obj_frame_tiles(gUnknown_0855C170),
+ obj_frame_tiles(gUnknown_0855C190),
+ obj_frame_tiles(gUnknown_0855C1B0),
+ obj_frame_tiles(gUnknown_0855C1D0),
+};
+
+const union AnimCmd gSpriteAnim_855C5BC[] = {
+ ANIMCMD_FRAME(.imageValue = 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_855C5C4[] = {
+ ANIMCMD_FRAME(.imageValue = 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_855C5CC[] = {
+ ANIMCMD_FRAME(.imageValue = 2),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_855C5D4[] = {
+ ANIMCMD_FRAME(.imageValue = 3),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_855C5DC[] = {
+ gSpriteAnim_855C5BC,
+ gSpriteAnim_855C5C4,
+ gSpriteAnim_855C5CC,
+ gSpriteAnim_855C5D4,
+};
+
+const struct SpriteTemplate gUnknown_0855C5EC = {
+ .tileTag = 0xffff,
+ .paletteTag = 4378,
+ .oam = &gOamData_855C218,
+ .anims = gSpriteAnimTable_855C5DC,
+ .images = gSpriteImageTable_855C59C,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80B9DB8
+};
+
+void sub_80B9D24(struct Sprite* sprite)
+{
+ int i;
+ int xPos = (s16)gUnknown_03005DEC + sprite->pos1.x + sprite->pos2.x;
+ int yPos = (s16)gUnknown_03005DE8 + sprite->pos1.y + sprite->pos2.y - 4;
+
+ for (i = 0; i < 4; i++)
+ {
+ u8 spriteId = CreateSprite(&gUnknown_0855C5EC, xPos, yPos, 0);
+ if (spriteId != 0x40)
+ {
+ StartSpriteAnim(&gSprites[spriteId], i);
+ gSprites[spriteId].data[0] = i;
+ gSprites[spriteId].oam.paletteNum = sprite->oam.paletteNum;
+ }
+ }
+}
+
+void sub_80B9DB8(struct Sprite* sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->pos1.x -= 16;
+ sprite->pos1.y -= 12;
+ break;
+ case 1:
+ sprite->pos1.x += 16;
+ sprite->pos1.y -= 12;
+ break;
+ case 2:
+ sprite->pos1.x -= 16;
+ sprite->pos1.y += 12;
+ break;
+ case 3:
+ sprite->pos1.x += 16;
+ sprite->pos1.y += 12;
+ break;
+ }
+ if ((u16)(sprite->pos1.x + 4) > 0xF8 || sprite->pos1.y < -4 || sprite->pos1.y > 0xA4)
+ DestroySprite(sprite);
+}
+
+void sub_80B9EDC(u8 taskId);
+
+bool8 sub_80B9E28(struct Sprite* sprite)
+{
+ u8 mapObjectIdBuffer;
+ if (!TryGetFieldObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &mapObjectIdBuffer))
+ {
+ struct MapObject *object;
+ int xPos, yPos;
+ u8 taskId;
+ object = &gMapObjects[mapObjectIdBuffer];
+ xPos = object->coords2.x - 7;
+ yPos = object->coords2.y - 7;
+ xPos = (gFieldEffectArguments[3] - xPos) * 16;
+ yPos = (gFieldEffectArguments[4] - yPos) * 16;
+ npc_coords_shift(object, gFieldEffectArguments[3] + 7, gFieldEffectArguments[4] + 7);
+ taskId = CreateTask(sub_80B9EDC, 0x50);
+ gTasks[taskId].data[1] = object->spriteId;
+ gTasks[taskId].data[2] = gSprites[object->spriteId].pos1.x + xPos;
+ gTasks[taskId].data[3] = gSprites[object->spriteId].pos1.y + yPos;
+ gTasks[taskId].data[8] = gFieldEffectArguments[5];
+ gTasks[taskId].data[9] = mapObjectIdBuffer;
+ }
+ return FALSE;
+}
+
+void sub_80B9EDC(u8 taskId)
+{
+ // BUG: Possible divide by zero
+ s16 *data = gTasks[taskId].data;
+ struct Sprite *sprite = &gSprites[data[1]];
+ switch (data[0])
+ {
+ case 0:
+ data[4] = sprite->pos1.x << 4;
+ data[5] = sprite->pos1.y << 4;
+ data[6] = (data[2] * 16 - data[4]) / data[8];
+ data[7] = (data[3] * 16 - data[5]) / data[8];
+ data[0]++;
+ case 1:
+ if (data[8] != 0)
+ {
+ data[8]--;
+ data[4] += data[6];
+ data[5] += data[7];
+ sprite->pos1.x = data[4] >> 4;
+ sprite->pos1.y = data[5] >> 4;
+ }
+ else
+ {
+ struct MapObject *object = &gMapObjects[data[9]];
+ sprite->pos1.x = data[2];
+ sprite->pos1.y = data[3];
+ npc_coords_shift_still(object);
+ object->mapobj_bit_3 = TRUE;
+ FieldEffectActiveListRemove(0x42);
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 81cbe5210..af018eb16 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -353,7 +353,7 @@ static u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u
return slot;
}
#else
-static __attribute__((naked)) u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 mapId, u8 mapGroupId)
+static NAKED u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 mapId, u8 mapGroupId)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r9\n"
diff --git a/src/field_tasks.c b/src/field_tasks.c
new file mode 100644
index 000000000..d9c3078da
--- /dev/null
+++ b/src/field_tasks.c
@@ -0,0 +1,776 @@
+#include "global.h"
+#include "task.h"
+#include "main.h"
+#include "constants/vars.h"
+#include "bike.h"
+#include "item.h"
+#include "constants/items.h"
+#include "event_data.h"
+#include "overworld.h"
+#include "clock.h"
+#include "script.h"
+#include "field_special_scene.h"
+#include "field_effect_helpers.h"
+#include "secret_base.h"
+#include "metatile_behavior.h"
+#include "fieldmap.h"
+#include "field_player_avatar.h"
+#include "field_camera.h"
+#include "constants/songs.h"
+#include "sound.h"
+#include "field_tasks.h"
+
+struct MetatileOffset
+{
+ s8 x;
+ s8 y;
+ u16 tileId;
+};
+
+// this file's functions
+static void DummyPerStepCallback(u8 taskId);
+static void PerStepCallback_8069F64(u8 taskId);
+static void PerStepCallback_8069AA0(u8 taskId);
+static void PerStepCallback_8069864(u8 taskId);
+static void PerStepCallback_8069DD4(u8 taskId);
+static void PerStepCallback_806A07C(u8 taskId);
+static void Task_MuddySlope(u8 taskId);
+
+// const rom data
+static void (*const gUnknown_08510348[])(u8) =
+{
+ DummyPerStepCallback,
+ PerStepCallback_8069F64,
+ PerStepCallback_8069AA0,
+ PerStepCallback_8069864,
+ PerStepCallback_8069DD4,
+ EndTruckSequence,
+ sub_80EA3E4,
+ PerStepCallback_806A07C
+};
+
+// they are in pairs but declared as 1D array
+static const struct MetatileOffset gUnknown_08510368[] =
+{
+ { 0, 0,0x259}, { 0, 1,0x261},
+ { 0, -1,0x259}, { 0, 0,0x261},
+ { 0, 0,0x252}, { 1, 0,0x253},
+ { -1, 0,0x252}, { 0, 0,0x253}
+};
+
+static const struct MetatileOffset gUnknown_08510388[] =
+{
+ { 0, 0,0x25A}, { 0, 1,0x262},
+ { 0, -1,0x25A}, { 0, 0,0x262},
+ { 0, 0,0x254}, { 1, 0,0x255},
+ { -1, 0,0x254}, { 0, 0,0x255}
+};
+
+static const struct MetatileOffset gUnknown_085103A8[] =
+{
+ { 0, 0,0x258}, { 0, 1,0x260},
+ { 0, -1,0x258}, { 0, 0,0x260},
+ { 0, 0,0x250}, { 1, 0,0x251},
+ { -1, 0,0x250}, { 0, 0,0x251}
+};
+
+static const u16 gUnknown_085103C8[] =
+{
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ VAR_TEMP_1,
+ VAR_TEMP_2,
+ VAR_TEMP_3,
+ VAR_TEMP_4,
+ 0,
+ 0,
+ VAR_TEMP_5,
+ VAR_TEMP_6,
+ VAR_TEMP_7,
+ 0,
+ 0,
+ VAR_TEMP_8,
+ VAR_TEMP_9,
+ VAR_TEMP_A,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+};
+
+static const u16 gUnknown_085103FC[] = {0xe8, 0xeb, 0xea, 0xe9};
+
+// code
+static void Task_RunPerStepCallback(u8 taskId)
+{
+ int idx = gTasks[taskId].data[0];
+ gUnknown_08510348[idx](taskId);
+}
+
+#define tState data[0]
+#define tAmbientCryState data[1]
+#define tAmbientCryDelay data[2]
+
+static void RunTimeBasedEvents(s16 *data)
+{
+ switch (tState)
+ {
+ case 0:
+ if (gMain.vblankCounter1 & 0x1000)
+ {
+ DoTimeBasedEvents();
+ tState++;
+ }
+ break;
+ case 1:
+ if (!(gMain.vblankCounter1 & 0x1000))
+ {
+ tState--;
+ }
+ break;
+ }
+}
+
+static void Task_RunTimeBasedEvents(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if (!ScriptContext2_IsEnabled())
+ {
+ RunTimeBasedEvents(data);
+ UpdateAmbientCry(&tAmbientCryState, &tAmbientCryDelay);
+ }
+}
+
+#undef tState
+#undef tAmbientCryState
+#undef tAmbientCryDelay
+
+void SetUpFieldTasks(void)
+{
+ if (!FuncIsActiveTask(Task_RunPerStepCallback))
+ {
+ u8 taskId = CreateTask(Task_RunPerStepCallback, 0x50);
+ gTasks[taskId].data[0] = 0;
+ }
+ if (!FuncIsActiveTask(Task_MuddySlope))
+ {
+ CreateTask(Task_MuddySlope, 0x50);
+ }
+ if (!FuncIsActiveTask(Task_RunTimeBasedEvents))
+ {
+ CreateTask(Task_RunTimeBasedEvents, 0x50);
+ }
+}
+
+void ActivatePerStepCallback(u8 callbackId)
+{
+ u8 taskId = FindTaskIdByFunc(Task_RunPerStepCallback);
+ if (taskId != 0xff)
+ {
+ s32 i;
+ s16 *data = gTasks[taskId].data;
+
+ for (i = 0; i < 16; i++)
+ data[i] = 0;
+
+ if (callbackId >= ARRAY_COUNT(gUnknown_08510348))
+ {
+ data[0] = 0;
+ }
+ else
+ {
+ data[0] = callbackId;
+ }
+ }
+}
+
+void ResetFieldTasksArgs(void)
+{
+ u8 taskId;
+ s16 *data;
+
+ taskId = FindTaskIdByFunc(Task_RunPerStepCallback);
+ if (taskId != 0xff)
+ {
+ data = gTasks[taskId].data;
+ }
+ taskId = FindTaskIdByFunc(Task_RunTimeBasedEvents);
+ if (taskId != 0xff)
+ {
+ data = gTasks[taskId].data;
+ data[1] = 0;
+ data[2] = 0;
+ }
+}
+
+static void DummyPerStepCallback(u8 taskId)
+{
+
+}
+
+static const struct MetatileOffset *sub_809DA30(const struct MetatileOffset *offsets, u16 metatileBehavior)
+{
+ if (MetatileBehavior_IsPacifilogVerticalLog1(metatileBehavior))
+ return &offsets[0 * 2];
+ else if (MetatileBehavior_IsPacifilogVerticalLog2(metatileBehavior))
+ return &offsets[1 * 2];
+ else if (MetatileBehavior_IsPacifilogHorizontalLog1(metatileBehavior))
+ return &offsets[2 * 2];
+ else if (MetatileBehavior_IsPacifilogHorizontalLog2(metatileBehavior))
+ return &offsets[3 * 2];
+ else
+ return NULL;
+}
+
+static void sub_809DA88(const struct MetatileOffset *offsets, s16 x, s16 y, bool32 flag)
+{
+ offsets = sub_809DA30(offsets, MapGridGetMetatileBehaviorAt(x, y));
+
+ if (offsets != NULL)
+ {
+ MapGridSetMetatileIdAt(x + offsets[0].x, y + offsets[0].y, offsets[0].tileId);
+ if (flag)
+ CurrentMapDrawMetatileAt(x + offsets[0].x, y + offsets[0].y);
+
+ MapGridSetMetatileIdAt(x + offsets[1].x, y + offsets[1].y, offsets[1].tileId);
+ if (flag)
+ CurrentMapDrawMetatileAt(x + offsets[1].x, y + offsets[1].y);
+ }
+}
+
+static void sub_809DB10(s16 x, s16 y, bool32 flag)
+{
+ sub_809DA88(gUnknown_08510368, x, y, flag);
+}
+
+static void sub_809DB34(s16 x, s16 y, bool32 flag)
+{
+ sub_809DA88(gUnknown_08510388, x, y, flag);
+}
+
+static void sub_809DB58(s16 x, s16 y, bool32 flag)
+{
+ sub_809DA88(gUnknown_085103A8, x, y, flag);
+}
+
+static bool32 sub_809DB7C(s16 x1, s16 y1, s16 x2, s16 y2)
+{
+ u16 metatileBehavior = MapGridGetMetatileBehaviorAt(x2, y2);
+
+ if (MetatileBehavior_IsPacifilogVerticalLog1(metatileBehavior))
+ {
+ if (y1 > y2)
+ return FALSE;
+ }
+ else if (MetatileBehavior_IsPacifilogVerticalLog2(metatileBehavior))
+ {
+ if (y1 < y2)
+ return FALSE;
+ }
+ else if (MetatileBehavior_IsPacifilogHorizontalLog1(metatileBehavior))
+ {
+ if (x1 > x2)
+ return FALSE;
+ }
+ else if (MetatileBehavior_IsPacifilogHorizontalLog2(metatileBehavior))
+ {
+ if (x1 < x2)
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static bool32 sub_809DC18(s16 x1, s16 y1, s16 x2, s16 y2)
+{
+ u16 metatileBehavior = MapGridGetMetatileBehaviorAt(x1, y1);
+
+ if (MetatileBehavior_IsPacifilogVerticalLog1(metatileBehavior))
+ {
+ if (y1 < y2)
+ return FALSE;
+ }
+ else if (MetatileBehavior_IsPacifilogVerticalLog2(metatileBehavior))
+ {
+ if (y1 > y2)
+ return FALSE;
+ }
+ else if (MetatileBehavior_IsPacifilogHorizontalLog1(metatileBehavior))
+ {
+ if (x1 < x2)
+ return FALSE;
+ }
+ else if (MetatileBehavior_IsPacifilogHorizontalLog2(metatileBehavior))
+ {
+ if (x1 > x2)
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static void PerStepCallback_8069864(u8 taskId)
+{
+ s16 *data;
+ s16 x, y;
+ data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ switch (data[1])
+ {
+ case 0:
+ data[2] = x;
+ data[3] = y;
+ sub_809DB34(x, y, TRUE);
+ data[1] = 1;
+ break;
+ case 1:
+ if (x != data[2] || y != data[3])
+ {
+ if (sub_809DB7C(x, y, data[2], data[3]))
+ {
+ sub_809DB10(data[2], data[3], TRUE);
+ sub_809DB58(data[2], data[3], FALSE);
+ data[4] = data[2];
+ data[5] = data[3];
+ data[1] = 2;
+ data[6] = 8;
+ }
+ else
+ {
+ data[4] = -1;
+ data[5] = -1;
+ }
+ if (sub_809DC18(x, y, data[2], data[3]))
+ {
+ sub_809DB10(x, y, TRUE);
+ data[1] = 2;
+ data[6] = 8;
+ }
+ data[2] = x;
+ data[3] = y;
+ if (MetatileBehavior_IsPacifidlogLog(MapGridGetMetatileBehaviorAt(x, y)))
+ {
+ PlaySE(SE_MIZU);
+ }
+ }
+ break;
+ case 2:
+ if ((--data[6]) == 0)
+ {
+ sub_809DB34(x, y, TRUE);
+ if (data[4] != -1 && data[5] != -1)
+ {
+ sub_809DB58(data[4], data[5], TRUE);
+ }
+ data[1] = 1;
+ }
+ break;
+ }
+}
+
+static void sub_809DE28(s16 x, s16 y)
+{
+ u8 z = PlayerGetZCoord();
+ if (!(z & 0x01))
+ {
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x24e:
+ MapGridSetMetatileIdAt(x, y, 0x24f);
+ break;
+ case 0x256:
+ MapGridSetMetatileIdAt(x, y, 0x257);
+ break;
+ }
+ }
+}
+
+static void sub_809DE8C(s16 x, s16 y)
+{
+ u8 z = PlayerGetZCoord();
+ if (!(z & 0x01))
+ {
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x24f:
+ MapGridSetMetatileIdAt(x, y, 0x24e);
+ break;
+ case 0x257:
+ MapGridSetMetatileIdAt(x, y, 0x256);
+ break;
+ }
+ }
+}
+
+static void PerStepCallback_8069AA0(u8 taskId)
+{
+ bool8 isFortreeBridgeCur;
+ bool8 isFortreeBridgePrev;
+ u8 z, flag;
+ s16 x, y, x2, y2;
+ s16 *data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ switch (data[1])
+ {
+ default:
+ break;
+ case 0:
+ data[2] = x;
+ data[3] = y;
+ if (MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x, y)))
+ {
+ sub_809DE28(x, y);
+ CurrentMapDrawMetatileAt(x, y);
+ }
+ data[1] = 1;
+ break;
+ case 1:
+ x2 = data[2];
+ y2 = data[3];
+ if (x == x2 && y == y2)
+ {
+ break;
+ }
+ isFortreeBridgeCur = MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x, y));
+ isFortreeBridgePrev = MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x2, y2));
+ z = PlayerGetZCoord();
+ flag = 0;
+ if ((u8)(z & 1) == 0)
+ {
+ flag = 1;
+ }
+ if (flag && (isFortreeBridgeCur == 1 || isFortreeBridgePrev == 1))
+ {
+ PlaySE(SE_HASHI);
+ }
+ if (isFortreeBridgePrev)
+ {
+ sub_809DE8C(x2, y2);
+ CurrentMapDrawMetatileAt(x2, y2);
+ sub_809DE28(x, y);
+ CurrentMapDrawMetatileAt(x, y);
+ }
+ data[4] = x2;
+ data[5] = y2;
+ data[2] = x;
+ data[3] = y;
+ if (!isFortreeBridgePrev)
+ {
+ break;
+ }
+ data[6] = 16;
+ data[1] = 2;
+ // fallthrough
+ case 2:
+ data[6]--;
+ x2 = data[4];
+ y2 = data[5];
+ switch (data[6] % 7)
+ {
+ case 0:
+ CurrentMapDrawMetatileAt(x2, y2);
+ case 1:
+ case 2:
+ case 3:
+ break;
+ case 4:
+ sub_809DE28(x2, y2);
+ CurrentMapDrawMetatileAt(x2, y2);
+ sub_809DE8C(x2, y2);
+ case 5:
+ case 6:
+ case 7:
+ break;
+ }
+ if (data[6] == 0)
+ {
+ data[1] = 1;
+ }
+ break;
+ }
+}
+
+static bool32 sub_809E108(s16 x, s16 y)
+{
+ if ((u16)(x - 3) < 11 && (u16)(y - 6) < 14 && gUnknown_085103C8[y])
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static void sub_809E14C(s16 x, s16 y)
+{
+ if (sub_809E108(x, y))
+ *GetVarPointer(gUnknown_085103C8[y]) |= (1 << (x - 3));
+}
+
+static bool32 sub_809E184(s16 x, s16 y)
+{
+ u32 var;
+ if (!sub_809E108(x, y))
+ return FALSE;
+
+ var = VarGet(gUnknown_085103C8[y]) << 16;
+ if (((1 << 16) << (x - 3)) & var) // TODO: fix that if
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void SetSootopolisGymCrackedIceMetatiles(void)
+{
+ s32 x, y;
+ s32 width = gMapHeader.mapData->width;
+ s32 height = gMapHeader.mapData->height;
+ for (x = 0; x < width; x++)
+ {
+ for (y = 0; y < height; y++)
+ {
+ if (sub_809E184(x, y) == TRUE)
+ {
+ MapGridSetMetatileIdAt(x + 7, y + 7, 0x20e);
+ }
+ }
+ }
+}
+
+static void PerStepCallback_8069DD4(u8 taskId)
+{
+ s16 x, y;
+ u16 tileBehavior;
+ u16 *var;
+ s16 *data = gTasks[taskId].data;
+ switch (data[1])
+ {
+ case 0:
+ PlayerGetDestCoords(&x, &y);
+ data[2] = x;
+ data[3] = y;
+ data[1] = 1;
+ break;
+ case 1:
+ PlayerGetDestCoords(&x, &y);
+ if (x != data[2] || y != data[3])
+ {
+ data[2] = x;
+ data[3] = y;
+ tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+ var = GetVarPointer(VAR_ICE_STEP_COUNT);
+ if (MetatileBehavior_IsThinIce(tileBehavior) == TRUE)
+ {
+ (*var)++;
+ data[6] = 4;
+ data[1] = 2;
+ data[4] = x;
+ data[5] = y;
+ }
+ else if (MetatileBehavior_IsCrackedIce(tileBehavior) == TRUE)
+ {
+ *var = 0;
+ data[6] = 4;
+ data[1] = 3;
+ data[4] = x;
+ data[5] = y;
+ }
+ }
+ break;
+ case 2:
+ if (data[6] != 0)
+ {
+ data[6]--;
+ }
+ else
+ {
+ x = data[4];
+ y = data[5];
+ PlaySE(SE_RU_BARI);
+ MapGridSetMetatileIdAt(x, y, 0x20e);
+ CurrentMapDrawMetatileAt(x, y);
+ sub_809E14C(x - 7, y - 7);
+ data[1] = 1;
+ }
+ break;
+ case 3:
+ if (data[6] != 0)
+ {
+ data[6]--;
+ }
+ else
+ {
+ x = data[4];
+ y = data[5];
+ PlaySE(SE_RU_GASYAN);
+ MapGridSetMetatileIdAt(x, y, 0x206);
+ CurrentMapDrawMetatileAt(x, y);
+ data[1] = 1;
+ }
+ break;
+ }
+}
+
+static void PerStepCallback_8069F64(u8 taskId)
+{
+ s16 x, y;
+ u16 *var;
+ s16 *data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ if (x != data[1] || y != data[2])
+ {
+ data[1] = x;
+ data[2] = y;
+ if (MetatileBehavior_IsAsh(MapGridGetMetatileBehaviorAt(x, y)))
+ {
+ if (MapGridGetMetatileIdAt(x, y) == 0x20a)
+ {
+ ash(x, y, 0x212, 4);
+ }
+ else
+ {
+ ash(x, y, 0x206, 4);
+ }
+ if (CheckBagHasItem(ITEM_SOOT_SACK, 1))
+ {
+ var = GetVarPointer(VAR_ASH_GATHER_COUNT);
+ if (*var < 9999)
+ {
+ (*var)++;
+ }
+ }
+ }
+ }
+}
+
+static void sub_809E490(s16 x, s16 y)
+{
+ MapGridSetMetatileIdAt(x, y, MapGridGetMetatileIdAt(x, y) == 0x22f ? 0x206 : 0x237);
+ CurrentMapDrawMetatileAt(x, y);
+}
+
+static void PerStepCallback_806A07C(u8 taskId)
+{
+ s16 x, y;
+ u16 behavior;
+ s16 *data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ behavior = MapGridGetMetatileBehaviorAt(x, y);
+ if (data[4] != 0 && (--data[4]) == 0)
+ {
+ sub_809E490(data[5], data[6]);
+ }
+ if (data[7] != 0 && (--data[7]) == 0)
+ {
+ sub_809E490(data[8], data[9]);
+ }
+ if (MetatileBehavior_IsCrackedFloorHole(behavior))
+ {
+ VarSet(VAR_ICE_STEP_COUNT, 0); // this var does double duty
+ }
+ if ((x != data[2] || y != data[3]))
+ {
+ data[2] = x;
+ data[3] = y;
+ if (MetatileBehavior_IsCrackedFloor(behavior))
+ {
+ if (GetPlayerSpeed() != 4)
+ {
+ VarSet(VAR_ICE_STEP_COUNT, 0); // this var does double duty
+ }
+ if (data[4] == 0)
+ {
+ data[4] = 3;
+ data[5] = x;
+ data[6] = y;
+ }
+ else if (data[7] == 0)
+ {
+ data[7] = 3;
+ data[8] = x;
+ data[9] = y;
+ }
+ }
+ }
+}
+
+static void sub_809E5DC(s16 *data, s16 x, s16 y)
+{
+ u16 tile;
+ if ((--data[0]) == 0)
+ {
+ tile = 0xe8;
+ }
+ else
+ {
+ tile = gUnknown_085103FC[data[0] / 8];
+ }
+ MapGridSetMetatileIdAt(x, y, tile);
+ CurrentMapDrawMetatileAt(x, y);
+ MapGridSetMetatileIdAt(x, y, 0xe8);
+}
+
+static void Task_MuddySlope(u8 taskId)
+{
+ s16 x, y, x2, y2;
+ int i;
+ u16 mapIndices;
+ s16 *data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ mapIndices = (gSaveBlock1Ptr->location.mapGroup << 8) | gSaveBlock1Ptr->location.mapNum;
+ switch (data[1])
+ {
+ case 0:
+ data[0] = mapIndices;
+ data[2] = x;
+ data[3] = y;
+ data[1] = 1;
+ data[4] = 0;
+ data[7] = 0;
+ data[10] = 0;
+ data[13] = 0;
+ break;
+ case 1:
+ if (data[2] != x || data[3] != y)
+ {
+ data[2] = x;
+ data[3] = y;
+ if (MetatileBehavior_IsMuddySlope(MapGridGetMetatileBehaviorAt(x, y)))
+ {
+ for (i=4; i<14; i+=3)
+ {
+ if (data[i] == 0)
+ {
+ data[i] = 32;
+ data[i + 1] = x;
+ data[i + 2] = y;
+ break;
+ }
+ }
+ }
+ }
+ break;
+ }
+ if (gCamera.active && mapIndices != data[0])
+ {
+ data[0] = mapIndices;
+ x2 = gCamera.x;
+ y2 = gCamera.y;
+ }
+ else
+ {
+ x2 = 0;
+ y2 = 0;
+ }
+ for (i = 4; i < 14; i += 3)
+ {
+ if (data[i])
+ {
+ data[i + 1] -= x2;
+ data[i + 2] -= y2;
+ sub_809E5DC(&data[i], data[i + 1], data[i + 2]);
+ }
+ }
+}
diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c
index e675ef0a5..1b88b42d7 100644
--- a/src/fldeff_teleport.c
+++ b/src/fldeff_teleport.c
@@ -37,7 +37,7 @@ bool8 FldEff_UseTeleport(void)
void sub_817C94C(void)
{
FieldEffectActiveListRemove(FLDEFF_USE_TELEPORT);
- sub_80B7FC8();
+ CreateTeleportFieldEffectTask();
}
diff --git a/src/fossil_specials.c b/src/fossil_specials.c
index 95fafc17b..060915fa6 100644
--- a/src/fossil_specials.c
+++ b/src/fossil_specials.c
@@ -335,7 +335,7 @@ static void sub_81BED50(u8 taskId)
}
#else
-ASM_DIRECT
+NAKED
static void sub_81BED50(u8 taskId)
{
asm("\n\
diff --git a/src/hof_pc.c b/src/hof_pc.c
index e5b6f96f8..44b929337 100644
--- a/src/hof_pc.c
+++ b/src/hof_pc.c
@@ -7,7 +7,6 @@
#include "script_menu.h"
#include "task.h"
-extern void (*gFieldCallback)(void);
extern void (*gUnknown_0300485C)(void);
extern void Overworld_PlaySpecialMapMusic(void);
diff --git a/src/item.c b/src/item.c
index 975fef3ae..319d167fc 100644
--- a/src/item.c
+++ b/src/item.c
@@ -234,7 +234,7 @@ bool8 CheckBagHasSpace(u16 itemId, u16 count)
}
}
#else
-ASM_DIRECT
+NAKED
bool8 CheckBagHasSpace(u16 itemId, u16 count)
{
asm_unified("push {r4-r7,lr}\n\
diff --git a/src/item_menu.c b/src/item_menu.c
index d7edea301..c4b4b15b1 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -26,7 +26,6 @@
#include "malloc.h"
#include "map_name_popup.h"
#include "menu.h"
-#include "menu_indicators.h"
#include "money.h"
#include "overworld.h"
#include "palette.h"
@@ -265,14 +264,12 @@ struct TempWallyStruct {
};
EWRAM_DATA struct UnkBagStruct *gUnknown_0203CE54 = 0;
-EWRAM_DATA struct BagStruct gUnknown_0203CE58 = {0, 0, 0, {0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}};
+EWRAM_DATA struct BagStruct gUnknown_0203CE58 = {0};
EWRAM_DATA struct ListBuffer1 *gUnknown_0203CE74 = 0;
EWRAM_DATA struct ListBuffer2 *gUnknown_0203CE78 = 0;
EWRAM_DATA u16 gSpecialVar_ItemId = 0;
EWRAM_DATA struct TempWallyStruct *gUnknown_0203CE80 = 0;
-void (*gFieldCallback)(void);
-
extern u8 *gPocketNamesStringsTable[];
extern u8 gUnknown_08D9A88C[];
extern struct ListMenuTemplate gUnknown_08613F9C;
@@ -752,7 +749,7 @@ void sub_81AB824(void)
void bag_menu_add_list_scroll_arrow_indicators_maybe(void)
{
if (gUnknown_0203CE54->unk81B != 1 && gUnknown_0203CE54->unk81F == 0xFF)
- gUnknown_0203CE54->unk81F = AddScrollIndicatorArrowPair(&gUnknown_08614094, gUnknown_0203CE58.unk6);
+ gUnknown_0203CE54->unk81F = AddScrollIndicatorArrowPair(&gUnknown_08614094, &gUnknown_0203CE58.unk6);
}
void sub_81AB89C(void)
diff --git a/src/item_use.c b/src/item_use.c
index 80b33220e..d036da6d3 100755
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -91,7 +91,6 @@ extern u8* sub_806CF78(u16);
extern void sub_81B89F0(void);
extern u8 GetItemEffectType(u16);
extern struct MapConnection *sub_8088A8C(s16, s16);
-extern void (*gFieldCallback)(void);
void MapPostLoadHook_UseItem(void);
void sub_80AF6D4(void);
@@ -167,7 +166,7 @@ void MapPostLoadHook_UseItem(void)
void Task_CallItemUseOnFieldCallback(u8 taskId)
{
- if (sub_80ABDFC() == 1)
+ if (IsWeatherNotFadingIn() == 1)
gUnknown_0203A0F4(taskId);
}
diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c
index ea244b6a0..1012a8e08 100644
--- a/src/lilycove_lady.c
+++ b/src/lilycove_lady.c
@@ -237,11 +237,11 @@ void sub_818D9C0(void)
{
LilycoveLady *lilycoveLady;
- VarSet(VAR_0x4010, sUnknown_0860B07E[GetLilycoveLadyId()]);
+ VarSet(VAR_OBJ_GFX_ID_0, sUnknown_0860B07E[GetLilycoveLadyId()]);
if (GetLilycoveLadyId() == LILYCOVE_LADY_CONTEST)
{
lilycoveLady = &gSaveBlock1Ptr->lilycoveLady;
- VarSet(VAR_0x4011, sUnknown_0860B074[lilycoveLady->contest.category]);
+ VarSet(VAR_OBJ_GFX_ID_1, sUnknown_0860B074[lilycoveLady->contest.category]);
gSpecialVar_Result = TRUE;
}
else
@@ -801,26 +801,26 @@ void sub_818E564(void)
EnableBothScriptContexts();
}
-void sub_818E570(const struct LilycoveLadyQuiz *quiz)
+void sub_818E570(const LilycoveLady *lilycoveLady)
{
u8 i;
gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz;
- if (quiz->unk_02c < 16 && gUnknown_0203CD68->id == LILYCOVE_LADY_QUIZ)
+ if (lilycoveLady->quiz.unk_02c < 16 && gUnknown_0203CD68->id == LILYCOVE_LADY_QUIZ)
{
for (i = 0; i < 4; i ++)
{
- if (quiz->unk_02c != gUnknown_0203CD68->unk_02b)
+ if (lilycoveLady->quiz.unk_02c != gUnknown_0203CD68->unk_02b)
{
break;
}
gUnknown_0203CD68->unk_02b = Random() % 16;
}
- if (quiz->unk_02c == gUnknown_0203CD68->unk_02b)
+ if (lilycoveLady->quiz.unk_02c == gUnknown_0203CD68->unk_02b)
{
gUnknown_0203CD68->unk_02b = (gUnknown_0203CD68->unk_02b + 1) % 16;
}
- gUnknown_0203CD68->unk_02c = quiz->unk_02c;
+ gUnknown_0203CD68->unk_02c = lilycoveLady->quiz.unk_02c;
}
}
diff --git a/src/link.c b/src/link.c
index 292ffecf2..acdb6cae0 100644
--- a/src/link.c
+++ b/src/link.c
@@ -798,7 +798,7 @@ bool32 sub_800A040(void)
return TRUE;
}
-bool32 sub_800A064(void)
+bool32 Link_AnyPartnersPlayingRubyOrSapphire(void)
{
if (sub_8009FF8(VERSION_RUBY, VERSION_SAPPHIRE) >= 0)
{
diff --git a/src/link_rfu.c b/src/link_rfu.c
index a1917ed24..37aa20950 100644
--- a/src/link_rfu.c
+++ b/src/link_rfu.c
@@ -2051,7 +2051,7 @@ u8 sub_800DD1C(u8 maxFlags)
return 0;
}
#else
-ASM_DIRECT u8 sub_800DD1C(u8 maxFlags)
+NAKED u8 sub_800DD1C(u8 maxFlags)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tlsls r0, 24\n"
@@ -2897,7 +2897,7 @@ void sub_800EFB0(void)
CpuFill16(0, gRecvCmds, sizeof gRecvCmds);
}
#else
-ASM_DIRECT void sub_800EFB0(void)
+NAKED void sub_800EFB0(void)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tsub sp, 0x4\n"
@@ -3233,7 +3233,7 @@ void sub_800F638(u8 unused, u32 flags)
}
}
#else
-ASM_DIRECT void sub_800F638(u8 unused, u32 flags)
+NAKED void sub_800F638(u8 unused, u32 flags)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r10\n"
@@ -3601,7 +3601,7 @@ void sub_800FD14(u16 command)
}
}
#else
-ASM_DIRECT void sub_800FD14(u16 command)
+NAKED void sub_800FD14(u16 command)
{
asm_unified("\tpush {r4,r5,lr}\n"
"\tlsls r0, 16\n"
@@ -4699,7 +4699,7 @@ void sub_801120C(u8 a0)
}
}
#else
-ASM_DIRECT void sub_801120C(u8 a0)
+NAKED void sub_801120C(u8 a0)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r10\n"
diff --git a/src/list_menu.c b/src/list_menu.c
index c78d32bb3..de7de8269 100644
--- a/src/list_menu.c
+++ b/src/list_menu.c
@@ -5,11 +5,16 @@
#include "text_window.h"
#include "main.h"
#include "task.h"
-#include "menu_indicators.h"
+#include "trig.h"
+#include "decompress.h"
+#include "palette.h"
+#include "malloc.h"
#include "strings.h"
#include "sound.h"
#include "constants/songs.h"
+// This file needs better labels and function names.
+
struct UnknownMysteryGiftLinkMenuStruct
{
s32 field_0;
@@ -29,7 +34,71 @@ struct UnknownListMenuPals
u8 field_3_7:1;
};
-extern struct UnknownMysteryGiftLinkMenuStruct gUnknown_0203CE84;
+struct UnkIndicatorsStruct
+{
+ u8 field_0;
+ u16 *field_4;
+ u16 field_8;
+ u16 field_A;
+ u16 field_C;
+ u16 field_E;
+ u8 field_10;
+ u8 field_11;
+ u8 field_12;
+ u8 field_13;
+ u8 field_14_0:4;
+ u8 field_14_1:4;
+ u8 field_15_0:4;
+ u8 field_15_1:4;
+ u8 field_16_0:3;
+ u8 field_16_1:3;
+ u8 field_16_2:2;
+ u8 field_17_0:6;
+ u8 field_17_1:2;
+};
+
+struct UnkIndicatorsStruct2
+{
+ u8 field_0;
+ u16 *field_4;
+ u16 field_8;
+ u16 field_A;
+ u8 field_C;
+ u8 field_D;
+ u16 tileTag;
+ u16 palTag;
+ u16 field_12;
+ u16 field_14;
+ u16 field_16;
+ u16 field_18;
+ u16 field_1A;
+ u16 field_1C;
+ s16 field_1E;
+};
+
+struct UnkIndicatorsStruct3
+{
+ struct SubspriteTable subspriteTable;
+ struct Subsprite *subspritesPtr; // not a const pointer
+ u8 spriteId;
+ u16 tileTag;
+ u16 palTag;
+};
+
+struct UnkIndicatorsStruct4
+{
+ u8 field_0;
+ u16 tileTag;
+ u16 palTag;
+};
+
+struct UnkSmallIndicatorsStruct
+{
+ u8 field_0_0:4;
+ u8 field_0_1:4;
+ u8 field_1;
+ u16 field_2;
+};
// this file's functions
static u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow);
@@ -38,11 +107,220 @@ static void ListMenuPrintEntries(struct ListMenu *list, u16 startIndex, u16 yOff
static void ListMenuDrawCursor(struct ListMenu *list);
static void ListMenuCallSelectionChangedCallback(struct ListMenu *list, u8 a2);
static u8 ListMenuAddCursorObject(struct ListMenu *list, u32 cursorKind);
+static void Task_ScrollIndicatorArrowPair(u8 taskId);
+static u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor);
+static u8 ListMenuAddRedArrowCursorObject(struct CursorStruct *cursor);
+static void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y);
+static void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y);
+static void ListMenuRemoveRedOutlineCursorObject(u8 taskId);
+static void ListMenuRemoveRedArrowCursorObject(u8 taskId);
+static u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind);
+static void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 cursorKind);
+static void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind);
+static void sub_81AF264(struct Sprite *sprite);
+static void ObjectCB_RedArrowCursor(struct Sprite *sprite);
+
+// EWRAM vars
+ EWRAM_DATA struct UnknownMysteryGiftLinkMenuStruct gUnknown_0203CE84 = {0};
+ EWRAM_DATA struct ArrowStruct gUnknown_0203CE8C = {0};
// IWRAM common
struct UnknownListMenuPals gUnknown_03006300;
struct ListMenuTemplate gMultiuseListMenuTemplate;
+// const rom data
+static const struct UnkSmallIndicatorsStruct gUnknown_086141FC[] =
+{
+ {0, 0, 2, 8},
+ {1, 0, 2, -8},
+ {2, 1, 2, 8},
+ {3, 1, 2, -8},
+};
+
+static const struct OamData sOamData_861420C =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_8614214[] =
+{
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_861421C[] =
+{
+ ANIMCMD_FRAME(0, 30, 1, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_8614224[] =
+{
+ ANIMCMD_FRAME(4, 30),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_861422C[] =
+{
+ ANIMCMD_FRAME(4, 30, 0, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_8614234[] =
+{
+ sSpriteAnim_8614214,
+ sSpriteAnim_861421C,
+ sSpriteAnim_8614224,
+ sSpriteAnim_861422C
+};
+
+static const struct SpriteTemplate gUnknown_08614244 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &sOamData_861420C,
+ .anims = sSpriteAnimTable_8614234,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_81AF264,
+};
+
+static const struct Subsprite sSubsprite_861425C =
+{
+ .x = 0,
+ .y = 0,
+ .shape = 0,
+ .size = 0,
+ .tileOffset = 0,
+ .priority = 0,
+};
+
+static const struct Subsprite sSubsprite_8614260 =
+{
+ .x = 0,
+ .y = 0,
+ .shape = 0,
+ .size = 0,
+ .tileOffset = 1,
+ .priority = 0,
+};
+
+static const struct Subsprite sSubsprite_8614264 =
+{
+ .x = 0,
+ .y = 0,
+ .shape = 0,
+ .size = 0,
+ .tileOffset = 2,
+ .priority = 0,
+};
+
+static const struct Subsprite sSubsprite_8614268 =
+{
+ .x = 0,
+ .y = 0,
+ .shape = 0,
+ .size = 0,
+ .tileOffset = 3,
+ .priority = 0,
+};
+
+static const struct Subsprite sSubsprite_861426C =
+{
+ .x = 0,
+ .y = 0,
+ .shape = 0,
+ .size = 0,
+ .tileOffset = 4,
+ .priority = 0,
+};
+
+static const struct Subsprite sSubsprite_8614270 =
+{
+ .x = 0,
+ .y = 0,
+ .shape = 0,
+ .size = 0,
+ .tileOffset = 5,
+ .priority = 0,
+};
+
+static const struct Subsprite sSubsprite_8614274 =
+{
+ .x = 0,
+ .y = 0,
+ .shape = 0,
+ .size = 0,
+ .tileOffset = 6,
+ .priority = 0,
+};
+
+static const struct Subsprite sSubsprite_8614278 =
+{
+ .x = 0,
+ .y = 0,
+ .shape = 0,
+ .size = 0,
+ .tileOffset = 7,
+ .priority = 0,
+};
+
+static const struct OamData sOamData_861427C =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_8614284[] =
+{
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_861428C[] =
+{
+ sSpriteAnim_8614284
+};
+
+static const struct SpriteTemplate gUnknown_08614290 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &sOamData_861427C,
+ .anims = sSpriteAnimTable_861428C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = ObjectCB_RedArrowCursor,
+};
+
+static const u16 gUnknown_086142A8[] = INCBIN_U16("graphics/interface/red_arrow.gbapal");
+static const u8 gUnknown_086142C8[] = INCBIN_U8("graphics/interface/red_arrow_other.4bpp.lz");
+static const u8 gUnknown_08614338[] = INCBIN_U8("graphics/interface/selector_outline.4bpp.lz");
+static const u8 gUnknown_08614378[] = INCBIN_U8("graphics/interface/red_arrow.4bpp.lz");
+
// code
static void ListMenuDummyTask(u8 taskId)
{
@@ -415,9 +693,9 @@ static u8 ListMenuAddCursorObject(struct ListMenu *list, u32 cursorKind)
cursor.unk1 = 0xA0;
cursor.unk2 = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8 + 2;
cursor.unk4 = GetFontAttribute(list->template.fontId, 1) + 2;
- cursor.unk6 = 0x4000;
- cursor.unk8 = 0xFFFF;
- cursor.unkA = 0xF;
+ cursor.tileTag = 0x4000;
+ cursor.palTag = 0xFFFF;
+ cursor.palNum = 0xF;
return ListMenuAddCursorObjectInternal(&cursor, cursorKind);
}
@@ -631,3 +909,547 @@ void sub_81AF078(s32 arg0, u8 arg1, struct ListMenu *list)
if (!arg1)
PlaySE(SE_SELECT);
}
+
+// unused
+s32 sub_81AF08C(u8 taskId, u8 field)
+{
+ struct UnkIndicatorsStruct *data = (void*) gTasks[taskId].data;
+
+ switch (field)
+ {
+ case 0:
+ case 1:
+ return (s32)(data->field_4);
+ case 2:
+ return data->field_C;
+ case 3:
+ return data->field_E;
+ case 4:
+ return data->field_10;
+ case 5:
+ return data->field_11;
+ case 6:
+ return data->field_12;
+ case 7:
+ return data->field_13;
+ case 8:
+ return data->field_14_0;
+ case 9:
+ return data->field_14_1;
+ case 10:
+ return data->field_15_0;
+ case 11:
+ return data->field_15_1;
+ case 12:
+ return data->field_16_0;
+ case 13:
+ return data->field_16_1;
+ case 14:
+ return data->field_16_2;
+ case 15:
+ return data->field_17_0;
+ case 16:
+ return data->field_17_1;
+ default:
+ return -1;
+ }
+}
+
+// unused
+void sub_81AF15C(u8 taskId, u8 field, s32 value)
+{
+ struct UnkIndicatorsStruct *data = (void*) &gTasks[taskId].data;
+
+ switch (field)
+ {
+ case 0:
+ case 1:
+ data->field_4 = (void*)(value);
+ break;
+ case 2:
+ data->field_C = value;
+ break;
+ case 3:
+ data->field_E = value;
+ break;
+ case 4:
+ data->field_10 = value;
+ break;
+ case 5:
+ data->field_11 = value;
+ break;
+ case 6:
+ data->field_12 = value;
+ break;
+ case 7:
+ data->field_13 = value;
+ break;
+ case 8:
+ data->field_14_0 = value;
+ break;
+ case 9:
+ data->field_14_1 = value;
+ break;
+ case 10:
+ data->field_15_0 = value;
+ break;
+ case 11:
+ data->field_15_1 = value;
+ break;
+ case 12:
+ data->field_16_0 = value;
+ break;
+ case 13:
+ data->field_16_1 = value;
+ break;
+ case 14:
+ data->field_16_2 = value;
+ break;
+ case 15:
+ data->field_17_0 = value;
+ break;
+ case 16:
+ data->field_17_1 = value;
+ break;
+ }
+}
+
+static void sub_81AF264(struct Sprite *sprite)
+{
+ s32 multiplier;
+
+ switch (sprite->data[0])
+ {
+ case 0:
+ StartSpriteAnim(sprite, sprite->data[1]);
+ sprite->data[0]++;
+ break;
+ case 1:
+ switch (sprite->data[2])
+ {
+ case 0:
+ multiplier = sprite->data[3];
+ sprite->pos2.x = (gSineTable[(u8)(sprite->data[5])] * multiplier) / 256;
+ break;
+ case 1:
+ multiplier = sprite->data[3];
+ sprite->pos2.y = (gSineTable[(u8)(sprite->data[5])] * multiplier) / 256;
+ break;
+ }
+ sprite->data[5] += sprite->data[4];
+ break;
+ }
+}
+
+static u8 AddScrollIndicatorArrowObject(u8 arg0, u8 x, u8 y, u16 tileTag, u16 palTag)
+{
+ u8 spriteId;
+ struct SpriteTemplate spriteTemplate;
+
+ spriteTemplate = gUnknown_08614244;
+ spriteTemplate.tileTag = tileTag;
+ spriteTemplate.paletteTag = palTag;
+
+ spriteId = CreateSprite(&spriteTemplate, x, y, 0);
+ gSprites[spriteId].invisible = 1;
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[1] = gUnknown_086141FC[arg0].field_0_0;
+ gSprites[spriteId].data[2] = gUnknown_086141FC[arg0].field_0_1;
+ gSprites[spriteId].data[3] = gUnknown_086141FC[arg0].field_1;
+ gSprites[spriteId].data[4] = gUnknown_086141FC[arg0].field_2;
+ gSprites[spriteId].data[5] = 0;
+
+ return spriteId;
+}
+
+u8 AddScrollIndicatorArrowPair(const struct ArrowStruct *arrowInfo, u16 *arg1)
+{
+ struct CompressedSpriteSheet spriteSheet;
+ struct SpritePalette spritePal;
+ struct UnkIndicatorsStruct2 *data;
+ u8 taskId;
+
+ spriteSheet.data = gUnknown_086142C8;
+ spriteSheet.size = 0x100;
+ spriteSheet.tag = arrowInfo->tileTag;
+ LoadCompressedObjectPic(&spriteSheet);
+
+ if (arrowInfo->palTag == 0xFFFF)
+ {
+ LoadPalette(gUnknown_086142A8, (16 * arrowInfo->palNum) + 0x100, 0x20);
+ }
+ else
+ {
+ spritePal.data = gUnknown_086142A8;
+ spritePal.tag = arrowInfo->palTag;
+ LoadSpritePalette(&spritePal);
+ }
+
+ taskId = CreateTask(Task_ScrollIndicatorArrowPair, 0);
+ data = (void*) gTasks[taskId].data;
+
+ data->field_0 = 0;
+ data->field_4 = arg1;
+ data->field_8 = arrowInfo->unk6;
+ data->field_A = arrowInfo->unk8;
+ data->tileTag = arrowInfo->tileTag;
+ data->palTag = arrowInfo->palTag;
+ data->field_C = AddScrollIndicatorArrowObject(arrowInfo->unk0, arrowInfo->unk1, arrowInfo->unk2, arrowInfo->tileTag, arrowInfo->palTag);
+ data->field_D = AddScrollIndicatorArrowObject(arrowInfo->unk3, arrowInfo->unk4, arrowInfo->unk5, arrowInfo->tileTag, arrowInfo->palTag);
+
+ if (arrowInfo->palTag == 0xFFFF)
+ {
+ gSprites[data->field_C].oam.paletteNum = arrowInfo->palNum;
+ gSprites[data->field_D].oam.paletteNum = arrowInfo->palNum;
+ }
+
+ return taskId;
+}
+
+u8 AddScrollIndicatorArrowPairParametrized(u32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 tileTag, s32 palTag, void *arg7)
+{
+ if (arg0 == 2 || arg0 == 3)
+ {
+ gUnknown_0203CE8C.unk0 = 2;
+ gUnknown_0203CE8C.unk1 = arg1;
+ gUnknown_0203CE8C.unk2 = arg2;
+ gUnknown_0203CE8C.unk3 = 3;
+ gUnknown_0203CE8C.unk4 = arg1;
+ gUnknown_0203CE8C.unk5 = arg3;
+ }
+ else
+ {
+ gUnknown_0203CE8C.unk0 = 0;
+ gUnknown_0203CE8C.unk1 = arg2;
+ gUnknown_0203CE8C.unk2 = arg1;
+ gUnknown_0203CE8C.unk3 = 1;
+ gUnknown_0203CE8C.unk4 = arg3;
+ gUnknown_0203CE8C.unk5 = arg1;
+ }
+
+ gUnknown_0203CE8C.unk6 = 0;
+ gUnknown_0203CE8C.unk8 = arg4;
+ gUnknown_0203CE8C.tileTag = tileTag;
+ gUnknown_0203CE8C.palTag = palTag;
+ gUnknown_0203CE8C.palNum = 0;
+
+ return AddScrollIndicatorArrowPair(&gUnknown_0203CE8C, arg7);
+}
+
+static void Task_ScrollIndicatorArrowPair(u8 taskId)
+{
+ struct UnkIndicatorsStruct2 *data = (void*) gTasks[taskId].data;
+ u16 var = (*data->field_4);
+
+ if (var == data->field_8 && var != 0xFFFF)
+ gSprites[data->field_C].invisible = 1;
+ else
+ gSprites[data->field_C].invisible = 0;
+
+ if (var == data->field_A)
+ gSprites[data->field_D].invisible = 1;
+ else
+ gSprites[data->field_D].invisible = 0;
+}
+
+void Task_ScrollIndicatorArrowPairOnMainMenu(u8 taskId)
+{
+ struct UnkIndicatorsStruct2 *data = (void*) gTasks[taskId].data;
+
+ if (data->field_1E != 0)
+ {
+ gSprites[data->field_C].invisible = 0;
+ gSprites[data->field_D].invisible = 1;
+ }
+ else
+ {
+ gSprites[data->field_C].invisible = 1;
+ gSprites[data->field_D].invisible = 0;
+ }
+}
+
+void RemoveScrollIndicatorArrowPair(u8 taskId)
+{
+ struct UnkIndicatorsStruct2 *data = (void*) gTasks[taskId].data;
+
+ if (data->tileTag != 0xFFFF)
+ FreeSpriteTilesByTag(data->tileTag);
+ if (data->palTag != 0xFFFF)
+ FreeSpritePaletteByTag(data->palTag);
+
+ DestroySprite(&gSprites[data->field_C]);
+ DestroySprite(&gSprites[data->field_D]);
+
+ DestroyTask(taskId);
+}
+
+static u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind)
+{
+ switch (cursorKind)
+ {
+ case 0:
+ default:
+ return ListMenuAddRedOutlineCursorObject(cursor);
+ case 1:
+ return ListMenuAddRedArrowCursorObject(cursor);
+ }
+}
+
+static void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 cursorKind)
+{
+ switch (cursorKind)
+ {
+ case 0:
+ ListMenuUpdateRedOutlineCursorObject(taskId, x, y);
+ break;
+ case 1:
+ ListMenuUpdateRedArrowCursorObject(taskId, x, y);
+ break;
+ }
+}
+
+static void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind)
+{
+ switch (cursorKind)
+ {
+ case 0:
+ ListMenuRemoveRedOutlineCursorObject(taskId);
+ break;
+ case 1:
+ ListMenuRemoveRedArrowCursorObject(taskId);
+ break;
+ }
+}
+
+static void Task_RedOutlineCursor(u8 taskId)
+{
+
+}
+
+u8 ListMenuGetRedOutlineCursorSpriteCount(u16 arg0, u16 arg1)
+{
+ s32 i;
+ s32 count = 4;
+
+ if (arg0 > 16)
+ {
+ for (i = 8; i < (arg0 - 8); i += 8)
+ count += 2;
+ }
+ if (arg1 > 16)
+ {
+ for (i = 8; i < (arg1 - 8); i += 8)
+ count += 2;
+ }
+
+ return count;
+}
+
+void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 arg0, u16 arg1, struct Subsprite *subsprites)
+{
+ s32 i, j, id = 0;
+
+ subsprites[id] = sSubsprite_861425C;
+ subsprites[id].x = 136;
+ subsprites[id].y = 136;
+ id++;
+
+ subsprites[id] = sSubsprite_8614260;
+ subsprites[id].x = arg0 + 128;
+ subsprites[id].y = 136;
+ id++;
+
+ subsprites[id] = sSubsprite_8614274;
+ subsprites[id].x = 136;
+ subsprites[id].y = arg1 + 128;
+ id++;
+
+ subsprites[id] = sSubsprite_8614278;
+ subsprites[id].x = arg0 + 128;
+ subsprites[id].y = arg1 + 128;
+ id++;
+
+ if (arg0 > 16)
+ {
+ for (i = 8; i < arg0 - 8; i += 8)
+ {
+ subsprites[id] = sSubsprite_8614264;
+ subsprites[id].x = i - 120;
+ subsprites[id].y = 136;
+ id++;
+
+ subsprites[id] = sSubsprite_8614270;
+ subsprites[id].x = i - 120;
+ subsprites[id].y = arg1 + 128;
+ id++;
+ }
+ }
+
+ if (arg1 > 16)
+ {
+ for (j = 8; j < arg1 - 8; j += 8)
+ {
+ subsprites[id] = sSubsprite_8614268;
+ subsprites[id].x = 136;
+ subsprites[id].y = j - 120;
+ id++;
+
+ subsprites[id] = sSubsprite_861426C;
+ subsprites[id].x = arg0 + 128;
+ subsprites[id].y = j - 120;
+ id++;
+ }
+ }
+}
+
+static u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor)
+{
+ struct CompressedSpriteSheet spriteSheet;
+ struct SpritePalette spritePal;
+ struct UnkIndicatorsStruct3 *data;
+ struct SpriteTemplate spriteTemplate;
+ u8 taskId;
+
+ spriteSheet.data = gUnknown_08614338;
+ spriteSheet.size = 0x100;
+ spriteSheet.tag = cursor->tileTag;
+ LoadCompressedObjectPic(&spriteSheet);
+
+ if (cursor->palTag == 0xFFFF)
+ {
+ LoadPalette(gUnknown_086142A8, (16 * cursor->palNum) + 0x100, 0x20);
+ }
+ else
+ {
+ spritePal.data = gUnknown_086142A8;
+ spritePal.tag = cursor->palTag;
+ LoadSpritePalette(&spritePal);
+ }
+
+ taskId = CreateTask(Task_RedOutlineCursor, 0);
+ data = (void*) gTasks[taskId].data;
+
+ data->tileTag = cursor->tileTag;
+ data->palTag = cursor->palTag;
+ data->subspriteTable.subspriteCount = ListMenuGetRedOutlineCursorSpriteCount(cursor->unk2, cursor->unk4);
+ data->subspriteTable.subsprites = data->subspritesPtr = Alloc(data->subspriteTable.subspriteCount * 4);
+ ListMenuSetUpRedOutlineCursorSpriteOamTable(cursor->unk2, cursor->unk4, data->subspritesPtr);
+
+ spriteTemplate = gDummySpriteTemplate;
+ spriteTemplate.tileTag = cursor->tileTag;
+ spriteTemplate.paletteTag = cursor->palTag;
+
+ data->spriteId = CreateSprite(&spriteTemplate, cursor->unk0 + 120, cursor->unk1 + 120, 0);
+ SetSubspriteTables(&gSprites[data->spriteId], &data->subspriteTable);
+ gSprites[data->spriteId].oam.priority = 0;
+ gSprites[data->spriteId].subpriority = 0;
+ gSprites[data->spriteId].subspriteTableNum = 0;
+
+ if (cursor->palTag == 0xFFFF)
+ {
+ gSprites[data->spriteId].oam.paletteNum = cursor->palNum;
+ }
+
+ return taskId;
+}
+
+static void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y)
+{
+ struct UnkIndicatorsStruct3 *data = (void*) gTasks[taskId].data;
+
+ gSprites[data->spriteId].pos1.x = x + 120;
+ gSprites[data->spriteId].pos1.y = y + 120;
+}
+
+static void ListMenuRemoveRedOutlineCursorObject(u8 taskId)
+{
+ struct UnkIndicatorsStruct3 *data = (void*) gTasks[taskId].data;
+
+ Free(data->subspritesPtr);
+
+ if (data->tileTag != 0xFFFF)
+ FreeSpriteTilesByTag(data->tileTag);
+ if (data->palTag != 0xFFFF)
+ FreeSpritePaletteByTag(data->palTag);
+
+ DestroySprite(&gSprites[data->spriteId]);
+ DestroyTask(taskId);
+}
+
+static void ObjectCB_RedArrowCursor(struct Sprite *sprite)
+{
+ sprite->pos2.x = gSineTable[(u8)(sprite->data[0])] / 64;
+ sprite->data[0] += 8;
+}
+
+static void Task_RedArrowCursor(u8 taskId)
+{
+
+}
+
+static u8 ListMenuAddRedArrowCursorObject(struct CursorStruct *cursor)
+{
+ struct CompressedSpriteSheet spriteSheet;
+ struct SpritePalette spritePal;
+ struct UnkIndicatorsStruct4 *data;
+ struct SpriteTemplate spriteTemplate;
+ u8 taskId;
+
+ spriteSheet.data = gUnknown_08614378;
+ spriteSheet.size = 0x80;
+ spriteSheet.tag = cursor->tileTag;
+ LoadCompressedObjectPic(&spriteSheet);
+
+ if (cursor->palTag == 0xFFFF)
+ {
+ LoadPalette(gUnknown_086142A8, (16 * cursor->palNum) + 0x100, 0x20);
+ }
+ else
+ {
+ spritePal.data = gUnknown_086142A8;
+ spritePal.tag = cursor->palTag;
+ LoadSpritePalette(&spritePal);
+ }
+
+ taskId = CreateTask(Task_RedArrowCursor, 0);
+ data = (void*) gTasks[taskId].data;
+
+ data->tileTag = cursor->tileTag;
+ data->palTag = cursor->palTag;
+
+ spriteTemplate = gUnknown_08614290;
+ spriteTemplate.tileTag = cursor->tileTag;
+ spriteTemplate.paletteTag = cursor->palTag;
+
+ data->field_0 = CreateSprite(&spriteTemplate, cursor->unk0, cursor->unk1, 0);
+ gSprites[data->field_0].pos2.x = 8;
+ gSprites[data->field_0].pos2.y = 8;
+
+ if (cursor->palTag == 0xFFFF)
+ {
+ gSprites[data->field_0].oam.paletteNum = cursor->palNum;
+ }
+
+ return taskId;
+}
+
+static void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y)
+{
+ struct UnkIndicatorsStruct4 *data = (void*) gTasks[taskId].data;
+
+ gSprites[data->field_0].pos1.x = x;
+ gSprites[data->field_0].pos1.y = y;
+}
+
+static void ListMenuRemoveRedArrowCursorObject(u8 taskId)
+{
+ struct UnkIndicatorsStruct4 *data = (void*) gTasks[taskId].data;
+
+ if (data->tileTag != 0xFFFF)
+ FreeSpriteTilesByTag(data->tileTag);
+ if (data->palTag != 0xFFFF)
+ FreeSpritePaletteByTag(data->palTag);
+
+ DestroySprite(&gSprites[data->field_0]);
+ DestroyTask(taskId);
+}
diff --git a/src/main_menu.c b/src/main_menu.c
index 3d6c1df76..3490424af 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -16,7 +16,7 @@
#include "link.h"
#include "main.h"
#include "menu.h"
-#include "menu_indicators.h"
+#include "list_menu.h"
#include "mystery_event_menu.h"
#include "naming_screen.h"
#include "option_menu.h"
diff --git a/src/map_name_popup.c b/src/map_name_popup.c
index 59b1622eb..1782e9af8 100644
--- a/src/map_name_popup.c
+++ b/src/map_name_popup.c
@@ -276,7 +276,7 @@ static void sub_80D4A78(u8 bg, u8 x, u8 y, u8 deltaX, u8 deltaY, u8 unused)
}
}
#else
-ASM_DIRECT
+NAKED
static void sub_80D4A78(u8 bg, u8 x, u8 y, u8 deltaX, u8 deltaY, u8 unused)
{
asm("\n\
diff --git a/src/match_call.c b/src/match_call.c
index 9c1e02947..aa6945161 100644
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -980,7 +980,7 @@ static void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest)
}
}
#else
-static ASM_DIRECT void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest)
+static NAKED void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r10\n"
@@ -1163,7 +1163,7 @@ const u8 *sub_81D1B40(u32 idx, u32 offset)
return NULL;
}
#else
-ASM_DIRECT const u8 *sub_81D1B40(u32 idx, u32 offset)
+NAKED const u8 *sub_81D1B40(u32 idx, u32 offset)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r9\n"
diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c
index ea466b2ec..2ce8a271d 100644
--- a/src/mauville_old_man.c
+++ b/src/mauville_old_man.c
@@ -387,7 +387,7 @@ static void ResetStorytellerFlag(void)
Storyteller_ResetFlag();
}
-void ResetMauvilleOldManFlag(void) // ResetMauvilleOldManFlag
+void ResetMauvilleOldManFlag(void)
{
switch (GetCurrentMauvilleOldMan())
{
@@ -673,7 +673,7 @@ static void Task_BardSong(u8 taskId)
void ScrSpecial_SetMauvilleOldManMapObjGfx(void)
{
- VarSet(VAR_0x4010, MAP_OBJ_GFX_BARD);
+ VarSet(VAR_OBJ_GFX_ID_0, MAP_OBJ_GFX_BARD);
}
// Language fixers?
@@ -793,11 +793,11 @@ void sub_8120C0C(union OldMan * oldMan, u32 r8, u32 r7, u32 r3)
}
}
-void sub_8120CD0(union OldMan * oldMan, u32 unused, u32 a2)
+void SanitizeReceivedEmeraldOldMan(union OldMan * oldMan, u32 version, u32 language)
{
u8 sp00[8];
s32 i;
- if (oldMan->common.id == MAUVILLE_MAN_STORYTELLER && a2 == LANGUAGE_JAPANESE)
+ if (oldMan->common.id == MAUVILLE_MAN_STORYTELLER && language == LANGUAGE_JAPANESE)
{
struct MauvilleManStoryteller * storyteller = &oldMan->storyteller;
@@ -816,9 +816,10 @@ void sub_8120CD0(union OldMan * oldMan, u32 unused, u32 a2)
}
}
-void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
+void SanitizeReceivedRubyOldMan(union OldMan * oldMan, u32 version, u32 language)
{
- u32 r2 = (r1 == LANGUAGE_JAPANESE || r1 == LANGUAGE_ENGLISH) ? 1 : 0;
+ bool32 isRuby = (version == VERSION_SAPPHIRE || version == VERSION_RUBY);
+
switch (oldMan->common.id)
{
case MAUVILLE_MAN_TRADER:
@@ -826,7 +827,7 @@ void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
struct MauvilleOldManTrader * trader = &oldMan->trader;
s32 i;
- if (r2)
+ if (isRuby)
{
for (i = 0; i < 4; i++)
{
@@ -837,7 +838,7 @@ void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
trader->language[i] = LANGUAGE_JAPANESE;
}
else
- trader->language[i] = r6;
+ trader->language[i] = language;
}
}
else
@@ -858,12 +859,12 @@ void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
struct MauvilleManStoryteller * storyteller = &oldMan->storyteller;
s32 i;
- if (r2)
+ if (isRuby)
{
for (i = 0; i < 4; i++)
{
if (storyteller->gameStatIDs[i] != 0)
- storyteller->language[i] = r6;
+ storyteller->language[i] = language;
}
}
}
@@ -872,9 +873,9 @@ void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
{
struct MauvilleManBard * bard = &oldMan->bard;
- if (r2)
+ if (isRuby)
{
- bard->language = r6;
+ bard->language = language;
}
}
break;
@@ -882,9 +883,9 @@ void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
{
struct MauvilleManHipster * hipster = &oldMan->hipster;
- if (r2)
+ if (isRuby)
{
- hipster->language = r6;
+ hipster->language = language;
}
}
break;
@@ -892,9 +893,9 @@ void sub_8120D34(union OldMan * oldMan, u32 r1, u32 r6)
{
struct MauvilleManGiddy * giddy = &oldMan->giddy;
- if (r2)
+ if (isRuby)
{
- giddy->language = r6;
+ giddy->language = language;
}
}
break;
diff --git a/src/menu.c b/src/menu.c
index 0aaf2d186..dedfcc3be 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -2080,7 +2080,7 @@ void sub_819A080(struct UnkStruct_819A080 *a0, struct UnkStruct_819A080 *a1, u16
}
}
#else
-__attribute__((naked))
+NAKED
void sub_819A080(struct UnkStruct_819A080 *a0, struct UnkStruct_819A080 *a1, u16 a2, u16 a3, u16 a4, u16 a5, u16 a6, u16 a7)
{
asm("push {r4-r7,lr}\n\
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
new file mode 100644
index 000000000..178fbb5fa
--- /dev/null
+++ b/src/menu_helpers.c
@@ -0,0 +1,455 @@
+#include "global.h"
+#include "task.h"
+#include "window.h"
+#include "menu.h"
+#include "menu_helpers.h"
+#include "gpu_regs.h"
+#include "bg.h"
+#include "main.h"
+#include "text.h"
+#include "link.h"
+#include "string_util.h"
+#include "sound.h"
+#include "mail.h"
+#include "overworld.h"
+#include "decompress.h"
+#include "constants/songs.h"
+#include "constants/items.h"
+#include "constants/maps.h"
+
+extern bool32 sub_800B504(void);
+
+extern const u8 gBagSwapLineGfx[];
+extern const u8 gBagSwapLinePal[];
+
+// this file's functions
+static void Task_ContinueTaskAfterMessagePrints(u8 taskId);
+static void Task_CallYesOrNoCallback(u8 taskId);
+
+// EWRAM vars
+EWRAM_DATA static struct YesNoFuncTable gUnknown_0203A138 = {0};
+EWRAM_DATA static u8 gUnknown_0203A140 = 0;
+
+// IWRAM bss vars
+IWRAM_DATA static TaskFunc gUnknown_0300117C;
+
+// const rom data
+static const struct OamData sOamData_859F4E8 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_859F4F0[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_859F4F8[] =
+{
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_859F500[] =
+{
+ ANIMCMD_FRAME(0, 0, 1, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_859F508[] =
+{
+ sSpriteAnim_859F4F0,
+ sSpriteAnim_859F4F8,
+ sSpriteAnim_859F500
+};
+
+static const struct CompressedSpriteSheet gUnknown_0859F514 =
+{
+ gBagSwapLineGfx, 0x100, 109
+};
+
+static const struct CompressedSpritePalette gUnknown_0859F51C =
+{
+ gBagSwapLinePal, 109
+};
+
+static const struct SpriteTemplate gUnknown_0859F524 =
+{
+ .tileTag = 109,
+ .paletteTag = 109,
+ .oam = &sOamData_859F4E8,
+ .anims = sSpriteAnimTable_859F508,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+// code
+void ResetVramOamAndBgCntRegs(void)
+{
+ SetGpuReg(REG_OFFSET_DISPCNT, 0);
+ SetGpuReg(REG_OFFSET_BG3CNT, 0);
+ SetGpuReg(REG_OFFSET_BG2CNT, 0);
+ SetGpuReg(REG_OFFSET_BG1CNT, 0);
+ SetGpuReg(REG_OFFSET_BG0CNT, 0);
+ CpuFill16(0, (void*) VRAM, VRAM_SIZE);
+ CpuFill32(0, (void*) OAM, OAM_SIZE);
+ CpuFill16(0, (void*) PLTT, PLTT_SIZE);
+}
+
+void ResetAllBgsCoordinates(void)
+{
+ ChangeBgX(0, 0, 0);
+ ChangeBgY(0, 0, 0);
+ ChangeBgX(1, 0, 0);
+ ChangeBgY(1, 0, 0);
+ ChangeBgX(2, 0, 0);
+ ChangeBgY(2, 0, 0);
+ ChangeBgX(3, 0, 0);
+ ChangeBgY(3, 0, 0);
+}
+
+void SetVBlankHBlankCallbacksToNull(void)
+{
+ SetVBlankCallback(NULL);
+ SetHBlankCallback(NULL);
+}
+
+void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc)
+{
+ gUnknown_0203A140 = windowId;
+ sub_8197B1C(windowId, TRUE, arg2, arg3);
+
+ if (string != gStringVar4)
+ StringExpandPlaceholders(gStringVar4, string);
+
+ gTextFlags.flag_0 = 1;
+ AddTextPrinterParameterized(windowId, fontId, gStringVar4, textSpeed, NULL, 2, 1, 3);
+ gUnknown_0300117C = taskFunc;
+ gTasks[taskId].func = Task_ContinueTaskAfterMessagePrints;
+}
+
+bool16 RunTextPrintersRetIsActive(u8 textPrinterId)
+{
+ RunTextPrinters();
+ return IsTextPrinterActive(textPrinterId);
+}
+
+static void Task_ContinueTaskAfterMessagePrints(u8 taskId)
+{
+ if (!RunTextPrintersRetIsActive(gUnknown_0203A140))
+ gUnknown_0300117C(taskId);
+}
+
+void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data)
+{
+ gUnknown_0203A138 = *data;
+ gTasks[taskId].func = Task_CallYesOrNoCallback;
+}
+
+void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo)
+{
+ CreateYesNoMenu(template, tileStart, palette, 0);
+ gUnknown_0203A138 = *yesNo;
+ gTasks[taskId].func = Task_CallYesOrNoCallback;
+}
+
+static void Task_CallYesOrNoCallback(u8 taskId)
+{
+ switch (ProcessMenuInputNoWrap_())
+ {
+ case 0:
+ PlaySE(SE_SELECT);
+ gUnknown_0203A138.yesFunc(taskId);
+ break;
+ case 1:
+ case MENU_B_PRESSED:
+ PlaySE(SE_SELECT);
+ gUnknown_0203A138.noFunc(taskId);
+ break;
+ }
+}
+
+bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
+{
+ s16 valBefore = (*arg0);
+
+ if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
+ {
+ (*arg0)++;
+ if ((*arg0) > arg1)
+ (*arg0) = 1;
+
+ if ((*arg0) == valBefore)
+ {
+ return FALSE;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ return TRUE;
+ }
+ }
+ else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
+ {
+ (*arg0)--;
+ if ((*arg0) <= 0)
+ (*arg0) = arg1;
+
+ if ((*arg0) == valBefore)
+ {
+ return FALSE;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ return TRUE;
+ }
+ }
+ else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT)
+ {
+ (*arg0) += 10;
+ if ((*arg0) > arg1)
+ (*arg0) = arg1;
+
+ if ((*arg0) == valBefore)
+ {
+ return FALSE;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ return TRUE;
+ }
+ }
+ else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT)
+ {
+ (*arg0) -= 10;
+ if ((*arg0) <= 0)
+ (*arg0) = 1;
+
+ if ((*arg0) == valBefore)
+ {
+ return FALSE;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+u8 GetLRKeysState(void)
+{
+ if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
+ {
+ if (gMain.newKeys & L_BUTTON)
+ return 1;
+ if (gMain.newKeys & R_BUTTON)
+ return 2;
+ }
+
+ return 0;
+}
+
+u8 sub_812210C(void)
+{
+ if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
+ {
+ if (gMain.newAndRepeatedKeys & L_BUTTON)
+ return 1;
+ if (gMain.newAndRepeatedKeys & R_BUTTON)
+ return 2;
+ }
+
+ return 0;
+}
+
+bool8 sub_8122148(u16 itemId)
+{
+ if (itemId != ITEM_ENIGMA_BERRY)
+ return TRUE;
+ else if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRADE_CENTER) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRADE_CENTER))
+ return FALSE;
+ else if (InUnionRoom() != TRUE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 itemid_80BF6D8_mail_related(u16 itemId)
+{
+ if (is_c1_link_related_active() != TRUE && InUnionRoom() != TRUE)
+ return TRUE;
+ else if (ItemIsMail(itemId) != TRUE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_81221AC(void)
+{
+ if (is_c1_link_related_active() == TRUE || gReceivedRemoteLinkPlayers == 1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static bool8 sub_81221D0(void)
+{
+ if (!sub_81221AC())
+ return FALSE;
+ else
+ return sub_8087598();
+}
+
+bool8 sub_81221EC(void)
+{
+ if (sub_81221D0() == TRUE)
+ return TRUE;
+ else if (sub_800B504() != TRUE)
+ return FALSE;
+ else
+ return TRUE;
+}
+
+void sub_812220C(struct ItemSlot *slots, u8 count, u8 *arg2, u8 *usedSlotsCount, u8 maxUsedSlotsCount)
+{
+ u16 i;
+ struct ItemSlot *slots_ = slots;
+
+ (*usedSlotsCount) = 0;
+ for (i = 0; i < count; i++)
+ {
+ if (slots_[i].itemId != ITEM_NONE)
+ (*usedSlotsCount)++;
+ }
+
+ (*usedSlotsCount)++;
+ if ((*usedSlotsCount) > maxUsedSlotsCount)
+ *arg2 = maxUsedSlotsCount;
+ else
+ *arg2 = (*usedSlotsCount);
+}
+
+void sub_812225C(u16 *arg0, u16 *arg1, u8 arg2, u8 arg3)
+{
+ if ((*arg0) != 0 && (*arg0) + arg2 > arg3)
+ (*arg0) = arg3 - arg2;
+
+ if ((*arg0) + (*arg1) >= arg3)
+ {
+ if (arg3 == 0)
+ (*arg1) = 0;
+ else
+ (*arg1) = arg3 - 1;
+ }
+}
+
+void sub_8122298(u16 *arg0, u16 *arg1, u8 arg2, u8 arg3, u8 arg4)
+{
+ u8 i;
+
+ if (arg4 % 2 != 0)
+ {
+ if ((*arg1) >= arg4 / 2)
+ {
+ for (i = 0; i < (*arg1) - (arg4 / 2); i++)
+ {
+ if ((*arg0) + arg2 == arg3)
+ break;
+ (*arg1)--;
+ (*arg0)++;
+ }
+ }
+ }
+ else
+ {
+ if ((*arg1) >= (arg4 / 2) + 1)
+ {
+ for (i = 0; i <= (*arg1) - (arg4 / 2); i++)
+ {
+ if ((*arg0) + arg2 == arg3)
+ break;
+ (*arg1)--;
+ (*arg0)++;
+ }
+ }
+ }
+}
+
+void LoadListMenuArrowsGfx(void)
+{
+ LoadCompressedObjectPic(&gUnknown_0859F514);
+ LoadCompressedObjectPalette(&gUnknown_0859F51C);
+}
+
+void sub_8122344(u8 *spriteIds, u8 count)
+{
+ u8 i;
+
+ for (i = 0; i < count; i++)
+ {
+ spriteIds[i] = CreateSprite(&gUnknown_0859F524, i * 16, 0, 0);
+ if (i != 0)
+ StartSpriteAnim(&gSprites[spriteIds[i]], 1);
+
+ gSprites[spriteIds[i]].invisible = 1;
+ }
+}
+
+void sub_81223B0(u8 *spriteIds, u8 count)
+{
+ u8 i;
+
+ for (i = 0; i < count; i++)
+ {
+ if (i == count - 1)
+ DestroySpriteAndFreeResources(&gSprites[spriteIds[i]]);
+ else
+ DestroySprite(&gSprites[spriteIds[i]]);
+ }
+}
+
+void sub_81223FC(u8 *spriteIds, u8 count, bool8 invisible)
+{
+ u8 i;
+
+ for (i = 0; i < count; i++)
+ {
+ gSprites[spriteIds[i]].invisible = invisible;
+ }
+}
+
+void sub_8122448(u8 *spriteIds, u8 count, s16 x, u16 y)
+{
+ u8 i;
+ bool8 unknownBit = count & 0x80;
+ count &= ~(0x80);
+
+ for (i = 0; i < count; i++)
+ {
+ if (i == count - 1 && unknownBit)
+ gSprites[spriteIds[i]].pos2.x = x - 8;
+ else
+ gSprites[spriteIds[i]].pos2.x = x;
+
+ gSprites[spriteIds[i]].pos1.y = 1 + y;
+ }
+}
diff --git a/src/mon_markings.c b/src/mon_markings.c
index 147872ab6..7f320002d 100644
--- a/src/mon_markings.c
+++ b/src/mon_markings.c
@@ -2,7 +2,8 @@
#include "dma3.h"
#include "graphics.h"
#include "main.h"
-#include "menu_indicators.h"
+#include "window.h"
+#include "list_menu.h"
#include "mon_markings.h"
#include "constants/songs.h"
#include "sound.h"
diff --git a/src/new_game.c b/src/new_game.c
index 37336016e..c387bce65 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -119,11 +119,10 @@ void ClearAllContestWinnerPics(void)
void sub_8084400(void)
{
// probably clearing one struct for battle frontier
- CpuFill32(0, gSaveBlock2Ptr->field_64C, 2272);
+ CpuFill32(0, &gSaveBlock2Ptr->battleTower, 2272);
- // those look like strings
- gSaveBlock2Ptr->field_EE1 = 0xFF;
- gSaveBlock2Ptr->field_EE9 = 0xFF;
+ gSaveBlock2Ptr->field_EE1[0][0] = EOS;
+ gSaveBlock2Ptr->field_EE1[1][0] = EOS;
}
void WarpToTruck(void)
diff --git a/src/overworld.c b/src/overworld.c
index f42f0db7f..3d9a1bdc2 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -38,6 +38,7 @@
#include "roamer.h"
// #include "rotating_gate.h"
#include "safari_zone.h"
+#include "save.h"
#include "script.h"
// #include "script_pokemon_80C4.h"
#include "secret_base.h"
@@ -87,12 +88,11 @@ extern const struct MapHeader *const *const gMapGroups[];
extern const s32 gMaxFlashLevel;
extern const u16 gUnknown_82EC7C4[];
-extern u16 gSaveFileStatus;
-extern u16 gUnknown_03005DA8;
-extern bool8 (*gUnknown_03005DB0)(void);
-extern u8 gUnknown_03005DB4;
-extern u8 gFieldLinkPlayerCount;
-extern MainCallback gFieldCallback;
+u16 gUnknown_03005DA8;
+MainCallback gFieldCallback;
+bool8 (*gUnknown_03005DB0)(void);
+u8 gUnknown_03005DB4;
+u8 gFieldLinkPlayerCount;
// functions
extern void HealPlayerParty(void);
@@ -713,7 +713,7 @@ void sub_8084D5C(s16 a1, s16 a2)
{
u8 currMapType = Overworld_GetMapTypeOfSaveblockLocation();
u8 destMapType = GetMapTypeByGroupAndId(sWarpDestination.mapGroup, sWarpDestination.mapNum);
- if (is_light_level_1_2_3_5_or_6(currMapType) && is_light_level_1_2_3_5_or_6(destMapType) != TRUE)
+ if (is_map_type_1_2_3_5_or_6(currMapType) && is_map_type_1_2_3_5_or_6(destMapType) != TRUE)
sub_8084DD4(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, a1 - 7, a2 - 6);
}
@@ -872,7 +872,7 @@ static void mli0_load_map(u32 a1)
LoadMapObjTemplatesFromHeader();
}
- v2 = is_light_level_1_2_3_5_or_6(gMapHeader.mapType);
+ v2 = is_map_type_1_2_3_5_or_6(gMapHeader.mapType);
indoors = Overworld_MapTypeIsIndoors(gMapHeader.mapType);
sub_80EB218();
@@ -1365,7 +1365,7 @@ u8 get_map_light_from_warp0(void)
return GetMapTypeByWarpData(&gUnknown_020322DC);
}
-bool8 is_light_level_1_2_3_5_or_6(u8 mapType)
+bool8 is_map_type_1_2_3_5_or_6(u8 mapType)
{
if (mapType == MAP_TYPE_ROUTE
|| mapType == MAP_TYPE_TOWN
diff --git a/src/player_pc.c b/src/player_pc.c
index 6f39fa449..c10c63dda 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -18,7 +18,6 @@
#include "malloc.h"
#include "menu.h"
#include "menu_helpers.h"
-#include "menu_indicators.h"
#include "overworld.h"
#include "palette.h"
#include "party_menu.h"
@@ -43,9 +42,6 @@ struct Struct203BCC4
u8 spriteIds[7];
};
-// extern offset
-void (*gFieldCallback)(void);
-
// static functions
static void InitPlayerPCMenu(u8 taskId);
static void PlayerPCProcessMenuInput(u8 taskId);
@@ -436,7 +432,7 @@ void Mailbox_DoRedrawMailboxMenuAfterReturn(void)
static void ItemStorage_HandleReturnToProcessInput(u8 taskId)
{
- if (sub_80ABDFC() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
gTasks[taskId].func = ItemStorageMenuProcessInput;
}
@@ -673,7 +669,7 @@ static void pal_fill_for_maplights_or_black(void)
static void Mailbox_HandleReturnToProcessInput(u8 taskId)
{
- if(sub_80ABDFC() == TRUE)
+ if(IsWeatherNotFadingIn() == TRUE)
gTasks[taskId].func = Mailbox_ProcessInput;
}
diff --git a/src/pokeblock.c b/src/pokeblock.c
index 60087b5bf..216c9e2c5 100644
--- a/src/pokeblock.c
+++ b/src/pokeblock.c
@@ -24,11 +24,11 @@
#include "constants/songs.h"
#include "sound.h"
#include "berry.h"
-#include "menu_indicators.h"
#include "event_data.h"
#include "battle_message.h"
#include "safari_zone.h"
#include "lilycove_lady.h"
+#include "overworld.h"
#define POKEBLOCK_MAX_FEEL 99
#define FIELD_E75_COUNT 7
@@ -70,7 +70,6 @@ enum
};
extern u16 gSpecialVar_ItemId;
-extern void (*gFieldCallback)(void);
extern const u16 gUnknown_0860F074[];
diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c
index 02755fe40..c50aa4a75 100644
--- a/src/pokemon_animation.c
+++ b/src/pokemon_animation.c
@@ -1184,7 +1184,7 @@ static void sub_817F9F4(struct Sprite *sprite)
}
#else
-__attribute__((naked))
+NAKED
static void sub_817F9F4(struct Sprite *sprite)
{
asm(".syntax unified\n\
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index f77b7c38c..74dc11973 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -1417,7 +1417,7 @@ void sub_81C14BC(struct Pokemon *mon, u8 swappingFromId, u8 swappingToId)
*ppBonusesPtr = localPpBonuses;
}
#else
-ASM_DIRECT
+NAKED
void sub_81C14BC(struct Pokemon *mon, u8 swappingFromId, u8 swappingToId)
{
asm(".syntax unified\n\
@@ -1628,7 +1628,7 @@ void sub_81C15EC(struct BoxPokemon *mon, u8 swappingFromId, u8 swappingToId)
*ppBonusesPtr = localPpBonuses;
}
#else
-ASM_DIRECT
+NAKED
void sub_81C15EC(struct BoxPokemon *mon, u8 swappingFromId, u8 swappingToId)
{
asm(".syntax unified\n\
@@ -1825,7 +1825,7 @@ void sub_81C174C(u8 taskId)
}
else
{
- PlaySE(0x20);
+ PlaySE(SE_HAZURE);
sub_81C18F4(taskId);
}
}
@@ -2039,7 +2039,7 @@ void sub_81C1CB0(struct UnkStruct_61CC04 *a, u16 *b, u8 c, u8 d)
Free(alloced);
}
#else
-ASM_DIRECT
+NAKED
void sub_81C1CB0(struct UnkStruct_61CC04 *a, u16 *b, u8 c, u8 d)
{
asm(".syntax unified\n\
@@ -2341,7 +2341,7 @@ void sub_81C2194(u16 *a, u16 b, u8 c)
}
}
#else
-ASM_DIRECT
+NAKED
void sub_81C2194(u16 *a, u16 b, u8 c)
{
asm(".syntax unified\n\
@@ -3026,7 +3026,7 @@ void sub_81C335C()
sub_81C25A4(r4, gText_FiveMarks, r5, 1, 0, 1);
}
#else
-ASM_DIRECT
+NAKED
void sub_81C335C()
{
asm(".syntax unified\n\
@@ -3369,7 +3369,7 @@ void sub_81C3B08(u8 a)
sub_81C25A4(sp, text, offset, (a<<4), 0, r5);
}
#else
-ASM_DIRECT
+NAKED
void sub_81C3B08(u8 a)
{
asm(".syntax unified\n\
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 151835e5e..35e518d8a 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -1,28 +1,2282 @@
-
-// Includes
#include "global.h"
+#include "malloc.h"
+#include "random.h"
+#include "constants/items.h"
+#include "text.h"
+#include "item.h"
+#include "task.h"
+#include "constants/species.h"
+#include "save.h"
+#include "load_save.h"
+#include "pokemon.h"
+#include "cable_club.h"
+#include "link.h"
+#include "link_rfu.h"
+#include "tv.h"
+#include "battle_tower.h"
+#include "window.h"
+#include "mystery_event_script.h"
+#include "secret_base.h"
+#include "mauville_old_man.h"
+#include "sound.h"
+#include "constants/songs.h"
+#include "menu.h"
+#include "overworld.h"
+#include "field_screen.h"
+#include "fldeff_80F9BCC.h"
+#include "script.h"
+#include "event_data.h"
+#include "lilycove_lady.h"
+#include "strings.h"
+#include "string_util.h"
+#include "record_mixing.h"
+#include "new_game.h"
+#include "daycare.h"
+#include "international_string_util.h"
+
+extern void ReceiveSecretBasesData(struct SecretBaseRecord *, size_t, u8);
+extern void ReceiveEasyChatPairsData(struct EasyChatPair *, size_t, u8);
// Static type declarations
+struct UnknownRecMixingStruct
+{
+ u32 field_0;
+ u16 field_4;
+ u8 field_6[9];
+};
+
+struct UnknownRecMixingStruct2
+{
+ u32 field_0;
+ u16 field_4;
+ u16 field_6;
+ u16 field_8;
+ u8 field_A[16];
+};
+
+struct UnknownRecMixingStruct3
+{
+ u8 field_0[0x810];
+};
+
+struct PlayerRecordsRS
+{
+ struct SecretBaseRecord secretBases[SECRET_BASES_COUNT];
+ TVShow tvShows[TV_SHOWS_COUNT];
+ PokeNews pokeNews[POKE_NEWS_COUNT];
+ OldMan oldMan;
+ struct EasyChatPair easyChatPairs[5];
+ struct RecordMixingDayCareMail dayCareMail;
+ struct RSBattleTowerRecord battleTowerRecord;
+ u16 filler11C8[0x32];
+};
+
+struct PlayerRecordsEmerald
+{
+ /* 0x0000 */ struct SecretBaseRecord secretBases[SECRET_BASES_COUNT];
+ /* 0x0c80 */ TVShow tvShows[TV_SHOWS_COUNT];
+ /* 0x1004 */ PokeNews pokeNews[POKE_NEWS_COUNT];
+ /* 0x1044 */ OldMan oldMan;
+ /* 0x1084 */ struct EasyChatPair easyChatPairs[5];
+ /* 0x10ac */ struct RecordMixingDayCareMail dayCareMail;
+ /* 0x1124 */ struct EmeraldBattleTowerRecord battleTowerRecord;
+ /* 0x1210 */ u16 unk_1210;
+ /* 0x1214 */ LilycoveLady lilycoveLady;
+ /* 0x1254 */ struct UnkRecordMixingStruct unk_1254[2];
+ /* 0x12dc */ struct UnkRecordMixingStruct2 unk_12dc;
+ /* 0x1434 */ u8 field_1434[0x10];
+}; // 0x1444
+
+union PlayerRecords
+{
+ struct PlayerRecordsRS ruby;
+ struct PlayerRecordsEmerald emerald;
+};
+
// Static RAM declarations
-IWRAM_DATA bool8 gUnknown_03001130;
-IWRAM_DATA struct SecretBaseRecord *gUnknown_03001134;
-IWRAM_DATA TVShow *gUnknown_03001138;
-IWRAM_DATA struct UnknownSaveStruct2ABC *gUnknown_0300113C;
-IWRAM_DATA OldMan *gUnknown_03001140;
-IWRAM_DATA struct EasyChatPair *gUnknown_03001144;
-IWRAM_DATA struct DaycareData *gUnknown_03001148;
-IWRAM_DATA void *gUnknown_0300114C; // gSaveBlock2Ptr->field_64C
-IWRAM_DATA LilycoveLady *gUnknown_03001150;
-IWRAM_DATA void *gUnknown_03001154; // gSaveBlock2Ptr->field_0DC;
-IWRAM_DATA void *gUnknown_03001158; // gSaveBlock2Ptr->field_64C
-IWRAM_DATA u32 gUnknown_0300115C;
-IWRAM_DATA u8 gUnknown_03001160[8];
-IWRAM_DATA u32 gUnknown_03001168[3];
+static IWRAM_DATA bool8 gUnknown_03001130;
+static IWRAM_DATA struct SecretBaseRecord *sSecretBasesSave;
+static IWRAM_DATA TVShow *sTvShowsSave;
+static IWRAM_DATA PokeNews *sPokeNewsSave;
+static IWRAM_DATA OldMan *sOldManSave;
+static IWRAM_DATA struct EasyChatPair *sEasyChatPairsSave;
+static IWRAM_DATA struct RecordMixingDayCareMail *gUnknown_03001148;
+static IWRAM_DATA void *sBattleTowerSave;
+static IWRAM_DATA LilycoveLady *sLilycoveLadySave;
+static IWRAM_DATA void *gUnknown_03001154; // gSaveBlock2Ptr->field_0DC;
+static IWRAM_DATA void *sBattleTowerSave_Duplicate;
+static IWRAM_DATA u32 sRecordStructSize;
+static IWRAM_DATA u8 gUnknown_03001160;
+static IWRAM_DATA u32 filler_03001164;
+static IWRAM_DATA u32 gUnknown_03001168[3];
+
+static EWRAM_DATA struct RecordMixingDayCareMail gUnknown_02039F9C = {0};
+static EWRAM_DATA union PlayerRecords *sReceivedRecords = NULL;
+static EWRAM_DATA union PlayerRecords *sSentRecord = NULL;
// Static ROM declarations
+static void Task_RecordMixing_Main(u8 taskId);
+static void sub_80E7324(u8 taskId);
+static void Task_SendPacket(u8 taskId);
+static void Task_CopyReceiveBuffer(u8 taskId);
+static void Task_SendPacket_SwitchToReceive(u8 taskId);
+static void *LoadPtrFromTaskData(const u16 *asShort);
+static void StorePtrInTaskData(void *records, u16 *a1);
+static u8 GetMultiplayerId_(void);
+static void *GetPlayerRecvBuffer(u8);
+static void ReceiveOldManData(OldMan *, size_t, u8);
+static void ReceiveBattleTowerData(void *battleTowerRecord, size_t, u8);
+static void ReceiveLilycoveLadyData(LilycoveLady *, size_t, u8);
+static void sub_80E7B2C(const u8 *);
+static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *, size_t, u8, TVShow *);
+static void sub_80E7F68(u16 *item, u8 which);
+static void sub_80E7FF8(u8 taskId);
+static void sub_80E8110(struct UnkRecordMixingStruct *arg0, struct UnkRecordMixingStruct *arg1);
+static void sub_80E8468(struct UnkRecordMixingStruct *arg0, size_t arg1, u32 arg2);
+static void sub_80E89AC(struct UnkRecordMixingStruct2 *arg0, size_t arg1, u32 arg2);
+static void sub_80E89F8(struct RecordMixingDayCareMail *dst);
+static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src);
+static void SanitizeEmeraldBattleTowerRecord(struct EmeraldBattleTowerRecord *arg0);
+static void SanitizeRubyBattleTowerRecord(struct RSBattleTowerRecord *src);
+
// .rodata
+static const u8 gUnknown_0858CF8C[] = {1, 0};
+
+static const u8 gUnknown_0858CF8E[][3] =
+{
+ {1, 2, 0},
+ {2, 0, 1},
+};
+
+static const u8 gUnknown_0858CF94[][4] =
+{
+ {1, 0, 3, 2},
+ {3, 0, 1, 2},
+ {2, 0, 3, 1},
+ {1, 3, 0, 2},
+ {2, 3, 0, 1},
+ {3, 2, 0, 1},
+ {1, 2, 3, 0},
+ {2, 3, 1, 0},
+ {3, 2, 1, 0},
+};
+
+static const u8 gUnknown_0858CFB8[3][2] =
+{
+ {0, 1},
+ {1, 2},
+ {2, 0},
+};
+
+static const u8 gUnknown_0858CFBE[3][4] =
+{
+ {0, 1, 2, 3},
+ {0, 2, 1, 3},
+ {0, 3, 2, 1},
+};
+
// .text
+
+#define BUFFER_CHUNK_SIZE 200
+
+void sub_80E6BE8(void)
+{
+ sub_80B37D4(Task_RecordMixing_Main);
+}
+
+// these variables were const in R/S, but had to become changeable because of saveblocks changing RAM position
+static void SetSrcLookupPointers(void)
+{
+ sSecretBasesSave = gSaveBlock1Ptr->secretBases;
+ sTvShowsSave = gSaveBlock1Ptr->tvShows;
+ sPokeNewsSave = gSaveBlock1Ptr->pokeNews;
+ sOldManSave = &gSaveBlock1Ptr->oldMan;
+ sEasyChatPairsSave = gSaveBlock1Ptr->easyChatPairs;
+ gUnknown_03001148 = &gUnknown_02039F9C;
+ sBattleTowerSave = &gSaveBlock2Ptr->battleTower;
+ sLilycoveLadySave = &gSaveBlock1Ptr->lilycoveLady;
+ gUnknown_03001154 = gSaveBlock2Ptr->field_DC;
+ sBattleTowerSave_Duplicate = &gSaveBlock2Ptr->battleTower;
+}
+
+static void PrepareUnknownExchangePacket(struct PlayerRecordsRS *dest)
+{
+ memcpy(dest->secretBases, sSecretBasesSave, sizeof(dest->secretBases));
+ memcpy(dest->tvShows, sTvShowsSave, sizeof(dest->tvShows));
+ sub_80F14F8(dest->tvShows);
+ memcpy(dest->pokeNews, sPokeNewsSave, sizeof(dest->pokeNews));
+ memcpy(&dest->oldMan, sOldManSave, sizeof(dest->oldMan));
+ memcpy(dest->easyChatPairs, sEasyChatPairsSave, sizeof(dest->easyChatPairs));
+ sub_80E89F8(&dest->dayCareMail);
+ sub_81659DC(sBattleTowerSave, &dest->battleTowerRecord);
+
+ if (GetMultiplayerId() == 0)
+ dest->battleTowerRecord.unk_11c8 = GetRecordMixingGift();
+}
+
+static void PrepareExchangePacketForRubySapphire(struct PlayerRecordsRS *dest)
+{
+ memcpy(dest->secretBases, sSecretBasesSave, sizeof(dest->secretBases));
+ sub_80EB18C(dest->secretBases);
+ memcpy(dest->tvShows, sTvShowsSave, sizeof(dest->tvShows));
+ sub_80F1208(dest->tvShows);
+ memcpy(dest->pokeNews, sPokeNewsSave, sizeof(dest->pokeNews));
+ memcpy(&dest->oldMan, sOldManSave, sizeof(dest->oldMan));
+ sub_8120B70(&dest->oldMan);
+ memcpy(dest->easyChatPairs, sEasyChatPairsSave, sizeof(dest->easyChatPairs));
+ sub_80E89F8(&dest->dayCareMail);
+ SanitizeDayCareMailForRuby(&dest->dayCareMail);
+ sub_81659DC(sBattleTowerSave, &dest->battleTowerRecord);
+ SanitizeRubyBattleTowerRecord(&dest->battleTowerRecord);
+
+ if (GetMultiplayerId() == 0)
+ dest->battleTowerRecord.unk_11c8 = GetRecordMixingGift();
+}
+
+static void PrepareExchangePacket(void)
+{
+ sub_80E9914();
+ sub_80F0BB8();
+ SetSrcLookupPointers();
+
+ if (Link_AnyPartnersPlayingRubyOrSapphire())
+ {
+ if (sub_800A03C() == 0)
+ PrepareUnknownExchangePacket(&sSentRecord->ruby);
+ else
+ PrepareExchangePacketForRubySapphire(&sSentRecord->ruby);
+ }
+ else
+ {
+ memcpy(sSentRecord->emerald.secretBases, sSecretBasesSave, sizeof(sSentRecord->emerald.secretBases));
+ memcpy(sSentRecord->emerald.tvShows, sTvShowsSave, sizeof(sSentRecord->emerald.tvShows));
+ memcpy(sSentRecord->emerald.pokeNews, sPokeNewsSave, sizeof(sSentRecord->emerald.pokeNews));
+ memcpy(&sSentRecord->emerald.oldMan, sOldManSave, sizeof(sSentRecord->emerald.oldMan));
+ memcpy(&sSentRecord->emerald.lilycoveLady, sLilycoveLadySave, sizeof(sSentRecord->emerald.lilycoveLady));
+ memcpy(sSentRecord->emerald.easyChatPairs, sEasyChatPairsSave, sizeof(sSentRecord->emerald.easyChatPairs));
+ sub_80E89F8(&sSentRecord->emerald.dayCareMail);
+ memcpy(&sSentRecord->emerald.battleTowerRecord, sBattleTowerSave, sizeof(sSentRecord->emerald.battleTowerRecord));
+ SanitizeEmeraldBattleTowerRecord(&sSentRecord->emerald.battleTowerRecord);
+
+ if (GetMultiplayerId() == 0)
+ sSentRecord->emerald.unk_1210 = GetRecordMixingGift();
+
+ sub_80E8110(sSentRecord->emerald.unk_1254, gUnknown_03001154);
+ sub_80E8260(&sSentRecord->emerald.unk_12dc);
+ }
+}
+
+static void ReceiveExchangePacket(u32 which)
+{
+ if (Link_AnyPartnersPlayingRubyOrSapphire())
+ {
+ // Ruby/Sapphire
+ sub_80E7B2C((void *)sReceivedRecords->ruby.tvShows);
+ ReceiveSecretBasesData(sReceivedRecords->ruby.secretBases, sizeof(struct PlayerRecordsRS), which);
+ ReceiveDaycareMailData(&sReceivedRecords->ruby.dayCareMail, sizeof(struct PlayerRecordsRS), which, sReceivedRecords->ruby.tvShows);
+ ReceiveBattleTowerData(&sReceivedRecords->ruby.battleTowerRecord, sizeof(struct PlayerRecordsRS), which);
+ ReceiveTvShowsData(sReceivedRecords->ruby.tvShows, sizeof(struct PlayerRecordsRS), which);
+ ReceivePokeNewsData(sReceivedRecords->ruby.pokeNews, sizeof(struct PlayerRecordsRS), which);
+ ReceiveOldManData(&sReceivedRecords->ruby.oldMan, sizeof(struct PlayerRecordsRS), which);
+ ReceiveEasyChatPairsData(sReceivedRecords->ruby.easyChatPairs, sizeof(struct PlayerRecordsRS), which);
+ sub_80E7F68(&sReceivedRecords->ruby.battleTowerRecord.unk_11c8, which);
+ }
+ else
+ {
+ // Emerald
+ sub_80E7B2C((void *)sReceivedRecords->emerald.tvShows);
+ ReceiveSecretBasesData(sReceivedRecords->emerald.secretBases, sizeof(struct PlayerRecordsEmerald), which);
+ ReceiveTvShowsData(sReceivedRecords->emerald.tvShows, sizeof(struct PlayerRecordsEmerald), which);
+ ReceivePokeNewsData(sReceivedRecords->emerald.pokeNews, sizeof(struct PlayerRecordsEmerald), which);
+ ReceiveOldManData(&sReceivedRecords->emerald.oldMan, sizeof(struct PlayerRecordsEmerald), which);
+ ReceiveEasyChatPairsData(sReceivedRecords->emerald.easyChatPairs, sizeof(struct PlayerRecordsEmerald), which);
+ ReceiveDaycareMailData(&sReceivedRecords->emerald.dayCareMail, sizeof(struct PlayerRecordsEmerald), which, sReceivedRecords->emerald.tvShows);
+ ReceiveBattleTowerData(&sReceivedRecords->emerald.battleTowerRecord, sizeof(struct PlayerRecordsEmerald), which);
+ sub_80E7F68(&sReceivedRecords->emerald.unk_1210, which);
+ ReceiveLilycoveLadyData(&sReceivedRecords->emerald.lilycoveLady, sizeof(struct PlayerRecordsEmerald), which);
+ sub_80E8468(sReceivedRecords->emerald.unk_1254, sizeof(struct PlayerRecordsEmerald), (u8) which);
+ sub_80E89AC(&sReceivedRecords->emerald.unk_12dc, sizeof(struct PlayerRecordsEmerald), (u8) which);
+ }
+}
+
+static void PrintTextOnRecordMixing(const u8 *src)
+{
+ NewMenuHelpers_DrawDialogueFrame(0, 0);
+ PrintTextOnWindow(0, 1, src, 0, 1, 0, NULL);
+ CopyWindowToVram(0, 3);
+}
+
+#define tCounter data[0]
+
+static void Task_RecordMixing_SoundEffect(u8 taskId)
+{
+ if (++gTasks[taskId].tCounter == 50)
+ {
+ PlaySE(SE_W213);
+ gTasks[taskId].tCounter = 0;
+ }
+}
+
+#undef tCounter
+
+#define tState data[0]
+#define tSndEffTaskId data[15]
+
+static void Task_RecordMixing_Main(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (tState)
+ {
+ case 0: // init
+ sSentRecord = malloc(sizeof(union PlayerRecords));
+ sReceivedRecords = malloc(sizeof(union PlayerRecords) * 4);
+ sub_8009628(gSpecialVar_0x8005);
+ VarSet(VAR_TEMP_0, 1);
+ gUnknown_03001130 = FALSE;
+ PrepareExchangePacket();
+ CreateRecordMixingSprite();
+ tState = 1;
+ data[10] = CreateTask(sub_80E7324, 80);
+ tSndEffTaskId = CreateTask(Task_RecordMixing_SoundEffect, 81);
+ break;
+ case 1: // wait for sub_80E7324
+ if (!gTasks[data[10]].isActive)
+ {
+ tState = 2;
+ FlagSet(FLAG_SYS_MIX_RECORD);
+ DestroyRecordMixingSprite();
+ DestroyTask(tSndEffTaskId);
+ }
+ break;
+ case 2:
+ data[10] = CreateTask(sub_80E7FF8, 10);
+ tState = 3;
+ PlaySE(SE_W226);
+ break;
+ case 3: // wait for sub_80E7FF8
+ if (!gTasks[data[10]].isActive)
+ {
+ tState = 4;
+ if (gWirelessCommType == 0)
+ data[10] = sub_80B3050();
+
+ PrintTextOnRecordMixing(gText_RecordMixingComplete);
+ data[8] = 0;
+ }
+ break;
+ case 4: // wait 60 frames
+ if (++data[8] > 60)
+ tState = 5;
+ break;
+ case 5:
+ if (!gTasks[data[10]].isActive)
+ {
+ free(sReceivedRecords);
+ free(sSentRecord);
+ sub_808729C();
+ if (gWirelessCommType != 0)
+ {
+ CreateTask(sub_80AF2B4, 10);
+ }
+ sub_8197434(0, 1);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+ break;
+ }
+}
+
+#undef tState
+#undef tSndEffTaskId
+
+static void sub_80E7324(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ PrintTextOnRecordMixing(gText_MixingRecords);
+ task->data[8] = 0x708;
+ task->data[0] = 400;
+ ClearLinkCallback_2();
+ break;
+ case 100: // wait 20 frames
+ if (++task->data[12] > 20)
+ {
+ task->data[12] = 0;
+ task->data[0] = 101;
+ }
+ break;
+ case 101:
+ {
+ u8 players = GetLinkPlayerCount_2();
+ if (IsLinkMaster() == TRUE)
+ {
+ if (players == sub_800AA48())
+ {
+ PlaySE(SE_PIN);
+ task->data[0] = 201;
+ task->data[12] = 0;
+ }
+ }
+ else
+ {
+ PlaySE(SE_BOO);
+ task->data[0] = 301;
+ }
+ }
+ break;
+ case 201:
+ if (sub_800AA48() == GetLinkPlayerCount_2() && ++task->data[12] > (GetLinkPlayerCount_2() * 30))
+ {
+ sub_800A620();
+ task->data[0] = 1;
+ }
+ break;
+ case 301:
+ if (sub_800AA48() == GetLinkPlayerCount_2())
+ task->data[0] = 1;
+ break;
+ case 400: // wait 20 frames
+ if (++task->data[12] > 20)
+ {
+ task->data[0] = 1;
+ task->data[12] = 0;
+ }
+ break;
+ case 1: // wait for handshake
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ ConvertIntToDecimalStringN(gStringVar1, GetMultiplayerId_(), STR_CONV_MODE_LEADING_ZEROS, 2);
+ task->data[0] = 5;
+ }
+ break;
+ case 2:
+ {
+ u8 subTaskId;
+
+ task->data[6] = GetLinkPlayerCount_2();
+ task->data[0] = 0;
+ task->data[5] = GetMultiplayerId_();
+ task->func = Task_SendPacket;
+ if (Link_AnyPartnersPlayingRubyOrSapphire())
+ {
+ StorePtrInTaskData(sSentRecord, (u16 *)&task->data[2]);
+ subTaskId = CreateTask(Task_CopyReceiveBuffer, 80);
+ task->data[10] = subTaskId;
+ gTasks[subTaskId].data[0] = taskId;
+ StorePtrInTaskData(sReceivedRecords, (u16 *)&gTasks[subTaskId].data[5]);
+ sRecordStructSize = sizeof(struct PlayerRecordsRS);
+ }
+ else
+ {
+ StorePtrInTaskData(sSentRecord, (u16 *)&task->data[2]);
+ subTaskId = CreateTask(Task_CopyReceiveBuffer, 80);
+ task->data[10] = subTaskId;
+ gTasks[subTaskId].data[0] = taskId;
+ StorePtrInTaskData(sReceivedRecords, (u16 *)&gTasks[subTaskId].data[5]);
+ sRecordStructSize = sizeof(struct PlayerRecordsEmerald);
+ }
+ }
+ break;
+ case 5: // wait 60 frames
+ if (++task->data[10] > 60)
+ {
+ task->data[10] = 0;
+ task->data[0] = 2;
+ }
+ break;
+ }
+}
+
+static void Task_SendPacket(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ // does this send the data 24 times?
+
+ switch (task->data[0])
+ {
+ case 0: // Copy record data to send buffer
+ {
+ void *recordData = LoadPtrFromTaskData(&task->data[2]) + task->data[4] * BUFFER_CHUNK_SIZE;
+
+ memcpy(gBlockSendBuffer, recordData, BUFFER_CHUNK_SIZE);
+ task->data[0]++;
+ }
+ break;
+ case 1:
+ if (GetMultiplayerId() == 0)
+ sub_800A4D8(1);
+ task->data[0]++;
+ break;
+ case 2:
+ break;
+ case 3:
+ task->data[4]++;
+ if (task->data[4] == sRecordStructSize / 200 + 1)
+ task->data[0]++;
+ else
+ task->data[0] = 0;
+ break;
+ case 4:
+ if (!gTasks[task->data[10]].isActive)
+ task->func = Task_SendPacket_SwitchToReceive;
+ break;
+ }
+}
+
+static void Task_CopyReceiveBuffer(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ u8 status = GetBlockReceivedStatus();
+ u8 handledPlayers = 0;
+
+ if (status == sub_800A9D8())
+ {
+ u8 i;
+
+ for (i = 0; i < GetLinkPlayerCount(); i++)
+ {
+ void *dest;
+ void *src;
+
+ if ((status >> i) & 1)
+ {
+ dest = LoadPtrFromTaskData((u16 *)&task->data[5]) + task->data[i + 1] * BUFFER_CHUNK_SIZE + sRecordStructSize * i;
+ src = GetPlayerRecvBuffer(i);
+ if ((task->data[i + 1] + 1) * BUFFER_CHUNK_SIZE > sRecordStructSize)
+ memcpy(dest, src, sRecordStructSize - task->data[i + 1] * BUFFER_CHUNK_SIZE);
+ else
+ memcpy(dest, src, BUFFER_CHUNK_SIZE);
+ ResetBlockReceivedFlag(i);
+ task->data[i + 1]++;
+ if (task->data[i + 1] == sRecordStructSize / BUFFER_CHUNK_SIZE + 1)
+ handledPlayers++;
+ }
+ }
+ gTasks[task->data[0]].data[0]++;
+ }
+
+ if (handledPlayers == GetLinkPlayerCount())
+ DestroyTask(taskId);
+}
+
+static void sub_80E776C(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ if (!gTasks[task->data[10]].isActive)
+ DestroyTask(taskId);
+}
+
+static void Task_ReceivePacket(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->func = sub_80E776C;
+ if (gUnknown_03001130 == TRUE)
+ ReceiveExchangePacket(task->data[5]);
+}
+
+static void Task_SendPacket_SwitchToReceive(u8 taskId)
+{
+ gTasks[taskId].func = Task_ReceivePacket;
+ gUnknown_03001130 = TRUE;
+}
+
+static void *LoadPtrFromTaskData(const u16 *asShort)
+{
+ return (void *)(asShort[0] | (asShort[1] << 16));
+}
+
+static void StorePtrInTaskData(void *records, u16 *asShort)
+{
+ asShort[0] = (u32)records;
+ asShort[1] = ((u32)records >> 16);
+}
+
+static u8 GetMultiplayerId_(void)
+{
+ return GetMultiplayerId();
+}
+
+static void *GetPlayerRecvBuffer(u8 id)
+{
+ return gBlockRecvBuffer[id];
+}
+
+static void ShufflePlayerIndices(u32 *data)
+{
+ u32 i;
+ u32 linkTrainerId;
+ u32 players = GetLinkPlayerCount();
+
+ switch (players)
+ {
+ case 2:
+ for (i = 0; i < 2; i++)
+ data[i] = gUnknown_0858CF8C[i];
+ break;
+ case 3:
+ linkTrainerId = GetLinkPlayerTrainerId(0) % 2;
+ for (i = 0; i < 3; i++)
+ data[i] = gUnknown_0858CF8E[linkTrainerId][i];
+ break;
+ case 4:
+ linkTrainerId = GetLinkPlayerTrainerId(0) % 9;
+ for (i = 0; i < 4; i++)
+ data[i] = gUnknown_0858CF94[linkTrainerId][i];
+ break;
+ }
+}
+
+static void ReceiveOldManData(OldMan *oldMan, size_t recordSize, u8 which)
+{
+ u8 version;
+ u16 language;
+ OldMan *dest;
+ u32 mixIndices[4];
+
+ ShufflePlayerIndices(mixIndices);
+ dest = (void *)oldMan + recordSize * mixIndices[which];
+ version = gLinkPlayers[mixIndices[which]].version;
+ language = gLinkPlayers[mixIndices[which]].language;
+
+ if (Link_AnyPartnersPlayingRubyOrSapphire())
+ SanitizeReceivedRubyOldMan(dest, version, language);
+ else
+ SanitizeReceivedEmeraldOldMan(dest, version, language);
+
+ memcpy(sOldManSave, (void *)oldMan + recordSize * mixIndices[which], sizeof(OldMan));
+ ResetMauvilleOldManFlag();
+}
+
+static void ReceiveBattleTowerData(void *battleTowerRecord, size_t recordSize, u8 which)
+{
+ struct EmeraldBattleTowerRecord *dest;
+ struct UnknownPokemonStruct *btPokemon;
+ u32 mixIndices[4];
+ s32 i;
+
+ ShufflePlayerIndices(mixIndices);
+ if (Link_AnyPartnersPlayingRubyOrSapphire())
+ {
+ if (sub_816587C((void *)battleTowerRecord + recordSize * mixIndices[which], (void *)battleTowerRecord + recordSize * which) == TRUE)
+ {
+ dest = (void *)battleTowerRecord + recordSize * which;
+ dest->language = gLinkPlayers[mixIndices[which]].language;
+ CalcEmeraldBattleTowerChecksum(dest);
+ }
+ }
+ else
+ {
+ memcpy((void *)battleTowerRecord + recordSize * which, (void *)battleTowerRecord + recordSize * mixIndices[which], sizeof(union BattleTowerRecord));
+ dest = (void *)battleTowerRecord + recordSize * which;
+ for (i = 0; i < 4; i ++)
+ {
+ btPokemon = &dest->party[i];
+ if (btPokemon->species != SPECIES_NONE && IsStringJapanese(btPokemon->nickname))
+ ConvertInternationalString(btPokemon->nickname, LANGUAGE_JAPANESE);
+ }
+ CalcEmeraldBattleTowerChecksum(dest);
+ }
+ sub_81628A0((void *)battleTowerRecord + recordSize * which);
+}
+
+static void ReceiveLilycoveLadyData(LilycoveLady *lilycoveLady, size_t recordSize, u8 which)
+{
+ LilycoveLady *dest;
+ u32 mixIndices[4];
+
+ ShufflePlayerIndices(mixIndices);
+ memcpy((void *)lilycoveLady + recordSize * which, sLilycoveLadySave, sizeof(LilycoveLady));
+
+ if (GetLilycoveLadyId() == 0)
+ {
+ dest = malloc(sizeof(LilycoveLady));
+ if (dest == NULL)
+ return;
+
+ memcpy(dest, sLilycoveLadySave, sizeof(LilycoveLady));
+ }
+ else
+ {
+ dest = NULL;
+ }
+
+ memcpy(sLilycoveLadySave, (void *)lilycoveLady + recordSize * mixIndices[which], sizeof(LilycoveLady));
+ sub_818DA78();
+ if (dest != NULL)
+ {
+ sub_818E570(dest);
+ free(dest);
+ }
+}
+
+static u8 sub_80E7A9C(struct DayCareMail *rmMail)
+{
+ return rmMail->message.itemId;
+}
+
+static void sub_80E7AA4(struct RecordMixingDayCareMail *src, size_t recordSize, u8 (*idxs)[2], u8 which0, u8 which1)
+{
+ struct DayCareMail buffer;
+ struct RecordMixingDayCareMail *mail1;
+ struct RecordMixingDayCareMail *mail2;
+
+ mail1 = (void *)src + recordSize * idxs[which0][0];
+ memcpy(&buffer, &mail1->mail[idxs[which0][1]], sizeof(struct DayCareMail));
+ mail2 = (void *)src + recordSize * idxs[which1][0];
+ memcpy(&mail1->mail[idxs[which0][1]], &mail2->mail[idxs[which1][1]], sizeof(struct DayCareMail));
+ memcpy(&mail2->mail[idxs[which1][1]], &buffer, sizeof(struct DayCareMail));
+}
+
+static void sub_80E7B2C(const u8 *src)
+{
+ u8 sum;
+ s32 i;
+
+ sum = 0;
+ for (i = 0; i < 256; i ++)
+ sum += src[i];
+
+ gUnknown_03001160 = sum;
+}
+
+static u8 sub_80E7B54(void)
+{
+ return gUnknown_03001160;
+}
+
+#ifdef NONMATCHING
+static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t recordSize, u8 which, TVShow *shows)
+{
+ // r9 = which
+ u16 i;
+ u16 j;
+ u8 linkPlayerCount;
+ u16 language;
+ u16 otNameLanguage;
+ u16 nicknameLanguage;
+ u32 version;
+ u8 dcMail1;
+ u8 dcMail2;
+ u8 r1_80e7b54;
+ struct DayCareMail *recordMixingMail;
+ struct RecordMixingDayCareMail *_src;
+ u8 sp04[4];
+ u8 sp08[4];
+ struct RecordMixingDayCareMail *sp0c[4]; // -> sp+48
+ u8 sp1c[4][2]; // [][0] -> sp+4c, [][1] -> sp+50
+ u8 sp24[4][2];
+ // sp+2c = src
+ // sp+30 = recordSize
+ u8 sp34;
+ u16 oldSeed;
+ bool32 anyRS; // sp+3c
+
+ oldSeed = Random2();
+ SeedRng2(gLinkPlayers[0].trainerId);
+ linkPlayerCount = GetLinkPlayerCount();
+ for (i = 0; i < 4; i ++)
+ {
+ sp04[i] = 0xFF;
+ sp08[i] = 0;
+ sp1c[i][0] = 0;
+ sp1c[i][1] = 0;
+ }
+ anyRS = Link_AnyPartnersPlayingRubyOrSapphire();
+ for (i = 0; i < GetLinkPlayerCount(); i ++) // r8 = i
+ {
+ // sp+54 = linkPlayerCount << 16
+ // sp+44 = which * recordSize
+ _src = (void *)src + i * recordSize; // r7
+ language = gLinkPlayers[i].language; // r9
+ version = (u8)gLinkPlayers[i].version; // sp+40
+ for (j = 0; j < _src->unk_70; j ++)
+ {
+ // r10 = ~0x10
+ recordMixingMail = &_src->unk_00[j];
+ if (recordMixingMail->mail.itemId != ITEM_NONE)
+ {
+ if (anyRS)
+ {
+ if (StringLength(recordMixingMail->OT_name) <= 5)
+ {
+ otNameLanguage = LANGUAGE_JAPANESE;
+ }
+ else
+ {
+ StripExtCtrlCodes(recordMixingMail->OT_name);
+ otNameLanguage = language;
+ }
+ if (recordMixingMail->monName[0] == EXT_CTRL_CODE_BEGIN && recordMixingMail->monName[1] == EXT_CTRL_CODE_JPN)
+ {
+ StripExtCtrlCodes(recordMixingMail->monName);
+ nicknameLanguage = LANGUAGE_JAPANESE;
+ }
+ else
+ {
+ nicknameLanguage = language;
+ }
+ if (version == VERSION_RUBY || version == VERSION_SAPPHIRE)
+ {
+ recordMixingMail->language_maybe = otNameLanguage;
+ recordMixingMail->unknown = nicknameLanguage;
+ }
+ }
+ else if (language == LANGUAGE_JAPANESE)
+ {
+ if (IsStringJapanese(recordMixingMail->OT_name))
+ {
+ recordMixingMail->language_maybe = LANGUAGE_JAPANESE;
+ }
+ else
+ {
+ recordMixingMail->language_maybe = GAME_LANGUAGE;
+ }
+ if (IsStringJapanese(recordMixingMail->monName))
+ {
+ recordMixingMail->unknown = LANGUAGE_JAPANESE;
+ }
+ else
+ {
+ recordMixingMail->unknown = GAME_LANGUAGE;
+ }
+ }
+ }
+ }
+ }
+ sp34 = 0;
+ for (i = 0; i < linkPlayerCount; i ++)
+ {
+ _src = (void *)src + i * recordSize; // r7
+ if (_src->unk_70 != 0)
+ {
+ for (j = 0; j < _src->unk_70; j ++)
+ {
+ if (_src->unk_74[j] == 0)
+ {
+ sp1c[i][j] = 1;
+ }
+ }
+ }
+ }
+ i = 0;
+ for (j = 0; j < linkPlayerCount; j ++)
+ {
+ _src = (void *)src + j * recordSize;
+ if (sp1c[j][0] == TRUE || sp1c[j][1] == TRUE)
+ {
+ sp34 ++;
+ }
+ if (sp1c[j][0] == TRUE && sp1c[j][1] == FALSE)
+ {
+ sp24[i][0] = j;
+ sp24[i][1] = 0;
+ i ++;
+ }
+ else if (sp1c[j][0] == FALSE && sp1c[j][1] == TRUE)
+ {
+ sp24[i][0] = j;
+ sp24[i][1] = 0;
+ i ++;
+ }
+ else if (sp1c[j][0] == TRUE && sp1c[j][1] == TRUE)
+ {
+ sp24[i][0] = j;
+ dcMail1 = sub_80E7A9C(&_src->unk_00[0]);
+ dcMail2 = sub_80E7A9C(&_src->unk_00[1]);
+ if (!dcMail1 && dcMail2)
+ {
+ sp24[i][1] = 1;
+ }
+ else if ((dcMail1 && dcMail2) || (!dcMail1 && !dcMail2))
+ {
+ sp24[i][1] = Random2() % 2;
+ }
+ else
+ {
+ sp24[i][1] = 0;
+ }
+ i ++;
+ }
+ }
+ for (i = 0; i < 4; i ++)
+ {
+ _src = &src[which * recordSize];
+ sp0c[i] = _src;
+ }
+ r1_80e7b54 = sub_80E7B54() % 3;
+ switch (sp34)
+ {
+ case 2:
+ sub_80E7AA4(src, recordSize, sp24, 0, 1);
+ break;
+ case 3:
+ sub_80E7AA4(src, recordSize, sp24, gUnknown_0858CFB8[r1_80e7b54][0], gUnknown_0858CFB8[r1_80e7b54][1]);
+ break;
+ case 4:
+ sub_80E7AA4(src, recordSize, sp24, gUnknown_0858CFBE[r1_80e7b54][0], gUnknown_0858CFBE[r1_80e7b54][1]);
+ sub_80E7AA4(src, recordSize, sp24, gUnknown_0858CFBE[r1_80e7b54][2], gUnknown_0858CFBE[r1_80e7b54][3]);
+ break;
+ }
+ _src = (void *)src + which * recordSize;
+ memcpy(&gSaveBlock1Ptr->daycare.mons[0].misc.mail, &_src->unk_00[0], sizeof(struct DayCareMail));
+ memcpy(&gSaveBlock1Ptr->daycare.mons[1].misc.mail, &_src->unk_00[1], sizeof(struct DayCareMail));
+ SeedRng(oldSeed);
+}
+#else
+NAKED
+static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t recordSize, u8 which, TVShow *shows)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r10\n"
+ "\tmov r6, r9\n"
+ "\tmov r5, r8\n"
+ "\tpush {r5-r7}\n"
+ "\tsub sp, 0x58\n"
+ "\tstr r0, [sp, 0x2C]\n"
+ "\tstr r1, [sp, 0x30]\n"
+ "\tlsls r2, 24\n"
+ "\tlsrs r2, 24\n"
+ "\tmov r9, r2\n"
+ "\tbl Random2\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tstr r0, [sp, 0x38]\n"
+ "\tldr r0, =gLinkPlayers\n"
+ "\tldrh r0, [r0, 0x4]\n"
+ "\tbl SeedRng2\n"
+ "\tbl GetLinkPlayerCount\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tmovs r0, 0\n"
+ "\tmov r8, r0\n"
+ "\tmov r1, sp\n"
+ "\tadds r1, 0x1C\n"
+ "\tstr r1, [sp, 0x4C]\n"
+ "\tmov r2, sp\n"
+ "\tadds r2, 0x1D\n"
+ "\tstr r2, [sp, 0x50]\n"
+ "\tmov r3, sp\n"
+ "\tadds r3, 0xC\n"
+ "\tstr r3, [sp, 0x48]\n"
+ "\tmovs r7, 0xFF\n"
+ "\tadd r3, sp, 0x8\n"
+ "\tmovs r2, 0\n"
+ "\tadds r6, r1, 0\n"
+ "\tldr r5, [sp, 0x50]\n"
+ "_080E7BB0:\n"
+ "\tmov r1, sp\n"
+ "\tadd r1, r8\n"
+ "\tadds r1, 0x4\n"
+ "\tldrb r0, [r1]\n"
+ "\torrs r0, r7\n"
+ "\tstrb r0, [r1]\n"
+ "\tmov r1, r8\n"
+ "\tadds r0, r3, r1\n"
+ "\tstrb r2, [r0]\n"
+ "\tlsls r1, 1\n"
+ "\tadds r0, r6, r1\n"
+ "\tstrb r2, [r0]\n"
+ "\tadds r1, r5, r1\n"
+ "\tstrb r2, [r1]\n"
+ "\tmov r0, r8\n"
+ "\tadds r0, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tmov r8, r0\n"
+ "\tcmp r0, 0x3\n"
+ "\tbls _080E7BB0\n"
+ "\tbl Link_AnyPartnersPlayingRubyOrSapphire\n"
+ "\tstr r0, [sp, 0x3C]\n"
+ "\tmovs r2, 0\n"
+ "\tmov r8, r2\n"
+ "\tlsls r4, 16\n"
+ "\tstr r4, [sp, 0x54]\n"
+ "\tldr r0, [sp, 0x30]\n"
+ "\tmov r3, r9\n"
+ "\tmuls r3, r0\n"
+ "\tstr r3, [sp, 0x44]\n"
+ "\tb _080E7D04\n"
+ "\t.pool\n"
+ "_080E7BF8:\n"
+ "\tldr r1, [sp, 0x30]\n"
+ "\tmov r0, r8\n"
+ "\tmuls r0, r1\n"
+ "\tldr r2, [sp, 0x2C]\n"
+ "\tadds r7, r2, r0\n"
+ "\tldr r1, =gLinkPlayers\n"
+ "\tmov r3, r8\n"
+ "\tlsls r0, r3, 3\n"
+ "\tsubs r0, r3\n"
+ "\tlsls r0, 2\n"
+ "\tadds r0, r1\n"
+ "\tldrh r1, [r0, 0x1A]\n"
+ "\tmov r9, r1\n"
+ "\tldrb r0, [r0]\n"
+ "\tstr r0, [sp, 0x40]\n"
+ "\tmovs r6, 0\n"
+ "\tldr r0, [r7, 0x70]\n"
+ "\tcmp r6, r0\n"
+ "\tbcs _080E7CFA\n"
+ "\tmovs r2, 0x10\n"
+ "\tnegs r2, r2\n"
+ "\tmov r10, r2\n"
+ "_080E7C24:\n"
+ "\tlsls r0, r6, 3\n"
+ "\tsubs r0, r6\n"
+ "\tlsls r0, 3\n"
+ "\tadds r5, r7, r0\n"
+ "\tldrh r0, [r5, 0x20]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080E7CEE\n"
+ "\tldr r3, [sp, 0x3C]\n"
+ "\tcmp r3, 0\n"
+ "\tbeq _080E7C9A\n"
+ "\tadds r4, r5, 0\n"
+ "\tadds r4, 0x24\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl StringLength\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tcmp r0, 0x5\n"
+ "\tbhi _080E7C54\n"
+ "\tmovs r4, 0x1\n"
+ "\tb _080E7C5C\n"
+ "\t.pool\n"
+ "_080E7C54:\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl StripExtCtrlCodes\n"
+ "\tmov r4, r9\n"
+ "_080E7C5C:\n"
+ "\tldrh r1, [r5, 0x2C]\n"
+ "\tldr r0, =0x000015fc\n"
+ "\tcmp r1, r0\n"
+ "\tbne _080E7C74\n"
+ "\tadds r0, r5, 0\n"
+ "\tadds r0, 0x2C\n"
+ "\tbl StripExtCtrlCodes\n"
+ "\tmovs r1, 0x1\n"
+ "\tb _080E7C76\n"
+ "\t.pool\n"
+ "_080E7C74:\n"
+ "\tmov r1, r9\n"
+ "_080E7C76:\n"
+ "\tldr r0, [sp, 0x40]\n"
+ "\tsubs r0, 0x1\n"
+ "\tcmp r0, 0x1\n"
+ "\tbhi _080E7CEE\n"
+ "\tadds r2, r5, 0\n"
+ "\tadds r2, 0x37\n"
+ "\tmovs r0, 0xF\n"
+ "\tands r4, r0\n"
+ "\tldrb r0, [r2]\n"
+ "\tmov r3, r10\n"
+ "\tands r0, r3\n"
+ "\torrs r0, r4\n"
+ "\tlsls r1, 4\n"
+ "\tmovs r3, 0xF\n"
+ "\tands r0, r3\n"
+ "\torrs r0, r1\n"
+ "\tstrb r0, [r2]\n"
+ "\tb _080E7CEE\n"
+ "_080E7C9A:\n"
+ "\tmov r0, r9\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _080E7CEE\n"
+ "\tadds r0, r5, 0\n"
+ "\tadds r0, 0x24\n"
+ "\tbl IsStringJapanese\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080E7CBA\n"
+ "\tadds r0, r5, 0\n"
+ "\tadds r0, 0x37\n"
+ "\tldrb r1, [r0]\n"
+ "\tmov r2, r10\n"
+ "\tands r1, r2\n"
+ "\tmovs r2, 0x1\n"
+ "\tb _080E7CC6\n"
+ "_080E7CBA:\n"
+ "\tadds r0, r5, 0\n"
+ "\tadds r0, 0x37\n"
+ "\tldrb r1, [r0]\n"
+ "\tmov r3, r10\n"
+ "\tands r1, r3\n"
+ "\tmovs r2, 0x2\n"
+ "_080E7CC6:\n"
+ "\torrs r1, r2\n"
+ "\tstrb r1, [r0]\n"
+ "\tadds r4, r0, 0\n"
+ "\tadds r0, r5, 0\n"
+ "\tadds r0, 0x2C\n"
+ "\tbl IsStringJapanese\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080E7CE2\n"
+ "\tldrb r0, [r4]\n"
+ "\tmovs r1, 0xF\n"
+ "\tands r1, r0\n"
+ "\tmovs r0, 0x10\n"
+ "\tb _080E7CEA\n"
+ "_080E7CE2:\n"
+ "\tldrb r0, [r4]\n"
+ "\tmovs r1, 0xF\n"
+ "\tands r1, r0\n"
+ "\tmovs r0, 0x20\n"
+ "_080E7CEA:\n"
+ "\torrs r1, r0\n"
+ "\tstrb r1, [r4]\n"
+ "_080E7CEE:\n"
+ "\tadds r0, r6, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r6, r0, 16\n"
+ "\tldr r0, [r7, 0x70]\n"
+ "\tcmp r6, r0\n"
+ "\tbcc _080E7C24\n"
+ "_080E7CFA:\n"
+ "\tmov r0, r8\n"
+ "\tadds r0, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tmov r8, r0\n"
+ "_080E7D04:\n"
+ "\tbl GetLinkPlayerCount\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r8, r0\n"
+ "\tbcs _080E7D12\n"
+ "\tb _080E7BF8\n"
+ "_080E7D12:\n"
+ "\tmovs r0, 0\n"
+ "\tstr r0, [sp, 0x34]\n"
+ "\tmov r8, r0\n"
+ "\tldr r1, [sp, 0x54]\n"
+ "\tlsrs r0, r1, 16\n"
+ "\tldr r2, [sp, 0x34]\n"
+ "\tcmp r2, r0\n"
+ "\tbcs _080E7D70\n"
+ "\tadds r5, r0, 0\n"
+ "_080E7D24:\n"
+ "\tldr r3, [sp, 0x30]\n"
+ "\tmov r0, r8\n"
+ "\tmuls r0, r3\n"
+ "\tldr r1, [sp, 0x2C]\n"
+ "\tadds r7, r1, r0\n"
+ "\tldr r0, [r7, 0x70]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080E7D62\n"
+ "\tmovs r6, 0\n"
+ "\tcmp r6, r0\n"
+ "\tbcs _080E7D62\n"
+ "\tadds r3, r7, 0\n"
+ "\tadds r3, 0x74\n"
+ "\tldr r2, [sp, 0x4C]\n"
+ "\tmov r0, r8\n"
+ "\tlsls r1, r0, 1\n"
+ "\tmovs r4, 0x1\n"
+ "_080E7D46:\n"
+ "\tlsls r0, r6, 1\n"
+ "\tadds r0, r3, r0\n"
+ "\tldrh r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080E7D56\n"
+ "\tadds r0, r6, r1\n"
+ "\tadds r0, r2, r0\n"
+ "\tstrb r4, [r0]\n"
+ "_080E7D56:\n"
+ "\tadds r0, r6, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r6, r0, 16\n"
+ "\tldr r0, [r7, 0x70]\n"
+ "\tcmp r6, r0\n"
+ "\tbcc _080E7D46\n"
+ "_080E7D62:\n"
+ "\tmov r0, r8\n"
+ "\tadds r0, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tmov r8, r0\n"
+ "\tcmp r8, r5\n"
+ "\tbcc _080E7D24\n"
+ "_080E7D70:\n"
+ "\tmovs r6, 0\n"
+ "\tmov r8, r6\n"
+ "\tldr r1, [sp, 0x54]\n"
+ "\tcmp r1, 0\n"
+ "\tbeq _080E7E64\n"
+ "\tadd r2, sp, 0x24\n"
+ "\tmov r10, r2\n"
+ "\tmovs r3, 0x25\n"
+ "\tadd r3, sp\n"
+ "\tmov r9, r3\n"
+ "_080E7D84:\n"
+ "\tldr r1, [sp, 0x30]\n"
+ "\tmov r0, r8\n"
+ "\tmuls r0, r1\n"
+ "\tldr r2, [sp, 0x2C]\n"
+ "\tadds r7, r2, r0\n"
+ "\tmov r3, r8\n"
+ "\tlsls r1, r3, 1\n"
+ "\tldr r2, [sp, 0x4C]\n"
+ "\tadds r0, r2, r1\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0x1\n"
+ "\tbeq _080E7DA6\n"
+ "\tldr r3, [sp, 0x50]\n"
+ "\tadds r0, r3, r1\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _080E7DB0\n"
+ "_080E7DA6:\n"
+ "\tldr r0, [sp, 0x34]\n"
+ "\tadds r0, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tstr r0, [sp, 0x34]\n"
+ "_080E7DB0:\n"
+ "\tldr r2, [sp, 0x4C]\n"
+ "\tadds r0, r2, r1\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _080E7DD4\n"
+ "\tldr r3, [sp, 0x50]\n"
+ "\tadds r0, r3, r1\n"
+ "\tldrb r2, [r0]\n"
+ "\tcmp r2, 0\n"
+ "\tbne _080E7DD4\n"
+ "_080E7DC4:\n"
+ "\tlsls r1, r6, 1\n"
+ "\tmov r3, r10\n"
+ "\tadds r0, r3, r1\n"
+ "\tmov r3, r8\n"
+ "\tstrb r3, [r0]\n"
+ "\tadd r1, r9\n"
+ "\tstrb r2, [r1]\n"
+ "\tb _080E7E4E\n"
+ "_080E7DD4:\n"
+ "\tldr r2, [sp, 0x4C]\n"
+ "\tadds r0, r2, r1\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080E7DE8\n"
+ "\tldr r3, [sp, 0x50]\n"
+ "\tadds r0, r3, r1\n"
+ "\tldrb r2, [r0]\n"
+ "\tcmp r2, 0x1\n"
+ "\tbeq _080E7DC4\n"
+ "_080E7DE8:\n"
+ "\tldr r2, [sp, 0x4C]\n"
+ "\tadds r0, r2, r1\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _080E7E54\n"
+ "\tldr r3, [sp, 0x50]\n"
+ "\tadds r0, r3, r1\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _080E7E54\n"
+ "\tlsls r5, r6, 1\n"
+ "\tmov r1, r10\n"
+ "\tadds r0, r1, r5\n"
+ "\tmov r2, r8\n"
+ "\tstrb r2, [r0]\n"
+ "\tadds r0, r7, 0\n"
+ "\tbl sub_80E7A9C\n"
+ "\tadds r4, r0, 0\n"
+ "\tlsls r4, 24\n"
+ "\tlsrs r4, 24\n"
+ "\tadds r0, r7, 0\n"
+ "\tadds r0, 0x38\n"
+ "\tbl sub_80E7A9C\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r1, r0, 24\n"
+ "\tcmp r4, 0\n"
+ "\tbne _080E7E30\n"
+ "\tcmp r1, 0\n"
+ "\tbeq _080E7E34\n"
+ "\tmov r3, r9\n"
+ "\tadds r1, r3, r5\n"
+ "\tmovs r0, 0x1\n"
+ "\tstrb r0, [r1]\n"
+ "\tb _080E7E4E\n"
+ "_080E7E30:\n"
+ "\tcmp r1, 0\n"
+ "\tbeq _080E7E48\n"
+ "_080E7E34:\n"
+ "\tbl Random2\n"
+ "\tmov r1, r9\n"
+ "\tadds r2, r1, r5\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tmovs r1, 0x1\n"
+ "\tands r0, r1\n"
+ "\tstrb r0, [r2]\n"
+ "\tb _080E7E4E\n"
+ "_080E7E48:\n"
+ "\tmov r2, r9\n"
+ "\tadds r0, r2, r5\n"
+ "\tstrb r1, [r0]\n"
+ "_080E7E4E:\n"
+ "\tadds r0, r6, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r6, r0, 16\n"
+ "_080E7E54:\n"
+ "\tmov r0, r8\n"
+ "\tadds r0, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r3, r0, 16\n"
+ "\tmov r8, r3\n"
+ "\tldr r1, [sp, 0x54]\n"
+ "\tcmp r0, r1\n"
+ "\tbcc _080E7D84\n"
+ "_080E7E64:\n"
+ "\tmovs r2, 0\n"
+ "\tmov r8, r2\n"
+ "\tldr r3, [sp, 0x44]\n"
+ "\tlsls r0, r3, 4\n"
+ "\tsubs r0, r3\n"
+ "\tlsls r0, 3\n"
+ "\tldr r1, [sp, 0x2C]\n"
+ "\tadds r7, r1, r0\n"
+ "\tldr r1, [sp, 0x48]\n"
+ "_080E7E76:\n"
+ "\tmov r2, r8\n"
+ "\tlsls r0, r2, 2\n"
+ "\tadds r0, r1, r0\n"
+ "\tstr r7, [r0]\n"
+ "\tmov r0, r8\n"
+ "\tadds r0, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tmov r8, r0\n"
+ "\tcmp r0, 0x3\n"
+ "\tbls _080E7E76\n"
+ "\tbl sub_80E7B54\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tmovs r1, 0x3\n"
+ "\tbl __umodsi3\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r1, r0, 24\n"
+ "\tldr r3, [sp, 0x34]\n"
+ "\tcmp r3, 0x3\n"
+ "\tbeq _080E7EC8\n"
+ "\tcmp r3, 0x3\n"
+ "\tbgt _080E7EAE\n"
+ "\tcmp r3, 0x2\n"
+ "\tbeq _080E7EB6\n"
+ "\tb _080E7F1C\n"
+ "_080E7EAE:\n"
+ "\tldr r0, [sp, 0x34]\n"
+ "\tcmp r0, 0x4\n"
+ "\tbeq _080E7EE8\n"
+ "\tb _080E7F1C\n"
+ "_080E7EB6:\n"
+ "\tadd r2, sp, 0x24\n"
+ "\tmovs r0, 0x1\n"
+ "\tstr r0, [sp]\n"
+ "\tldr r0, [sp, 0x2C]\n"
+ "\tldr r1, [sp, 0x30]\n"
+ "\tmovs r3, 0\n"
+ "\tbl sub_80E7AA4\n"
+ "\tb _080E7F1C\n"
+ "_080E7EC8:\n"
+ "\tldr r0, =gUnknown_0858CFB8\n"
+ "\tlsls r1, 1\n"
+ "\tadds r2, r1, r0\n"
+ "\tldrb r3, [r2]\n"
+ "\tadds r0, 0x1\n"
+ "\tadds r1, r0\n"
+ "\tldrb r0, [r1]\n"
+ "\tadd r2, sp, 0x24\n"
+ "\tstr r0, [sp]\n"
+ "\tldr r0, [sp, 0x2C]\n"
+ "\tldr r1, [sp, 0x30]\n"
+ "\tbl sub_80E7AA4\n"
+ "\tb _080E7F1C\n"
+ "\t.pool\n"
+ "_080E7EE8:\n"
+ "\tadd r6, sp, 0x24\n"
+ "\tldr r4, =gUnknown_0858CFBE\n"
+ "\tlsls r5, r1, 2\n"
+ "\tadds r0, r5, r4\n"
+ "\tldrb r3, [r0]\n"
+ "\tadds r0, r4, 0x1\n"
+ "\tadds r0, r5, r0\n"
+ "\tldrb r0, [r0]\n"
+ "\tstr r0, [sp]\n"
+ "\tldr r0, [sp, 0x2C]\n"
+ "\tldr r1, [sp, 0x30]\n"
+ "\tadds r2, r6, 0\n"
+ "\tbl sub_80E7AA4\n"
+ "\tadds r0, r4, 0x2\n"
+ "\tadds r0, r5, r0\n"
+ "\tldrb r3, [r0]\n"
+ "\tadds r4, 0x3\n"
+ "\tadds r5, r4\n"
+ "\tldrb r0, [r5]\n"
+ "\tstr r0, [sp]\n"
+ "\tldr r0, [sp, 0x2C]\n"
+ "\tldr r1, [sp, 0x30]\n"
+ "\tadds r2, r6, 0\n"
+ "\tbl sub_80E7AA4\n"
+ "_080E7F1C:\n"
+ "\tldr r1, [sp, 0x2C]\n"
+ "\tldr r2, [sp, 0x44]\n"
+ "\tadds r7, r1, r2\n"
+ "\tldr r4, =gSaveBlock1Ptr\n"
+ "\tldr r0, [r4]\n"
+ "\tmovs r3, 0xC2\n"
+ "\tlsls r3, 6\n"
+ "\tadds r0, r3\n"
+ "\tadds r1, r7, 0\n"
+ "\tmovs r2, 0x38\n"
+ "\tbl memcpy\n"
+ "\tldr r0, [r4]\n"
+ "\tldr r1, =0x0000310c\n"
+ "\tadds r0, r1\n"
+ "\tadds r1, r7, 0\n"
+ "\tadds r1, 0x38\n"
+ "\tmovs r2, 0x38\n"
+ "\tbl memcpy\n"
+ "\tldr r0, [sp, 0x38]\n"
+ "\tbl SeedRng\n"
+ "\tadd sp, 0x58\n"
+ "\tpop {r3-r5}\n"
+ "\tmov r8, r3\n"
+ "\tmov r9, r4\n"
+ "\tmov r10, r5\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.pool");
+}
+#endif // NONMATCHING
+
+static void sub_80E7F68(u16 *item, u8 which)
+{
+ if (which != 0 && *item != ITEM_NONE && GetPocketByItemId(*item) == POCKET_KEY_ITEMS)
+ {
+ if (!CheckBagHasItem(*item, 1) && !CheckPCHasItem(*item, 1) && AddBagItem(*item, 1))
+ {
+ VarSet(VAR_TEMP_1, *item);
+ StringCopy(gStringVar1, gLinkPlayers[0].name);
+ if (*item == ITEM_EON_TICKET)
+ FlagSet(FLAG_SYS_HAS_EON_TICKET);
+ }
+ else
+ {
+ VarSet(VAR_TEMP_1, ITEM_NONE);
+ }
+ }
+}
+
+static void sub_80E7FF8(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ task->data[0]++;
+ break;
+ case 1:
+ if (Link_AnyPartnersPlayingRubyOrSapphire())
+ task->data[0]++;
+ else
+ task->data[0] = 6;
+ break;
+ case 2:
+ sub_8076D5C();
+ sub_8153430();
+ task->data[0] ++;
+ break;
+ case 3:
+ if (sub_8153474())
+ {
+ sav2_gender2_inplace_and_xFE();
+ task->data[0] = 4;
+ task->data[1] = 0;
+ }
+ break;
+ case 4:
+ if (++task->data[1] > 10)
+ {
+ sub_800AC34();
+ task->data[0] ++;
+ }
+ break;
+ case 5:
+ if (gReceivedRemoteLinkPlayers == 0)
+ DestroyTask(taskId);
+ break;
+ case 6:
+ if (!sub_801048C(0))
+ {
+ CreateTask(sub_8153688, 5);
+ task->data[0] ++;
+ }
+ break;
+ case 7:
+ if (!FuncIsActiveTask(sub_8153688))
+ {
+ if (gWirelessCommType)
+ {
+ sub_801048C(1);
+ task->data[0] = 8;
+ }
+ else
+ {
+ task->data[0] = 4;
+ }
+ }
+ break;
+ case 8:
+ sub_800ADF8();
+ task->data[0] ++;
+ break;
+ case 9:
+ if (sub_800A520())
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+// New Emerald functions
+
+static void sub_80E8110(struct UnkRecordMixingStruct *dst, struct UnkRecordMixingStruct *src)
+{
+ s32 i, id;
+ s32 var_2C, var_28, var_24, r8;
+
+ dst[0].field_38[0] = 0xFF;
+ dst[1].field_38[0] = 0xFF;
+
+ dst[0] = src[0];
+
+ var_28 = 0;
+ var_24 = 0;
+ var_2C = 0;
+ r8 = 0;
+ for (i = 0; i < 2; i++)
+ {
+ id = ((i + gSaveBlock2Ptr->field_B2_1) % 3) + 1;
+ if (src[id].field_38[0] != 0xFF)
+ {
+ if (ReadUnalignedWord(src[id].playerId) != ReadUnalignedWord(gSaveBlock2Ptr->playerTrainerId))
+ {
+ r8++;
+ var_2C = id;
+ }
+ if (ReadUnalignedWord(src[id].playerId) == ReadUnalignedWord(gSaveBlock2Ptr->playerTrainerId))
+ {
+ var_24++;
+ var_28 = id;
+ }
+ }
+ }
+
+ if (r8 == 0 && var_24 != 0)
+ {
+ r8 = var_24;
+ var_2C = var_28;
+ }
+
+ switch (r8)
+ {
+ case 1:
+ dst[1] = src[var_2C];
+ break;
+ case 2:
+ if (Random2() > 0x3333)
+ {
+ dst[1] = src[gSaveBlock2Ptr->field_B2_1 + 1];
+ }
+ else
+ {
+ dst[1] = src[((gSaveBlock2Ptr->field_B2_1 + 1) % 3 + 1)];
+ }
+ break;
+ }
+}
+
+void sub_80E8260(struct UnkRecordMixingStruct2 *dst)
+{
+ s32 i, j;
+
+ for (i = 0; i < 9; i++)
+ {
+ for (j = 0; j < 2; j++)
+ {
+ CopyUnalignedWord(dst->field_0[i][j].playerId, gSaveBlock2Ptr->playerTrainerId);
+ dst->field_0[i][j].language = GAME_LANGUAGE;
+ StringCopy(dst->field_0[i][j].playerName, gSaveBlock2Ptr->playerName);
+ }
+ }
+
+ for (j = 0; j < 2; j++)
+ {
+ dst->field_120[j].language = GAME_LANGUAGE;
+ CopyUnalignedWord(dst->field_120[j].playerId1, gSaveBlock2Ptr->playerTrainerId);
+ CopyUnalignedWord(dst->field_120[j].playerId2, gSaveBlock2Ptr->field_EF1[j]);
+ StringCopy(dst->field_120[j].playerName1, gSaveBlock2Ptr->playerName);
+ StringCopy(dst->field_120[j].playerName2, gSaveBlock2Ptr->field_EE1[j]);
+ }
+
+ for (i = 0; i < 2; i++)
+ {
+ dst->field_0[0][i].field_4 = gSaveBlock2Ptr->field_CF0[i];
+ dst->field_0[1][i].field_4 = gSaveBlock2Ptr->field_CF4[i];
+ dst->field_0[2][i].field_4 = gSaveBlock2Ptr->field_CF8[i];
+ dst->field_0[3][i].field_4 = gSaveBlock2Ptr->field_D14[i];
+ dst->field_0[4][i].field_4 = gSaveBlock2Ptr->field_DD0[i];
+ dst->field_0[5][i].field_4 = gSaveBlock2Ptr->field_DDE[i];
+ dst->field_0[6][i].field_4 = gSaveBlock2Ptr->field_DEA[i];
+ dst->field_0[7][i].field_4 = gSaveBlock2Ptr->field_E08[i];
+ dst->field_0[8][i].field_4 = gSaveBlock2Ptr->field_E1E[i];
+
+ dst->field_120[i].field_8 = gSaveBlock2Ptr->field_CFC[i];
+ }
+}
+
+static bool32 sub_80E841C(struct UnkRecordMixingStruct *arg0, struct UnkRecordMixingStruct *arg1)
+{
+ s32 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (ReadUnalignedWord(arg0->playerId) == ReadUnalignedWord(arg1[i].playerId)
+ && arg0->field_0[2] == arg1[i].field_0[2])
+ {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static void sub_80E8468(struct UnkRecordMixingStruct *arg0, size_t arg1, u32 arg2)
+{
+ s32 i, r7, r8;
+ struct UnkRecordMixingStruct *structPtr;
+ u32 mixIndices[4];
+ u32 structId;
+
+ ShufflePlayerIndices(mixIndices);
+ structPtr = (void*)(arg0) + (arg1 * mixIndices[arg2]);
+ r7 = 0;
+ r8 = 0;
+ for (i = 0; i < 2; i++)
+ {
+ if (structPtr[i].field_38[0] != 0xFF && !sub_80E841C(&structPtr[i], gSaveBlock2Ptr->field_DC))
+ {
+ r7++;
+ r8 = i;
+ }
+ }
+
+ switch (r7)
+ {
+ case 1:
+ structId = gSaveBlock2Ptr->field_B2_1 + 1;
+ gSaveBlock2Ptr->field_DC[structId] = structPtr[r8];
+ gSaveBlock2Ptr->field_B2_1 = (gSaveBlock2Ptr->field_B2_1 + 1) % 3;
+ break;
+ case 2:
+ for (i = 0; i < 2; i++)
+ {
+ structId = ((i ^ 1) + gSaveBlock2Ptr->field_B2_1) % 3 + 1;
+ gSaveBlock2Ptr->field_DC[structId] = structPtr[i];
+ }
+ gSaveBlock2Ptr->field_B2_1 = (gSaveBlock2Ptr->field_B2_1 + 2) % 3;
+ break;
+ }
+}
+
+NAKED
+static void sub_80E8578(struct UnknownRecMixingStruct3 *arg0, struct UnkRecordMixingStruct2 *arg1, size_t arg2, u32 arg3, u32 arg4)
+{
+ 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, 0x54\n\
+ str r0, [sp]\n\
+ ldr r0, [sp, 0x74]\n\
+ movs r4, 0\n\
+ mov r8, r4\n\
+ movs r5, 0\n\
+ str r5, [sp, 0x4]\n\
+ ldr r4, =gUnknown_03001168\n\
+ b _080E85A0\n\
+ .pool\n\
+_080E8598:\n\
+ adds r1, r2\n\
+ ldr r6, [sp, 0x4]\n\
+ adds r6, 0x1\n\
+ str r6, [sp, 0x4]\n\
+_080E85A0:\n\
+ ldr r5, [sp, 0x4]\n\
+ cmp r5, r0\n\
+ bge _080E85B6\n\
+ cmp r5, r3\n\
+ beq _080E85B0\n\
+ stm r4!, {r1}\n\
+ movs r6, 0x1\n\
+ add r8, r6\n\
+_080E85B0:\n\
+ mov r5, r8\n\
+ cmp r5, 0x3\n\
+ bne _080E8598\n\
+_080E85B6:\n\
+ movs r6, 0\n\
+ str r6, [sp, 0x4]\n\
+ subs r0, 0x1\n\
+ str r0, [sp, 0x24]\n\
+_080E85BE:\n\
+ movs r0, 0\n\
+ str r0, [sp, 0x8]\n\
+ ldr r1, [sp, 0x4]\n\
+ adds r1, 0x1\n\
+ str r1, [sp, 0x28]\n\
+ ldr r2, [sp, 0x4]\n\
+ lsls r2, 1\n\
+ str r2, [sp, 0x34]\n\
+ ldr r3, [sp, 0x4]\n\
+ adds r3, r2, r3\n\
+ str r3, [sp, 0x10]\n\
+ movs r4, 0\n\
+ str r4, [sp, 0x44]\n\
+ movs r5, 0\n\
+ str r5, [sp, 0x48]\n\
+_080E85DC:\n\
+ movs r6, 0\n\
+ mov r8, r6\n\
+ ldr r0, =gSaveBlock2Ptr\n\
+ ldr r1, [r0]\n\
+ ldr r2, [sp, 0x10]\n\
+ lsls r0, r2, 5\n\
+ ldr r3, [sp, 0x48]\n\
+ adds r0, r3, r0\n\
+ adds r3, r0, r1\n\
+ lsls r0, r2, 6\n\
+ ldr r4, [sp, 0x44]\n\
+ adds r0, r4, r0\n\
+ ldr r5, [sp]\n\
+ adds r2, r0, r5\n\
+_080E85F8:\n\
+ adds r0, r2, 0\n\
+ movs r6, 0x87\n\
+ lsls r6, 2\n\
+ adds r1, r3, r6\n\
+ ldm r1!, {r4-r6}\n\
+ stm r0!, {r4-r6}\n\
+ ldr r1, [r1]\n\
+ str r1, [r0]\n\
+ adds r3, 0x10\n\
+ adds r2, 0x10\n\
+ movs r0, 0x1\n\
+ add r8, r0\n\
+ mov r1, r8\n\
+ cmp r1, 0x2\n\
+ ble _080E85F8\n\
+ movs r2, 0\n\
+ mov r8, r2\n\
+ ldr r3, [sp, 0x24]\n\
+ cmp r8, r3\n\
+ bge _080E86DC\n\
+ ldr r4, [sp, 0x4]\n\
+ lsls r4, 5\n\
+ mov r9, r4\n\
+ ldr r5, [sp, 0x8]\n\
+ lsls r7, r5, 4\n\
+ ldr r6, [sp, 0x34]\n\
+ ldr r1, [sp, 0x4]\n\
+ adds r0, r6, r1\n\
+ lsls r0, 6\n\
+ str r0, [sp, 0x14]\n\
+ ldr r2, [sp]\n\
+ adds r0, r2, r0\n\
+ ldr r3, [sp, 0x44]\n\
+ str r3, [sp, 0x18]\n\
+ adds r0, r3\n\
+ str r0, [sp, 0x1C]\n\
+ ldr r4, [sp, 0x14]\n\
+ adds r0, r3, r4\n\
+ adds r0, r2\n\
+ adds r0, 0x30\n\
+ mov r10, r0\n\
+_080E864A:\n\
+ movs r5, 0\n\
+ str r5, [sp, 0xC]\n\
+ movs r3, 0\n\
+ mov r6, r8\n\
+ lsls r6, 2\n\
+ str r6, [sp, 0x38]\n\
+ ldr r1, [sp, 0x18]\n\
+ ldr r2, [sp, 0x14]\n\
+ adds r0, r1, r2\n\
+ ldr r4, [sp]\n\
+ adds r5, r0, r4\n\
+ ldr r0, =gUnknown_03001168\n\
+ adds r0, r6, r0\n\
+ str r0, [sp, 0x50]\n\
+_080E8666:\n\
+ lsls r0, r3, 4\n\
+ ldr r6, [sp, 0x1C]\n\
+ adds r0, r6, r0\n\
+ str r3, [sp, 0x4C]\n\
+ bl ReadUnalignedWord\n\
+ adds r4, r0, 0\n\
+ ldr r1, [sp, 0x50]\n\
+ ldr r0, [r1]\n\
+ add r0, r9\n\
+ adds r0, r7\n\
+ bl ReadUnalignedWord\n\
+ ldr r3, [sp, 0x4C]\n\
+ cmp r4, r0\n\
+ bne _080E86A8\n\
+ ldr r2, [sp, 0xC]\n\
+ adds r2, 0x1\n\
+ str r2, [sp, 0xC]\n\
+ ldr r4, [sp, 0x50]\n\
+ ldr r0, [r4]\n\
+ mov r6, r9\n\
+ adds r1, r7, r6\n\
+ adds r1, r0, r1\n\
+ ldrh r0, [r5, 0x4]\n\
+ ldrh r2, [r1, 0x4]\n\
+ cmp r0, r2\n\
+ bcs _080E86A8\n\
+ adds r0, r5, 0\n\
+ ldm r1!, {r2,r4,r6}\n\
+ stm r0!, {r2,r4,r6}\n\
+ ldr r1, [r1]\n\
+ str r1, [r0]\n\
+_080E86A8:\n\
+ adds r5, 0x10\n\
+ adds r3, 0x1\n\
+ cmp r3, 0x2\n\
+ ble _080E8666\n\
+ ldr r3, [sp, 0xC]\n\
+ cmp r3, 0\n\
+ bne _080E86CE\n\
+ ldr r0, =gUnknown_03001168\n\
+ ldr r4, [sp, 0x38]\n\
+ adds r0, r4, r0\n\
+ ldr r0, [r0]\n\
+ mov r5, r9\n\
+ adds r2, r7, r5\n\
+ mov r1, r10\n\
+ adds r0, r2\n\
+ ldm r0!, {r2,r3,r6}\n\
+ stm r1!, {r2,r3,r6}\n\
+ ldr r0, [r0]\n\
+ str r0, [r1]\n\
+_080E86CE:\n\
+ movs r4, 0x10\n\
+ add r10, r4\n\
+ movs r5, 0x1\n\
+ add r8, r5\n\
+ ldr r6, [sp, 0x24]\n\
+ cmp r8, r6\n\
+ blt _080E864A\n\
+_080E86DC:\n\
+ ldr r0, [sp, 0x44]\n\
+ adds r0, 0x60\n\
+ str r0, [sp, 0x44]\n\
+ ldr r1, [sp, 0x48]\n\
+ adds r1, 0x30\n\
+ str r1, [sp, 0x48]\n\
+ ldr r2, [sp, 0x8]\n\
+ adds r2, 0x1\n\
+ str r2, [sp, 0x8]\n\
+ cmp r2, 0x1\n\
+ bgt _080E86F4\n\
+ b _080E85DC\n\
+_080E86F4:\n\
+ ldr r3, [sp, 0x28]\n\
+ str r3, [sp, 0x4]\n\
+ cmp r3, 0x8\n\
+ bgt _080E86FE\n\
+ b _080E85BE\n\
+_080E86FE:\n\
+ movs r4, 0\n\
+ str r4, [sp, 0x8]\n\
+_080E8702:\n\
+ ldr r5, [sp, 0x8]\n\
+ adds r5, 0x1\n\
+ str r5, [sp, 0x2C]\n\
+ ldr r0, =gSaveBlock2Ptr\n\
+ ldr r1, [r0]\n\
+ movs r0, 0x54\n\
+ ldr r6, [sp, 0x8]\n\
+ muls r0, r6\n\
+ adds r3, r0, r1\n\
+ movs r0, 0xA8\n\
+ muls r0, r6\n\
+ ldr r1, [sp]\n\
+ adds r2, r0, r1\n\
+ movs r4, 0x2\n\
+ mov r8, r4\n\
+_080E8720:\n\
+ movs r5, 0xD8\n\
+ lsls r5, 3\n\
+ adds r0, r2, r5\n\
+ ldr r6, =0x0000057c\n\
+ adds r1, r3, r6\n\
+ ldm r1!, {r4-r6}\n\
+ stm r0!, {r4-r6}\n\
+ ldm r1!, {r4-r6}\n\
+ stm r0!, {r4-r6}\n\
+ ldr r1, [r1]\n\
+ str r1, [r0]\n\
+ adds r3, 0x1C\n\
+ adds r2, 0x1C\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ add r8, r0\n\
+ mov r1, r8\n\
+ cmp r1, 0\n\
+ bge _080E8720\n\
+ movs r2, 0\n\
+ mov r8, r2\n\
+ ldr r3, [sp, 0x24]\n\
+ cmp r8, r3\n\
+ blt _080E8752\n\
+ b _080E885A\n\
+_080E8752:\n\
+ ldr r4, [sp, 0x8]\n\
+ lsls r1, r4, 3\n\
+ movs r0, 0xA8\n\
+ adds r5, r4, 0\n\
+ muls r5, r0\n\
+ str r5, [sp, 0x20]\n\
+ str r5, [sp, 0x3C]\n\
+ subs r1, r4\n\
+ lsls r1, 2\n\
+ mov r10, r1\n\
+_080E8766:\n\
+ movs r6, 0\n\
+ str r6, [sp, 0xC]\n\
+ mov r0, r8\n\
+ lsls r0, 2\n\
+ str r0, [sp, 0x38]\n\
+ mov r1, r8\n\
+ adds r1, 0x1\n\
+ str r1, [sp, 0x30]\n\
+ ldr r0, =gUnknown_03001168\n\
+ ldr r2, [sp, 0x38]\n\
+ adds r2, r0\n\
+ mov r9, r2\n\
+ ldr r3, [sp]\n\
+ movs r4, 0xD8\n\
+ lsls r4, 3\n\
+ adds r0, r3, r4\n\
+ ldr r5, [sp, 0x3C]\n\
+ adds r7, r5, r0\n\
+ str r6, [sp, 0x40]\n\
+ movs r3, 0x2\n\
+_080E878E:\n\
+ ldr r1, [sp, 0x20]\n\
+ movs r2, 0xD8\n\
+ lsls r2, 3\n\
+ adds r0, r1, r2\n\
+ ldr r4, [sp]\n\
+ adds r0, r4, r0\n\
+ ldr r6, [sp, 0x40]\n\
+ adds r5, r0, r6\n\
+ adds r0, r5, 0\n\
+ str r3, [sp, 0x4C]\n\
+ bl ReadUnalignedWord\n\
+ adds r4, r0, 0\n\
+ movs r6, 0x90\n\
+ lsls r6, 1\n\
+ add r6, r10\n\
+ mov r1, r9\n\
+ ldr r0, [r1]\n\
+ adds r0, r6\n\
+ bl ReadUnalignedWord\n\
+ ldr r3, [sp, 0x4C]\n\
+ cmp r4, r0\n\
+ bne _080E8808\n\
+ adds r0, r5, 0x4\n\
+ bl ReadUnalignedWord\n\
+ adds r4, r0, 0\n\
+ mov r2, r9\n\
+ ldr r0, [r2]\n\
+ adds r0, r6\n\
+ adds r0, 0x4\n\
+ bl ReadUnalignedWord\n\
+ ldr r3, [sp, 0x4C]\n\
+ cmp r4, r0\n\
+ bne _080E8808\n\
+ ldr r4, [sp, 0xC]\n\
+ adds r4, 0x1\n\
+ str r4, [sp, 0xC]\n\
+ mov r5, r9\n\
+ ldr r0, [r5]\n\
+ mov r6, r10\n\
+ adds r2, r0, r6\n\
+ movs r0, 0x94\n\
+ lsls r0, 1\n\
+ adds r1, r2, r0\n\
+ ldrh r0, [r7, 0x8]\n\
+ ldrh r1, [r1]\n\
+ cmp r0, r1\n\
+ bcs _080E8808\n\
+ adds r0, r7, 0\n\
+ movs r4, 0x90\n\
+ lsls r4, 1\n\
+ adds r1, r2, r4\n\
+ ldm r1!, {r2,r5,r6}\n\
+ stm r0!, {r2,r5,r6}\n\
+ ldm r1!, {r4-r6}\n\
+ stm r0!, {r4-r6}\n\
+ ldr r1, [r1]\n\
+ str r1, [r0]\n\
+_080E8808:\n\
+ adds r7, 0x1C\n\
+ ldr r0, [sp, 0x40]\n\
+ adds r0, 0x1C\n\
+ str r0, [sp, 0x40]\n\
+ subs r3, 0x1\n\
+ cmp r3, 0\n\
+ bge _080E878E\n\
+ ldr r1, [sp, 0xC]\n\
+ cmp r1, 0\n\
+ bne _080E8850\n\
+ mov r0, r8\n\
+ adds r0, 0x3\n\
+ lsls r1, r0, 3\n\
+ subs r1, r0\n\
+ lsls r1, 2\n\
+ ldr r2, [sp, 0x20]\n\
+ adds r1, r2\n\
+ ldr r3, [sp]\n\
+ adds r1, r3, r1\n\
+ ldr r0, =gUnknown_03001168\n\
+ ldr r4, [sp, 0x38]\n\
+ adds r0, r4, r0\n\
+ ldr r0, [r0]\n\
+ add r0, r10\n\
+ movs r5, 0xD8\n\
+ lsls r5, 3\n\
+ adds r1, r5\n\
+ movs r6, 0x90\n\
+ lsls r6, 1\n\
+ adds r0, r6\n\
+ ldm r0!, {r2-r4}\n\
+ stm r1!, {r2-r4}\n\
+ ldm r0!, {r2,r5,r6}\n\
+ stm r1!, {r2,r5,r6}\n\
+ ldr r0, [r0]\n\
+ str r0, [r1]\n\
+_080E8850:\n\
+ ldr r3, [sp, 0x30]\n\
+ mov r8, r3\n\
+ ldr r4, [sp, 0x24]\n\
+ cmp r8, r4\n\
+ blt _080E8766\n\
+_080E885A:\n\
+ ldr r5, [sp, 0x2C]\n\
+ str r5, [sp, 0x8]\n\
+ cmp r5, 0x1\n\
+ bgt _080E8864\n\
+ b _080E8702\n\
+_080E8864:\n\
+ add sp, 0x54\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n\
+ ");
+}
+
+static void sub_80E8880(struct UnknownRecMixingStruct *arg0, struct UnknownRecMixingStruct *arg1)
+{
+ s32 i, j;
+
+ for (i = 0; i < 3; i++)
+ {
+ s32 r2 = 0;
+ s32 r4 = -1;
+ for (j = 0; j < 6; j++)
+ {
+ if (arg1[j].field_4 > r2)
+ {
+ r4 = j;
+ r2 = arg1[j].field_4;
+ }
+ }
+
+ if (r4 >= 0)
+ {
+ arg0[i] = arg1[r4];
+ arg1[r4].field_4 = 0;
+ }
+ }
+}
+
+static void sub_80E88CC(struct UnknownRecMixingStruct2 *arg0, struct UnknownRecMixingStruct2 *arg1)
+{
+ s32 i, j;
+
+ for (i = 0; i < 3; i++)
+ {
+ s32 r2 = 0;
+ s32 r4 = -1;
+ for (j = 0; j < 6; j++)
+ {
+ if (arg1[j].field_8 > r2)
+ {
+ r4 = j;
+ r2 = arg1[j].field_8;
+ }
+ }
+
+ if (r4 >= 0)
+ {
+ arg0[i] = arg1[r4];
+ arg1[r4].field_8 = 0;
+ }
+ }
+}
+
+NAKED
+static void sub_80E8924(struct UnknownRecMixingStruct3 *arg0)
+{
+ asm_unified("push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ mov r9, r0\n\
+ movs r0, 0\n\
+ ldr r1, =gSaveBlock2Ptr\n\
+ mov r10, r1\n\
+_080E8936:\n\
+ lsls r1, r0, 1\n\
+ adds r2, r0, 0x1\n\
+ mov r8, r2\n\
+ adds r1, r0\n\
+ lsls r0, r1, 5\n\
+ movs r2, 0x87\n\
+ lsls r2, 2\n\
+ adds r7, r0, r2\n\
+ lsls r1, 6\n\
+ mov r0, r9\n\
+ adds r4, r0, r1\n\
+ movs r6, 0\n\
+ movs r5, 0x1\n\
+_080E8950:\n\
+ mov r1, r10\n\
+ ldr r0, [r1]\n\
+ adds r0, r7\n\
+ adds r0, r6\n\
+ adds r1, r4, 0\n\
+ bl sub_80E8880\n\
+ adds r4, 0x60\n\
+ adds r6, 0x30\n\
+ subs r5, 0x1\n\
+ cmp r5, 0\n\
+ bge _080E8950\n\
+ mov r0, r8\n\
+ cmp r0, 0x8\n\
+ ble _080E8936\n\
+ movs r5, 0\n\
+ ldr r4, =gSaveBlock2Ptr\n\
+_080E8972:\n\
+ movs r0, 0x54\n\
+ adds r1, r5, 0\n\
+ muls r1, r0\n\
+ ldr r2, =0x0000057c\n\
+ adds r1, r2\n\
+ ldr r0, [r4]\n\
+ adds r0, r1\n\
+ movs r1, 0xA8\n\
+ muls r1, r5\n\
+ movs r2, 0xD8\n\
+ lsls r2, 3\n\
+ adds r1, r2\n\
+ add r1, r9\n\
+ bl sub_80E88CC\n\
+ adds r5, 0x1\n\
+ cmp r5, 0x1\n\
+ ble _080E8972\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");
+}
+
+static void sub_80E89AC(struct UnkRecordMixingStruct2 *arg0, size_t arg1, u32 arg2)
+{
+ u8 linkPlayerCount = GetLinkPlayerCount();
+ struct UnknownRecMixingStruct3 *largeStructPtr = AllocZeroed(sizeof(struct UnknownRecMixingStruct3));
+
+ sub_80E8578(largeStructPtr, arg0, arg1, arg2, linkPlayerCount);
+ sub_80E8924(largeStructPtr);
+
+ Free(largeStructPtr);
+}
+
+static void sub_80E89F8(struct RecordMixingDayCareMail *dst)
+{
+ gUnknown_02039F9C.mail[0] = gSaveBlock1Ptr->daycare.mons[0].mail;
+ gUnknown_02039F9C.mail[1] = gSaveBlock1Ptr->daycare.mons[1].mail;
+ InitDaycareMailRecordMixing(&gSaveBlock1Ptr->daycare, &gUnknown_02039F9C);
+ *dst = *gUnknown_03001148;
+}
+
+static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src)
+{
+ s32 i;
+
+ for (i = 0; i < src->numDaycareMons; i++)
+ {
+ struct DayCareMail *mail = &src->mail[i];
+ if (mail->message.itemId != 0)
+ {
+ if (mail->gameLanguage != LANGUAGE_JAPANESE)
+ PadNameString(mail->OT_name, 0xFC);
+
+ ConvertInternationalString(mail->monName, mail->monLanguage);
+ }
+ }
+}
+
+static void SanitizeRubyBattleTowerRecord(struct RSBattleTowerRecord *src)
+{
+
+}
+
+static void SanitizeEmeraldBattleTowerRecord(struct EmeraldBattleTowerRecord *dst)
+{
+ s32 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ struct UnknownPokemonStruct *towerMon = &dst->party[i];
+ if (towerMon->species != 0)
+ StripExtCtrlCodes(towerMon->nickname);
+ }
+
+ CalcEmeraldBattleTowerChecksum(dst);
+}
diff --git a/src/recorded_battle.c b/src/recorded_battle.c
index 4cb2eab49..eb48ab15a 100644
--- a/src/recorded_battle.c
+++ b/src/recorded_battle.c
@@ -475,7 +475,7 @@ u32 MoveRecordedBattleToSaveData(void)
}
#else
-ASM_DIRECT
+NAKED
u32 MoveRecordedBattleToSaveData(void)
{
asm(".syntax unified\n\
diff --git a/src/rom_8034C54.c b/src/rom_8034C54.c
index 4d4492524..42df51295 100644
--- a/src/rom_8034C54.c
+++ b/src/rom_8034C54.c
@@ -1,5 +1,453 @@
#include "global.h"
+#include "rom_8034C54.h"
+#include "malloc.h"
+#include "decompress.h"
+#include "main.h"
-IWRAM_DATA u32 gUnknown_03000DD4;
-IWRAM_DATA u32 gUnknown_03000DD8;
-IWRAM_DATA u32 gUnknown_03000DDC;
+struct UnkStruct2
+{
+ bool8 isActive;
+ u8 firstOamId;
+ u8 field_2;
+ u8 oamCount;
+ u8 palTagIndex;
+ u8 size;
+ u8 shape;
+ u8 priority;
+ u8 xDelta;
+ u8 field_9;
+ u16 tileStart;
+ s16 x;
+ s16 y;
+ u16 tileTag;
+ u16 palTag;
+ u32 field_14;
+ s32 field_18;
+};
+
+struct UnkStruct1
+{
+ u32 count;
+ struct UnkStruct2 *array;
+};
+
+extern struct UnkStruct1 *gUnknown_02022E10;
+
+extern const struct SpriteTemplate gUnknown_0831AC88;
+
+// this file's functions
+static u8 sub_8035518(u8 arg0);;
+static void sub_8034EFC(struct UnkStruct2 *arg0);
+static void sub_80350B0(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2);
+static void sub_8035164(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2);
+static void sub_80352C0(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2);
+static bool32 SharesTileWithAnyActive(u32 id);
+static bool32 SharesPalWithAnyActive(u32 id);
+static void sub_8035648(void);
+
+// iwram
+static IWRAM_DATA s32 gUnknown_03000DD4;
+static IWRAM_DATA s32 gUnknown_03000DD8;
+static IWRAM_DATA s32 gUnknown_03000DDC;
+
+// const rom data
+static const u8 gUnknown_082FF1C8[][4] =
+{
+ {0x01, 0x04, 0x10, 0x40},
+ {0x02, 0x04, 0x08, 0x20},
+ {0x02, 0x04, 0x08, 0x20},
+ {0x00, 0x00, 0x00, 0x00}
+};
+
+// code
+bool32 sub_8034C54(u32 count)
+{
+ u32 i;
+
+ if (gUnknown_02022E10 != NULL)
+ sub_8034CC8();
+
+ gUnknown_02022E10 = Alloc(sizeof(*gUnknown_02022E10));
+ if (gUnknown_02022E10 == NULL)
+ return FALSE;
+
+ gUnknown_02022E10->array = Alloc(sizeof(struct UnkStruct2) * count);
+ if (gUnknown_02022E10->array == NULL)
+ {
+ Free(gUnknown_02022E10);
+ return FALSE;
+ }
+
+ gUnknown_02022E10->count = count;
+ for (i = 0; i < count; i++)
+ {
+ gUnknown_02022E10->array[i].isActive = FALSE;
+ gUnknown_02022E10->array[i].firstOamId |= 0xFF;
+ }
+
+ return TRUE;
+}
+
+void sub_8034CC8(void)
+{
+ if (gUnknown_02022E10 != NULL)
+ {
+ if (gUnknown_02022E10->array != NULL)
+ {
+ u32 i;
+
+ for (i = 0; i < gUnknown_02022E10->count; i++)
+ sub_80353DC(i);
+
+ Free(gUnknown_02022E10->array);
+ }
+
+ FREE_AND_SET_NULL(gUnknown_02022E10);
+ }
+}
+
+bool32 sub_8034D14(u32 id, s32 arg1, const struct UnkStruct3 *arg2)
+{
+ u32 i;
+
+ if (gUnknown_02022E10 == NULL)
+ return FALSE;
+ if (gUnknown_02022E10->array[id].isActive)
+ return FALSE;
+
+ gUnknown_02022E10->array[id].firstOamId = sub_8035518(arg2->field_1);
+ if (gUnknown_02022E10->array[id].firstOamId == 0xFF)
+ return FALSE;
+
+ gUnknown_02022E10->array[id].tileStart = GetSpriteTileStartByTag(arg2->spriteSheet->tag);
+ if (gUnknown_02022E10->array[id].tileStart == 0xFFFF)
+ {
+ if (arg2->spriteSheet->size != 0)
+ {
+ gUnknown_02022E10->array[id].tileStart = LoadSpriteSheet(arg2->spriteSheet);
+ }
+ else
+ {
+ struct CompressedSpriteSheet compSpriteSheet;
+
+ compSpriteSheet = *(struct CompressedSpriteSheet*)(arg2->spriteSheet);
+ compSpriteSheet.size = GetDecompressedDataSize(arg2->spriteSheet->data);
+ gUnknown_02022E10->array[id].tileStart = LoadCompressedObjectPic(&compSpriteSheet);
+ }
+
+ if (gUnknown_02022E10->array[id].tileStart == 0xFFFF)
+ return FALSE;
+ }
+
+ gUnknown_02022E10->array[id].palTagIndex = IndexOfSpritePaletteTag(arg2->spritePal->tag);
+ if (gUnknown_02022E10->array[id].palTagIndex == 0xFF)
+ gUnknown_02022E10->array[id].palTagIndex = LoadSpritePalette(arg2->spritePal);
+
+ gUnknown_02022E10->array[id].field_2 = arg2->field_0_0;
+ gUnknown_02022E10->array[id].oamCount = arg2->field_1;
+ gUnknown_02022E10->array[id].x = arg2->x;
+ gUnknown_02022E10->array[id].y = arg2->y;
+ gUnknown_02022E10->array[id].shape = arg2->shape;
+ gUnknown_02022E10->array[id].size = arg2->size;
+ gUnknown_02022E10->array[id].priority = arg2->priority;
+ gUnknown_02022E10->array[id].xDelta = arg2->xDelta;
+ gUnknown_02022E10->array[id].field_9 = sub_80355F8(arg2->shape, arg2->size);
+ gUnknown_02022E10->array[id].tileTag = arg2->spriteSheet->tag;
+ gUnknown_02022E10->array[id].palTag = arg2->spritePal->tag;
+ gUnknown_02022E10->array[id].isActive = TRUE;
+ gUnknown_02022E10->array[id].field_14 = 1;
+
+ for (i = 1; i < arg2->field_1; i++)
+ gUnknown_02022E10->array[id].field_14 *= 10;
+
+ sub_8034EFC(&gUnknown_02022E10->array[id]);
+ sub_8035044(id, arg1);
+
+ return TRUE;
+}
+
+static void sub_8034EFC(struct UnkStruct2 *arg0)
+{
+ u32 i;
+ u32 oamId = arg0->firstOamId;
+ u32 x = arg0->x;
+ u32 oamCount = arg0->oamCount + 1;
+
+ CpuFill16(0, &gMain.oamBuffer[oamId], sizeof(struct OamData) * oamCount);
+ for (i = 0, oamId = arg0->firstOamId; i < oamCount; i++, oamId++)
+ {
+ gMain.oamBuffer[oamId].y = arg0->y;
+ gMain.oamBuffer[oamId].x = x;
+ gMain.oamBuffer[oamId].shape = arg0->shape;
+ gMain.oamBuffer[oamId].size = arg0->size;
+ gMain.oamBuffer[oamId].tileNum = arg0->tileStart;
+ gMain.oamBuffer[oamId].priority = arg0->priority;
+ gMain.oamBuffer[oamId].paletteNum = arg0->palTagIndex;
+
+ x += arg0->xDelta;
+ }
+
+ oamId--;
+ gMain.oamBuffer[oamId].x = arg0->x - arg0->xDelta;
+ gMain.oamBuffer[oamId].affineMode = 2;
+ gMain.oamBuffer[oamId].tileNum = arg0->tileStart + (arg0->field_9 * 10);
+}
+
+void sub_8035044(u32 id, s32 arg1)
+{
+ bool32 r2;
+
+ if (gUnknown_02022E10 == NULL)
+ return;
+ if (!gUnknown_02022E10->array[id].isActive)
+ return;
+
+ gUnknown_02022E10->array[id].field_18 = arg1;
+ if (arg1 < 0)
+ {
+ r2 = TRUE;
+ arg1 *= -1;
+ }
+ else
+ {
+ r2 = FALSE;
+ }
+
+ switch (gUnknown_02022E10->array[id].field_2)
+ {
+ case 0:
+ default:
+ sub_80350B0(&gUnknown_02022E10->array[id], arg1, r2);
+ break;
+ case 1:
+ sub_8035164(&gUnknown_02022E10->array[id], arg1, r2);
+ break;
+ case 2:
+ sub_80352C0(&gUnknown_02022E10->array[id], arg1, r2);
+ break;
+ }
+}
+
+static void sub_80350B0(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2)
+{
+ u32 r5 = arg0->field_14;
+ u32 oamId = arg0->firstOamId;
+
+ while (r5 != 0)
+ {
+ u32 r4 = arg1 / r5;
+ arg1 -= (r4 * r5);
+ r5 /= 10;
+
+ gMain.oamBuffer[oamId].tileNum = (r4 * arg0->field_9) + arg0->tileStart;
+ oamId++;
+ }
+
+ if (arg2)
+ gMain.oamBuffer[oamId].affineMode = 0;
+ else
+ gMain.oamBuffer[oamId].affineMode = 2;
+}
+
+static void sub_8035164(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2)
+{
+ u32 r5 = arg0->field_14;
+ gUnknown_03000DD4 = arg0->firstOamId;
+ gUnknown_03000DD8 = 0;
+ gUnknown_03000DDC = -1;
+
+ while (r5 != 0)
+ {
+ u32 r4 = arg1 / r5;
+ arg1 -= (r4 * r5);
+ r5 /= 10;
+
+ if (r4 != 0 || gUnknown_03000DDC != -1 || r5 == 0)
+ {
+ gMain.oamBuffer[gUnknown_03000DD4].tileNum = (r4 * arg0->field_9) + arg0->tileStart;
+ gMain.oamBuffer[gUnknown_03000DD4].affineMode = 0;
+
+ if (gUnknown_03000DDC == -1)
+ gUnknown_03000DDC = gUnknown_03000DD8;
+ }
+ else
+ {
+ gMain.oamBuffer[gUnknown_03000DD4].affineMode = 2;
+ }
+
+ gUnknown_03000DD4++;
+ gUnknown_03000DD8++;
+ }
+
+ if (arg2)
+ {
+ gMain.oamBuffer[gUnknown_03000DD4].affineMode = 0;
+ gMain.oamBuffer[gUnknown_03000DD4].x = arg0->x + ((gUnknown_03000DDC - 1) * arg0->xDelta);
+ }
+ else
+ {
+ gMain.oamBuffer[gUnknown_03000DD4].affineMode = 2;
+ }
+}
+
+static void sub_80352C0(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2)
+{
+ u32 r5 = arg0->field_14;
+ u32 oamId = arg0->firstOamId;
+ u32 var_28 = 0;
+ s32 r9 = 0;
+
+ while (r5 != 0)
+ {
+ u32 r4 = arg1 / r5;
+ arg1 -= (r4 * r5);
+ r5 /= 10;
+
+ if (r4 != 0 || var_28 != 0 || r5 == 0)
+ {
+ var_28 = 1;
+ gMain.oamBuffer[oamId].tileNum = (r4 * arg0->field_9) + arg0->tileStart;
+ gMain.oamBuffer[oamId].affineMode = 0;
+
+ oamId++;
+ r9++;
+ }
+ }
+
+ while (r9 < arg0->oamCount)
+ {
+ gMain.oamBuffer[oamId].affineMode = 2;
+ oamId++;
+ r9++;
+ }
+
+ if (arg2)
+ gMain.oamBuffer[oamId].affineMode = 0;
+ else
+ gMain.oamBuffer[oamId].affineMode = 2;
+}
+
+void sub_80353DC(u32 id)
+{
+ s32 oamId, oamCount, i;
+
+ if (gUnknown_02022E10 == NULL)
+ return;
+ if (!gUnknown_02022E10->array[id].isActive)
+ return;
+
+ oamCount = gUnknown_02022E10->array[id].oamCount + 1;
+ oamId = gUnknown_02022E10->array[id].firstOamId;
+
+ for (i = 0; i < oamCount; i++, oamId++)
+ gMain.oamBuffer[oamId].affineMode = 2;
+
+ if (!SharesTileWithAnyActive(id))
+ FreeSpriteTilesByTag(gUnknown_02022E10->array[id].tileTag);
+ if (!SharesPalWithAnyActive(id))
+ FreeSpritePaletteByTag(gUnknown_02022E10->array[id].palTag);
+
+ gUnknown_02022E10->array[id].isActive = FALSE;
+}
+
+void sub_803547C(u32 id, bool32 arg1)
+{
+ s32 oamId, oamCount, i;
+
+ if (gUnknown_02022E10 == NULL)
+ return;
+ if (!gUnknown_02022E10->array[id].isActive)
+ return;
+
+ oamCount = gUnknown_02022E10->array[id].oamCount + 1;
+ oamId = gUnknown_02022E10->array[id].firstOamId;
+ if (arg1)
+ {
+ for (i = 0; i < oamCount; i++, oamId++)
+ gMain.oamBuffer[oamId].affineMode = 2;
+ }
+ else
+ {
+ for (i = 0; i < oamCount; i++, oamId++)
+ gMain.oamBuffer[oamId].affineMode = 0;
+
+ sub_8035044(id, gUnknown_02022E10->array[id].field_18);
+ }
+}
+
+static u8 sub_8035518(u8 arg0)
+{
+ u32 i;
+ u16 oamCount = 64;
+
+ for (i = 0; i < gUnknown_02022E10->count; i++)
+ {
+ if (!gUnknown_02022E10->array[i].isActive)
+ {
+ if (gUnknown_02022E10->array[i].firstOamId != 0xFF && gUnknown_02022E10->array[i].oamCount <= arg0)
+ return gUnknown_02022E10->array[i].firstOamId;
+ }
+ else
+ {
+ oamCount += 1 + gUnknown_02022E10->array[i].oamCount;
+ }
+ }
+
+ if (oamCount + arg0 + 1 > 128)
+ return 0xFF;
+ else
+ return oamCount;
+}
+
+static bool32 SharesTileWithAnyActive(u32 id)
+{
+ u32 i;
+
+ for (i = 0; i < gUnknown_02022E10->count; i++)
+ {
+ if (gUnknown_02022E10->array[i].isActive && i != id
+ && gUnknown_02022E10->array[i].tileTag == gUnknown_02022E10->array[id].tileTag)
+ {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static bool32 SharesPalWithAnyActive(u32 id)
+{
+ u32 i;
+
+ for (i = 0; i < gUnknown_02022E10->count; i++)
+ {
+ if (gUnknown_02022E10->array[i].isActive && i != id
+ && gUnknown_02022E10->array[i].palTag == gUnknown_02022E10->array[id].palTag)
+ {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+u8 sub_80355F8(u32 arg0, u32 arg1)
+{
+ return gUnknown_082FF1C8[arg0][arg1];
+}
+
+static void sub_8035608(void)
+{
+ u8 spriteId;
+
+ ResetSpriteData();
+ spriteId = CreateSprite(&gUnknown_0831AC88, 0, 0, 0);
+ gSprites[spriteId].invisible = 1;
+ SetMainCallback2(sub_8035648);
+}
+
+static void sub_8035648(void)
+{
+ AnimateSprites();
+ BuildOamBuffer();
+}
diff --git a/src/rotating_gate.c b/src/rotating_gate.c
index db5935fc3..b07814f58 100644
--- a/src/rotating_gate.c
+++ b/src/rotating_gate.c
@@ -646,7 +646,7 @@ static void RotatingGate_ResetAllGateOrientations(void)
s32 i;
u8 *ptr;
- ptr = (u8 *)GetVarPointer(VAR_0x4000);
+ ptr = (u8 *)GetVarPointer(VAR_TEMP_0);
for (i = 0; i < gRotatingGate_PuzzleCount; i++)
{
@@ -656,12 +656,12 @@ static void RotatingGate_ResetAllGateOrientations(void)
static s32 RotatingGate_GetGateOrientation(u8 gateId)
{
- return ((u8 *)GetVarPointer(VAR_0x4000))[gateId];
+ return ((u8 *)GetVarPointer(VAR_TEMP_0))[gateId];
}
static void RotatingGate_SetGateOrientation(u8 gateId, u8 orientation)
{
- ((u8 *)GetVarPointer(VAR_0x4000))[gateId] = orientation;
+ ((u8 *)GetVarPointer(VAR_TEMP_0))[gateId] = orientation;
}
static void RotatingGate_RotateInDirection(u8 gateId, u32 rotationDirection)
@@ -925,7 +925,7 @@ static s32 RotatingGate_CanRotate(u8 gateId, s16 rotationDirection)
}
#else
-ASM_DIRECT
+NAKED
static s32 RotatingGate_CanRotate(u8 a, s16 rotationDirection)
{
asm(".syntax unified\n\
diff --git a/src/secret_base.c b/src/secret_base.c
index cd6143ed0..44e980c43 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -10,7 +10,6 @@
#include "list_menu.h"
#include "menu.h"
#include "menu_helpers.h"
-#include "menu_indicators.h"
#include "constants/maps.h"
#include "constants/songs.h"
#include "constants/species.h"
@@ -40,8 +39,6 @@
#include "tv.h"
#include "secret_base.h"
-extern void (*gFieldCallback)(void);
-
extern void mapldr_default(void);
// Static type declarations
@@ -416,7 +413,7 @@ bool8 sub_80E909C(void)
void sub_80E90C8(u8 taskId)
{
FieldObjectTurn(&gMapObjects[gPlayerAvatar.mapObjectId], DIR_NORTH);
- if (sub_80ABDFC() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
{
EnableBothScriptContexts();
DestroyTask(taskId);
@@ -594,7 +591,7 @@ void sub_80E9578(void)
void sub_80E95D4(void)
{
- VarSet(VAR_0x401F, gUnknown_0858D060[sub_80EA20C(VarGet(VAR_0x4054))]);
+ VarSet(VAR_OBJ_GFX_ID_F, gUnknown_0858D060[sub_80EA20C(VarGet(VAR_0x4054))]);
}
void sub_80E9608(struct Coords16 *coords, struct MapEvents *events)
@@ -1676,7 +1673,7 @@ void sub_80EAEF4(struct SecretBaseRecordMixer *mixers)
sub_80EABA4(&mixers[2], 0);
}
-void sub_80EAF80(void *records, size_t recordSize, u8 linkIdx)
+void ReceiveSecretBasesData(void *records, size_t recordSize, u8 linkIdx)
{
struct SecretBaseRecordMixer mixers[3];
u16 i;
diff --git a/src/text.c b/src/text.c
index eacfd2a1f..f7c68f549 100644
--- a/src/text.c
+++ b/src/text.c
@@ -375,7 +375,7 @@ void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor)
*(current++) = (shadowColor << 12) | (shadowColor << 8) | (shadowColor << 4) | shadowColor;
}
#else
-ASM_DIRECT
+NAKED
void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor)
{
asm("push {r4-r7,lr}\n\
@@ -871,7 +871,7 @@ void DecompressGlyphTile(const u16 *src, u16 *dest)
*(dest) = (gFontHalfRowLookupTable[gFontHalfRowOffsets[src[1] & 0xFF]] << 16) | gFontHalfRowLookupTable[gFontHalfRowOffsets[src[1] >> 8]];
}
#else
-ASM_DIRECT
+NAKED
void DecompressGlyphTile(const u16 *src, u16 *dest)
{
asm("push {r4-r7,lr}\n\
@@ -1052,7 +1052,7 @@ u8 GetLastTextColor(u8 colorType)
}
}
-ASM_DIRECT
+NAKED
void CopyGlyphToWindow(struct TextPrinter *x)
{
asm("push {r4-r7,lr}\n\
@@ -2341,7 +2341,7 @@ u16 RenderText(struct TextPrinter *textPrinter)
return 1;
}
#else
-__attribute__((naked))
+NAKED
u16 RenderText(struct TextPrinter *textPrinter)
{
asm("push {r4-r6,lr}\n\
diff --git a/src/time_events.c b/src/time_events.c
index 1f169a5c6..1f46e7705 100644
--- a/src/time_events.c
+++ b/src/time_events.c
@@ -81,7 +81,7 @@ void UpdateShoalTideFlag(void)
1, // 23
};
- if (is_light_level_1_2_3_5_or_6(get_map_light_from_warp0()))
+ if (is_map_type_1_2_3_5_or_6(get_map_light_from_warp0()))
{
RtcCalcLocalTime();
if (tide[gLocalTime.hours])
diff --git a/src/title_screen.c b/src/title_screen.c
index 4e25c8152..15a0482dc 100644
--- a/src/title_screen.c
+++ b/src/title_screen.c
@@ -19,6 +19,7 @@
#include "gpu_regs.h"
#include "trig.h"
#include "constants/rgb.h"
+#include "constants/songs.h"
#define VERSION_BANNER_SHAPE 1
#define VERSION_BANNER_RIGHT_TILEOFFSET 64
@@ -574,7 +575,7 @@ void CB2_InitTitleScreen(void)
| DISPCNT_OBJ_ON
| DISPCNT_WIN0_ON
| DISPCNT_OBJWIN_ON);
- m4aSongNumStart(0x19D);
+ m4aSongNumStart(MUS_TITLE3);
gMain.state = 5;
break;
case 5:
diff --git a/src/tv.c b/src/tv.c
index 8fc95b9b8..e69f6f411 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -3557,7 +3557,7 @@ void GetMomOrDadStringForTVMessage(void)
if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F))
{
StringCopy(gStringVar1, gText_Mom);
- VarSet(VAR_0x4003, 1);
+ VarSet(VAR_TEMP_3, 1);
}
}
else
@@ -3565,21 +3565,21 @@ void GetMomOrDadStringForTVMessage(void)
if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_1F))
{
StringCopy(gStringVar1, gText_Mom);
- VarSet(VAR_0x4003, 1);
+ VarSet(VAR_TEMP_3, 1);
}
}
}
- if (VarGet(VAR_0x4003) == 1)
+ if (VarGet(VAR_TEMP_3) == 1)
{
StringCopy(gStringVar1, gText_Mom);
}
- else if (VarGet(VAR_0x4003) == 2)
+ else if (VarGet(VAR_TEMP_3) == 2)
{
StringCopy(gStringVar1, gText_Dad);
}
- else if (VarGet(VAR_0x4003) > 2)
+ else if (VarGet(VAR_TEMP_3) > 2)
{
- if (VarGet(VAR_0x4003) % 2 == 0)
+ if (VarGet(VAR_TEMP_3) % 2 == 0)
StringCopy(gStringVar1, gText_Mom);
else
StringCopy(gStringVar1, gText_Dad);
@@ -3589,12 +3589,12 @@ void GetMomOrDadStringForTVMessage(void)
if (Random() % 2 != 0)
{
StringCopy(gStringVar1, gText_Mom);
- VarSet(VAR_0x4003, 1);
+ VarSet(VAR_TEMP_3, 1);
}
else
{
StringCopy(gStringVar1, gText_Dad);
- VarSet(VAR_0x4003, 2);
+ VarSet(VAR_TEMP_3, 2);
}
}
}
@@ -3606,7 +3606,7 @@ void sub_80F01B8(void)
FlagSet(0x396);
}
-void sub_80F01E8(void *src, u32 size, u8 masterIdx)
+void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx)
{
u8 i;
u16 version;
@@ -3931,7 +3931,7 @@ static void sub_80F0708(void) // FIXME: register allocation shenanigans
}
}
#else
-ASM_DIRECT static void sub_80F0708(void)
+NAKED static void sub_80F0708(void)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r9\n"
@@ -4434,7 +4434,7 @@ static void sub_80F0C04(void)
}
}
-void sub_80F0C7C(void *src, u32 size, u8 masterIdx)
+void ReceivePokeNewsData(void *src, u32 size, u8 masterIdx)
{
u8 i;
PokeNews (*rmBuffer2)[4][16];
diff --git a/src/util.c b/src/util.c
index 4f9241b21..88be4e4a1 100644
--- a/src/util.c
+++ b/src/util.c
@@ -230,7 +230,7 @@ void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output)
}
#else
-ASM_DIRECT void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output)
+NAKED void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output)
{
asm("\n\
.syntax unified\n\
diff --git a/src/walda_phrase.c b/src/walda_phrase.c
index 04789bfb5..0aa6f5aca 100644
--- a/src/walda_phrase.c
+++ b/src/walda_phrase.c
@@ -6,8 +6,7 @@
#include "main.h"
#include "text.h"
#include "new_game.h"
-
-extern void (*gFieldCallback)(void);
+#include "overworld.h"
extern const u8 gText_Peekaboo[];
diff --git a/sym_bss.txt b/sym_bss.txt
index 186ff8ced..0b861774b 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -29,11 +29,7 @@
.include "src/record_mixing.o"
.include "src/tv.o"
.include "src/mauville_old_man.o"
-
- .align 2
-gUnknown_0300117C: @ 300117C
- .space 0x4
-
+ .include "src/menu_helpers.o"
.include "src/region_map.o"
gUnknown_03001188: @ 3001188
@@ -190,6 +186,6 @@ gMPlayTrack_SE3: @ 3001A20
.include "src/agb_flash.o"
.include "src/siirtc.o"
- .include "tools/agbcc/lib/libgcc.a:dp-bit.o"
- .include "tools/agbcc/lib/libgcc.a:fp-bit.o"
- .include "tools/agbcc/lib/libc.a:syscalls.o"
+ .include "*libgcc.a:dp-bit.o"
+ .include "*libgcc.a:fp-bit.o"
+ .include "*libc.a:syscalls.o"
diff --git a/sym_common.txt b/sym_common.txt
index 3a4556086..64bfa88ec 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -23,22 +23,7 @@ gBGTilemapBuffers2: @ 3005DA0
gBGTilemapBuffers3: @ 3005DA4
.space 0x4
-gUnknown_03005DA8: @ 3005DA8
- .space 0x4
-
-gFieldCallback: @ 3005DAC
-
- .include "item_menu.o"
-
-gUnknown_03005DB0: @ 3005DB0
- .space 0x4
-
-gUnknown_03005DB4: @ 3005DB4
- .space 0x4
-
-gFieldLinkPlayerCount: @ 3005DB8
- .space 0x8
-
+ .include "overworld.o"
.include "fieldmap.o"
.include "field_camera.o"
@@ -182,4 +167,4 @@ gUnknown_03007898: @ 3007898
.space 0x8
gUnknown_030078A0: @ 30078A0
- .space 0x660
+ .space 0xC
diff --git a/sym_ewram.txt b/sym_ewram.txt
index ff75eb580..49fef1ad8 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -285,10 +285,7 @@ gUnknown_02038BC6: @ 2038BC6
.include "src/battle_setup.o"
.include "src/trainer_see.o"
.include "src/wild_encounter.o"
-
-gFieldEffectArguments: @ 2038C08
- .space 0x20
-
+ .include "src/field_effect.o"
.include "src/scanline_effect.o"
.include "src/option_menu.o"
@@ -480,17 +477,7 @@ gUnknown_02039F90: @ 2039F90
.include "src/naming_screen.o"
.include "src/money.o"
-
- .align 2
-gUnknown_02039F9C: @ 2039F9C
- .space 0x78
-
-gUnknown_0203A014: @ 203A014
- .space 0x4
-
-gUnknown_0203A018: @ 203A018
- .space 0x4
-
+ .include "src/record_mixing.o"
.include "src/secret_base.o"
.include "src/tv.o"
@@ -526,13 +513,7 @@ gUnknown_0203A120: @ 203A120
.include "src/mon_markings.o"
.include "src/mauville_old_man.o"
.include "src/mail.o"
-
-gUnknown_0203A138: @ 203A138
- .space 0x8
-
-gUnknown_0203A140: @ 203A140
- .space 0x4
-
+ .include "src/menu_helpers.o"
.include "src/region_map.o"
.include "src/decoration.o"
.align 2
@@ -835,13 +816,7 @@ gUnknown_0203CE54: @ 203CE54
.align 2
.include "src/item_menu.o"
-
-gUnknown_0203CE84: @ 203CE84
- .space 0x8
-
-gUnknown_0203CE8C: @ 203CE8C
- .space 0x10
-
+ .include "src/list_menu.o"
.include "src/unk_text_util.o"
.include "src/item_icon.o"